cmdr-agent 1.0.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 (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +238 -0
  3. package/dist/bin/cmdr.d.ts +9 -0
  4. package/dist/bin/cmdr.d.ts.map +1 -0
  5. package/dist/bin/cmdr.js +49 -0
  6. package/dist/bin/cmdr.js.map +1 -0
  7. package/dist/src/cli/args.d.ts +19 -0
  8. package/dist/src/cli/args.d.ts.map +1 -0
  9. package/dist/src/cli/args.js +89 -0
  10. package/dist/src/cli/args.js.map +1 -0
  11. package/dist/src/cli/commands.d.ts +12 -0
  12. package/dist/src/cli/commands.d.ts.map +1 -0
  13. package/dist/src/cli/commands.js +400 -0
  14. package/dist/src/cli/commands.js.map +1 -0
  15. package/dist/src/cli/renderer.d.ts +8 -0
  16. package/dist/src/cli/renderer.d.ts.map +1 -0
  17. package/dist/src/cli/renderer.js +47 -0
  18. package/dist/src/cli/renderer.js.map +1 -0
  19. package/dist/src/cli/repl.d.ts +18 -0
  20. package/dist/src/cli/repl.d.ts.map +1 -0
  21. package/dist/src/cli/repl.js +751 -0
  22. package/dist/src/cli/repl.js.map +1 -0
  23. package/dist/src/cli/spinner.d.ts +16 -0
  24. package/dist/src/cli/spinner.d.ts.map +1 -0
  25. package/dist/src/cli/spinner.js +233 -0
  26. package/dist/src/cli/spinner.js.map +1 -0
  27. package/dist/src/cli/theme.d.ts +95 -0
  28. package/dist/src/cli/theme.d.ts.map +1 -0
  29. package/dist/src/cli/theme.js +178 -0
  30. package/dist/src/cli/theme.js.map +1 -0
  31. package/dist/src/communication/message-bus.d.ts +35 -0
  32. package/dist/src/communication/message-bus.d.ts.map +1 -0
  33. package/dist/src/communication/message-bus.js +60 -0
  34. package/dist/src/communication/message-bus.js.map +1 -0
  35. package/dist/src/communication/shared-memory.d.ts +19 -0
  36. package/dist/src/communication/shared-memory.d.ts.map +1 -0
  37. package/dist/src/communication/shared-memory.js +37 -0
  38. package/dist/src/communication/shared-memory.js.map +1 -0
  39. package/dist/src/communication/task-queue.d.ts +50 -0
  40. package/dist/src/communication/task-queue.d.ts.map +1 -0
  41. package/dist/src/communication/task-queue.js +158 -0
  42. package/dist/src/communication/task-queue.js.map +1 -0
  43. package/dist/src/config/config-loader.d.ts +23 -0
  44. package/dist/src/config/config-loader.d.ts.map +1 -0
  45. package/dist/src/config/config-loader.js +91 -0
  46. package/dist/src/config/config-loader.js.map +1 -0
  47. package/dist/src/config/defaults.d.ts +6 -0
  48. package/dist/src/config/defaults.d.ts.map +1 -0
  49. package/dist/src/config/defaults.js +21 -0
  50. package/dist/src/config/defaults.js.map +1 -0
  51. package/dist/src/config/schema.d.ts +135 -0
  52. package/dist/src/config/schema.d.ts.map +1 -0
  53. package/dist/src/config/schema.js +35 -0
  54. package/dist/src/config/schema.js.map +1 -0
  55. package/dist/src/config/telemetry.d.ts +41 -0
  56. package/dist/src/config/telemetry.d.ts.map +1 -0
  57. package/dist/src/config/telemetry.js +57 -0
  58. package/dist/src/config/telemetry.js.map +1 -0
  59. package/dist/src/core/agent-pool.d.ts +40 -0
  60. package/dist/src/core/agent-pool.d.ts.map +1 -0
  61. package/dist/src/core/agent-pool.js +66 -0
  62. package/dist/src/core/agent-pool.js.map +1 -0
  63. package/dist/src/core/agent-runner.d.ts +51 -0
  64. package/dist/src/core/agent-runner.d.ts.map +1 -0
  65. package/dist/src/core/agent-runner.js +251 -0
  66. package/dist/src/core/agent-runner.js.map +1 -0
  67. package/dist/src/core/agent.d.ts +34 -0
  68. package/dist/src/core/agent.d.ts.map +1 -0
  69. package/dist/src/core/agent.js +143 -0
  70. package/dist/src/core/agent.js.map +1 -0
  71. package/dist/src/core/intent.d.ts +33 -0
  72. package/dist/src/core/intent.d.ts.map +1 -0
  73. package/dist/src/core/intent.js +91 -0
  74. package/dist/src/core/intent.js.map +1 -0
  75. package/dist/src/core/orchestrator.d.ts +43 -0
  76. package/dist/src/core/orchestrator.d.ts.map +1 -0
  77. package/dist/src/core/orchestrator.js +115 -0
  78. package/dist/src/core/orchestrator.js.map +1 -0
  79. package/dist/src/core/permissions.d.ts +36 -0
  80. package/dist/src/core/permissions.d.ts.map +1 -0
  81. package/dist/src/core/permissions.js +129 -0
  82. package/dist/src/core/permissions.js.map +1 -0
  83. package/dist/src/core/presets.d.ts +12 -0
  84. package/dist/src/core/presets.d.ts.map +1 -0
  85. package/dist/src/core/presets.js +148 -0
  86. package/dist/src/core/presets.js.map +1 -0
  87. package/dist/src/core/team.d.ts +44 -0
  88. package/dist/src/core/team.d.ts.map +1 -0
  89. package/dist/src/core/team.js +156 -0
  90. package/dist/src/core/team.js.map +1 -0
  91. package/dist/src/core/types.d.ts +257 -0
  92. package/dist/src/core/types.d.ts.map +1 -0
  93. package/dist/src/core/types.js +7 -0
  94. package/dist/src/core/types.js.map +1 -0
  95. package/dist/src/index.d.ts +44 -0
  96. package/dist/src/index.d.ts.map +1 -0
  97. package/dist/src/index.js +45 -0
  98. package/dist/src/index.js.map +1 -0
  99. package/dist/src/llm/adapter.d.ts +5 -0
  100. package/dist/src/llm/adapter.d.ts.map +1 -0
  101. package/dist/src/llm/adapter.js +5 -0
  102. package/dist/src/llm/adapter.js.map +1 -0
  103. package/dist/src/llm/model-registry.d.ts +14 -0
  104. package/dist/src/llm/model-registry.d.ts.map +1 -0
  105. package/dist/src/llm/model-registry.js +30 -0
  106. package/dist/src/llm/model-registry.js.map +1 -0
  107. package/dist/src/llm/ollama.d.ts +26 -0
  108. package/dist/src/llm/ollama.d.ts.map +1 -0
  109. package/dist/src/llm/ollama.js +375 -0
  110. package/dist/src/llm/ollama.js.map +1 -0
  111. package/dist/src/llm/token-counter.d.ts +11 -0
  112. package/dist/src/llm/token-counter.d.ts.map +1 -0
  113. package/dist/src/llm/token-counter.js +35 -0
  114. package/dist/src/llm/token-counter.js.map +1 -0
  115. package/dist/src/plugins/mcp-client.d.ts +38 -0
  116. package/dist/src/plugins/mcp-client.d.ts.map +1 -0
  117. package/dist/src/plugins/mcp-client.js +113 -0
  118. package/dist/src/plugins/mcp-client.js.map +1 -0
  119. package/dist/src/plugins/plugin-manager.d.ts +37 -0
  120. package/dist/src/plugins/plugin-manager.d.ts.map +1 -0
  121. package/dist/src/plugins/plugin-manager.js +146 -0
  122. package/dist/src/plugins/plugin-manager.js.map +1 -0
  123. package/dist/src/scheduling/semaphore.d.ts +20 -0
  124. package/dist/src/scheduling/semaphore.d.ts.map +1 -0
  125. package/dist/src/scheduling/semaphore.js +52 -0
  126. package/dist/src/scheduling/semaphore.js.map +1 -0
  127. package/dist/src/scheduling/strategies.d.ts +39 -0
  128. package/dist/src/scheduling/strategies.d.ts.map +1 -0
  129. package/dist/src/scheduling/strategies.js +88 -0
  130. package/dist/src/scheduling/strategies.js.map +1 -0
  131. package/dist/src/session/compaction.d.ts +32 -0
  132. package/dist/src/session/compaction.d.ts.map +1 -0
  133. package/dist/src/session/compaction.js +172 -0
  134. package/dist/src/session/compaction.js.map +1 -0
  135. package/dist/src/session/cost-tracker.d.ts +41 -0
  136. package/dist/src/session/cost-tracker.d.ts.map +1 -0
  137. package/dist/src/session/cost-tracker.js +76 -0
  138. package/dist/src/session/cost-tracker.js.map +1 -0
  139. package/dist/src/session/project-context.d.ts +6 -0
  140. package/dist/src/session/project-context.d.ts.map +1 -0
  141. package/dist/src/session/project-context.js +147 -0
  142. package/dist/src/session/project-context.js.map +1 -0
  143. package/dist/src/session/prompt-builder.d.ts +11 -0
  144. package/dist/src/session/prompt-builder.d.ts.map +1 -0
  145. package/dist/src/session/prompt-builder.js +30 -0
  146. package/dist/src/session/prompt-builder.js.map +1 -0
  147. package/dist/src/session/session-manager.d.ts +32 -0
  148. package/dist/src/session/session-manager.d.ts.map +1 -0
  149. package/dist/src/session/session-manager.js +84 -0
  150. package/dist/src/session/session-manager.js.map +1 -0
  151. package/dist/src/session/session-persistence.d.ts +44 -0
  152. package/dist/src/session/session-persistence.d.ts.map +1 -0
  153. package/dist/src/session/session-persistence.js +150 -0
  154. package/dist/src/session/session-persistence.js.map +1 -0
  155. package/dist/src/session/undo-manager.d.ts +35 -0
  156. package/dist/src/session/undo-manager.d.ts.map +1 -0
  157. package/dist/src/session/undo-manager.js +79 -0
  158. package/dist/src/session/undo-manager.js.map +1 -0
  159. package/dist/src/tools/built-in/ask-user.d.ts +7 -0
  160. package/dist/src/tools/built-in/ask-user.d.ts.map +1 -0
  161. package/dist/src/tools/built-in/ask-user.js +28 -0
  162. package/dist/src/tools/built-in/ask-user.js.map +1 -0
  163. package/dist/src/tools/built-in/bash.d.ts +9 -0
  164. package/dist/src/tools/built-in/bash.d.ts.map +1 -0
  165. package/dist/src/tools/built-in/bash.js +67 -0
  166. package/dist/src/tools/built-in/bash.js.map +1 -0
  167. package/dist/src/tools/built-in/file-edit.d.ts +9 -0
  168. package/dist/src/tools/built-in/file-edit.d.ts.map +1 -0
  169. package/dist/src/tools/built-in/file-edit.js +39 -0
  170. package/dist/src/tools/built-in/file-edit.js.map +1 -0
  171. package/dist/src/tools/built-in/file-read.d.ts +9 -0
  172. package/dist/src/tools/built-in/file-read.d.ts.map +1 -0
  173. package/dist/src/tools/built-in/file-read.js +41 -0
  174. package/dist/src/tools/built-in/file-read.js.map +1 -0
  175. package/dist/src/tools/built-in/file-write.d.ts +8 -0
  176. package/dist/src/tools/built-in/file-write.d.ts.map +1 -0
  177. package/dist/src/tools/built-in/file-write.js +29 -0
  178. package/dist/src/tools/built-in/file-write.js.map +1 -0
  179. package/dist/src/tools/built-in/git-commit.d.ts +12 -0
  180. package/dist/src/tools/built-in/git-commit.d.ts.map +1 -0
  181. package/dist/src/tools/built-in/git-commit.js +96 -0
  182. package/dist/src/tools/built-in/git-commit.js.map +1 -0
  183. package/dist/src/tools/built-in/git-diff.d.ts +8 -0
  184. package/dist/src/tools/built-in/git-diff.d.ts.map +1 -0
  185. package/dist/src/tools/built-in/git-diff.js +43 -0
  186. package/dist/src/tools/built-in/git-diff.js.map +1 -0
  187. package/dist/src/tools/built-in/git-log.d.ts +8 -0
  188. package/dist/src/tools/built-in/git-log.d.ts.map +1 -0
  189. package/dist/src/tools/built-in/git-log.js +39 -0
  190. package/dist/src/tools/built-in/git-log.js.map +1 -0
  191. package/dist/src/tools/built-in/glob.d.ts +8 -0
  192. package/dist/src/tools/built-in/glob.d.ts.map +1 -0
  193. package/dist/src/tools/built-in/glob.js +60 -0
  194. package/dist/src/tools/built-in/glob.js.map +1 -0
  195. package/dist/src/tools/built-in/grep.d.ts +9 -0
  196. package/dist/src/tools/built-in/grep.d.ts.map +1 -0
  197. package/dist/src/tools/built-in/grep.js +115 -0
  198. package/dist/src/tools/built-in/grep.js.map +1 -0
  199. package/dist/src/tools/built-in/index.d.ts +21 -0
  200. package/dist/src/tools/built-in/index.d.ts.map +1 -0
  201. package/dist/src/tools/built-in/index.js +30 -0
  202. package/dist/src/tools/built-in/index.js.map +1 -0
  203. package/dist/src/tools/built-in/think.d.ts +7 -0
  204. package/dist/src/tools/built-in/think.d.ts.map +1 -0
  205. package/dist/src/tools/built-in/think.js +18 -0
  206. package/dist/src/tools/built-in/think.js.map +1 -0
  207. package/dist/src/tools/built-in/web-fetch.d.ts +11 -0
  208. package/dist/src/tools/built-in/web-fetch.d.ts.map +1 -0
  209. package/dist/src/tools/built-in/web-fetch.js +70 -0
  210. package/dist/src/tools/built-in/web-fetch.js.map +1 -0
  211. package/dist/src/tools/executor.d.ts +25 -0
  212. package/dist/src/tools/executor.d.ts.map +1 -0
  213. package/dist/src/tools/executor.js +61 -0
  214. package/dist/src/tools/executor.js.map +1 -0
  215. package/dist/src/tools/registry.d.ts +25 -0
  216. package/dist/src/tools/registry.d.ts.map +1 -0
  217. package/dist/src/tools/registry.js +135 -0
  218. package/dist/src/tools/registry.js.map +1 -0
  219. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../../../src/tools/built-in/web-fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Tool executor with concurrency control and error isolation.
3
+ */
4
+ import type { ToolResult, ToolUseContext } from '../core/types.js';
5
+ import type { ToolRegistry } from './registry.js';
6
+ export interface ToolExecutorOptions {
7
+ maxConcurrency?: number;
8
+ }
9
+ export interface BatchToolCall {
10
+ id: string;
11
+ name: string;
12
+ input: Record<string, unknown>;
13
+ }
14
+ export declare class ToolExecutor {
15
+ private readonly registry;
16
+ private active;
17
+ private readonly maxConcurrency;
18
+ private readonly waitQueue;
19
+ constructor(registry: ToolRegistry, options?: ToolExecutorOptions);
20
+ execute(name: string, input: Record<string, unknown>, context: ToolUseContext): Promise<ToolResult>;
21
+ executeBatch(calls: BatchToolCall[], context: ToolUseContext): Promise<Map<string, ToolResult>>;
22
+ private acquire;
23
+ private release;
24
+ }
25
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/tools/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;gBAEtC,QAAQ,EAAE,YAAY,EAAE,OAAO,GAAE,mBAAwB;IAK/D,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC;IAoBhB,YAAY,CAChB,KAAK,EAAE,aAAa,EAAE,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAUnC,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,OAAO;CAKhB"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Tool executor with concurrency control and error isolation.
3
+ */
4
+ export class ToolExecutor {
5
+ registry;
6
+ active = 0;
7
+ maxConcurrency;
8
+ waitQueue = [];
9
+ constructor(registry, options = {}) {
10
+ this.registry = registry;
11
+ this.maxConcurrency = options.maxConcurrency ?? 4;
12
+ }
13
+ async execute(name, input, context) {
14
+ const tool = this.registry.get(name);
15
+ if (!tool) {
16
+ return { data: `Unknown tool: "${name}"`, isError: true };
17
+ }
18
+ try {
19
+ const parsed = tool.inputSchema.parse(input);
20
+ await this.acquire();
21
+ try {
22
+ return await tool.execute(parsed, context);
23
+ }
24
+ finally {
25
+ this.release();
26
+ }
27
+ }
28
+ catch (err) {
29
+ const message = err instanceof Error ? err.message : String(err);
30
+ return { data: `Tool "${name}" error: ${message}`, isError: true };
31
+ }
32
+ }
33
+ async executeBatch(calls, context) {
34
+ const results = new Map();
35
+ const promises = calls.map(async (call) => {
36
+ const result = await this.execute(call.name, call.input, context);
37
+ results.set(call.id, result);
38
+ });
39
+ await Promise.all(promises);
40
+ return results;
41
+ }
42
+ acquire() {
43
+ if (this.active < this.maxConcurrency) {
44
+ this.active++;
45
+ return Promise.resolve();
46
+ }
47
+ return new Promise((resolve) => {
48
+ this.waitQueue.push(() => {
49
+ this.active++;
50
+ resolve();
51
+ });
52
+ });
53
+ }
54
+ release() {
55
+ this.active--;
56
+ const next = this.waitQueue.shift();
57
+ if (next)
58
+ next();
59
+ }
60
+ }
61
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/tools/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,MAAM,OAAO,YAAY;IACN,QAAQ,CAAc;IAC/B,MAAM,GAAG,CAAC,CAAA;IACD,cAAc,CAAQ;IACtB,SAAS,GAAsB,EAAE,CAAA;IAElD,YAAY,QAAsB,EAAE,UAA+B,EAAE;QACnE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAAY,EACZ,KAA8B,EAC9B,OAAuB;QAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,IAAI,EAAE,kBAAkB,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC3D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC5C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YACpB,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAC5C,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,OAAO,EAAE,CAAA;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAChE,OAAO,EAAE,IAAI,EAAE,SAAS,IAAI,YAAY,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QACpE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,KAAsB,EACtB,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAA;QAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YACjE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC3B,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,OAAO;QACb,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,EAAE,CAAA;YACb,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;gBACvB,IAAI,CAAC,MAAM,EAAE,CAAA;gBACb,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACnC,IAAI,IAAI;YAAE,IAAI,EAAE,CAAA;IAClB,CAAC;CACF"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Tool definition framework for cmdr.
3
+ *
4
+ * Provides defineTool(), ToolRegistry, and zodToJsonSchema utilities.
5
+ */
6
+ import { type ZodSchema } from 'zod';
7
+ import type { ToolDefinition, ToolResult, ToolUseContext, LLMToolDef } from '../core/types.js';
8
+ export type { ToolDefinition, ToolResult, ToolUseContext };
9
+ export declare function defineTool<TInput>(config: {
10
+ name: string;
11
+ description: string;
12
+ inputSchema: ZodSchema<TInput>;
13
+ execute: (input: TInput, context: ToolUseContext) => Promise<ToolResult>;
14
+ }): ToolDefinition<TInput>;
15
+ export declare class ToolRegistry {
16
+ private readonly tools;
17
+ register(tool: ToolDefinition<any>): void;
18
+ get(name: string): ToolDefinition<any> | undefined;
19
+ list(): ToolDefinition<any>[];
20
+ has(name: string): boolean;
21
+ unregister(name: string): void;
22
+ toToolDefs(): LLMToolDef[];
23
+ }
24
+ export declare function zodToJsonSchema(schema: ZodSchema): Record<string, unknown>;
25
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE9F,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA;AAM1D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CACzE,GAAG,cAAc,CAAC,MAAM,CAAC,CAOzB;AAMD,qBAAa,YAAY;IAEvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAG/D,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI;IAQzC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS;IAKlD,IAAI,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;IAI7B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B,UAAU,IAAI,UAAU,EAAE;CAU3B;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1E"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Tool definition framework for cmdr.
3
+ *
4
+ * Provides defineTool(), ToolRegistry, and zodToJsonSchema utilities.
5
+ */
6
+ // ---------------------------------------------------------------------------
7
+ // defineTool
8
+ // ---------------------------------------------------------------------------
9
+ export function defineTool(config) {
10
+ return {
11
+ name: config.name,
12
+ description: config.description,
13
+ inputSchema: config.inputSchema,
14
+ execute: config.execute,
15
+ };
16
+ }
17
+ // ---------------------------------------------------------------------------
18
+ // ToolRegistry
19
+ // ---------------------------------------------------------------------------
20
+ export class ToolRegistry {
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
+ tools = new Map();
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ register(tool) {
25
+ if (this.tools.has(tool.name)) {
26
+ throw new Error(`ToolRegistry: tool "${tool.name}" is already registered.`);
27
+ }
28
+ this.tools.set(tool.name, tool);
29
+ }
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ get(name) {
32
+ return this.tools.get(name);
33
+ }
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ list() {
36
+ return Array.from(this.tools.values());
37
+ }
38
+ has(name) {
39
+ return this.tools.has(name);
40
+ }
41
+ unregister(name) {
42
+ this.tools.delete(name);
43
+ }
44
+ toToolDefs() {
45
+ return Array.from(this.tools.values()).map((tool) => {
46
+ const schema = zodToJsonSchema(tool.inputSchema);
47
+ return {
48
+ name: tool.name,
49
+ description: tool.description,
50
+ inputSchema: schema,
51
+ };
52
+ });
53
+ }
54
+ }
55
+ // ---------------------------------------------------------------------------
56
+ // zodToJsonSchema
57
+ // ---------------------------------------------------------------------------
58
+ export function zodToJsonSchema(schema) {
59
+ return convertZodType(schema);
60
+ }
61
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+ function convertZodType(schema) {
63
+ const def = schema._def;
64
+ const description = def.description;
65
+ const withDesc = (result) => description !== undefined ? { ...result, description } : result;
66
+ const typeName = def.typeName;
67
+ switch (typeName) {
68
+ case 'ZodString':
69
+ return withDesc({ type: 'string' });
70
+ case 'ZodNumber':
71
+ return withDesc({ type: 'number' });
72
+ case 'ZodBigInt':
73
+ return withDesc({ type: 'integer' });
74
+ case 'ZodBoolean':
75
+ return withDesc({ type: 'boolean' });
76
+ case 'ZodNull':
77
+ return withDesc({ type: 'null' });
78
+ case 'ZodUndefined':
79
+ return withDesc({ type: 'null' });
80
+ case 'ZodEnum': {
81
+ const values = def.values;
82
+ return withDesc({ type: 'string', enum: values });
83
+ }
84
+ case 'ZodLiteral': {
85
+ return withDesc({ const: def.value });
86
+ }
87
+ case 'ZodArray': {
88
+ const items = convertZodType(def.type);
89
+ return withDesc({ type: 'array', items });
90
+ }
91
+ case 'ZodObject': {
92
+ const shape = def.shape();
93
+ const properties = {};
94
+ const required = [];
95
+ for (const [key, value] of Object.entries(shape)) {
96
+ properties[key] = convertZodType(value);
97
+ if (value._def.typeName !== 'ZodOptional') {
98
+ required.push(key);
99
+ }
100
+ }
101
+ const result = { type: 'object', properties };
102
+ if (required.length > 0)
103
+ result.required = required;
104
+ return withDesc(result);
105
+ }
106
+ case 'ZodOptional': {
107
+ return convertZodType(def.innerType);
108
+ }
109
+ case 'ZodDefault': {
110
+ return convertZodType(def.innerType);
111
+ }
112
+ case 'ZodNullable': {
113
+ const inner = convertZodType(def.innerType);
114
+ return withDesc({ anyOf: [inner, { type: 'null' }] });
115
+ }
116
+ case 'ZodUnion':
117
+ case 'ZodDiscriminatedUnion': {
118
+ const options = (def.options || []).map((o) => convertZodType(o));
119
+ return withDesc({ anyOf: options });
120
+ }
121
+ case 'ZodRecord': {
122
+ const valueSchema = convertZodType(def.valueType);
123
+ return withDesc({ type: 'object', additionalProperties: valueSchema });
124
+ }
125
+ case 'ZodEffects': {
126
+ return convertZodType(def.schema);
127
+ }
128
+ case 'ZodAny':
129
+ case 'ZodUnknown':
130
+ return withDesc({});
131
+ default:
132
+ return withDesc({});
133
+ }
134
+ }
135
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tools/registry.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "cmdr-agent",
3
+ "version": "1.0.0",
4
+ "description": "Open-source multi-agent coding tool for your terminal. Powered by Ollama.",
5
+ "type": "module",
6
+ "bin": {
7
+ "cmdr": "./dist/bin/cmdr.js"
8
+ },
9
+ "main": "dist/index.js",
10
+ "types": "dist/index.d.ts",
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "dev": "tsc --watch",
14
+ "test": "vitest run",
15
+ "test:watch": "vitest",
16
+ "lint": "tsc --noEmit",
17
+ "start": "node dist/bin/cmdr.js",
18
+ "eval": "npx tsx evals/run-evals.ts",
19
+ "eval:report": "npx tsx evals/report.ts",
20
+ "prepublishOnly": "npm run build"
21
+ },
22
+ "files": [
23
+ "dist",
24
+ "LICENSE",
25
+ "README.md"
26
+ ],
27
+ "engines": {
28
+ "node": ">=20.0.0"
29
+ },
30
+ "homepage": "https://github.com/reyyanxahmed/cmdr#readme",
31
+ "bugs": {
32
+ "url": "https://github.com/reyyanxahmed/cmdr/issues"
33
+ },
34
+ "dependencies": {
35
+ "chalk": "^5.3.0",
36
+ "marked": "^14.0.0",
37
+ "marked-terminal": "^7.2.0",
38
+ "ora": "^8.0.0",
39
+ "smol-toml": "^1.6.1",
40
+ "zod": "^3.23.0"
41
+ },
42
+ "devDependencies": {
43
+ "@types/node": "^22.0.0",
44
+ "typescript": "^5.6.0",
45
+ "vitest": "^2.1.0"
46
+ },
47
+ "keywords": [
48
+ "ai",
49
+ "agent",
50
+ "coding",
51
+ "ollama",
52
+ "multi-agent",
53
+ "terminal",
54
+ "cli",
55
+ "local-llm"
56
+ ],
57
+ "author": "Reyyan Ahmed",
58
+ "license": "MIT",
59
+ "repository": {
60
+ "type": "git",
61
+ "url": "https://github.com/reyyanxahmed/cmdr"
62
+ }
63
+ }