cognitive-modules-cli 2.2.0 → 2.2.5

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 (94) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE +21 -0
  3. package/README.md +35 -29
  4. package/dist/cli.js +572 -28
  5. package/dist/commands/add.d.ts +33 -14
  6. package/dist/commands/add.js +222 -13
  7. package/dist/commands/compose.d.ts +31 -0
  8. package/dist/commands/compose.js +185 -0
  9. package/dist/commands/index.d.ts +5 -0
  10. package/dist/commands/index.js +5 -0
  11. package/dist/commands/init.js +23 -1
  12. package/dist/commands/migrate.d.ts +30 -0
  13. package/dist/commands/migrate.js +650 -0
  14. package/dist/commands/pipe.d.ts +1 -0
  15. package/dist/commands/pipe.js +31 -11
  16. package/dist/commands/remove.js +33 -2
  17. package/dist/commands/run.d.ts +1 -0
  18. package/dist/commands/run.js +37 -27
  19. package/dist/commands/search.d.ts +28 -0
  20. package/dist/commands/search.js +143 -0
  21. package/dist/commands/test.d.ts +65 -0
  22. package/dist/commands/test.js +454 -0
  23. package/dist/commands/update.d.ts +1 -0
  24. package/dist/commands/update.js +106 -14
  25. package/dist/commands/validate.d.ts +36 -0
  26. package/dist/commands/validate.js +97 -0
  27. package/dist/errors/index.d.ts +218 -0
  28. package/dist/errors/index.js +412 -0
  29. package/dist/index.d.ts +2 -2
  30. package/dist/index.js +5 -1
  31. package/dist/mcp/server.js +84 -79
  32. package/dist/modules/composition.d.ts +251 -0
  33. package/dist/modules/composition.js +1330 -0
  34. package/dist/modules/index.d.ts +2 -0
  35. package/dist/modules/index.js +2 -0
  36. package/dist/modules/loader.d.ts +22 -2
  37. package/dist/modules/loader.js +171 -6
  38. package/dist/modules/runner.d.ts +422 -1
  39. package/dist/modules/runner.js +1472 -71
  40. package/dist/modules/subagent.d.ts +6 -1
  41. package/dist/modules/subagent.js +20 -13
  42. package/dist/modules/validator.d.ts +28 -0
  43. package/dist/modules/validator.js +637 -0
  44. package/dist/providers/anthropic.d.ts +15 -0
  45. package/dist/providers/anthropic.js +147 -5
  46. package/dist/providers/base.d.ts +11 -0
  47. package/dist/providers/base.js +18 -0
  48. package/dist/providers/gemini.d.ts +15 -0
  49. package/dist/providers/gemini.js +122 -5
  50. package/dist/providers/ollama.d.ts +15 -0
  51. package/dist/providers/ollama.js +111 -3
  52. package/dist/providers/openai.d.ts +11 -0
  53. package/dist/providers/openai.js +133 -0
  54. package/dist/registry/client.d.ts +204 -0
  55. package/dist/registry/client.js +356 -0
  56. package/dist/registry/index.d.ts +4 -0
  57. package/dist/registry/index.js +4 -0
  58. package/dist/server/http.js +173 -42
  59. package/dist/types.d.ts +123 -8
  60. package/dist/types.js +4 -1
  61. package/dist/version.d.ts +1 -0
  62. package/dist/version.js +4 -0
  63. package/package.json +32 -7
  64. package/src/cli.ts +0 -410
  65. package/src/commands/add.ts +0 -315
  66. package/src/commands/index.ts +0 -12
  67. package/src/commands/init.ts +0 -94
  68. package/src/commands/list.ts +0 -33
  69. package/src/commands/pipe.ts +0 -76
  70. package/src/commands/remove.ts +0 -57
  71. package/src/commands/run.ts +0 -80
  72. package/src/commands/update.ts +0 -130
  73. package/src/commands/versions.ts +0 -79
  74. package/src/index.ts +0 -55
  75. package/src/mcp/index.ts +0 -5
  76. package/src/mcp/server.ts +0 -403
  77. package/src/modules/index.ts +0 -7
  78. package/src/modules/loader.ts +0 -318
  79. package/src/modules/runner.ts +0 -495
  80. package/src/modules/subagent.ts +0 -275
  81. package/src/providers/anthropic.ts +0 -89
  82. package/src/providers/base.ts +0 -29
  83. package/src/providers/deepseek.ts +0 -83
  84. package/src/providers/gemini.ts +0 -117
  85. package/src/providers/index.ts +0 -78
  86. package/src/providers/minimax.ts +0 -81
  87. package/src/providers/moonshot.ts +0 -82
  88. package/src/providers/ollama.ts +0 -83
  89. package/src/providers/openai.ts +0 -84
  90. package/src/providers/qwen.ts +0 -82
  91. package/src/server/http.ts +0 -316
  92. package/src/server/index.ts +0 -6
  93. package/src/types.ts +0 -495
  94. package/tsconfig.json +0 -17
