diff --git a/.github/workflows/kilo-mcp-catalog.yml b/.github/workflows/kilo-mcp-catalog.yml index f49d9c4ac90..bb1ea98e312 100644 --- a/.github/workflows/kilo-mcp-catalog.yml +++ b/.github/workflows/kilo-mcp-catalog.yml @@ -123,9 +123,15 @@ jobs: if: steps.catalog_changes.outputs.catalog == 'true' run: node --test scripts/kilo-mcp-catalog.test.mjs + # `cloud-agent-next` is not in web's dependency closure, but + # `apps/web/src/routers/cloud-agent-next-schemas.ts` imports schemas from + # it by relative path. Without that project installed, its bare `zod` + # import falls back to pnpm's hoisted copy, which can be a different + # version from the one the tests use, and the dump then rewrites the + # catalog with that version's JSON Schema output. - name: Install web dependencies if: steps.catalog_changes.outputs.catalog == 'true' - run: pnpm install --frozen-lockfile --filter web... + run: pnpm install --frozen-lockfile --filter web... --filter cloud-agent-next # Same dummies the jest suite already tolerates (ci.yml does the same for # the production build). The dump itself layers apps/web/.env.test under @@ -371,9 +377,12 @@ jobs: if: steps.merge_changes.outputs.catalog == 'true' run: npm install -g @kilocode/cli + # Same install scope as the PR job: the dump statically imports schemas + # from `cloud-agent-next`, so that project must be installed for its + # `zod` to resolve to the workspace version rather than the hoisted one. - name: Install web dependencies if: steps.merge_changes.outputs.catalog == 'true' - run: pnpm install --frozen-lockfile --filter web... + run: pnpm install --frozen-lockfile --filter web... --filter cloud-agent-next - name: Setup dummy env if: steps.merge_changes.outputs.catalog == 'true' diff --git a/patches/@expo__react-native-action-sheet@4.1.1.patch b/patches/@expo+react-native-action-sheet@4.1.1.patch similarity index 100% rename from patches/@expo__react-native-action-sheet@4.1.1.patch rename to patches/@expo+react-native-action-sheet@4.1.1.patch diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1c78a6f4b09..d816f3104d1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -97,8 +97,8 @@ catalogs: specifier: 4.135.0 version: 4.135.0 zod: - specifier: 4.4.3 - version: 4.4.3 + specifier: 4.6.7 + version: 4.6.7 overrides: '@babel/plugin-transform-modules-systemjs': 7.29.7 @@ -361,7 +361,7 @@ importers: version: link:../../packages/trpc '@modelcontextprotocol/sdk': specifier: 1.32.1 - version: 1.32.1(@cfworker/json-schema@4.1.1)(zod@4.4.3) + version: 1.32.1(@cfworker/json-schema@4.1.1)(zod@4.6.7) '@tanstack/react-query': specifier: 'catalog:' version: 5.100.10(react@19.2.6) @@ -397,7 +397,7 @@ importers: version: 4.0.1 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@playwright/test': specifier: 1.58.2 @@ -803,7 +803,7 @@ importers: version: 3.0.2 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 dependenciesMeta: '@kilocode/kilo-chat-hooks': injected: true @@ -879,11 +879,11 @@ importers: version: 3.5.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@anatine/zod-mock': specifier: 3.14.0 - version: 3.14.0(@faker-js/faker@10.5.0)(zod@4.4.3) + version: 3.14.0(@faker-js/faker@10.5.0)(zod@4.6.7) '@chromatic-com/storybook': specifier: 5.2.1 version: 5.2.1(@chromatic-com/playwright@0.12.8(@playwright/test@1.58.2)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(bufferutil@4.1.0)(esbuild@0.28.2)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.9.3)(utf-8-validate@6.0.6))(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.14)(bufferutil@4.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(utf-8-validate@6.0.6)) @@ -946,16 +946,16 @@ importers: dependencies: '@ai-sdk/anthropic': specifier: 4.0.15 - version: 4.0.15(zod@4.4.3) + version: 4.0.15(zod@4.6.7) '@ai-sdk/gateway': specifier: 4.0.21 - version: 4.0.21(zod@4.4.3) + version: 4.0.21(zod@4.6.7) '@ai-sdk/openai-compatible': specifier: 3.0.11 - version: 3.0.11(zod@4.4.3) + version: 3.0.11(zod@4.6.7) '@anthropic-ai/sdk': specifier: 0.104.1 - version: 0.104.1(zod@4.4.3) + version: 0.104.1(zod@4.6.7) '@apple/app-store-server-library': specifier: 3.1.0 version: 3.1.0 @@ -967,19 +967,19 @@ importers: version: 3.1009.0 '@chat-adapter/github': specifier: 4.36.0 - version: 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + version: 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) '@chat-adapter/linear': specifier: 4.36.0 - version: 4.36.0(ai@7.0.29(zod@4.4.3))(graphql@16.14.2)(zod@4.4.3) + version: 4.36.0(ai@7.0.29(zod@4.6.7))(graphql@16.14.2)(zod@4.6.7) '@chat-adapter/slack': specifier: 4.36.0 - version: 4.36.0(ai@7.0.29(zod@4.4.3))(bufferutil@4.1.0)(utf-8-validate@6.0.6)(zod@4.4.3) + version: 4.36.0(ai@7.0.29(zod@4.6.7))(bufferutil@4.1.0)(utf-8-validate@6.0.6)(zod@4.6.7) '@chat-adapter/state-memory': specifier: 4.36.0 - version: 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + version: 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) '@chat-adapter/state-redis': specifier: 4.36.0 - version: 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + version: 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) '@emoji-mart/data': specifier: 1.2.1 version: 1.2.1 @@ -1219,7 +1219,7 @@ importers: version: 6.0.0 ai: specifier: 7.0.29 - version: 7.0.29(zod@4.4.3) + version: 7.0.29(zod@4.6.7) archiver: specifier: 7.0.1 version: 7.0.1 @@ -1234,7 +1234,7 @@ importers: version: 2.3.0 chat: specifier: 4.36.0 - version: 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + version: 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) class-variance-authority: specifier: 0.7.1 version: 0.7.1 @@ -1315,7 +1315,7 @@ importers: version: 4.24.15(next@16.3.8(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.58.2)(@types/node@24.12.4)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6) openai: specifier: 6.49.0 - version: 6.49.0(@aws-sdk/credential-provider-node@3.972.21)(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(zod@4.4.3) + version: 6.49.0(@aws-sdk/credential-provider-node@3.972.21)(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(zod@4.6.7) p-limit: specifier: 'catalog:' version: 7.3.0 @@ -1378,7 +1378,7 @@ importers: version: 11.1.1 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@chromatic-com/playwright': specifier: 0.12.8 @@ -1472,7 +1472,7 @@ importers: dependencies: zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@typescript/native-preview': specifier: 'catalog:' @@ -1488,7 +1488,7 @@ importers: dependencies: zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@typescript/native-preview': specifier: 'catalog:' @@ -1504,7 +1504,7 @@ importers: dependencies: zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@types/node': specifier: 'catalog:' @@ -1538,7 +1538,7 @@ importers: version: 3.3.1 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@trpc/server': specifier: 'catalog:' @@ -1569,7 +1569,7 @@ importers: version: 2.18.1(@babel/core@7.29.7)(@babel/template@7.29.7)(@types/react@19.2.14)(react@19.2.6) zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@jest/globals': specifier: 30.3.0 @@ -1594,7 +1594,7 @@ importers: dependencies: zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/containers': specifier: 0.3.7 @@ -1637,7 +1637,7 @@ importers: version: 8.20.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@jest/globals': specifier: 30.3.0 @@ -1683,7 +1683,7 @@ importers: dependencies: zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@typescript/native-preview': specifier: 'catalog:' @@ -1699,10 +1699,10 @@ importers: dependencies: '@modelcontextprotocol/ext-apps': specifier: 1.7.5 - version: 1.7.5(@modelcontextprotocol/sdk@1.32.1(@cfworker/json-schema@4.1.1)(zod@4.4.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3) + version: 1.7.5(@modelcontextprotocol/sdk@1.32.1(@cfworker/json-schema@4.1.1)(zod@4.6.7))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.6.7) '@modelcontextprotocol/sdk': specifier: 1.32.1 - version: 1.32.1(@cfworker/json-schema@4.1.1)(zod@4.4.3) + version: 1.32.1(@cfworker/json-schema@4.1.1)(zod@4.6.7) drizzle-orm: specifier: 0.45.2 version: 0.45.2(@cloudflare/workers-types@4.20260605.1)(@opentelemetry/api@1.9.1)(@types/pg@8.18.0)(@upstash/redis@1.38.0)(bun-types@1.3.14)(expo-sqlite@57.0.3(expo@57.0.26)(react-native@0.86.3(patch_hash=113932fc75a9e6f352c2a0668f6aa2be25e81326b7b96cc47f8420776a1a92f9)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(kysely@0.29.2)(pg@8.20.0) @@ -1718,7 +1718,7 @@ importers: devDependencies: '@anthropic-ai/sdk': specifier: 0.104.1 - version: 0.104.1(zod@4.4.3) + version: 0.104.1(zod@4.6.7) '@ttsc/unplugin': specifier: 0.28.3 version: 0.28.3(ttsc@0.28.3) @@ -1730,7 +1730,7 @@ importers: version: 0.31.10 openai: specifier: 6.49.0 - version: 6.49.0(@aws-sdk/credential-provider-node@3.972.21)(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(zod@4.4.3) + version: 6.49.0(@aws-sdk/credential-provider-node@3.972.21)(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(zod@4.6.7) ttsc: specifier: 0.28.3 version: 0.28.3 @@ -1751,7 +1751,7 @@ importers: version: 3.0.2 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@typescript/native-preview': specifier: 'catalog:' @@ -1795,7 +1795,7 @@ importers: dependencies: zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@typescript/native-preview': specifier: 'catalog:' @@ -1811,7 +1811,7 @@ importers: dependencies: zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@typescript/native-preview': specifier: 'catalog:' @@ -1836,7 +1836,7 @@ importers: version: 26.4.7(typescript@5.9.3) zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@typescript/native-preview': specifier: 'catalog:' @@ -1864,7 +1864,7 @@ importers: dependencies: zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@typescript/native-preview': specifier: 'catalog:' @@ -1904,7 +1904,7 @@ importers: version: 19.3.1(@types/node@25.5.2) zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@kilocode/cloud-agent-profile': specifier: workspace:* @@ -1938,7 +1938,7 @@ importers: dependencies: zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@typescript/native-preview': specifier: 'catalog:' @@ -1954,16 +1954,16 @@ importers: dependencies: '@ai-sdk/anthropic': specifier: 4.0.15 - version: 4.0.15(zod@4.4.3) + version: 4.0.15(zod@4.6.7) '@ai-sdk/gateway': specifier: 4.0.21 - version: 4.0.21(zod@4.4.3) + version: 4.0.21(zod@4.6.7) '@ai-sdk/openai-compatible': specifier: 3.0.11 - version: 3.0.11(zod@4.4.3) + version: 3.0.11(zod@4.6.7) '@anthropic-ai/sdk': specifier: 0.104.1 - version: 0.104.1(zod@4.4.3) + version: 0.104.1(zod@4.6.7) '@aws-sdk/client-s3': specifier: 3.1009.0 version: 3.1009.0 @@ -2074,7 +2074,7 @@ importers: version: 4.24.15(next@16.3.8(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.58.2)(@types/node@24.12.4)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6) openai: specifier: 6.49.0 - version: 6.49.0(@aws-sdk/credential-provider-node@3.972.21)(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(zod@4.4.3) + version: 6.49.0(@aws-sdk/credential-provider-node@3.972.21)(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(zod@4.6.7) p-limit: specifier: 'catalog:' version: 7.3.0 @@ -2092,7 +2092,7 @@ importers: version: 11.1.1 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@jest/globals': specifier: 30.3.0 @@ -2123,7 +2123,7 @@ importers: version: 7.0.0-dev.20260514.1 ai: specifier: 7.0.29 - version: 7.0.29(zod@4.4.3) + version: 7.0.29(zod@4.6.7) babel-plugin-react-compiler: specifier: 1.0.0 version: 1.0.0 @@ -2141,7 +2141,7 @@ importers: dependencies: zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@types/node': specifier: 'catalog:' @@ -2190,7 +2190,7 @@ importers: version: 6.2.3 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@typescript/native-preview': specifier: 'catalog:' @@ -2218,7 +2218,7 @@ importers: version: 1.0.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@types/jest': specifier: 29.5.14 @@ -2264,7 +2264,7 @@ importers: version: 1.0.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/containers': specifier: 0.1.1 @@ -2322,7 +2322,7 @@ importers: version: 4.13.13 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/workers-types': specifier: 'catalog:' @@ -2365,7 +2365,7 @@ importers: version: 4.13.13 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/workers-types': specifier: 'catalog:' @@ -2441,7 +2441,7 @@ importers: version: 1.0.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/containers': specifier: 0.3.7 @@ -2501,8 +2501,8 @@ importers: specifier: 3.1.0 version: 3.1.0 zod: - specifier: 4.4.3 - version: 4.4.3 + specifier: 4.6.7 + version: 4.6.7 devDependencies: '@types/bun': specifier: 1.3.14 @@ -2527,7 +2527,7 @@ importers: version: 4.13.13 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -2601,7 +2601,7 @@ importers: version: 1.0.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -2653,7 +2653,7 @@ importers: version: 3.1.9 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/sandbox': specifier: 0.6.11 @@ -2708,7 +2708,7 @@ importers: version: 9.0.3 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -2763,7 +2763,7 @@ importers: version: 1.0.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -2827,7 +2827,7 @@ importers: version: 1.0.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -2870,7 +2870,7 @@ importers: version: 4.13.13 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@types/bun': specifier: 1.3.14 @@ -2907,7 +2907,7 @@ importers: version: 0.45.2(@cloudflare/workers-types@4.20260605.1)(@opentelemetry/api@1.9.1)(@types/pg@8.18.0)(@upstash/redis@1.38.0)(bun-types@1.3.14)(expo-sqlite@57.0.3(expo@57.0.26)(react-native@0.86.3(patch_hash=113932fc75a9e6f352c2a0668f6aa2be25e81326b7b96cc47f8420776a1a92f9)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(kysely@0.29.2)(pg@8.20.0) zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@types/node': specifier: 'catalog:' @@ -2935,7 +2935,7 @@ importers: version: 6.2.3 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -2957,7 +2957,7 @@ importers: dependencies: '@modelcontextprotocol/sdk': specifier: 1.32.1 - version: 1.32.1(@cfworker/json-schema@4.1.1)(zod@4.4.3) + version: 1.32.1(@cfworker/json-schema@4.1.1)(zod@4.6.7) aws4fetch: specifier: 'catalog:' version: 1.0.20 @@ -2972,7 +2972,7 @@ importers: version: 9.0.3 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/workers-types': specifier: 'catalog:' @@ -3042,7 +3042,7 @@ importers: version: 1.0.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -3082,7 +3082,7 @@ importers: version: 0.45.2(@cloudflare/workers-types@4.20260605.1)(@opentelemetry/api@1.9.1)(@types/pg@8.18.0)(@upstash/redis@1.38.0)(bun-types@1.3.14)(expo-sqlite@57.0.3(expo@57.0.26)(react-native@0.86.3(patch_hash=113932fc75a9e6f352c2a0668f6aa2be25e81326b7b96cc47f8420776a1a92f9)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(kysely@0.29.2)(pg@8.20.0) zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/workers-types': specifier: 'catalog:' @@ -3168,7 +3168,7 @@ importers: version: 6.2.3 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@types/node': specifier: 'catalog:' @@ -3217,7 +3217,7 @@ importers: version: 1.0.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@types/node': specifier: 'catalog:' @@ -3276,7 +3276,7 @@ importers: version: 3.1.9 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@types/node': specifier: 'catalog:' @@ -3295,7 +3295,7 @@ importers: version: 2.2.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: esbuild: specifier: '>=0.28.1' @@ -3338,7 +3338,7 @@ importers: version: link:../../packages/app-shared zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@types/node': specifier: 'catalog:' @@ -3372,7 +3372,7 @@ importers: version: 0.45.2(@cloudflare/workers-types@4.20260605.1)(@opentelemetry/api@1.9.1)(@types/pg@8.18.0)(@upstash/redis@1.38.0)(bun-types@1.3.14)(expo-sqlite@57.0.3(expo@57.0.26)(react-native@0.86.3(patch_hash=113932fc75a9e6f352c2a0668f6aa2be25e81326b7b96cc47f8420776a1a92f9)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(kysely@0.29.2)(pg@8.20.0) zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@types/node': specifier: '>=24 <25' @@ -3424,7 +3424,7 @@ importers: version: 1.0.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -3461,7 +3461,7 @@ importers: version: 4.13.13 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -3504,7 +3504,7 @@ importers: version: 1.0.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@types/node': specifier: 'catalog:' @@ -3538,7 +3538,7 @@ importers: version: 0.45.2(@cloudflare/workers-types@4.20260605.1)(@opentelemetry/api@1.9.1)(@types/pg@8.18.0)(@upstash/redis@1.38.0)(bun-types@1.3.14)(expo-sqlite@57.0.3(expo@57.0.26)(react-native@0.86.3(patch_hash=113932fc75a9e6f352c2a0668f6aa2be25e81326b7b96cc47f8420776a1a92f9)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(kysely@0.29.2)(pg@8.20.0) zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@types/node': specifier: 'catalog:' @@ -3590,7 +3590,7 @@ importers: version: 6.2.3 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -3661,7 +3661,7 @@ importers: version: 0.45.2(@cloudflare/workers-types@4.20260605.1)(@opentelemetry/api@1.9.1)(@types/pg@8.18.0)(@upstash/redis@1.38.0)(bun-types@1.3.14)(expo-sqlite@57.0.3(expo@57.0.26)(react-native@0.86.3(patch_hash=113932fc75a9e6f352c2a0668f6aa2be25e81326b7b96cc47f8420776a1a92f9)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(kysely@0.29.2)(pg@8.20.0) zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -3713,7 +3713,7 @@ importers: version: 1.0.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -3768,7 +3768,7 @@ importers: version: 1.0.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.6.7 devDependencies: '@cloudflare/vitest-pool-workers': specifier: 'catalog:' @@ -20401,6 +20401,9 @@ packages: zod@4.4.3: resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + zod@4.6.7: + resolution: {integrity: sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==} + zustand@5.0.12: resolution: {integrity: sha512-i77ae3aZq4dhMlRhJVCYgMLKuSiZAaUPAct2AksxQ+gOtimhGMdXljRT21P5BNpeT4kXlLIckvkPM029OljD7g==} engines: {node: '>=12.20.0'} @@ -20435,32 +20438,32 @@ snapshots: dependencies: zod: 4.4.3 - '@ai-sdk/anthropic@4.0.15(zod@4.4.3)': + '@ai-sdk/anthropic@4.0.15(zod@4.6.7)': dependencies: '@ai-sdk/provider': 4.0.3 - '@ai-sdk/provider-utils': 5.0.10(zod@4.4.3) - zod: 4.4.3 + '@ai-sdk/provider-utils': 5.0.10(zod@4.6.7) + zod: 4.6.7 - '@ai-sdk/gateway@4.0.21(zod@4.4.3)': + '@ai-sdk/gateway@4.0.21(zod@4.6.7)': dependencies: '@ai-sdk/provider': 4.0.3 - '@ai-sdk/provider-utils': 5.0.10(zod@4.4.3) + '@ai-sdk/provider-utils': 5.0.10(zod@4.6.7) '@vercel/oidc': 3.2.0 - zod: 4.4.3 + zod: 4.6.7 - '@ai-sdk/openai-compatible@3.0.11(zod@4.4.3)': + '@ai-sdk/openai-compatible@3.0.11(zod@4.6.7)': dependencies: '@ai-sdk/provider': 4.0.3 - '@ai-sdk/provider-utils': 5.0.10(zod@4.4.3) - zod: 4.4.3 + '@ai-sdk/provider-utils': 5.0.10(zod@4.6.7) + zod: 4.6.7 - '@ai-sdk/provider-utils@5.0.10(zod@4.4.3)': + '@ai-sdk/provider-utils@5.0.10(zod@4.6.7)': dependencies: '@ai-sdk/provider': 4.0.3 '@standard-schema/spec': 1.1.0 '@workflow/serde': 4.1.0 eventsource-parser: 3.0.8 - zod: 4.4.3 + zod: 4.6.7 '@ai-sdk/provider@4.0.3': dependencies: @@ -20482,18 +20485,18 @@ snapshots: '@alloc/quick-lru@5.2.0': {} - '@anatine/zod-mock@3.14.0(@faker-js/faker@10.5.0)(zod@4.4.3)': + '@anatine/zod-mock@3.14.0(@faker-js/faker@10.5.0)(zod@4.6.7)': dependencies: '@faker-js/faker': 10.5.0 randexp: 0.5.3 - zod: 4.4.3 + zod: 4.6.7 - '@anthropic-ai/sdk@0.104.1(zod@4.4.3)': + '@anthropic-ai/sdk@0.104.1(zod@4.6.7)': dependencies: json-schema-to-ts: 3.1.1 standardwebhooks: 1.0.0 optionalDependencies: - zod: 4.4.3 + zod: 4.6.7 '@anthropic-ai/sdk@0.109.1(zod@4.4.3)': dependencies: @@ -21956,23 +21959,23 @@ snapshots: '@cfworker/json-schema@4.1.1': {} - '@chat-adapter/github@4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3)': + '@chat-adapter/github@4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7)': dependencies: - '@chat-adapter/shared': 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + '@chat-adapter/shared': 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) '@octokit/auth-app': 8.2.0 '@octokit/rest': 22.0.1 - chat: 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + chat: 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) transitivePeerDependencies: - ai - supports-color - workflow - zod - '@chat-adapter/linear@4.36.0(ai@7.0.29(zod@4.4.3))(graphql@16.14.2)(zod@4.4.3)': + '@chat-adapter/linear@4.36.0(ai@7.0.29(zod@4.6.7))(graphql@16.14.2)(zod@4.6.7)': dependencies: - '@chat-adapter/shared': 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + '@chat-adapter/shared': 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) '@linear/sdk': 76.0.0(graphql@16.14.2) - chat: 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + chat: 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) transitivePeerDependencies: - ai - graphql @@ -21980,21 +21983,21 @@ snapshots: - workflow - zod - '@chat-adapter/shared@4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3)': + '@chat-adapter/shared@4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7)': dependencies: - chat: 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + chat: 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) transitivePeerDependencies: - ai - supports-color - workflow - zod - '@chat-adapter/slack@4.36.0(ai@7.0.29(zod@4.4.3))(bufferutil@4.1.0)(utf-8-validate@6.0.6)(zod@4.4.3)': + '@chat-adapter/slack@4.36.0(ai@7.0.29(zod@4.6.7))(bufferutil@4.1.0)(utf-8-validate@6.0.6)(zod@4.6.7)': dependencies: - '@chat-adapter/shared': 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + '@chat-adapter/shared': 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) '@slack/socket-mode': 2.0.7(bufferutil@4.1.0)(utf-8-validate@6.0.6) '@slack/web-api': 7.19.0 - chat: 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + chat: 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) transitivePeerDependencies: - ai - bufferutil @@ -22004,18 +22007,18 @@ snapshots: - workflow - zod - '@chat-adapter/state-memory@4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3)': + '@chat-adapter/state-memory@4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7)': dependencies: - chat: 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + chat: 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) transitivePeerDependencies: - ai - supports-color - workflow - zod - '@chat-adapter/state-redis@4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3)': + '@chat-adapter/state-redis@4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7)': dependencies: - chat: 4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3) + chat: 4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7) redis: 5.11.0 transitivePeerDependencies: - '@node-rs/xxhash' @@ -24939,11 +24942,11 @@ snapshots: - bufferutil - utf-8-validate - '@modelcontextprotocol/ext-apps@1.7.5(@modelcontextprotocol/sdk@1.32.1(@cfworker/json-schema@4.1.1)(zod@4.4.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3)': + '@modelcontextprotocol/ext-apps@1.7.5(@modelcontextprotocol/sdk@1.32.1(@cfworker/json-schema@4.1.1)(zod@4.6.7))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.6.7)': dependencies: - '@modelcontextprotocol/sdk': 1.32.1(@cfworker/json-schema@4.1.1)(zod@4.4.3) + '@modelcontextprotocol/sdk': 1.32.1(@cfworker/json-schema@4.1.1)(zod@4.6.7) '@standard-schema/spec': 1.1.0 - zod: 4.4.3 + zod: 4.6.7 optionalDependencies: react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -24972,6 +24975,30 @@ snapshots: transitivePeerDependencies: - supports-color + '@modelcontextprotocol/sdk@1.32.1(@cfworker/json-schema@4.1.1)(zod@4.6.7)': + dependencies: + '@hono/node-server': 2.0.10(hono@4.13.13) + ajv: 8.20.0 + ajv-formats: 3.0.1 + content-type: 1.0.5 + cors: 2.8.6 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.0.8 + express: 5.2.1 + express-rate-limit: 8.3.1(express@5.2.1) + hono: 4.13.13 + jose: 6.2.3 + json-schema-typed: 8.0.2 + pkce-challenge: 5.0.1 + raw-body: 3.0.2 + zod: 4.6.7 + zod-to-json-schema: 3.25.1(zod@4.6.7) + optionalDependencies: + '@cfworker/json-schema': 4.1.1 + transitivePeerDependencies: + - supports-color + '@monaco-editor/loader@1.7.0': dependencies: state-local: 1.0.7 @@ -30069,12 +30096,12 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ai@7.0.29(zod@4.4.3): + ai@7.0.29(zod@4.6.7): dependencies: - '@ai-sdk/gateway': 4.0.21(zod@4.4.3) + '@ai-sdk/gateway': 4.0.21(zod@4.6.7) '@ai-sdk/provider': 4.0.3 - '@ai-sdk/provider-utils': 5.0.10(zod@4.4.3) - zod: 4.4.3 + '@ai-sdk/provider-utils': 5.0.10(zod@4.6.7) + zod: 4.6.7 ajv-formats@3.0.1: dependencies: @@ -30829,7 +30856,7 @@ snapshots: character-reference-invalid@2.0.1: {} - chat@4.36.0(ai@7.0.29(zod@4.4.3))(zod@4.4.3): + chat@4.36.0(ai@7.0.29(zod@4.6.7))(zod@4.6.7): dependencies: '@workflow/serde': 4.1.0-beta.2 mdast-util-to-string: 4.0.0 @@ -30839,8 +30866,8 @@ snapshots: remend: 1.2.2 unified: 11.0.5 optionalDependencies: - ai: 7.0.29(zod@4.4.3) - zod: 4.4.3 + ai: 7.0.29(zod@4.6.7) + zod: 4.6.7 transitivePeerDependencies: - supports-color @@ -37045,11 +37072,11 @@ snapshots: ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) zod: 4.4.3 - openai@6.49.0(@aws-sdk/credential-provider-node@3.972.21)(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(zod@4.4.3): + openai@6.49.0(@aws-sdk/credential-provider-node@3.972.21)(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(zod@4.6.7): optionalDependencies: '@aws-sdk/credential-provider-node': 3.972.21 ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - zod: 4.4.3 + zod: 4.6.7 openclaw@2026.7.1(@aws-sdk/credential-provider-node@3.972.21)(@cfworker/json-schema@4.1.1)(@opentelemetry/api@1.9.1)(bufferutil@4.1.0)(utf-8-validate@6.0.6): dependencies: @@ -41578,12 +41605,18 @@ snapshots: dependencies: zod: 4.4.3 + zod-to-json-schema@3.25.1(zod@4.6.7): + dependencies: + zod: 4.6.7 + zod@3.25.76: {} zod@4.1.8: {} zod@4.4.3: {} + zod@4.6.7: {} + zustand@5.0.12(@types/react@19.2.14)(immer@11.1.4)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)): optionalDependencies: '@types/react': 19.2.14 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index f9f42cb76c1..7895839bdcc 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -51,7 +51,7 @@ catalog: vitest: 4.1.11 workers-tagged-logger: 1.0.0 wrangler: 4.135.0 - zod: 4.4.3 + zod: 4.6.7 minimumReleaseAge: 6842 minimumReleaseAgeExclude: @@ -289,7 +289,7 @@ patchedDependencies: # A finished first entry made a cold start re-enqueue with REPLACE, which # cancelled the glanceable refresh run in progress. expo-background-task@57.0.21: patches/expo-background-task@57.0.21.patch - '@expo/react-native-action-sheet@4.1.1': patches/@expo__react-native-action-sheet@4.1.1.patch + '@expo/react-native-action-sheet@4.1.1': patches/@expo+react-native-action-sheet@4.1.1.patch publicHoistPattern: - '@types/*' - '*import-in-the-middle*' diff --git a/services/cloud-agent-next/wrapper/package.json b/services/cloud-agent-next/wrapper/package.json index 2a34287faf0..b52d80e4aa9 100644 --- a/services/cloud-agent-next/wrapper/package.json +++ b/services/cloud-agent-next/wrapper/package.json @@ -10,7 +10,7 @@ "dependencies": { "@kilocode/sdk": "7.8.15", "fuzzysort": "3.1.0", - "zod": "4.4.3" + "zod": "4.6.7" }, "devDependencies": { "@types/bun": "1.3.14", diff --git a/services/kilo-mcp/catalog.json b/services/kilo-mcp/catalog.json index 45014a9a1ca..6d47799ac68 100644 --- a/services/kilo-mcp/catalog.json +++ b/services/kilo-mcp/catalog.json @@ -3202,23 +3202,15 @@ "maxLength": 100000 }, "agent": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "subtask": { @@ -4081,23 +4073,15 @@ ] }, "mode": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "report_type": { @@ -4835,7 +4819,7 @@ "cursor": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "limit": { "default": 10, @@ -5297,7 +5281,7 @@ "cursor": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "limit": { "default": 10, @@ -5372,7 +5356,7 @@ "updatedSince": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "version": { "type": "number" @@ -5424,7 +5408,7 @@ "updatedSince": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" } }, "required": [ @@ -5913,6 +5897,7 @@ "path": { "type": "string", "maxLength": 2048, + "format": "starts_with", "pattern": "^\\/.*" } }, @@ -5977,6 +5962,7 @@ "type": "string", "minLength": 30, "maxLength": 30, + "format": "starts_with", "pattern": "^ses_.*" }, "operationKey": { @@ -6293,6 +6279,7 @@ "properties": { "cloudAgentSessionId": { "type": "string", + "format": "starts_with", "allOf": [ { "pattern": "^(agent|workspace)_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" @@ -6579,1091 +6566,720 @@ "summary": "Set up a new cloud agent session before it starts, including the repository, model, and any attached files or images.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ + "anyOf": [ { - "anyOf": [ - { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "maxLength": 100000 - }, - "initialMessageId": { - "type": "string", - "pattern": "^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$" - }, - "initialPayload": { - "oneOf": [ + "type": "object", + "properties": { + "egressMode": { + "description": "Defaults to unrestricted when omitted. The allowlist mode permits the Kilo/Git baseline plus optional egressAllowlist domains.", + "type": "string", + "enum": [ + "unrestricted", + "allowlist" + ] + }, + "egressAllowlist": { + "description": "Additional exact DNS hostnames; requires explicit allowlist mode.", + "maxItems": 100, + "type": "array", + "items": { + "type": "string", + "maxLength": 254, + "pattern": "^[A-Za-z0-9.-]+$" + } + }, + "sandboxAllocation": { + "anyOf": [ + { + "anyOf": [ { "type": "object", "properties": { - "type": { - "type": "string", - "const": "prompt" - }, - "prompt": { - "type": "string", - "minLength": 1 - }, - "mode": { - "type": "string", - "minLength": 1, - "maxLength": 50, - "pattern": "^[a-z][a-z0-9-]*$" + "provider": { + "type": "object", + "properties": { + "id": { + "type": "string", + "const": "cloudflare" + }, + "account": { + "type": "string", + "const": "kilo" + } + }, + "required": [ + "id", + "account" + ], + "additionalProperties": false }, - "model": { + "instanceType": { "type": "string", - "minLength": 1 + "enum": [ + "single", + "shared" + ] + } + }, + "required": [ + "provider", + "instanceType" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "provider": { + "type": "object", + "properties": { + "id": { + "type": "string", + "const": "vercel" + }, + "account": { + "type": "string", + "enum": [ + "kilo", + "byoc" + ] + } + }, + "required": [ + "id", + "account" + ], + "additionalProperties": false }, - "variant": { + "instanceType": { "type": "string", - "maxLength": 50, - "pattern": "^[a-zA-Z]+$" + "enum": [ + "small", + "large" + ] } }, "required": [ - "type", - "prompt", - "mode", - "model" - ] + "provider", + "instanceType" + ], + "additionalProperties": false }, { "type": "object", "properties": { - "type": { - "type": "string", - "const": "command" + "provider": { + "type": "object", + "properties": { + "id": { + "type": "string", + "const": "cloudflare-containers" + }, + "account": { + "type": "string", + "const": "kilo" + } + }, + "required": [ + "id", + "account" + ], + "additionalProperties": false }, - "command": { + "instanceType": { "type": "string", - "minLength": 1 - }, - "arguments": { - "default": "", - "type": "string" + "enum": [ + "standard-3", + "standard-4" + ] } }, "required": [ - "type", - "command" - ] + "provider", + "instanceType" + ], + "additionalProperties": false } ] }, - "autoInitiate": { - "type": "boolean" - }, - "operationKey": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "kiloSessionId": { + { "type": "string", - "pattern": "^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$" - }, - "cloneFromKiloSessionId": {}, - "cloneUpToMessageId": {}, - "allowSubagentSessions": { - "type": "boolean" - }, - "callbackTarget": { + "enum": [ + "cloudflare-single", + "cloudflare-shared", + "cloudflare-containers-standard-3", + "cloudflare-containers-standard-4", + "vercel-small", + "vercel-large" + ] + } + ] + }, + "prompt": { + "type": "string", + "minLength": 1, + "maxLength": 100000 + }, + "initialMessageId": { + "type": "string", + "pattern": "^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$" + }, + "initialPayload": { + "oneOf": [ + { "type": "object", "properties": { - "url": { + "type": { "type": "string", - "const": "session:parent" + "const": "prompt" + }, + "prompt": { + "type": "string", + "minLength": 1 + }, + "mode": { + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-z][a-z0-9-]*$" + }, + "model": { + "type": "string", + "minLength": 1 + }, + "variant": { + "type": "string", + "maxLength": 50, + "pattern": "^[a-zA-Z]+$" } }, "required": [ - "url" - ], - "additionalProperties": false, - "description": "Notify the spawning parent session when this child finishes. Omit for no callback." - }, - "githubRepo": { - "type": "string", - "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" - }, - "githubIntegrationId": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "gitlabProject": { - "description": "GitLab project path (e.g., group/project or group/subgroup/project)", - "type": "string", - "pattern": "^[a-zA-Z0-9_.-]+(?:\\/[a-zA-Z0-9_.-]+)+$" + "type", + "prompt", + "mode", + "model" + ] }, - "bitbucketRepo": { + { "type": "object", "properties": { - "fullName": { + "type": { "type": "string", - "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" + "const": "command" }, - "workspaceUuid": { + "command": { "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + "minLength": 1 }, - "repositoryUuid": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + "arguments": { + "default": "", + "type": "string" } }, "required": [ - "fullName", - "workspaceUuid", - "repositoryUuid" - ], - "additionalProperties": false - }, - "publicRepoUrl": { - "type": "string", - "format": "uri" - }, - "mode": { + "type", + "command" + ] + } + ] + }, + "autoInitiate": { + "type": "boolean" + }, + "operationKey": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "kiloSessionId": { + "type": "string", + "pattern": "^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$" + }, + "cloneFromKiloSessionId": {}, + "cloneUpToMessageId": {}, + "allowSubagentSessions": { + "type": "boolean" + }, + "callbackTarget": { + "type": "object", + "properties": { + "url": { "type": "string", - "minLength": 1, - "maxLength": 50, - "pattern": "^[a-z][a-z0-9-]*$" - }, - "model": { + "const": "session:parent" + } + }, + "required": [ + "url" + ], + "additionalProperties": false, + "description": "Notify the spawning parent session when this child finishes. Omit for no callback." + }, + "githubRepo": { + "type": "string", + "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" + }, + "githubIntegrationId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "gitlabProject": { + "description": "GitLab project path (e.g., group/project or group/subgroup/project)", + "type": "string", + "pattern": "^[a-zA-Z0-9_.-]+(?:\\/[a-zA-Z0-9_.-]+)+$" + }, + "bitbucketRepo": { + "type": "object", + "properties": { + "fullName": { "type": "string", - "minLength": 1 + "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" }, - "variant": { + "workspaceUuid": { "type": "string", - "maxLength": 50, - "pattern": "^[a-zA-Z]+$" + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, - "profileId": { + "repositoryUuid": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "envVars": { - "type": "object", - "propertyNames": { - "type": "string", - "maxLength": 256 - }, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "setupCommands": { - "maxItems": 20, - "type": "array", - "items": { - "type": "string", - "maxLength": 500 - } - }, - "mcpServers": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "oneOf": [ - { + } + }, + "required": [ + "fullName", + "workspaceUuid", + "repositoryUuid" + ], + "additionalProperties": false + }, + "publicRepoUrl": { + "type": "string", + "format": "uri" + }, + "mode": { + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-z][a-z0-9-]*$" + }, + "model": { + "type": "string", + "minLength": 1 + }, + "variant": { + "type": "string", + "maxLength": 50, + "pattern": "^[a-zA-Z]+$" + }, + "profileId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "envVars": { + "type": "object", + "propertyNames": { + "type": "string", + "maxLength": 256 + }, + "additionalProperties": { + "type": "string", + "maxLength": 256 + } + }, + "setupCommands": { + "maxItems": 20, + "type": "array", + "items": { + "type": "string", + "maxLength": 500 + } + }, + "mcpServers": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "oneOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "local" + }, + "command": { + "minItems": 1, + "type": "array", + "items": { + "type": "string" + } + }, + "environment": { "type": "object", - "properties": { - "type": { - "type": "string", - "const": "local" - }, - "command": { - "minItems": 1, - "type": "array", - "items": { - "type": "string" - } - }, - "environment": { - "type": "object", - "propertyNames": { - "type": "string" + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "string", + "maxLength": 4096 }, - "additionalProperties": { - "anyOf": [ - { + { + "type": "object", + "properties": { + "encryptedData": { + "type": "string" + }, + "encryptedDEK": { + "type": "string" + }, + "algorithm": { "type": "string", - "maxLength": 4096 + "const": "rsa-aes-256-gcm" }, - { - "type": "object", - "properties": { - "encryptedData": { - "type": "string" - }, - "encryptedDEK": { - "type": "string" - }, - "algorithm": { - "type": "string", - "const": "rsa-aes-256-gcm" - }, - "version": { - "type": "number", - "const": 1 - } - }, - "required": [ - "encryptedData", - "encryptedDEK", - "algorithm", - "version" - ] + "version": { + "type": "number", + "const": 1 } + }, + "required": [ + "encryptedData", + "encryptedDEK", + "algorithm", + "version" ] } - }, - "enabled": { - "type": "boolean" - }, - "timeout": { - "type": "number", - "minimum": 1, - "maximum": 3600000 - } - }, - "required": [ - "type", - "command" - ], - "additionalProperties": false + ] + } }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "remote" - }, - "url": { - "type": "string", - "format": "uri" - }, - "headers": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "string", - "maxLength": 4096 - }, - { - "type": "object", - "properties": { - "encryptedData": { - "type": "string" - }, - "encryptedDEK": { - "type": "string" - }, - "algorithm": { - "type": "string", - "const": "rsa-aes-256-gcm" - }, - "version": { - "type": "number", - "const": 1 - } - }, - "required": [ - "encryptedData", - "encryptedDEK", - "algorithm", - "version" - ] - } - ] - } - }, - "enabled": { - "type": "boolean" - }, - "timeout": { - "type": "number", - "minimum": 1, - "maximum": 3600000 - } - }, - "required": [ - "type", - "url" - ], - "additionalProperties": false + "enabled": { + "type": "boolean" + }, + "timeout": { + "type": "number", + "minimum": 1, + "maximum": 3600000 } - ] - } - }, - "runtimeSkills": { - "maxItems": 50, - "type": "array", - "items": { + }, + "required": [ + "type", + "command" + ], + "additionalProperties": false + }, + { "type": "object", "properties": { - "name": { + "type": { "type": "string", - "minLength": 1, - "maxLength": 100, - "pattern": "^[a-z0-9][a-z0-9-]*$" + "const": "remote" }, - "rawMarkdown": { + "url": { "type": "string", - "minLength": 1, - "maxLength": 100000 + "format": "uri" }, - "files": { + "headers": { "type": "object", "propertyNames": { - "type": "string", - "maxLength": 200 + "type": "string" }, "additionalProperties": { - "type": "string", - "maxLength": 100000 + "anyOf": [ + { + "type": "string", + "maxLength": 4096 + }, + { + "type": "object", + "properties": { + "encryptedData": { + "type": "string" + }, + "encryptedDEK": { + "type": "string" + }, + "algorithm": { + "type": "string", + "const": "rsa-aes-256-gcm" + }, + "version": { + "type": "number", + "const": 1 + } + }, + "required": [ + "encryptedData", + "encryptedDEK", + "algorithm", + "version" + ] + } + ] } + }, + "enabled": { + "type": "boolean" + }, + "timeout": { + "type": "number", + "minimum": 1, + "maximum": 3600000 } }, "required": [ - "name", - "rawMarkdown" - ] + "type", + "url" + ], + "additionalProperties": false + } + ] + } + }, + "runtimeSkills": { + "maxItems": 50, + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "maxLength": 100, + "pattern": "^[a-z0-9][a-z0-9-]*$" + }, + "rawMarkdown": { + "type": "string", + "minLength": 1, + "maxLength": 100000 + }, + "files": { + "type": "object", + "propertyNames": { + "type": "string", + "maxLength": 200 + }, + "additionalProperties": { + "type": "string", + "maxLength": 100000 + } } }, - "runtimeAgents": { - "maxItems": 20, - "type": "array", - "items": { + "required": [ + "name", + "rawMarkdown" + ] + } + }, + "runtimeAgents": { + "maxItems": 20, + "type": "array", + "items": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-z][a-z0-9-]*$" + }, + "name": { + "type": "string", + "minLength": 1, + "maxLength": 100 + }, + "config": { "type": "object", "properties": { - "slug": { + "prompt": { "type": "string", - "minLength": 1, - "maxLength": 50, - "pattern": "^[a-z][a-z0-9-]*$" + "maxLength": 50000 }, - "name": { + "description": { "type": "string", - "minLength": 1, - "maxLength": 100 + "maxLength": 2000 }, - "config": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "maxLength": 50000 - }, - "description": { + "mode": { + "type": "string", + "enum": [ + "subagent", + "primary", + "all" + ] + }, + "model": { + "anyOf": [ + { "type": "string", - "maxLength": 2000 + "maxLength": 200 }, - "mode": { + { + "type": "null" + } + ] + }, + "variant": { + "type": "string", + "maxLength": 50 + }, + "temperature": { + "type": "number" + }, + "top_p": { + "type": "number" + }, + "steps": { + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "hidden": { + "type": "boolean" + }, + "disable": { + "type": "boolean" + }, + "color": { + "type": "string", + "maxLength": 50 + }, + "permission": { + "anyOf": [ + { "type": "string", "enum": [ - "subagent", - "primary", - "all" - ] - }, - "model": { - "anyOf": [ - { - "type": "string", - "maxLength": 200 - }, - { - "type": "null" - } + "allow", + "ask", + "deny" ] }, - "variant": { - "type": "string", - "maxLength": 50 - }, - "temperature": { - "type": "number" - }, - "top_p": { - "type": "number" - }, - "steps": { - "type": "integer", - "exclusiveMinimum": 0, - "maximum": 9007199254740991 - }, - "hidden": { - "type": "boolean" - }, - "disable": { - "type": "boolean" - }, - "color": { - "type": "string", - "maxLength": 50 - }, - "permission": { - "anyOf": [ - { - "type": "string", - "enum": [ - "allow", - "ask", - "deny" - ] - }, - { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { "anyOf": [ { - "anyOf": [ - { - "type": "string", - "enum": [ - "allow", - "ask", - "deny" - ] - }, - { - "type": "null" - } + "type": "string", + "enum": [ + "allow", + "ask", + "deny" ] }, { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "string", - "enum": [ - "allow", - "ask", - "deny" - ] - }, - { - "type": "null" - } - ] - } + "type": "null" } ] + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow", + "ask", + "deny" + ] + }, + { + "type": "null" + } + ] + } } - } - ] - }, - "options": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": {} + ] + } } - } - } - }, - "required": [ - "slug", - "name", - "config" - ] - } - }, - "upstreamBranch": { - "type": "string" - }, - "autoCommit": { - "type": "boolean" - }, - "attachments": { - "type": "object", - "properties": { - "path": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "files": { - "minItems": 1, - "maxItems": 5, - "type": "array", - "items": { - "type": "string" + ] + }, + "options": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} } } - }, - "required": [ - "path", - "files" - ] + } }, - "images": { - "type": "object", - "properties": { - "path": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "files": { - "minItems": 1, - "maxItems": 5, - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\.(?:png|jpg|webp|gif)$" - } - } - }, - "required": [ - "path", - "files" - ] + "required": [ + "slug", + "name", + "config" + ] + } + }, + "upstreamBranch": { + "type": "string" + }, + "autoCommit": { + "type": "boolean" + }, + "attachments": { + "type": "object", + "properties": { + "path": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, - "devcontainer": { - "type": "boolean" + "files": { + "minItems": 1, + "maxItems": 5, + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "prompt", - "mode", - "model" + "path", + "files" ] }, - { + "images": { "type": "object", "properties": { - "prompt": {}, - "initialMessageId": {}, - "initialPayload": {}, - "cloneFromKiloSessionId": { - "type": "string", - "minLength": 30, - "maxLength": 30, - "pattern": "^ses_.*" - }, - "cloneUpToMessageId": { - "type": "string", - "pattern": "^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$" - }, - "autoInitiate": { - "type": "boolean", - "const": true - }, - "operationKey": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "allowSubagentSessions": { - "type": "boolean" - }, - "callbackTarget": { - "type": "object", - "properties": { - "url": { - "type": "string", - "const": "session:parent" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Notify the spawning parent session when this child finishes. Omit for no callback." - }, - "githubRepo": { - "type": "string", - "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" - }, - "githubIntegrationId": { + "path": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, - "gitlabProject": { - "description": "GitLab project path (e.g., group/project or group/subgroup/project)", - "type": "string", - "pattern": "^[a-zA-Z0-9_.-]+(?:\\/[a-zA-Z0-9_.-]+)+$" - }, - "bitbucketRepo": { - "type": "object", - "properties": { - "fullName": { - "type": "string", - "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" - }, - "workspaceUuid": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "repositoryUuid": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - } - }, - "required": [ - "fullName", - "workspaceUuid", - "repositoryUuid" - ], - "additionalProperties": false - }, - "publicRepoUrl": { - "type": "string", - "format": "uri" - }, - "mode": { - "type": "string", - "minLength": 1, - "maxLength": 50, - "pattern": "^[a-z][a-z0-9-]*$" - }, - "model": { - "type": "string", - "minLength": 1 - }, - "variant": { - "type": "string", - "maxLength": 50, - "pattern": "^[a-zA-Z]+$" - }, - "profileId": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "envVars": { - "type": "object", - "propertyNames": { - "type": "string", - "maxLength": 256 - }, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "setupCommands": { - "maxItems": 20, + "files": { + "minItems": 1, + "maxItems": 5, "type": "array", "items": { "type": "string", - "maxLength": 500 - } - }, - "mcpServers": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "local" - }, - "command": { - "minItems": 1, - "type": "array", - "items": { - "type": "string" - } - }, - "environment": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "string", - "maxLength": 4096 - }, - { - "type": "object", - "properties": { - "encryptedData": { - "type": "string" - }, - "encryptedDEK": { - "type": "string" - }, - "algorithm": { - "type": "string", - "const": "rsa-aes-256-gcm" - }, - "version": { - "type": "number", - "const": 1 - } - }, - "required": [ - "encryptedData", - "encryptedDEK", - "algorithm", - "version" - ] - } - ] - } - }, - "enabled": { - "type": "boolean" - }, - "timeout": { - "type": "number", - "minimum": 1, - "maximum": 3600000 - } - }, - "required": [ - "type", - "command" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "remote" - }, - "url": { - "type": "string", - "format": "uri" - }, - "headers": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "string", - "maxLength": 4096 - }, - { - "type": "object", - "properties": { - "encryptedData": { - "type": "string" - }, - "encryptedDEK": { - "type": "string" - }, - "algorithm": { - "type": "string", - "const": "rsa-aes-256-gcm" - }, - "version": { - "type": "number", - "const": 1 - } - }, - "required": [ - "encryptedData", - "encryptedDEK", - "algorithm", - "version" - ] - } - ] - } - }, - "enabled": { - "type": "boolean" - }, - "timeout": { - "type": "number", - "minimum": 1, - "maximum": 3600000 - } - }, - "required": [ - "type", - "url" - ], - "additionalProperties": false - } - ] - } - }, - "runtimeSkills": { - "maxItems": 50, - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "maxLength": 100, - "pattern": "^[a-z0-9][a-z0-9-]*$" - }, - "rawMarkdown": { - "type": "string", - "minLength": 1, - "maxLength": 100000 - }, - "files": { - "type": "object", - "propertyNames": { - "type": "string", - "maxLength": 200 - }, - "additionalProperties": { - "type": "string", - "maxLength": 100000 - } - } - }, - "required": [ - "name", - "rawMarkdown" - ] - } - }, - "runtimeAgents": { - "maxItems": 20, - "type": "array", - "items": { - "type": "object", - "properties": { - "slug": { - "type": "string", - "minLength": 1, - "maxLength": 50, - "pattern": "^[a-z][a-z0-9-]*$" - }, - "name": { - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "config": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "maxLength": 50000 - }, - "description": { - "type": "string", - "maxLength": 2000 - }, - "mode": { - "type": "string", - "enum": [ - "subagent", - "primary", - "all" - ] - }, - "model": { - "anyOf": [ - { - "type": "string", - "maxLength": 200 - }, - { - "type": "null" - } - ] - }, - "variant": { - "type": "string", - "maxLength": 50 - }, - "temperature": { - "type": "number" - }, - "top_p": { - "type": "number" - }, - "steps": { - "type": "integer", - "exclusiveMinimum": 0, - "maximum": 9007199254740991 - }, - "hidden": { - "type": "boolean" - }, - "disable": { - "type": "boolean" - }, - "color": { - "type": "string", - "maxLength": 50 - }, - "permission": { - "anyOf": [ - { - "type": "string", - "enum": [ - "allow", - "ask", - "deny" - ] - }, - { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "anyOf": [ - { - "type": "string", - "enum": [ - "allow", - "ask", - "deny" - ] - }, - { - "type": "null" - } - ] - }, - { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "string", - "enum": [ - "allow", - "ask", - "deny" - ] - }, - { - "type": "null" - } - ] - } - } - ] - } - } - ] - }, - "options": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": {} - } - } - } - }, - "required": [ - "slug", - "name", - "config" - ] + "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\.(?:png|jpg|webp|gif)$" } - }, - "upstreamBranch": { - "type": "string" - }, - "autoCommit": { - "type": "boolean" - }, - "attachments": { - "type": "object", - "properties": { - "path": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "files": { - "minItems": 1, - "maxItems": 5, - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "path", - "files" - ] - }, - "images": { - "type": "object", - "properties": { - "path": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "files": { - "minItems": 1, - "maxItems": 5, - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\.(?:png|jpg|webp|gif)$" - } - } - }, - "required": [ - "path", - "files" - ] - }, - "devcontainer": { - "type": "boolean" } }, "required": [ - "cloneFromKiloSessionId", - "autoInitiate", - "operationKey", - "mode", - "model" + "path", + "files" ] + }, + "devcontainer": { + "type": "boolean" } + }, + "required": [ + "prompt", + "mode", + "model" ] }, { @@ -7686,12 +7302,7 @@ "maxLength": 254, "pattern": "^[A-Za-z0-9.-]+$" } - } - } - }, - { - "type": "object", - "properties": { + }, "sandboxAllocation": { "anyOf": [ { @@ -7818,103 +7429,608 @@ ] } ] - } - } - } - ] - }, - "tags": [ - "cloudagentnext", - "preparesession", - "egressmode", - "egressallowlist", - "sandboxallocation" - ], - "searchBlob": "cloudAgentNext.prepareSession Set up a new cloud agent session before it starts, including the repository, model, and any attached files or images. cloudagentnext preparesession egressmode egressallowlist sandboxallocation egressMode egressAllowlist sandboxAllocation" - }, - "cloudAgentNext.refreshTerminalTicket": { - "path": "cloudAgentNext.refreshTerminalTicket", - "kind": "mutation", - "summary": "Get a fresh connection ticket for an existing cloud agent terminal.", - "inputSchema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "cloudAgentSessionId": { - "type": "string" - }, - "ptyId": { - "type": "string", - "minLength": 1, - "maxLength": 128, - "pattern": "^[a-zA-Z0-9_-]+$" - } - }, - "required": [ - "cloudAgentSessionId", - "ptyId" - ] - }, - "tags": [ - "cloudagentnext", - "refreshterminalticket", - "cloudagentsessionid", - "ptyid" - ], - "searchBlob": "cloudAgentNext.refreshTerminalTicket Get a fresh connection ticket for an existing cloud agent terminal. cloudagentnext refreshterminalticket cloudagentsessionid ptyid cloudAgentSessionId ptyId" - }, - "cloudAgentNext.refreshWorktreeChanges": { - "path": "cloudAgentNext.refreshWorktreeChanges", - "kind": "mutation", - "summary": "Refresh the list of file changes in a cloud agent session's worktree.", - "inputSchema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "cloudAgentSessionId": { - "type": "string", - "pattern": "^workspace_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" - } - }, - "required": [ - "cloudAgentSessionId" - ], - "additionalProperties": false - }, - "tags": [ - "cloudagentnext", - "refreshworktreechanges", - "cloudagentsessionid" - ], - "searchBlob": "cloudAgentNext.refreshWorktreeChanges Refresh the list of file changes in a cloud agent session's worktree. cloudagentnext refreshworktreechanges cloudagentsessionid cloudAgentSessionId" - }, - "cloudAgentNext.rejectQuestion": { - "path": "cloudAgentNext.rejectQuestion", - "kind": "mutation", - "summary": "Decline a question the cloud agent asked so it stops waiting for an answer.", - "inputSchema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "sessionId": { - "type": "string" - }, - "questionId": { - "type": "string", - "minLength": 1 - } - }, - "required": [ - "sessionId", - "questionId" - ] - }, - "tags": [ - "cloudagentnext", - "rejectquestion", - "sessionid", - "questionid" - ], + }, + "prompt": {}, + "initialMessageId": {}, + "initialPayload": {}, + "cloneFromKiloSessionId": { + "type": "string", + "minLength": 30, + "maxLength": 30, + "format": "starts_with", + "pattern": "^ses_.*" + }, + "cloneUpToMessageId": { + "type": "string", + "pattern": "^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$" + }, + "autoInitiate": { + "type": "boolean", + "const": true + }, + "operationKey": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "allowSubagentSessions": { + "type": "boolean" + }, + "callbackTarget": { + "type": "object", + "properties": { + "url": { + "type": "string", + "const": "session:parent" + } + }, + "required": [ + "url" + ], + "additionalProperties": false, + "description": "Notify the spawning parent session when this child finishes. Omit for no callback." + }, + "githubRepo": { + "type": "string", + "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" + }, + "githubIntegrationId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "gitlabProject": { + "description": "GitLab project path (e.g., group/project or group/subgroup/project)", + "type": "string", + "pattern": "^[a-zA-Z0-9_.-]+(?:\\/[a-zA-Z0-9_.-]+)+$" + }, + "bitbucketRepo": { + "type": "object", + "properties": { + "fullName": { + "type": "string", + "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" + }, + "workspaceUuid": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "repositoryUuid": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + } + }, + "required": [ + "fullName", + "workspaceUuid", + "repositoryUuid" + ], + "additionalProperties": false + }, + "publicRepoUrl": { + "type": "string", + "format": "uri" + }, + "mode": { + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-z][a-z0-9-]*$" + }, + "model": { + "type": "string", + "minLength": 1 + }, + "variant": { + "type": "string", + "maxLength": 50, + "pattern": "^[a-zA-Z]+$" + }, + "profileId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "envVars": { + "type": "object", + "propertyNames": { + "type": "string", + "maxLength": 256 + }, + "additionalProperties": { + "type": "string", + "maxLength": 256 + } + }, + "setupCommands": { + "maxItems": 20, + "type": "array", + "items": { + "type": "string", + "maxLength": 500 + } + }, + "mcpServers": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "oneOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "local" + }, + "command": { + "minItems": 1, + "type": "array", + "items": { + "type": "string" + } + }, + "environment": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "string", + "maxLength": 4096 + }, + { + "type": "object", + "properties": { + "encryptedData": { + "type": "string" + }, + "encryptedDEK": { + "type": "string" + }, + "algorithm": { + "type": "string", + "const": "rsa-aes-256-gcm" + }, + "version": { + "type": "number", + "const": 1 + } + }, + "required": [ + "encryptedData", + "encryptedDEK", + "algorithm", + "version" + ] + } + ] + } + }, + "enabled": { + "type": "boolean" + }, + "timeout": { + "type": "number", + "minimum": 1, + "maximum": 3600000 + } + }, + "required": [ + "type", + "command" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "remote" + }, + "url": { + "type": "string", + "format": "uri" + }, + "headers": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "string", + "maxLength": 4096 + }, + { + "type": "object", + "properties": { + "encryptedData": { + "type": "string" + }, + "encryptedDEK": { + "type": "string" + }, + "algorithm": { + "type": "string", + "const": "rsa-aes-256-gcm" + }, + "version": { + "type": "number", + "const": 1 + } + }, + "required": [ + "encryptedData", + "encryptedDEK", + "algorithm", + "version" + ] + } + ] + } + }, + "enabled": { + "type": "boolean" + }, + "timeout": { + "type": "number", + "minimum": 1, + "maximum": 3600000 + } + }, + "required": [ + "type", + "url" + ], + "additionalProperties": false + } + ] + } + }, + "runtimeSkills": { + "maxItems": 50, + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "maxLength": 100, + "pattern": "^[a-z0-9][a-z0-9-]*$" + }, + "rawMarkdown": { + "type": "string", + "minLength": 1, + "maxLength": 100000 + }, + "files": { + "type": "object", + "propertyNames": { + "type": "string", + "maxLength": 200 + }, + "additionalProperties": { + "type": "string", + "maxLength": 100000 + } + } + }, + "required": [ + "name", + "rawMarkdown" + ] + } + }, + "runtimeAgents": { + "maxItems": 20, + "type": "array", + "items": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-z][a-z0-9-]*$" + }, + "name": { + "type": "string", + "minLength": 1, + "maxLength": 100 + }, + "config": { + "type": "object", + "properties": { + "prompt": { + "type": "string", + "maxLength": 50000 + }, + "description": { + "type": "string", + "maxLength": 2000 + }, + "mode": { + "type": "string", + "enum": [ + "subagent", + "primary", + "all" + ] + }, + "model": { + "anyOf": [ + { + "type": "string", + "maxLength": 200 + }, + { + "type": "null" + } + ] + }, + "variant": { + "type": "string", + "maxLength": 50 + }, + "temperature": { + "type": "number" + }, + "top_p": { + "type": "number" + }, + "steps": { + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "hidden": { + "type": "boolean" + }, + "disable": { + "type": "boolean" + }, + "color": { + "type": "string", + "maxLength": 50 + }, + "permission": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow", + "ask", + "deny" + ] + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow", + "ask", + "deny" + ] + }, + { + "type": "null" + } + ] + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow", + "ask", + "deny" + ] + }, + { + "type": "null" + } + ] + } + } + ] + } + } + ] + }, + "options": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + } + } + }, + "required": [ + "slug", + "name", + "config" + ] + } + }, + "upstreamBranch": { + "type": "string" + }, + "autoCommit": { + "type": "boolean" + }, + "attachments": { + "type": "object", + "properties": { + "path": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "files": { + "minItems": 1, + "maxItems": 5, + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "path", + "files" + ] + }, + "images": { + "type": "object", + "properties": { + "path": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "files": { + "minItems": 1, + "maxItems": 5, + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\.(?:png|jpg|webp|gif)$" + } + } + }, + "required": [ + "path", + "files" + ] + }, + "devcontainer": { + "type": "boolean" + } + }, + "required": [ + "cloneFromKiloSessionId", + "autoInitiate", + "operationKey", + "mode", + "model" + ] + } + ] + }, + "tags": [ + "cloudagentnext", + "preparesession" + ], + "searchBlob": "cloudAgentNext.prepareSession Set up a new cloud agent session before it starts, including the repository, model, and any attached files or images. cloudagentnext preparesession" + }, + "cloudAgentNext.refreshTerminalTicket": { + "path": "cloudAgentNext.refreshTerminalTicket", + "kind": "mutation", + "summary": "Get a fresh connection ticket for an existing cloud agent terminal.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "cloudAgentSessionId": { + "type": "string" + }, + "ptyId": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "required": [ + "cloudAgentSessionId", + "ptyId" + ] + }, + "tags": [ + "cloudagentnext", + "refreshterminalticket", + "cloudagentsessionid", + "ptyid" + ], + "searchBlob": "cloudAgentNext.refreshTerminalTicket Get a fresh connection ticket for an existing cloud agent terminal. cloudagentnext refreshterminalticket cloudagentsessionid ptyid cloudAgentSessionId ptyId" + }, + "cloudAgentNext.refreshWorktreeChanges": { + "path": "cloudAgentNext.refreshWorktreeChanges", + "kind": "mutation", + "summary": "Refresh the list of file changes in a cloud agent session's worktree.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "cloudAgentSessionId": { + "type": "string", + "pattern": "^workspace_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" + } + }, + "required": [ + "cloudAgentSessionId" + ], + "additionalProperties": false + }, + "tags": [ + "cloudagentnext", + "refreshworktreechanges", + "cloudagentsessionid" + ], + "searchBlob": "cloudAgentNext.refreshWorktreeChanges Refresh the list of file changes in a cloud agent session's worktree. cloudagentnext refreshworktreechanges cloudagentsessionid cloudAgentSessionId" + }, + "cloudAgentNext.rejectQuestion": { + "path": "cloudAgentNext.rejectQuestion", + "kind": "mutation", + "summary": "Decline a question the cloud agent asked so it stops waiting for an answer.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "sessionId": { + "type": "string" + }, + "questionId": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "sessionId", + "questionId" + ] + }, + "tags": [ + "cloudagentnext", + "rejectquestion", + "sessionid", + "questionid" + ], "searchBlob": "cloudAgentNext.rejectQuestion Decline a question the cloud agent asked so it stops waiting for an answer. cloudagentnext rejectquestion sessionid questionid sessionId questionId" }, "cloudAgentNext.releasePendingUploads": { @@ -12324,13 +12440,9 @@ "type": "object", "properties": { "cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "limit": { @@ -12392,13 +12504,9 @@ "type": "object", "properties": { "cursor": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "limit": { @@ -13794,43 +13902,27 @@ "type": "object", "properties": { "telegramBotToken": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "discordBotToken": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "slackBotToken": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "slackAppToken": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] } } @@ -13868,13 +13960,9 @@ "type": "boolean" }, "vectorMemoryModel": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "dreamingEnabled": { @@ -14944,13 +15032,9 @@ "type": "boolean" }, "vectorMemoryModel": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "dreamingEnabled": { @@ -15477,23 +15561,15 @@ "type": "string" }, "modelId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "sessionId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "reason": { @@ -16413,12 +16489,12 @@ "before": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "after": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "action": { "type": "array", @@ -16471,7 +16547,7 @@ "actorEmail": { "type": "string", "format": "email", - "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" + "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "fuzzySearch": { "type": "string" @@ -16479,12 +16555,12 @@ "startTime": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "endTime": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" } }, "required": [ @@ -17323,6 +17399,7 @@ "path": { "type": "string", "maxLength": 2048, + "format": "starts_with", "pattern": "^\\/.*" } }, @@ -17413,6 +17490,7 @@ "type": "string", "minLength": 30, "maxLength": 30, + "format": "starts_with", "pattern": "^ses_.*" }, "operationKey": { @@ -17729,6 +17807,7 @@ "properties": { "cloudAgentSessionId": { "type": "string", + "format": "starts_with", "allOf": [ { "pattern": "^(agent|workspace)_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" @@ -18213,1091 +18292,726 @@ ] }, { - "allOf": [ + "anyOf": [ { - "anyOf": [ - { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "maxLength": 100000 - }, - "initialMessageId": { - "type": "string", - "pattern": "^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$" - }, - "initialPayload": { - "oneOf": [ + "type": "object", + "properties": { + "egressMode": { + "description": "Defaults to unrestricted when omitted. The allowlist mode permits the Kilo/Git baseline plus optional egressAllowlist domains.", + "type": "string", + "enum": [ + "unrestricted", + "allowlist" + ] + }, + "egressAllowlist": { + "description": "Additional exact DNS hostnames; requires explicit allowlist mode.", + "maxItems": 100, + "type": "array", + "items": { + "type": "string", + "maxLength": 254, + "pattern": "^[A-Za-z0-9.-]+$" + } + }, + "organizationId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "sandboxAllocation": { + "anyOf": [ + { + "anyOf": [ { "type": "object", "properties": { - "type": { - "type": "string", - "const": "prompt" - }, - "prompt": { - "type": "string", - "minLength": 1 - }, - "mode": { - "type": "string", - "minLength": 1, - "maxLength": 50, - "pattern": "^[a-z][a-z0-9-]*$" + "provider": { + "type": "object", + "properties": { + "id": { + "type": "string", + "const": "cloudflare" + }, + "account": { + "type": "string", + "const": "kilo" + } + }, + "required": [ + "id", + "account" + ], + "additionalProperties": false }, - "model": { + "instanceType": { "type": "string", - "minLength": 1 + "enum": [ + "single", + "shared" + ] + } + }, + "required": [ + "provider", + "instanceType" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "provider": { + "type": "object", + "properties": { + "id": { + "type": "string", + "const": "vercel" + }, + "account": { + "type": "string", + "enum": [ + "kilo", + "byoc" + ] + } + }, + "required": [ + "id", + "account" + ], + "additionalProperties": false }, - "variant": { + "instanceType": { "type": "string", - "maxLength": 50, - "pattern": "^[a-zA-Z]+$" + "enum": [ + "small", + "large" + ] } }, "required": [ - "type", - "prompt", - "mode", - "model" - ] + "provider", + "instanceType" + ], + "additionalProperties": false }, { "type": "object", "properties": { - "type": { - "type": "string", - "const": "command" + "provider": { + "type": "object", + "properties": { + "id": { + "type": "string", + "const": "cloudflare-containers" + }, + "account": { + "type": "string", + "const": "kilo" + } + }, + "required": [ + "id", + "account" + ], + "additionalProperties": false }, - "command": { + "instanceType": { "type": "string", - "minLength": 1 - }, - "arguments": { - "default": "", - "type": "string" + "enum": [ + "standard-3", + "standard-4" + ] } }, "required": [ - "type", - "command" - ] + "provider", + "instanceType" + ], + "additionalProperties": false } ] }, - "autoInitiate": { - "type": "boolean" - }, - "operationKey": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "kiloSessionId": { - "type": "string", - "pattern": "^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$" - }, - "cloneFromKiloSessionId": {}, - "cloneUpToMessageId": {}, - "allowSubagentSessions": { - "type": "boolean" - }, - "callbackTarget": { - "type": "object", - "properties": { - "url": { - "type": "string", - "const": "session:parent" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Notify the spawning parent session when this child finishes. Omit for no callback." - }, - "githubRepo": { - "type": "string", - "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" - }, - "githubIntegrationId": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "gitlabProject": { - "description": "GitLab project path (e.g., group/project or group/subgroup/project)", + { "type": "string", - "pattern": "^[a-zA-Z0-9_.-]+(?:\\/[a-zA-Z0-9_.-]+)+$" - }, - "bitbucketRepo": { + "enum": [ + "cloudflare-single", + "cloudflare-shared", + "cloudflare-containers-standard-3", + "cloudflare-containers-standard-4", + "vercel-small", + "vercel-large" + ] + } + ] + }, + "prompt": { + "type": "string", + "minLength": 1, + "maxLength": 100000 + }, + "initialMessageId": { + "type": "string", + "pattern": "^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$" + }, + "initialPayload": { + "oneOf": [ + { "type": "object", "properties": { - "fullName": { + "type": { "type": "string", - "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" + "const": "prompt" }, - "workspaceUuid": { + "prompt": { "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + "minLength": 1 }, - "repositoryUuid": { + "mode": { "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - } - }, - "required": [ - "fullName", - "workspaceUuid", - "repositoryUuid" - ], - "additionalProperties": false - }, - "publicRepoUrl": { - "type": "string", - "format": "uri" - }, - "mode": { - "type": "string", - "minLength": 1, - "maxLength": 50, - "pattern": "^[a-z][a-z0-9-]*$" - }, - "model": { - "type": "string", - "minLength": 1 - }, - "variant": { - "type": "string", - "maxLength": 50, - "pattern": "^[a-zA-Z]+$" - }, - "profileId": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "envVars": { - "type": "object", - "propertyNames": { - "type": "string", - "maxLength": 256 - }, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "setupCommands": { - "maxItems": 20, - "type": "array", - "items": { - "type": "string", - "maxLength": 500 - } - }, - "mcpServers": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "local" - }, - "command": { - "minItems": 1, - "type": "array", - "items": { - "type": "string" - } - }, - "environment": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "string", - "maxLength": 4096 - }, - { - "type": "object", - "properties": { - "encryptedData": { - "type": "string" - }, - "encryptedDEK": { - "type": "string" - }, - "algorithm": { - "type": "string", - "const": "rsa-aes-256-gcm" - }, - "version": { - "type": "number", - "const": 1 - } - }, - "required": [ - "encryptedData", - "encryptedDEK", - "algorithm", - "version" - ] - } - ] - } - }, - "enabled": { - "type": "boolean" - }, - "timeout": { - "type": "number", - "minimum": 1, - "maximum": 3600000 - } - }, - "required": [ - "type", - "command" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "remote" - }, - "url": { - "type": "string", - "format": "uri" - }, - "headers": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "string", - "maxLength": 4096 - }, - { - "type": "object", - "properties": { - "encryptedData": { - "type": "string" - }, - "encryptedDEK": { - "type": "string" - }, - "algorithm": { - "type": "string", - "const": "rsa-aes-256-gcm" - }, - "version": { - "type": "number", - "const": 1 - } - }, - "required": [ - "encryptedData", - "encryptedDEK", - "algorithm", - "version" - ] - } - ] - } - }, - "enabled": { - "type": "boolean" - }, - "timeout": { - "type": "number", - "minimum": 1, - "maximum": 3600000 - } - }, - "required": [ - "type", - "url" - ], - "additionalProperties": false - } - ] - } - }, - "runtimeSkills": { - "maxItems": 50, - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "maxLength": 100, - "pattern": "^[a-z0-9][a-z0-9-]*$" - }, - "rawMarkdown": { - "type": "string", - "minLength": 1, - "maxLength": 100000 - }, - "files": { - "type": "object", - "propertyNames": { - "type": "string", - "maxLength": 200 - }, - "additionalProperties": { - "type": "string", - "maxLength": 100000 - } - } - }, - "required": [ - "name", - "rawMarkdown" - ] - } - }, - "runtimeAgents": { - "maxItems": 20, - "type": "array", - "items": { - "type": "object", - "properties": { - "slug": { - "type": "string", - "minLength": 1, - "maxLength": 50, - "pattern": "^[a-z][a-z0-9-]*$" - }, - "name": { - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "config": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "maxLength": 50000 - }, - "description": { - "type": "string", - "maxLength": 2000 - }, - "mode": { - "type": "string", - "enum": [ - "subagent", - "primary", - "all" - ] - }, - "model": { - "anyOf": [ - { - "type": "string", - "maxLength": 200 - }, - { - "type": "null" - } - ] - }, - "variant": { - "type": "string", - "maxLength": 50 - }, - "temperature": { - "type": "number" - }, - "top_p": { - "type": "number" - }, - "steps": { - "type": "integer", - "exclusiveMinimum": 0, - "maximum": 9007199254740991 - }, - "hidden": { - "type": "boolean" - }, - "disable": { - "type": "boolean" - }, - "color": { - "type": "string", - "maxLength": 50 - }, - "permission": { - "anyOf": [ - { - "type": "string", - "enum": [ - "allow", - "ask", - "deny" - ] - }, - { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "anyOf": [ - { - "type": "string", - "enum": [ - "allow", - "ask", - "deny" - ] - }, - { - "type": "null" - } - ] - }, - { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "string", - "enum": [ - "allow", - "ask", - "deny" - ] - }, - { - "type": "null" - } - ] - } - } - ] - } - } - ] - }, - "options": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": {} - } - } - } + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-z][a-z0-9-]*$" }, - "required": [ - "slug", - "name", - "config" - ] - } - }, - "upstreamBranch": { - "type": "string" - }, - "autoCommit": { - "type": "boolean" - }, - "attachments": { - "type": "object", - "properties": { - "path": { + "model": { "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + "minLength": 1 }, - "files": { - "minItems": 1, - "maxItems": 5, - "type": "array", - "items": { - "type": "string" - } + "variant": { + "type": "string", + "maxLength": 50, + "pattern": "^[a-zA-Z]+$" } }, "required": [ - "path", - "files" + "type", + "prompt", + "mode", + "model" ] }, - "images": { + { "type": "object", "properties": { - "path": { + "type": { "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + "const": "command" }, - "files": { - "minItems": 1, - "maxItems": 5, - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\.(?:png|jpg|webp|gif)$" - } + "command": { + "type": "string", + "minLength": 1 + }, + "arguments": { + "default": "", + "type": "string" } }, "required": [ - "path", - "files" + "type", + "command" ] - }, - "devcontainer": { - "type": "boolean" } - }, - "required": [ - "prompt", - "mode", - "model" ] }, - { + "autoInitiate": { + "type": "boolean" + }, + "operationKey": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "kiloSessionId": { + "type": "string", + "pattern": "^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$" + }, + "cloneFromKiloSessionId": {}, + "cloneUpToMessageId": {}, + "allowSubagentSessions": { + "type": "boolean" + }, + "callbackTarget": { "type": "object", "properties": { - "prompt": {}, - "initialMessageId": {}, - "initialPayload": {}, - "cloneFromKiloSessionId": { - "type": "string", - "minLength": 30, - "maxLength": 30, - "pattern": "^ses_.*" - }, - "cloneUpToMessageId": { - "type": "string", - "pattern": "^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$" - }, - "autoInitiate": { - "type": "boolean", - "const": true - }, - "operationKey": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "allowSubagentSessions": { - "type": "boolean" - }, - "callbackTarget": { - "type": "object", - "properties": { - "url": { - "type": "string", - "const": "session:parent" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Notify the spawning parent session when this child finishes. Omit for no callback." - }, - "githubRepo": { - "type": "string", - "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" - }, - "githubIntegrationId": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "gitlabProject": { - "description": "GitLab project path (e.g., group/project or group/subgroup/project)", - "type": "string", - "pattern": "^[a-zA-Z0-9_.-]+(?:\\/[a-zA-Z0-9_.-]+)+$" - }, - "bitbucketRepo": { - "type": "object", - "properties": { - "fullName": { - "type": "string", - "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" - }, - "workspaceUuid": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "repositoryUuid": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - } - }, - "required": [ - "fullName", - "workspaceUuid", - "repositoryUuid" - ], - "additionalProperties": false - }, - "publicRepoUrl": { - "type": "string", - "format": "uri" - }, - "mode": { - "type": "string", - "minLength": 1, - "maxLength": 50, - "pattern": "^[a-z][a-z0-9-]*$" - }, - "model": { - "type": "string", - "minLength": 1 - }, - "variant": { - "type": "string", - "maxLength": 50, - "pattern": "^[a-zA-Z]+$" - }, - "profileId": { + "url": { "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "envVars": { - "type": "object", - "propertyNames": { - "type": "string", - "maxLength": 256 - }, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "setupCommands": { - "maxItems": 20, - "type": "array", - "items": { - "type": "string", - "maxLength": 500 - } - }, - "mcpServers": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "local" - }, - "command": { - "minItems": 1, - "type": "array", - "items": { - "type": "string" - } - }, - "environment": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "string", - "maxLength": 4096 - }, - { - "type": "object", - "properties": { - "encryptedData": { - "type": "string" - }, - "encryptedDEK": { - "type": "string" - }, - "algorithm": { - "type": "string", - "const": "rsa-aes-256-gcm" - }, - "version": { - "type": "number", - "const": 1 - } - }, - "required": [ - "encryptedData", - "encryptedDEK", - "algorithm", - "version" - ] - } - ] - } - }, - "enabled": { - "type": "boolean" - }, - "timeout": { - "type": "number", - "minimum": 1, - "maximum": 3600000 - } - }, - "required": [ - "type", - "command" - ], - "additionalProperties": false + "const": "session:parent" + } + }, + "required": [ + "url" + ], + "additionalProperties": false, + "description": "Notify the spawning parent session when this child finishes. Omit for no callback." + }, + "githubRepo": { + "type": "string", + "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" + }, + "githubIntegrationId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "gitlabProject": { + "description": "GitLab project path (e.g., group/project or group/subgroup/project)", + "type": "string", + "pattern": "^[a-zA-Z0-9_.-]+(?:\\/[a-zA-Z0-9_.-]+)+$" + }, + "bitbucketRepo": { + "type": "object", + "properties": { + "fullName": { + "type": "string", + "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" + }, + "workspaceUuid": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "repositoryUuid": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + } + }, + "required": [ + "fullName", + "workspaceUuid", + "repositoryUuid" + ], + "additionalProperties": false + }, + "publicRepoUrl": { + "type": "string", + "format": "uri" + }, + "mode": { + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-z][a-z0-9-]*$" + }, + "model": { + "type": "string", + "minLength": 1 + }, + "variant": { + "type": "string", + "maxLength": 50, + "pattern": "^[a-zA-Z]+$" + }, + "profileId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "envVars": { + "type": "object", + "propertyNames": { + "type": "string", + "maxLength": 256 + }, + "additionalProperties": { + "type": "string", + "maxLength": 256 + } + }, + "setupCommands": { + "maxItems": 20, + "type": "array", + "items": { + "type": "string", + "maxLength": 500 + } + }, + "mcpServers": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "oneOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "local" }, - { + "command": { + "minItems": 1, + "type": "array", + "items": { + "type": "string" + } + }, + "environment": { "type": "object", - "properties": { - "type": { - "type": "string", - "const": "remote" - }, - "url": { - "type": "string", - "format": "uri" - }, - "headers": { - "type": "object", - "propertyNames": { - "type": "string" + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "string", + "maxLength": 4096 }, - "additionalProperties": { - "anyOf": [ - { + { + "type": "object", + "properties": { + "encryptedData": { + "type": "string" + }, + "encryptedDEK": { + "type": "string" + }, + "algorithm": { "type": "string", - "maxLength": 4096 + "const": "rsa-aes-256-gcm" }, - { - "type": "object", - "properties": { - "encryptedData": { - "type": "string" - }, - "encryptedDEK": { - "type": "string" - }, - "algorithm": { - "type": "string", - "const": "rsa-aes-256-gcm" - }, - "version": { - "type": "number", - "const": 1 - } - }, - "required": [ - "encryptedData", - "encryptedDEK", - "algorithm", - "version" - ] + "version": { + "type": "number", + "const": 1 } + }, + "required": [ + "encryptedData", + "encryptedDEK", + "algorithm", + "version" ] } - }, - "enabled": { - "type": "boolean" - }, - "timeout": { - "type": "number", - "minimum": 1, - "maximum": 3600000 - } - }, - "required": [ - "type", - "url" - ], - "additionalProperties": false + ] + } + }, + "enabled": { + "type": "boolean" + }, + "timeout": { + "type": "number", + "minimum": 1, + "maximum": 3600000 } - ] - } - }, - "runtimeSkills": { - "maxItems": 50, - "type": "array", - "items": { + }, + "required": [ + "type", + "command" + ], + "additionalProperties": false + }, + { "type": "object", "properties": { - "name": { + "type": { "type": "string", - "minLength": 1, - "maxLength": 100, - "pattern": "^[a-z0-9][a-z0-9-]*$" + "const": "remote" }, - "rawMarkdown": { + "url": { "type": "string", - "minLength": 1, - "maxLength": 100000 + "format": "uri" }, - "files": { + "headers": { "type": "object", "propertyNames": { - "type": "string", - "maxLength": 200 + "type": "string" }, "additionalProperties": { - "type": "string", - "maxLength": 100000 + "anyOf": [ + { + "type": "string", + "maxLength": 4096 + }, + { + "type": "object", + "properties": { + "encryptedData": { + "type": "string" + }, + "encryptedDEK": { + "type": "string" + }, + "algorithm": { + "type": "string", + "const": "rsa-aes-256-gcm" + }, + "version": { + "type": "number", + "const": 1 + } + }, + "required": [ + "encryptedData", + "encryptedDEK", + "algorithm", + "version" + ] + } + ] } + }, + "enabled": { + "type": "boolean" + }, + "timeout": { + "type": "number", + "minimum": 1, + "maximum": 3600000 } }, "required": [ - "name", - "rawMarkdown" - ] + "type", + "url" + ], + "additionalProperties": false + } + ] + } + }, + "runtimeSkills": { + "maxItems": 50, + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "maxLength": 100, + "pattern": "^[a-z0-9][a-z0-9-]*$" + }, + "rawMarkdown": { + "type": "string", + "minLength": 1, + "maxLength": 100000 + }, + "files": { + "type": "object", + "propertyNames": { + "type": "string", + "maxLength": 200 + }, + "additionalProperties": { + "type": "string", + "maxLength": 100000 + } } }, - "runtimeAgents": { - "maxItems": 20, - "type": "array", - "items": { + "required": [ + "name", + "rawMarkdown" + ] + } + }, + "runtimeAgents": { + "maxItems": 20, + "type": "array", + "items": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-z][a-z0-9-]*$" + }, + "name": { + "type": "string", + "minLength": 1, + "maxLength": 100 + }, + "config": { "type": "object", "properties": { - "slug": { + "prompt": { "type": "string", - "minLength": 1, - "maxLength": 50, - "pattern": "^[a-z][a-z0-9-]*$" + "maxLength": 50000 + }, + "description": { + "type": "string", + "maxLength": 2000 }, - "name": { + "mode": { "type": "string", - "minLength": 1, - "maxLength": 100 + "enum": [ + "subagent", + "primary", + "all" + ] }, - "config": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "maxLength": 50000 - }, - "description": { + "model": { + "anyOf": [ + { "type": "string", - "maxLength": 2000 + "maxLength": 200 }, - "mode": { + { + "type": "null" + } + ] + }, + "variant": { + "type": "string", + "maxLength": 50 + }, + "temperature": { + "type": "number" + }, + "top_p": { + "type": "number" + }, + "steps": { + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "hidden": { + "type": "boolean" + }, + "disable": { + "type": "boolean" + }, + "color": { + "type": "string", + "maxLength": 50 + }, + "permission": { + "anyOf": [ + { "type": "string", "enum": [ - "subagent", - "primary", - "all" - ] - }, - "model": { - "anyOf": [ - { - "type": "string", - "maxLength": 200 - }, - { - "type": "null" - } + "allow", + "ask", + "deny" ] }, - "variant": { - "type": "string", - "maxLength": 50 - }, - "temperature": { - "type": "number" - }, - "top_p": { - "type": "number" - }, - "steps": { - "type": "integer", - "exclusiveMinimum": 0, - "maximum": 9007199254740991 - }, - "hidden": { - "type": "boolean" - }, - "disable": { - "type": "boolean" - }, - "color": { - "type": "string", - "maxLength": 50 - }, - "permission": { - "anyOf": [ - { - "type": "string", - "enum": [ - "allow", - "ask", - "deny" - ] - }, - { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { "anyOf": [ { - "anyOf": [ - { - "type": "string", - "enum": [ - "allow", - "ask", - "deny" - ] - }, - { - "type": "null" - } + "type": "string", + "enum": [ + "allow", + "ask", + "deny" ] }, { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "string", - "enum": [ - "allow", - "ask", - "deny" - ] - }, - { - "type": "null" - } - ] - } + "type": "null" } ] + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow", + "ask", + "deny" + ] + }, + { + "type": "null" + } + ] + } } - } - ] - }, - "options": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": {} + ] + } } - } + ] + }, + "options": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} } - }, - "required": [ - "slug", - "name", - "config" - ] + } } }, - "upstreamBranch": { - "type": "string" - }, - "autoCommit": { - "type": "boolean" - }, - "attachments": { - "type": "object", - "properties": { - "path": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "files": { - "minItems": 1, - "maxItems": 5, - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "path", - "files" - ] + "required": [ + "slug", + "name", + "config" + ] + } + }, + "upstreamBranch": { + "type": "string" + }, + "autoCommit": { + "type": "boolean" + }, + "attachments": { + "type": "object", + "properties": { + "path": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, - "images": { - "type": "object", - "properties": { - "path": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "files": { - "minItems": 1, - "maxItems": 5, - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\.(?:png|jpg|webp|gif)$" - } - } - }, - "required": [ - "path", - "files" - ] + "files": { + "minItems": 1, + "maxItems": 5, + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "path", + "files" + ] + }, + "images": { + "type": "object", + "properties": { + "path": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, - "devcontainer": { - "type": "boolean" + "files": { + "minItems": 1, + "maxItems": 5, + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\.(?:png|jpg|webp|gif)$" + } } }, "required": [ - "cloneFromKiloSessionId", - "autoInitiate", - "operationKey", - "mode", - "model" + "path", + "files" ] + }, + "devcontainer": { + "type": "boolean" } + }, + "required": [ + "organizationId", + "prompt", + "mode", + "model" ] }, { @@ -19316,16 +19030,11 @@ "maxItems": 100, "type": "array", "items": { - "type": "string", - "maxLength": 254, - "pattern": "^[A-Za-z0-9.-]+$" - } - } - } - }, - { - "type": "object", - "properties": { + "type": "string", + "maxLength": 254, + "pattern": "^[A-Za-z0-9.-]+$" + } + }, "organizationId": { "type": "string", "format": "uuid", @@ -19457,10 +19166,516 @@ ] } ] + }, + "prompt": {}, + "initialMessageId": {}, + "initialPayload": {}, + "cloneFromKiloSessionId": { + "type": "string", + "minLength": 30, + "maxLength": 30, + "format": "starts_with", + "pattern": "^ses_.*" + }, + "cloneUpToMessageId": { + "type": "string", + "pattern": "^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$" + }, + "autoInitiate": { + "type": "boolean", + "const": true + }, + "operationKey": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "allowSubagentSessions": { + "type": "boolean" + }, + "callbackTarget": { + "type": "object", + "properties": { + "url": { + "type": "string", + "const": "session:parent" + } + }, + "required": [ + "url" + ], + "additionalProperties": false, + "description": "Notify the spawning parent session when this child finishes. Omit for no callback." + }, + "githubRepo": { + "type": "string", + "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" + }, + "githubIntegrationId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "gitlabProject": { + "description": "GitLab project path (e.g., group/project or group/subgroup/project)", + "type": "string", + "pattern": "^[a-zA-Z0-9_.-]+(?:\\/[a-zA-Z0-9_.-]+)+$" + }, + "bitbucketRepo": { + "type": "object", + "properties": { + "fullName": { + "type": "string", + "pattern": "^[a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+$" + }, + "workspaceUuid": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "repositoryUuid": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + } + }, + "required": [ + "fullName", + "workspaceUuid", + "repositoryUuid" + ], + "additionalProperties": false + }, + "publicRepoUrl": { + "type": "string", + "format": "uri" + }, + "mode": { + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-z][a-z0-9-]*$" + }, + "model": { + "type": "string", + "minLength": 1 + }, + "variant": { + "type": "string", + "maxLength": 50, + "pattern": "^[a-zA-Z]+$" + }, + "profileId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "envVars": { + "type": "object", + "propertyNames": { + "type": "string", + "maxLength": 256 + }, + "additionalProperties": { + "type": "string", + "maxLength": 256 + } + }, + "setupCommands": { + "maxItems": 20, + "type": "array", + "items": { + "type": "string", + "maxLength": 500 + } + }, + "mcpServers": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "oneOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "local" + }, + "command": { + "minItems": 1, + "type": "array", + "items": { + "type": "string" + } + }, + "environment": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "string", + "maxLength": 4096 + }, + { + "type": "object", + "properties": { + "encryptedData": { + "type": "string" + }, + "encryptedDEK": { + "type": "string" + }, + "algorithm": { + "type": "string", + "const": "rsa-aes-256-gcm" + }, + "version": { + "type": "number", + "const": 1 + } + }, + "required": [ + "encryptedData", + "encryptedDEK", + "algorithm", + "version" + ] + } + ] + } + }, + "enabled": { + "type": "boolean" + }, + "timeout": { + "type": "number", + "minimum": 1, + "maximum": 3600000 + } + }, + "required": [ + "type", + "command" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "remote" + }, + "url": { + "type": "string", + "format": "uri" + }, + "headers": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "string", + "maxLength": 4096 + }, + { + "type": "object", + "properties": { + "encryptedData": { + "type": "string" + }, + "encryptedDEK": { + "type": "string" + }, + "algorithm": { + "type": "string", + "const": "rsa-aes-256-gcm" + }, + "version": { + "type": "number", + "const": 1 + } + }, + "required": [ + "encryptedData", + "encryptedDEK", + "algorithm", + "version" + ] + } + ] + } + }, + "enabled": { + "type": "boolean" + }, + "timeout": { + "type": "number", + "minimum": 1, + "maximum": 3600000 + } + }, + "required": [ + "type", + "url" + ], + "additionalProperties": false + } + ] + } + }, + "runtimeSkills": { + "maxItems": 50, + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "maxLength": 100, + "pattern": "^[a-z0-9][a-z0-9-]*$" + }, + "rawMarkdown": { + "type": "string", + "minLength": 1, + "maxLength": 100000 + }, + "files": { + "type": "object", + "propertyNames": { + "type": "string", + "maxLength": 200 + }, + "additionalProperties": { + "type": "string", + "maxLength": 100000 + } + } + }, + "required": [ + "name", + "rawMarkdown" + ] + } + }, + "runtimeAgents": { + "maxItems": 20, + "type": "array", + "items": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-z][a-z0-9-]*$" + }, + "name": { + "type": "string", + "minLength": 1, + "maxLength": 100 + }, + "config": { + "type": "object", + "properties": { + "prompt": { + "type": "string", + "maxLength": 50000 + }, + "description": { + "type": "string", + "maxLength": 2000 + }, + "mode": { + "type": "string", + "enum": [ + "subagent", + "primary", + "all" + ] + }, + "model": { + "anyOf": [ + { + "type": "string", + "maxLength": 200 + }, + { + "type": "null" + } + ] + }, + "variant": { + "type": "string", + "maxLength": 50 + }, + "temperature": { + "type": "number" + }, + "top_p": { + "type": "number" + }, + "steps": { + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "hidden": { + "type": "boolean" + }, + "disable": { + "type": "boolean" + }, + "color": { + "type": "string", + "maxLength": 50 + }, + "permission": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow", + "ask", + "deny" + ] + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow", + "ask", + "deny" + ] + }, + { + "type": "null" + } + ] + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow", + "ask", + "deny" + ] + }, + { + "type": "null" + } + ] + } + } + ] + } + } + ] + }, + "options": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + } + } + }, + "required": [ + "slug", + "name", + "config" + ] + } + }, + "upstreamBranch": { + "type": "string" + }, + "autoCommit": { + "type": "boolean" + }, + "attachments": { + "type": "object", + "properties": { + "path": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "files": { + "minItems": 1, + "maxItems": 5, + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "path", + "files" + ] + }, + "images": { + "type": "object", + "properties": { + "path": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "files": { + "minItems": 1, + "maxItems": 5, + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\.(?:png|jpg|webp|gif)$" + } + } + }, + "required": [ + "path", + "files" + ] + }, + "devcontainer": { + "type": "boolean" } }, "required": [ - "organizationId" + "organizationId", + "cloneFromKiloSessionId", + "autoInitiate", + "operationKey", + "mode", + "model" ] } ] @@ -19471,12 +19686,9 @@ "organizations", "cloudagentnext", "preparesession", - "organizationid", - "egressmode", - "egressallowlist", - "sandboxallocation" + "organizationid" ], - "searchBlob": "organizations.cloudAgentNext.prepareSession Prepare a new cloud agent coding session for an organization before it starts. Use to set up a session from a repository. organizations cloudagentnext preparesession organizationid egressmode egressallowlist sandboxallocation organizationId egressMode egressAllowlist sandboxAllocation" + "searchBlob": "organizations.cloudAgentNext.prepareSession Prepare a new cloud agent coding session for an organization before it starts. Use to set up a session from a repository. organizations cloudagentnext preparesession organizationid organizationId" }, "organizations.cloudAgentNext.refreshTerminalTicket": { "path": "organizations.cloudAgentNext.refreshTerminalTicket", @@ -23436,43 +23648,27 @@ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "telegramBotToken": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "discordBotToken": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "slackBotToken": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "slackAppToken": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] } }, @@ -23520,13 +23716,9 @@ "type": "boolean" }, "vectorMemoryModel": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "dreamingEnabled": { @@ -24752,13 +24944,9 @@ "type": "boolean" }, "vectorMemoryModel": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] }, "dreamingEnabled": { @@ -24931,7 +25119,7 @@ "email": { "type": "string", "format": "email", - "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" + "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "role": { "type": "string", @@ -25218,231 +25406,10 @@ "fileRegex" ] } - ] - } - ] - } - } - } - }, - "route_model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "organizationId", - "name", - "slug" - ] - }, - "tags": [ - "organizations", - "modes", - "create", - "organizationid", - "name", - "slug", - "config", - "route_model" - ], - "searchBlob": "organizations.modes.create Create a custom mode for an organization with a name, slug, and configuration. Use to add an organization mode. organizations modes create organizationid name slug config route_model organizationId name slug config route_model" - }, - "organizations.modes.delete": { - "path": "organizations.modes.delete", - "kind": "mutation", - "summary": "Delete a custom mode from an organization. Use to remove an organization mode.", - "inputSchema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "organizationId": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "modeId": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "preserve_route": { - "type": "boolean" - }, - "route_model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "organizationId", - "modeId" - ] - }, - "tags": [ - "organizations", - "modes", - "delete", - "organizationid", - "modeid", - "preserve_route", - "route_model" - ], - "searchBlob": "organizations.modes.delete Delete a custom mode from an organization. Use to remove an organization mode. organizations modes delete organizationid modeid preserve_route route_model organizationId modeId preserve_route route_model" - }, - "organizations.modes.getById": { - "path": "organizations.modes.getById", - "kind": "query", - "summary": "Get a single custom mode by its ID within an organization.", - "inputSchema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "organizationId": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "modeId": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - } - }, - "required": [ - "organizationId", - "modeId" - ] - }, - "tags": [ - "organizations", - "modes", - "getbyid", - "organizationid", - "modeid" - ], - "searchBlob": "organizations.modes.getById Get a single custom mode by its ID within an organization. organizations modes getbyid organizationid modeid organizationId modeId" - }, - "organizations.modes.list": { - "path": "organizations.modes.list", - "kind": "query", - "summary": "List all custom modes defined for an organization.", - "inputSchema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "organizationId": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - } - }, - "required": [ - "organizationId" - ] - }, - "tags": [ - "organizations", - "modes", - "list", - "organizationid" - ], - "searchBlob": "organizations.modes.list List all custom modes defined for an organization. organizations modes list organizationid organizationId" - }, - "organizations.modes.update": { - "path": "organizations.modes.update", - "kind": "mutation", - "summary": "Update an organization custom mode's name, slug, configuration, or model route. Use to edit an organization mode.", - "inputSchema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "organizationId": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "modeId": { - "type": "string", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - }, - "name": { - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "slug": { - "type": "string", - "minLength": 1, - "maxLength": 50, - "pattern": "^[a-z0-9-]+$" - }, - "config": { - "type": "object", - "properties": { - "roleDefinition": { - "type": "string", - "minLength": 1 - }, - "whenToUse": { - "type": "string" - }, - "description": { - "type": "string" - }, - "customInstructions": { - "type": "string" - }, - "groups": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string", - "enum": [ - "read", - "edit", - "browser", - "command", - "mcp" - ] - }, - { - "type": "array", - "prefixItems": [ - { - "type": "string", - "const": "edit" - }, - { - "type": "object", - "properties": { - "fileRegex": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string" - } - }, - "required": [ - "fileRegex" - ] - } - ] + ], + "items": false, + "minItems": 2, + "maxItems": 2 } ] } @@ -25450,13 +25417,228 @@ } }, "route_model": { - "anyOf": [ - { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "organizationId", + "name", + "slug" + ] + }, + "tags": [ + "organizations", + "modes", + "create", + "organizationid", + "name", + "slug", + "config", + "route_model" + ], + "searchBlob": "organizations.modes.create Create a custom mode for an organization with a name, slug, and configuration. Use to add an organization mode. organizations modes create organizationid name slug config route_model organizationId name slug config route_model" + }, + "organizations.modes.delete": { + "path": "organizations.modes.delete", + "kind": "mutation", + "summary": "Delete a custom mode from an organization. Use to remove an organization mode.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "modeId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "preserve_route": { + "type": "boolean" + }, + "route_model": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "organizationId", + "modeId" + ] + }, + "tags": [ + "organizations", + "modes", + "delete", + "organizationid", + "modeid", + "preserve_route", + "route_model" + ], + "searchBlob": "organizations.modes.delete Delete a custom mode from an organization. Use to remove an organization mode. organizations modes delete organizationid modeid preserve_route route_model organizationId modeId preserve_route route_model" + }, + "organizations.modes.getById": { + "path": "organizations.modes.getById", + "kind": "query", + "summary": "Get a single custom mode by its ID within an organization.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "modeId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + } + }, + "required": [ + "organizationId", + "modeId" + ] + }, + "tags": [ + "organizations", + "modes", + "getbyid", + "organizationid", + "modeid" + ], + "searchBlob": "organizations.modes.getById Get a single custom mode by its ID within an organization. organizations modes getbyid organizationid modeid organizationId modeId" + }, + "organizations.modes.list": { + "path": "organizations.modes.list", + "kind": "query", + "summary": "List all custom modes defined for an organization.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + } + }, + "required": [ + "organizationId" + ] + }, + "tags": [ + "organizations", + "modes", + "list", + "organizationid" + ], + "searchBlob": "organizations.modes.list List all custom modes defined for an organization. organizations modes list organizationid organizationId" + }, + "organizations.modes.update": { + "path": "organizations.modes.update", + "kind": "mutation", + "summary": "Update an organization custom mode's name, slug, configuration, or model route. Use to edit an organization mode.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "modeId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" + }, + "name": { + "type": "string", + "minLength": 1, + "maxLength": 100 + }, + "slug": { + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-z0-9-]+$" + }, + "config": { + "type": "object", + "properties": { + "roleDefinition": { + "type": "string", + "minLength": 1 + }, + "whenToUse": { "type": "string" }, - { - "type": "null" + "description": { + "type": "string" + }, + "customInstructions": { + "type": "string" + }, + "groups": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string", + "enum": [ + "read", + "edit", + "browser", + "command", + "mcp" + ] + }, + { + "type": "array", + "prefixItems": [ + { + "type": "string", + "const": "edit" + }, + { + "type": "object", + "properties": { + "fileRegex": { + "type": "string", + "minLength": 1 + }, + "description": { + "type": "string" + } + }, + "required": [ + "fileRegex" + ] + } + ], + "items": false, + "minItems": 2, + "maxItems": 2 + } + ] + } } + } + }, + "route_model": { + "type": [ + "string", + "null" ] } }, @@ -25918,13 +26100,9 @@ "selectedRepositoryIds": { "type": "array", "items": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } + "type": [ + "number", + "string" ] } }, @@ -25935,13 +26113,9 @@ "maxItems": 500, "type": "array", "items": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } + "type": [ + "number", + "string" ] } }, @@ -25949,13 +26123,9 @@ "maxItems": 500, "type": "array", "items": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } + "type": [ + "number", + "string" ] } } @@ -25998,13 +26168,9 @@ "type": "object", "properties": { "repositoryId": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } + "type": [ + "number", + "string" ] }, "repoFullName": { @@ -26163,13 +26329,9 @@ "councilEnabledRepositoryIds": { "type": "array", "items": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } + "type": [ + "number", + "string" ] } }, @@ -26296,13 +26458,9 @@ "selectedRepositoryIds": { "type": "array", "items": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } + "type": [ + "number", + "string" ] } }, @@ -26339,13 +26497,9 @@ "type": "object", "properties": { "repositoryId": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } + "type": [ + "number", + "string" ] }, "repoFullName": { @@ -26507,13 +26661,9 @@ "councilEnabledRepositoryIds": { "type": "array", "items": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } + "type": [ + "number", + "string" ] } }, @@ -27829,12 +27979,12 @@ "startTime": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "endTime": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "action": { "type": "array", @@ -27954,12 +28104,12 @@ "before": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "after": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "action": { "type": "array", @@ -27997,7 +28147,7 @@ "actorEmail": { "type": "string", "format": "email", - "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" + "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "resourceType": { "type": "string", @@ -28014,12 +28164,12 @@ "startTime": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "endTime": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" } }, "required": [ @@ -28329,13 +28479,9 @@ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "default_model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] } }, @@ -28378,7 +28524,7 @@ "items": { "type": "string", "format": "email", - "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" + "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" } } }, @@ -29248,13 +29394,9 @@ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "company_domain": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "type": [ + "string", + "null" ] } }, @@ -29396,12 +29538,12 @@ "startDate": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "endDate": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" } }, "required": [ @@ -33272,12 +33414,12 @@ "startTime": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "endTime": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "action": { "type": "array", @@ -33357,12 +33499,12 @@ "before": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "after": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "action": { "type": "array", @@ -33400,7 +33542,7 @@ "actorEmail": { "type": "string", "format": "email", - "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" + "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "resourceType": { "type": "string", @@ -33417,12 +33559,12 @@ "startTime": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "endTime": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" } } }, @@ -34391,7 +34533,7 @@ "cursor": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "limit": { "default": 10, @@ -34458,7 +34600,7 @@ "updatedSince": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" } } }, @@ -34499,7 +34641,7 @@ "updatedSince": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" } }, "required": [ @@ -34614,12 +34756,12 @@ "startDate": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "endDate": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "granularity": { "type": "string", @@ -34840,12 +34982,12 @@ "startDate": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "endDate": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "granularity": { "type": "string", @@ -35010,12 +35152,12 @@ "startDate": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "endDate": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "granularity": { "type": "string", @@ -35204,12 +35346,12 @@ "startDate": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "endDate": { "type": "string", "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "granularity": { "type": "string", @@ -36997,23 +37139,15 @@ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "autoCommit": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } + "type": [ + "boolean", + "null" ] }, "condenseOnComplete": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } + "type": [ + "boolean", + "null" ] }, "isActive": { diff --git a/services/session-ingest/src/types/user-connection-protocol.test.ts b/services/session-ingest/src/types/user-connection-protocol.test.ts index 6643f6ff869..60c4c525642 100644 --- a/services/session-ingest/src/types/user-connection-protocol.test.ts +++ b/services/session-ingest/src/types/user-connection-protocol.test.ts @@ -246,8 +246,11 @@ describe('CLIOutboundMessageSchema', () => { ['ASCII', 'a'.repeat(24), 'a'.repeat(25)], ['escaped characters', '\\"'.repeat(12), '\\"'.repeat(12) + '\\'], ['CJK', '界'.repeat(24), '界'.repeat(25)], - ['surrogate pairs', '\u{10400}'.repeat(12), '\u{10400}'.repeat(12) + 'a'], - ])('bounds %s branches by UTF-16 units, not JSON bytes', (_label, valid, invalid) => { + // zod 4.6 measures string bounds in Unicode code points, so a surrogate + // pair counts once: 24 astral characters fit even though they are 48 + // UTF-16 units. + ['surrogate pairs', '\u{10400}'.repeat(24), '\u{10400}'.repeat(25)], + ])('bounds %s branches by Unicode code points, not JSON bytes', (_label, valid, invalid) => { const heartbeat = { type: 'heartbeat', sessions: [],