@cogitator-ai/cli 0.5.19 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +105 -44
  2. package/dist/commands/add.d.ts +11 -0
  3. package/dist/commands/add.d.ts.map +1 -0
  4. package/dist/commands/add.js +79 -0
  5. package/dist/commands/add.js.map +1 -0
  6. package/dist/commands/assistant.d.ts.map +1 -1
  7. package/dist/commands/assistant.js +14 -12
  8. package/dist/commands/assistant.js.map +1 -1
  9. package/dist/commands/build.d.ts +16 -1
  10. package/dist/commands/build.d.ts.map +1 -1
  11. package/dist/commands/build.js +53 -48
  12. package/dist/commands/build.js.map +1 -1
  13. package/dist/commands/daemon.d.ts.map +1 -1
  14. package/dist/commands/daemon.js +17 -13
  15. package/dist/commands/daemon.js.map +1 -1
  16. package/dist/commands/deploy.d.ts +59 -0
  17. package/dist/commands/deploy.d.ts.map +1 -1
  18. package/dist/commands/deploy.js +181 -99
  19. package/dist/commands/deploy.js.map +1 -1
  20. package/dist/commands/dev.d.ts +14 -0
  21. package/dist/commands/dev.d.ts.map +1 -0
  22. package/dist/commands/dev.js +84 -0
  23. package/dist/commands/dev.js.map +1 -0
  24. package/dist/commands/doctor.d.ts +5 -0
  25. package/dist/commands/doctor.d.ts.map +1 -0
  26. package/dist/commands/doctor.js +52 -0
  27. package/dist/commands/doctor.js.map +1 -0
  28. package/dist/commands/eval.d.ts +12 -0
  29. package/dist/commands/eval.d.ts.map +1 -0
  30. package/dist/commands/eval.js +90 -0
  31. package/dist/commands/eval.js.map +1 -0
  32. package/dist/commands/init.d.ts +10 -33
  33. package/dist/commands/init.d.ts.map +1 -1
  34. package/dist/commands/init.js +89 -321
  35. package/dist/commands/init.js.map +1 -1
  36. package/dist/commands/logs.d.ts.map +1 -1
  37. package/dist/commands/logs.js +9 -6
  38. package/dist/commands/logs.js.map +1 -1
  39. package/dist/commands/mcp.d.ts +18 -0
  40. package/dist/commands/mcp.d.ts.map +1 -0
  41. package/dist/commands/mcp.js +155 -0
  42. package/dist/commands/mcp.js.map +1 -0
  43. package/dist/commands/models.d.ts.map +1 -1
  44. package/dist/commands/models.js +43 -15
  45. package/dist/commands/models.js.map +1 -1
  46. package/dist/commands/run.d.ts +17 -1
  47. package/dist/commands/run.d.ts.map +1 -1
  48. package/dist/commands/run.js +75 -28
  49. package/dist/commands/run.js.map +1 -1
  50. package/dist/commands/skill.d.ts.map +1 -1
  51. package/dist/commands/skill.js +23 -23
  52. package/dist/commands/skill.js.map +1 -1
  53. package/dist/commands/status.d.ts +21 -0
  54. package/dist/commands/status.d.ts.map +1 -1
  55. package/dist/commands/status.js +64 -39
  56. package/dist/commands/status.js.map +1 -1
  57. package/dist/commands/up.d.ts.map +1 -1
  58. package/dist/commands/up.js +26 -24
  59. package/dist/commands/up.js.map +1 -1
  60. package/dist/commands/wizard.d.ts.map +1 -1
  61. package/dist/commands/wizard.js +5 -0
  62. package/dist/commands/wizard.js.map +1 -1
  63. package/dist/index.js +9 -42
  64. package/dist/index.js.map +1 -1
  65. package/dist/program.d.ts +4 -0
  66. package/dist/program.d.ts.map +1 -0
  67. package/dist/program.js +61 -0
  68. package/dist/program.js.map +1 -0
  69. package/dist/utils/add.d.ts +81 -0
  70. package/dist/utils/add.d.ts.map +1 -0
  71. package/dist/utils/add.js +151 -0
  72. package/dist/utils/add.js.map +1 -0
  73. package/dist/utils/cli.d.ts +49 -0
  74. package/dist/utils/cli.d.ts.map +1 -0
  75. package/dist/utils/cli.js +106 -0
  76. package/dist/utils/cli.js.map +1 -0
  77. package/dist/utils/docs.d.ts +39 -0
  78. package/dist/utils/docs.d.ts.map +1 -0
  79. package/dist/utils/docs.js +198 -0
  80. package/dist/utils/docs.js.map +1 -0
  81. package/dist/utils/doctor.d.ts +41 -0
  82. package/dist/utils/doctor.d.ts.map +1 -0
  83. package/dist/utils/doctor.js +378 -0
  84. package/dist/utils/doctor.js.map +1 -0
  85. package/dist/utils/evals.d.ts +50 -0
  86. package/dist/utils/evals.d.ts.map +1 -0
  87. package/dist/utils/evals.js +78 -0
  88. package/dist/utils/evals.js.map +1 -0
  89. package/dist/utils/ollama.d.ts +5 -0
  90. package/dist/utils/ollama.d.ts.map +1 -1
  91. package/dist/utils/ollama.js +13 -5
  92. package/dist/utils/ollama.js.map +1 -1
  93. package/dist/utils/provider-models.d.ts +8 -2
  94. package/dist/utils/provider-models.d.ts.map +1 -1
  95. package/dist/utils/provider-models.js +32 -52
  96. package/dist/utils/provider-models.js.map +1 -1
  97. package/dist/utils/registry-worker.d.ts +2 -0
  98. package/dist/utils/registry-worker.d.ts.map +1 -0
  99. package/dist/utils/registry-worker.js +35 -0
  100. package/dist/utils/registry-worker.js.map +1 -0
  101. package/dist/utils/registry.d.ts +19 -0
  102. package/dist/utils/registry.d.ts.map +1 -0
  103. package/dist/utils/registry.js +58 -0
  104. package/dist/utils/registry.js.map +1 -0
  105. package/package.json +16 -10