package/src/cli.ts DELETED
@@ -1,410 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Cognitive Modules CLI
4
- *
5
- * cog run <module> --args "..." - Run a module
6
- * cog add <url> -m <name> - Add module from GitHub
7
- * cog update <module> - Update to latest version
8
- * cog remove <module> - Remove installed module
9
- * cog versions <url> - List available versions
10
- * cog list - List available modules
11
- * cog pipe --module <name> - Pipe mode (stdin/stdout)
12
- * cog doctor - Check configuration
13
- *
14
- * npx cognitive-modules add ziel-io/cognitive-modules -m code-simplifier
15
- */
16
-
17
- import { parseArgs } from 'node:util';
18
- import { getProvider, listProviders } from './providers/index.js';
19
- import { run, list, pipe, init, add, update, remove, versions } from './commands/index.js';
20
- import type { CommandContext } from './types.js';
21
-
22
- const VERSION = '1.3.0';
23
-
24
- async function main() {
25
- const args = process.argv.slice(2);
26
- const command = args[0];
27
-
28
- if (!command || command === '--help' || command === '-h') {
29
- printHelp();
30
- process.exit(0);
31
- }
32
-
33
- if (command === '--version' || command === '-v') {
34
- console.log(`Cognitive Runtime v${VERSION}`);
35
- process.exit(0);
36
- }
37
-
38
- // Parse common options
39
- const { values } = parseArgs({
40
- args: args.slice(1),
41
- options: {
42
- args: { type: 'string', short: 'a' },
43
- input: { type: 'string', short: 'i' },
44
- module: { type: 'string', short: 'm' },
45
- model: { type: 'string', short: 'M' },
46
- provider: { type: 'string', short: 'p' },
47
- pretty: { type: 'boolean', default: false },
48
- verbose: { type: 'boolean', short: 'V', default: false },
49
- 'no-validate': { type: 'boolean', default: false },
50
- // Add/update options
51
- name: { type: 'string', short: 'n' },
52
- tag: { type: 'string', short: 't' },
53
- branch: { type: 'string', short: 'b' },
54
- limit: { type: 'string', short: 'l' },
55
- // Server options
56
- host: { type: 'string', short: 'H' },
57
- port: { type: 'string', short: 'P' },
58
- },
59
- allowPositionals: true,
60
- });
61
-
62
- // Get provider
63
- let provider;
64
- try {
65
- provider = getProvider(values.provider, values.model);
66
- } catch (e) {
67
- console.error(`Error: ${e instanceof Error ? e.message : e}`);
68
- process.exit(1);
69
- }
70
-
71
- const ctx: CommandContext = {
72
- cwd: process.cwd(),
73
- provider,
74
- verbose: values.verbose,
75
- };
76
-
77
- try {
78
- switch (command) {
79
- case 'run': {
80
- const moduleName = args[1];
81
- if (!moduleName || moduleName.startsWith('-')) {
82
- console.error('Usage: cog run <module> [--args "..."]');
83
- process.exit(1);
84
- }
85
-
86
- const result = await run(moduleName, ctx, {
87
- args: values.args,
88
- input: values.input,
89
- noValidate: values['no-validate'],
90
- pretty: values.pretty,
91
- verbose: values.verbose,
92
- });
93
-
94
- if (!result.success) {
95
- console.error(`Error: ${result.error}`);
96
- process.exit(1);
97
- }
98
-
99
- console.log(JSON.stringify(result.data, null, values.pretty ? 2 : 0));
100
- break;
101
- }
102
-
103
- case 'list': {
104
- const result = await list(ctx);
105
- if (!result.success) {
106
- console.error(`Error: ${result.error}`);
107
- process.exit(1);
108
- }
109
-
110
- const data = result.data as { modules: Array<{ name: string; version: string; responsibility: string; location: string }> };
111
-
112
- if (data.modules.length === 0) {
113
- console.log('No modules found.');
114
- } else {
115
- console.log('Available Modules:');
116
- console.log('');
117
- for (const m of data.modules) {
118
- console.log(` ${m.name} (v${m.version})`);
119
- console.log(` ${m.responsibility}`);
120
- console.log(` ${m.location}`);
121
- console.log('');
122
- }
123
- }
124
- break;
125
- }
126
-
127
- case 'pipe': {
128
- const moduleName = values.module || args[1];
129
- if (!moduleName) {
130
- console.error('Usage: cog pipe --module <name>');
131
- process.exit(1);
132
- }
133
-
134
- await pipe(ctx, {
135
- module: moduleName,
136
- noValidate: values['no-validate'],
137
- });
138
- break;
139
- }
140
-
141
- case 'init': {
142
- const moduleName = args[1];
143
- const result = await init(ctx, moduleName);
144
-
145
- if (!result.success) {
146
- console.error(`Error: ${result.error}`);
147
- process.exit(1);
148
- }
149
-
150
- const data = result.data as { message: string; location: string; files?: string[]; hint?: string };
151
- console.log(data.message);
152
- console.log(` Location: ${data.location}`);
153
- if (data.files) {
154
- console.log(` Files: ${data.files.join(', ')}`);
155
- }
156
- if (data.hint) {
157
- console.log(` ${data.hint}`);
158
- }
159
- break;
160
- }
161
-
162
- case 'doctor': {
163
- console.log('Cognitive Runtime - Environment Check\n');
164
-
165
- console.log('Providers:');
166
- for (const p of listProviders()) {
167
- const status = p.configured ? '✓ configured' : '– not configured';
168
- console.log(` ${p.name}: ${status} (${p.model})`);
169
- }
170
- console.log('');
171
-
172
- try {
173
- const provider = getProvider();
174
- console.log(`Active provider: ${provider.name}`);
175
- } catch {
176
- console.log('Active provider: none (set an API key)');
177
- }
178
- break;
179
- }
180
-
181
- case 'add': {
182
- const url = args[1];
183
- if (!url || url.startsWith('-')) {
184
- console.error('Usage: cog add <url> [--module <name>] [--tag <version>]');
185
- console.error('');
186
- console.error('Examples:');
187
- console.error(' cog add ziel-io/cognitive-modules -m code-simplifier');
188
- console.error(' cog add org/repo --module my-module --tag v1.0.0');
189
- process.exit(1);
190
- }
191
-
192
- console.log(`→ Adding module from: ${url}`);
193
- if (values.module) console.log(` Module path: ${values.module}`);
194
- if (values.tag) console.log(` Version: ${values.tag}`);
195
-
196
- const result = await add(url, ctx, {
197
- module: values.module,
198
- name: values.name,
199
- tag: values.tag,
200
- branch: values.branch,
201
- });
202
-
203
- if (!result.success) {
204
- console.error(`✗ Failed to add module: ${result.error}`);
205
- process.exit(1);
206
- }
207
-
208
- const data = result.data as { message: string; location: string; name: string };
209
- console.log(`✓ ${data.message}`);
210
- console.log(` Location: ${data.location}`);
211
- console.log('');
212
- console.log('Run with:');
213
- console.log(` cog run ${data.name} --args "your input"`);
214
- break;
215
- }
216
-
217
- case 'update': {
218
- const moduleName = args[1];
219
- if (!moduleName || moduleName.startsWith('-')) {
220
- console.error('Usage: cog update <module> [--tag <version>]');
221
- process.exit(1);
222
- }
223
-
224
- console.log(`→ Updating module: ${moduleName}`);
225
-
226
- const result = await update(moduleName, ctx, {
227
- tag: values.tag,
228
- });
229
-
230
- if (!result.success) {
231
- console.error(`✗ ${result.error}`);
232
- process.exit(1);
233
- }
234
-
235
- const data = result.data as { message: string };
236
- console.log(`✓ ${data.message}`);
237
- break;
238
- }
239
-
240
- case 'remove': {
241
- const moduleName = args[1];
242
- if (!moduleName || moduleName.startsWith('-')) {
243
- console.error('Usage: cog remove <module>');
244
- process.exit(1);
245
- }
246
-
247
- const result = await remove(moduleName, ctx);
248
-
249
- if (!result.success) {
250
- console.error(`✗ ${result.error}`);
251
- process.exit(1);
252
- }
253
-
254
- const data = result.data as { message: string };
255
- console.log(`✓ ${data.message}`);
256
- break;
257
- }
258
-
259
- case 'versions': {
260
- const url = args[1];
261
- if (!url || url.startsWith('-')) {
262
- console.error('Usage: cog versions <url>');
263
- console.error('');
264
- console.error('Examples:');
265
- console.error(' cog versions ziel-io/cognitive-modules');
266
- process.exit(1);
267
- }
268
-
269
- console.log(`→ Fetching versions from: ${url}\n`);
270
-
271
- const limit = values.limit ? parseInt(values.limit, 10) : 10;
272
- const result = await versions(url, ctx, { limit });
273
-
274
- if (!result.success) {
275
- console.error(`✗ ${result.error}`);
276
- process.exit(1);
277
- }
278
-
279
- const data = result.data as { tags: string[]; count: number };
280
-
281
- if (data.tags.length === 0) {
282
- console.log('No tags/versions found.');
283
- } else {
284
- console.log(`Available Versions (${data.count}):`);
285
- console.log('');
286
- for (const tag of data.tags) {
287
- console.log(` ${tag}`);
288
- console.log(` cog add ${url} --tag ${tag}`);
289
- }
290
- }
291
- break;
292
- }
293
-
294
- case 'serve': {
295
- const { serve } = await import('./server/http.js');
296
- const port = values.port ? parseInt(values.port as string, 10) : 8000;
297
- const host = (values.host as string) || '0.0.0.0';
298
- console.log('Starting Cognitive Modules HTTP Server...');
299
- await serve({ host, port, cwd: ctx.cwd });
300
- break;
301
- }
302
-
303
- case 'mcp': {
304
- try {
305
- const { serve: serveMcp } = await import('./mcp/server.js');
306
- await serveMcp();
307
- } catch (e) {
308
- if (e instanceof Error && e.message.includes('Cannot find module')) {
309
- console.error('MCP dependencies not installed.');
310
- console.error('Install with: npm install @modelcontextprotocol/sdk');
311
- process.exit(1);
312
- }
313
- throw e;
314
- }
315
- break;
316
- }
317
-
318
- default:
319
- console.error(`Unknown command: ${command}`);
320
- console.error('Run "cog --help" for usage.');
321
- process.exit(1);
322
- }
323
- } catch (e) {
324
- console.error(`Error: ${e instanceof Error ? e.message : e}`);
325
- if (values.verbose && e instanceof Error) {
326
- console.error(e.stack);
327
- }
328
- process.exit(1);
329
- }
330
- }
331
-
332
- function printHelp() {
333
- console.log(`
334
- Cognitive Runtime v${VERSION}
335
- Structured AI Task Execution
336
-
337
- USAGE:
338
- cog <command> [options]
339
-
340
- COMMANDS:
341
- run <module> Run a Cognitive Module
342
- list List available modules
343
- add <url> Add module from GitHub
344
- update <module> Update module to latest version
345
- remove <module> Remove installed module
346
- versions <url> List available versions
347
- pipe Pipe mode (stdin/stdout)
348
- init [name] Initialize project or create module
349
- serve Start HTTP API server
350
- mcp Start MCP server (for Claude Code, Cursor)
351
- doctor Check configuration
352
-
353
- OPTIONS:
354
- -a, --args <str> Arguments to pass to module
355
- -i, --input <json> JSON input for module
356
- -m, --module <name> Module path within repo (for add)
357
- -n, --name <name> Override module name (for add)
358
- -t, --tag <version> Git tag/version (for add/update)
359
- -b, --branch <name> Git branch (for add)
360
- -M, --model <name> LLM model (e.g., gpt-4o, gemini-2.0-flash)
361
- -p, --provider <name> LLM provider (gemini, openai, anthropic, deepseek, minimax, moonshot, qwen, ollama)
362
- --pretty Pretty-print JSON output
363
- -V, --verbose Verbose output
364
- --no-validate Skip schema validation
365
- -H, --host <host> Server host (default: 0.0.0.0)
366
- -P, --port <port> Server port (default: 8000)
367
- -v, --version Show version
368
- -h, --help Show this help
369
-
370
- EXAMPLES:
371
- # Add modules from GitHub
372
- npx cognitive-modules-cli add ziel-io/cognitive-modules -m code-simplifier
373
- cog add org/repo --module my-module --tag v1.0.0
374
-
375
- # Version management
376
- cog update code-simplifier
377
- cog versions ziel-io/cognitive-modules
378
- cog remove code-simplifier
379
-
380
- # Run modules
381
- cog run code-reviewer --args "def foo(): pass"
382
- cog run code-reviewer --provider openai --model gpt-4o --args "..."
383
- cog list
384
-
385
- # Servers
386
- cog serve --port 8080
387
- cog mcp
388
-
389
- # Other
390
- echo "review this code" | cog pipe --module code-reviewer
391
- cog init my-module
392
- cog doctor
393
-
394
- ENVIRONMENT:
395
- GEMINI_API_KEY Google Gemini
396
- OPENAI_API_KEY OpenAI
397
- ANTHROPIC_API_KEY Anthropic Claude
398
- DEEPSEEK_API_KEY DeepSeek
399
- MINIMAX_API_KEY MiniMax
400
- MOONSHOT_API_KEY Moonshot (Kimi)
401
- DASHSCOPE_API_KEY Alibaba Qwen (通义千问)
402
- OLLAMA_HOST Ollama local (default: localhost:11434)
403
- COG_MODEL Override default model for any provider
404
- `);
405
- }
406
-
407
- main().catch(e => {
408
- console.error('Fatal error:', e);
409
- process.exit(1);
410
- });