@@ -1,33 +1,15 @@
1
- import { ModelRegistry } from '@cogitator-ai/models';
1
+ import { cloudModelChoices, defaultModel, OLLAMA_SUGGESTED_MODELS, PROVIDER_INFO, } from 'create-cogitator-app';
2
2
  import { listOllamaModels } from './ollama.js';
3
+ function envKeyOf(provider) {
4
+ const key = PROVIDER_INFO[provider].envKey;
5
+ if (!key)
6
+ throw new Error(`${provider} has no API key variable`);
7
+ return key;
8
+ }
3
9
  export const API_KEY_ENV = {
4
- anthropic: 'ANTHROPIC_API_KEY',
5
- openai: 'OPENAI_API_KEY',
6
- google: 'GOOGLE_API_KEY',
7
- };
8
- export const FALLBACK_MODELS = {
9
- anthropic: [
10
- { label: 'Claude Sonnet 5.5', value: 'anthropic/claude-sonnet-5-5' },
11
- { label: 'Claude Opus 5.5', value: 'anthropic/claude-opus-5-5' },
12
- { label: 'Claude Haiku 4.5', value: 'anthropic/claude-haiku-4-5' },
13
- ],
14
- openai: [
15
- { label: 'GPT-6.1 Sol', value: 'openai/gpt-6.1-sol' },
16
- { label: 'GPT-6 Astra', value: 'openai/gpt-6-astra' },
17
- { label: 'GPT-6 Luna', value: 'openai/gpt-6-luna' },
18
- ],
19
- google: [
20
- { label: 'Gemini 3.8 Flash', value: 'google/gemini-3.8-flash' },
21
- { label: 'Gemini 3.1 Pro Preview', value: 'google/gemini-3.1-pro-preview' },
22
- { label: 'Gemini 3.5 Flash-Lite', value: 'google/gemini-3.5-flash-lite' },
23
- ],
24
- ollama: [
25
- { label: 'Qwen3 8B', value: 'ollama/qwen3:8b' },
26
- { label: 'Qwen3.5 9B', value: 'ollama/qwen3.5:9b' },
27
- { label: 'Llama 3.1 8B', value: 'ollama/llama3.1:8b' },
28
- { label: 'Gemma 3 4B', value: 'ollama/gemma3:4b' },
29
- { label: 'Mistral 7B', value: 'ollama/mistral:7b' },
30
- ],
10
+ anthropic: envKeyOf('anthropic'),
11
+ openai: envKeyOf('openai'),
12
+ google: envKeyOf('google'),
31
13
  };
32
14
  export function isSetupProvider(value) {
33
15
  return value === 'anthropic' || value === 'openai' || value === 'google' || value === 'ollama';
@@ -40,34 +22,32 @@ function formatBytes(bytes) {
40
22
  return `${(bytes / (1024 * 1024)).toFixed(0)} MB`;
41
23
  return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
42
24
  }
43
- export async function fetchProviderModels(provider) {
44
- try {
45
- const registry = new ModelRegistry({ fallbackToBuiltin: true });
46
- await registry.initialize();
47
- let models = registry.listModels({
48
- provider,
49
- supportsTools: true,
50
- excludeDeprecated: true,
51
- });
52
- if (provider === 'google') {
53
- models = models.filter((m) => m.id.includes('gemini'));
54
- }
55
- if (models.length === 0)
56
- return FALLBACK_MODELS[provider];
57
- return models.map((m) => ({
58
- label: m.displayName,
59
- value: withProviderPrefix(provider, m.id),
60
- }));
61
- }
62
- catch {
63
- return FALLBACK_MODELS[provider];
64
- }
25
+ /**
26
+ * The current models of a cloud provider with their prices, from the catalogue
27
+ * create-cogitator-app offers too, as `provider/model` values.
28
+ */
29
+ export async function fetchProviderModels(provider, options = {}) {
30
+ const { choices } = await cloudModelChoices(provider, options);
31
+ return choices.map((choice) => ({
32
+ label: choice.label,
33
+ value: withProviderPrefix(provider, choice.value),
34
+ ...(choice.hint && { hint: choice.hint }),
35
+ }));
36
+ }
37
+ /** Small models with reliable tool calling, offered when Ollama has none installed or does not answer. */
38
+ export function suggestedOllamaModels() {
39
+ const recommended = defaultModel('ollama');
40
+ return OLLAMA_SUGGESTED_MODELS.map((name) => ({
41
+ label: name,
42
+ value: `ollama/${name}`,
43
+ hint: name === recommended ? 'recommended, pull it first' : 'pull it first',
44
+ }));
65
45
  }
66
46
  export async function fetchOllamaModelOptions(baseUrl, apiKey) {
67
47
  try {
68
48
  const models = await listOllamaModels(baseUrl, { apiKey });
69
49
  if (models.length === 0)
70
- return FALLBACK_MODELS.ollama;
50
+ return suggestedOllamaModels();
71
51
  return models.map((m) => ({
72
52
  label: m.name,
73
53
  value: `ollama/${m.name}`,
@@ -75,7 +55,7 @@ export async function fetchOllamaModelOptions(baseUrl, apiKey) {
75
55
  }));
76
56
  }
77
57
  catch {
78
- return FALLBACK_MODELS.ollama;
58
+ return suggestedOllamaModels();
79
59
  }
80
60
  }
81
61
  //# sourceMappingURL=provider-models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-models.js","sourceRoot":"","sources":["../../src/utils/provider-models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-models.js","sourceRoot":"","sources":["../../src/utils/provider-models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=registry-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-worker.d.ts","sourceRoot":"","sources":["../../src/utils/registry-worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { join } from 'node:path';
2
+ import { loadProjectEnv } from './doctor.js';
3
+ import { importUserModule } from './module-loader.js';
4
+ import { describeRegistry, REGISTRY_PATH } from './registry.js';
5
+ /**
6
+ * Runs in a child process of `inspectRegistry`: imports the project's
7
+ * registry, sends its description to the parent and exits.
8
+ */
9
+ async function main() {
10
+ const projectDir = process.argv[2] ?? process.cwd();
11
+ let message;
12
+ let module;
13
+ try {
14
+ loadProjectEnv(projectDir);
15
+ module = await importUserModule(join(projectDir, REGISTRY_PATH), projectDir);
16
+ message = { ok: true, registry: describeRegistry(module) };
17
+ }
18
+ catch (error) {
19
+ message = { ok: false, error: error instanceof Error ? error.message : String(error) };
20
+ }
21
+ await new Promise((resolve) => process.send?.(message, () => resolve()) ?? resolve());
22
+ const runtime = module?.cogitator;
23
+ if (typeof runtime === 'object' &&
24
+ runtime !== null &&
25
+ 'close' in runtime &&
26
+ typeof runtime.close === 'function') {
27
+ await Promise.race([
28
+ runtime.close().catch(() => undefined),
29
+ new Promise((resolve) => setTimeout(resolve, 5_000).unref()),
30
+ ]);
31
+ }
32
+ process.exit(0);
33
+ }
34
+ void main();
35
+ //# sourceMappingURL=registry-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-worker.js","sourceRoot":"","sources":["../../src/utils/registry-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAA0B,MAAM,eAAe,CAAC;AAExF;;;GAGG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACpD,IAAI,OAA0B,CAAC;IAC/B,IAAI,MAA2C,CAAC;IAChD,IAAI,CAAC;QACH,cAAc,CAAC,UAAU,CAAC,CAAC;QAC3B,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;QAC7E,OAAO,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACzF,CAAC;IACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,MAAM,EAAE,SAAS,CAAC;IAClC,IACE,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,OAAO,IAAI,OAAO;QAClB,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EACnC,CAAC;QACD,MAAM,OAAO,CAAC,IAAI,CAAC;YAChB,OAAO,CAAC,KAA6B,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;YAC/D,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type RegistryInfo } from '@cogitator-ai/studio';
2
+ export { describeRegistry, REGISTRY_PATH } from '@cogitator-ai/studio';
3
+ export type { AgentInfo, RegistryInfo, SwarmInfo, ToolInfo, WorkflowInfo, } from '@cogitator-ai/studio';
4
+ /** What the inspection child process sends back. */
5
+ export type InspectionMessage = {
6
+ ok: true;
7
+ registry: RegistryInfo;
8
+ } | {
9
+ ok: false;
10
+ error: string;
11
+ };
12
+ /**
13
+ * Loads the registry of the project in `projectDir` in a child process and
14
+ * describes it. A fresh process sees the code as it is now, keeps the
15
+ * project's output and connections away from the caller, and is killed when
16
+ * it takes longer than `timeoutMs`.
17
+ */
18
+ export declare function inspectRegistry(projectDir: string, timeoutMs?: number): Promise<RegistryInfo>;
19
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,YAAY,EACV,SAAS,EACT,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,oDAAoD;AACpD,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAYpG;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CA0C7F"}
@@ -0,0 +1,58 @@
1
+ import { fork } from 'node:child_process';
2
+ import { existsSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { createRequire } from 'node:module';
5
+ import { fileURLToPath, pathToFileURL } from 'node:url';
6
+ import { REGISTRY_PATH } from '@cogitator-ai/studio';
7
+ export { describeRegistry, REGISTRY_PATH } from '@cogitator-ai/studio';
8
+ function workerEntry() {
9
+ const compiled = fileURLToPath(new URL('./registry-worker.js', import.meta.url));
10
+ if (existsSync(compiled))
11
+ return { path: compiled, execArgv: [] };
12
+ const tsx = pathToFileURL(createRequire(import.meta.url).resolve('tsx')).href;
13
+ return {
14
+ path: fileURLToPath(new URL('./registry-worker.ts', import.meta.url)),
15
+ execArgv: ['--import', tsx],
16
+ };
17
+ }
18
+ /**
19
+ * Loads the registry of the project in `projectDir` in a child process and
20
+ * describes it. A fresh process sees the code as it is now, keeps the
21
+ * project's output and connections away from the caller, and is killed when
22
+ * it takes longer than `timeoutMs`.
23
+ */
24
+ export function inspectRegistry(projectDir, timeoutMs = 60_000) {
25
+ if (!existsSync(join(projectDir, REGISTRY_PATH))) {
26
+ return Promise.reject(new Error(`${REGISTRY_PATH} not found in ${projectDir}: projects from create-cogitator-app register their agents there`));
27
+ }
28
+ const entry = workerEntry();
29
+ return new Promise((resolve, reject) => {
30
+ const child = fork(entry.path, [projectDir], {
31
+ cwd: projectDir,
32
+ execArgv: entry.execArgv,
33
+ stdio: ['ignore', 'ignore', 'pipe', 'ipc'],
34
+ });
35
+ let stderr = '';
36
+ let settled = false;
37
+ const settle = (action) => {
38
+ if (settled)
39
+ return;
40
+ settled = true;
41
+ clearTimeout(timer);
42
+ action();
43
+ };
44
+ const timer = setTimeout(() => {
45
+ child.kill('SIGKILL');
46
+ settle(() => reject(new Error(`Loading ${REGISTRY_PATH} took longer than ${timeoutMs} ms`)));
47
+ }, timeoutMs);
48
+ child.stderr?.on('data', (chunk) => (stderr += chunk.toString()));
49
+ child.once('message', (message) => {
50
+ settle(() => (message.ok ? resolve(message.registry) : reject(new Error(message.error))));
51
+ });
52
+ child.once('error', (error) => settle(() => reject(error)));
53
+ child.once('exit', (code) => {
54
+ settle(() => reject(new Error(`Loading ${REGISTRY_PATH} failed (exit ${code ?? 'signal'})${stderr ? `:\n${stderr.trim().split('\n').slice(-20).join('\n')}` : ''}`)));
55
+ });
56
+ });
57
+ }
58
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogitator-ai/cli",
3
- "version": "0.5.19",
3
+ "version": "0.6.0",
4
4
  "description": "CLI for Cogitator AI Agent Runtime",
5
5
  "keywords": [
6
6
  "cogitator",
@@ -21,7 +21,8 @@
21
21
  "exports": {
22
22
  ".": {
23
23
  "types": "./dist/index.d.ts",
24
- "import": "./dist/index.js"
24
+ "import": "./dist/index.js",
25
+ "default": "./dist/index.js"
25
26
  }
26
27
  },
27
28
  "files": [
@@ -32,17 +33,22 @@
32
33
  },
33
34
  "dependencies": {
34
35
  "@clack/prompts": "^1.8.1",
35
- "@cogitator-ai/channels": "0.8.6",
36
- "@cogitator-ai/config": "0.11.8",
37
- "@cogitator-ai/core": "0.33.0",
38
- "@cogitator-ai/models": "18.2.1",
39
- "@cogitator-ai/deploy": "0.4.8",
40
- "@cogitator-ai/memory": "0.11.8",
41
- "@cogitator-ai/types": "0.35.0",
36
+ "@cogitator-ai/channels": "0.9.1",
37
+ "@cogitator-ai/config": "0.12.1",
38
+ "@cogitator-ai/core": "0.35.0",
39
+ "@cogitator-ai/deploy": "0.6.0",
40
+ "@cogitator-ai/mcp": "19.3.1",
41
+ "@cogitator-ai/memory": "0.12.1",
42
+ "@cogitator-ai/models": "18.3.0",
43
+ "@cogitator-ai/studio": "0.1.0",
44
+ "@cogitator-ai/types": "0.37.0",
45
+ "better-sqlite3": "^13.0.3",
42
46
  "chalk": "^6.0.1",
43
47
  "commander": "^15.0.0",
48
+ "create-cogitator-app": "^0.5.0",
44
49
  "ora": "^9.4.1",
45
- "yaml": "^2.9.1"
50
+ "yaml": "^2.9.1",
51
+ "zod": "^4.6.5"
46
52
  },
47
53
  "devDependencies": {
48
54
  "@types/node": "^22.20.4",