@phuetz/code-buddy 0.1.25 → 0.1.26

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 (253) hide show
  1. package/README.md +1049 -741
  2. package/dist/agent/codebuddy-agent.d.ts +5 -0
  3. package/dist/agent/codebuddy-agent.js +46 -1
  4. package/dist/agent/codebuddy-agent.js.map +1 -1
  5. package/dist/agent/execution/agent-executor.d.ts +12 -0
  6. package/dist/agent/execution/agent-executor.js +147 -6
  7. package/dist/agent/execution/agent-executor.js.map +1 -1
  8. package/dist/agent/lessons-tracker.d.ts +50 -0
  9. package/dist/agent/lessons-tracker.js +234 -0
  10. package/dist/agent/lessons-tracker.js.map +1 -0
  11. package/dist/agent/message-queue.d.ts +39 -2
  12. package/dist/agent/message-queue.js +67 -2
  13. package/dist/agent/message-queue.js.map +1 -1
  14. package/dist/agent/middleware/index.d.ts +1 -0
  15. package/dist/agent/middleware/index.js +1 -0
  16. package/dist/agent/middleware/index.js.map +1 -1
  17. package/dist/agent/middleware/workflow-guard.d.ts +21 -0
  18. package/dist/agent/middleware/workflow-guard.js +94 -0
  19. package/dist/agent/middleware/workflow-guard.js.map +1 -0
  20. package/dist/agent/repo-profiler.d.ts +61 -0
  21. package/dist/agent/repo-profiler.js +295 -0
  22. package/dist/agent/repo-profiler.js.map +1 -0
  23. package/dist/agent/response-constraint.d.ts +61 -0
  24. package/dist/agent/response-constraint.js +91 -0
  25. package/dist/agent/response-constraint.js.map +1 -0
  26. package/dist/agent/todo-tracker.d.ts +67 -0
  27. package/dist/agent/todo-tracker.js +245 -0
  28. package/dist/agent/todo-tracker.js.map +1 -0
  29. package/dist/agent/tool-handler.d.ts +11 -0
  30. package/dist/agent/tool-handler.js +79 -1
  31. package/dist/agent/tool-handler.js.map +1 -1
  32. package/dist/agent/types.d.ts +20 -2
  33. package/dist/agent/wide-research.d.ts +93 -0
  34. package/dist/agent/wide-research.js +232 -0
  35. package/dist/agent/wide-research.js.map +1 -0
  36. package/dist/channels/index.d.ts +2 -0
  37. package/dist/channels/index.js +2 -0
  38. package/dist/channels/index.js.map +1 -1
  39. package/dist/channels/pro/callback-router.d.ts +54 -0
  40. package/dist/channels/pro/callback-router.js +178 -0
  41. package/dist/channels/pro/callback-router.js.map +1 -0
  42. package/dist/channels/pro/ci-watcher.d.ts +86 -0
  43. package/dist/channels/pro/ci-watcher.js +343 -0
  44. package/dist/channels/pro/ci-watcher.js.map +1 -0
  45. package/dist/channels/pro/diff-first.d.ts +63 -0
  46. package/dist/channels/pro/diff-first.js +187 -0
  47. package/dist/channels/pro/diff-first.js.map +1 -0
  48. package/dist/channels/pro/enhanced-commands.d.ts +83 -0
  49. package/dist/channels/pro/enhanced-commands.js +218 -0
  50. package/dist/channels/pro/enhanced-commands.js.map +1 -0
  51. package/dist/channels/pro/index.d.ts +19 -0
  52. package/dist/channels/pro/index.js +21 -0
  53. package/dist/channels/pro/index.js.map +1 -0
  54. package/dist/channels/pro/pro-features.d.ts +79 -0
  55. package/dist/channels/pro/pro-features.js +203 -0
  56. package/dist/channels/pro/pro-features.js.map +1 -0
  57. package/dist/channels/pro/run-commands.d.ts +59 -0
  58. package/dist/channels/pro/run-commands.js +122 -0
  59. package/dist/channels/pro/run-commands.js.map +1 -0
  60. package/dist/channels/pro/run-tracker.d.ts +74 -0
  61. package/dist/channels/pro/run-tracker.js +252 -0
  62. package/dist/channels/pro/run-tracker.js.map +1 -0
  63. package/dist/channels/pro/scoped-auth.d.ts +97 -0
  64. package/dist/channels/pro/scoped-auth.js +340 -0
  65. package/dist/channels/pro/scoped-auth.js.map +1 -0
  66. package/dist/channels/pro/text-formatter.d.ts +27 -0
  67. package/dist/channels/pro/text-formatter.js +269 -0
  68. package/dist/channels/pro/text-formatter.js.map +1 -0
  69. package/dist/channels/pro/types.d.ts +242 -0
  70. package/dist/channels/pro/types.js +14 -0
  71. package/dist/channels/pro/types.js.map +1 -0
  72. package/dist/channels/streaming-policy.d.ts +66 -0
  73. package/dist/channels/streaming-policy.js +266 -0
  74. package/dist/channels/streaming-policy.js.map +1 -0
  75. package/dist/channels/telegram/ci-watcher.d.ts +5 -0
  76. package/dist/channels/telegram/ci-watcher.js +5 -0
  77. package/dist/channels/telegram/ci-watcher.js.map +1 -0
  78. package/dist/channels/telegram/client.d.ts +28 -0
  79. package/dist/channels/telegram/client.js +147 -1
  80. package/dist/channels/telegram/client.js.map +1 -1
  81. package/dist/channels/telegram/diff-first.d.ts +5 -0
  82. package/dist/channels/telegram/diff-first.js +5 -0
  83. package/dist/channels/telegram/diff-first.js.map +1 -0
  84. package/dist/channels/telegram/enhanced-commands.d.ts +6 -0
  85. package/dist/channels/telegram/enhanced-commands.js +6 -0
  86. package/dist/channels/telegram/enhanced-commands.js.map +1 -0
  87. package/dist/channels/telegram/index.d.ts +6 -0
  88. package/dist/channels/telegram/index.js +6 -0
  89. package/dist/channels/telegram/index.js.map +1 -1
  90. package/dist/channels/telegram/pro-formatter.d.ts +30 -0
  91. package/dist/channels/telegram/pro-formatter.js +276 -0
  92. package/dist/channels/telegram/pro-formatter.js.map +1 -0
  93. package/dist/channels/telegram/run-commands.d.ts +5 -0
  94. package/dist/channels/telegram/run-commands.js +6 -0
  95. package/dist/channels/telegram/run-commands.js.map +1 -0
  96. package/dist/channels/telegram/run-tracker.d.ts +5 -0
  97. package/dist/channels/telegram/run-tracker.js +5 -0
  98. package/dist/channels/telegram/run-tracker.js.map +1 -0
  99. package/dist/channels/telegram/scoped-auth.d.ts +6 -0
  100. package/dist/channels/telegram/scoped-auth.js +5 -0
  101. package/dist/channels/telegram/scoped-auth.js.map +1 -0
  102. package/dist/channels/telegram/types.d.ts +34 -0
  103. package/dist/codebuddy/client.js +14 -1
  104. package/dist/codebuddy/client.js.map +1 -1
  105. package/dist/commands/dev/index.d.ts +12 -0
  106. package/dist/commands/dev/index.js +231 -0
  107. package/dist/commands/dev/index.js.map +1 -0
  108. package/dist/commands/dev/workflows.d.ts +31 -0
  109. package/dist/commands/dev/workflows.js +214 -0
  110. package/dist/commands/dev/workflows.js.map +1 -0
  111. package/dist/commands/execpolicy.d.ts +17 -0
  112. package/dist/commands/execpolicy.js +155 -0
  113. package/dist/commands/execpolicy.js.map +1 -0
  114. package/dist/commands/knowledge.d.ts +13 -0
  115. package/dist/commands/knowledge.js +142 -0
  116. package/dist/commands/knowledge.js.map +1 -0
  117. package/dist/commands/lessons.d.ts +11 -0
  118. package/dist/commands/lessons.js +129 -0
  119. package/dist/commands/lessons.js.map +1 -0
  120. package/dist/commands/pairing.d.ts +14 -0
  121. package/dist/commands/pairing.js +132 -0
  122. package/dist/commands/pairing.js.map +1 -0
  123. package/dist/commands/research/index.d.ts +13 -0
  124. package/dist/commands/research/index.js +91 -0
  125. package/dist/commands/research/index.js.map +1 -0
  126. package/dist/commands/run-cli/index.d.ts +11 -0
  127. package/dist/commands/run-cli/index.js +49 -0
  128. package/dist/commands/run-cli/index.js.map +1 -0
  129. package/dist/commands/todos.d.ts +9 -0
  130. package/dist/commands/todos.js +119 -0
  131. package/dist/commands/todos.js.map +1 -0
  132. package/dist/config/toml-config.d.ts +21 -0
  133. package/dist/config/toml-config.js +15 -0
  134. package/dist/config/toml-config.js.map +1 -1
  135. package/dist/context/enhanced-compression.js +12 -1
  136. package/dist/context/enhanced-compression.js.map +1 -1
  137. package/dist/context/observation-variator.d.ts +44 -0
  138. package/dist/context/observation-variator.js +83 -0
  139. package/dist/context/observation-variator.js.map +1 -0
  140. package/dist/context/precompaction-flush.d.ts +40 -0
  141. package/dist/context/precompaction-flush.js +134 -0
  142. package/dist/context/precompaction-flush.js.map +1 -0
  143. package/dist/context/restorable-compression.d.ts +80 -0
  144. package/dist/context/restorable-compression.js +228 -0
  145. package/dist/context/restorable-compression.js.map +1 -0
  146. package/dist/daemon/daily-reset.d.ts +77 -0
  147. package/dist/daemon/daily-reset.js +175 -0
  148. package/dist/daemon/daily-reset.js.map +1 -0
  149. package/dist/daemon/index.d.ts +1 -0
  150. package/dist/daemon/index.js +1 -0
  151. package/dist/daemon/index.js.map +1 -1
  152. package/dist/index.js +53 -0
  153. package/dist/index.js.map +1 -1
  154. package/dist/knowledge/knowledge-manager.d.ts +77 -0
  155. package/dist/knowledge/knowledge-manager.js +244 -0
  156. package/dist/knowledge/knowledge-manager.js.map +1 -0
  157. package/dist/observability/run-store.d.ts +133 -0
  158. package/dist/observability/run-store.js +419 -0
  159. package/dist/observability/run-store.js.map +1 -0
  160. package/dist/observability/run-viewer.d.ts +33 -0
  161. package/dist/observability/run-viewer.js +254 -0
  162. package/dist/observability/run-viewer.js.map +1 -0
  163. package/dist/optimization/cache-breakpoints.d.ts +52 -0
  164. package/dist/optimization/cache-breakpoints.js +97 -0
  165. package/dist/optimization/cache-breakpoints.js.map +1 -0
  166. package/dist/persistence/session-store.d.ts +3 -1
  167. package/dist/persistence/session-store.js +1 -1
  168. package/dist/persistence/session-store.js.map +1 -1
  169. package/dist/prompts/system-base.js +51 -7
  170. package/dist/prompts/system-base.js.map +1 -1
  171. package/dist/prompts/variation-injector.d.ts +55 -0
  172. package/dist/prompts/variation-injector.js +171 -0
  173. package/dist/prompts/variation-injector.js.map +1 -0
  174. package/dist/prompts/workflow-rules.d.ts +10 -0
  175. package/dist/prompts/workflow-rules.js +79 -0
  176. package/dist/prompts/workflow-rules.js.map +1 -0
  177. package/dist/sandbox/execpolicy.d.ts +45 -0
  178. package/dist/sandbox/execpolicy.js +80 -0
  179. package/dist/sandbox/execpolicy.js.map +1 -1
  180. package/dist/sandbox/os-sandbox.d.ts +25 -0
  181. package/dist/sandbox/os-sandbox.js +73 -0
  182. package/dist/sandbox/os-sandbox.js.map +1 -1
  183. package/dist/security/security-audit.d.ts +10 -0
  184. package/dist/security/security-audit.js +116 -0
  185. package/dist/security/security-audit.js.map +1 -1
  186. package/dist/security/shell-env-policy.d.ts +45 -0
  187. package/dist/security/shell-env-policy.js +141 -0
  188. package/dist/security/shell-env-policy.js.map +1 -0
  189. package/dist/security/ssrf-guard.d.ts +61 -0
  190. package/dist/security/ssrf-guard.js +382 -0
  191. package/dist/security/ssrf-guard.js.map +1 -0
  192. package/dist/security/write-policy.d.ts +57 -0
  193. package/dist/security/write-policy.js +117 -0
  194. package/dist/security/write-policy.js.map +1 -0
  195. package/dist/services/prompt-builder.js +37 -0
  196. package/dist/services/prompt-builder.js.map +1 -1
  197. package/dist/themes/theme-schema.d.ts +10 -10
  198. package/dist/tools/ask-human-tool.d.ts +62 -0
  199. package/dist/tools/ask-human-tool.js +112 -0
  200. package/dist/tools/ask-human-tool.js.map +1 -0
  201. package/dist/tools/bash/bash-tool.d.ts +15 -0
  202. package/dist/tools/bash/bash-tool.js +62 -0
  203. package/dist/tools/bash/bash-tool.js.map +1 -1
  204. package/dist/tools/bash/command-validator.d.ts +1 -0
  205. package/dist/tools/bash/command-validator.js +5 -0
  206. package/dist/tools/bash/command-validator.js.map +1 -1
  207. package/dist/tools/create-skill-tool.d.ts +87 -0
  208. package/dist/tools/create-skill-tool.js +142 -0
  209. package/dist/tools/create-skill-tool.js.map +1 -0
  210. package/dist/tools/fetch-tool.js +5 -3
  211. package/dist/tools/fetch-tool.js.map +1 -1
  212. package/dist/tools/index.d.ts +1 -0
  213. package/dist/tools/index.js +1 -0
  214. package/dist/tools/index.js.map +1 -1
  215. package/dist/tools/plan-tool.d.ts +22 -0
  216. package/dist/tools/plan-tool.js +128 -0
  217. package/dist/tools/plan-tool.js.map +1 -0
  218. package/dist/tools/registry/attention-tools.d.ts +32 -0
  219. package/dist/tools/registry/attention-tools.js +225 -0
  220. package/dist/tools/registry/attention-tools.js.map +1 -0
  221. package/dist/tools/registry/index.d.ts +9 -1
  222. package/dist/tools/registry/index.js +30 -2
  223. package/dist/tools/registry/index.js.map +1 -1
  224. package/dist/tools/registry/knowledge-tools.d.ts +46 -0
  225. package/dist/tools/registry/knowledge-tools.js +293 -0
  226. package/dist/tools/registry/knowledge-tools.js.map +1 -0
  227. package/dist/tools/registry/lessons-tools.d.ts +48 -0
  228. package/dist/tools/registry/lessons-tools.js +359 -0
  229. package/dist/tools/registry/lessons-tools.js.map +1 -0
  230. package/dist/tools/registry/plan-tools.d.ts +2 -0
  231. package/dist/tools/registry/plan-tools.js +7 -0
  232. package/dist/tools/registry/plan-tools.js.map +1 -0
  233. package/dist/tools/registry/script-tools.d.ts +2 -0
  234. package/dist/tools/registry/script-tools.js +7 -0
  235. package/dist/tools/registry/script-tools.js.map +1 -0
  236. package/dist/tools/registry/tool-aliases.d.ts +44 -0
  237. package/dist/tools/registry/tool-aliases.js +130 -0
  238. package/dist/tools/registry/tool-aliases.js.map +1 -0
  239. package/dist/tools/run-script-tool.d.ts +13 -0
  240. package/dist/tools/run-script-tool.js +146 -0
  241. package/dist/tools/run-script-tool.js.map +1 -0
  242. package/dist/tools/web-search.d.ts +25 -0
  243. package/dist/tools/web-search.js +68 -6
  244. package/dist/tools/web-search.js.map +1 -1
  245. package/dist/utils/config-validation/schema.d.ts +2 -2
  246. package/dist/utils/debug-logger.d.ts +1 -1
  247. package/dist/utils/stable-json.d.ts +27 -0
  248. package/dist/utils/stable-json.js +50 -0
  249. package/dist/utils/stable-json.js.map +1 -0
  250. package/dist/webhooks/webhook-manager.d.ts +7 -0
  251. package/dist/webhooks/webhook-manager.js +29 -0
  252. package/dist/webhooks/webhook-manager.js.map +1 -1
  253. package/package.json +1 -1
@@ -19,9 +19,17 @@ export { KubernetesOperationTool, createKubernetesTools, resetKubernetesInstance
19
19
  export { GitOperationTool, createGitTools, resetGitInstance, } from './git-tools.js';
20
20
  export { BrowserExecuteTool, ReasoningExecuteTool, createMiscTools, resetMiscInstances, } from './misc-tools.js';
21
21
  export { ProcessOperationTool, createProcessTools, resetProcessInstance, } from './process-tools.js';
22
+ export { createScriptTools, } from './script-tools.js';
23
+ export { createPlanTools, } from './plan-tools.js';
24
+ export { KnowledgeSearchTool, KnowledgeAddTool, AskHumanExecuteTool, CreateSkillExecuteTool, createKnowledgeTools, } from './knowledge-tools.js';
25
+ export { TodoAttentionTool, RestoreContextTool, createAttentionTools, } from './attention-tools.js';
26
+ export { LessonsAddTool, LessonsSearchTool, LessonsListTool, TaskVerifyTool, createLessonsTools, } from './lessons-tools.js';
27
+ export { createAliasTools, toCanonicalName, toLegacyName, TOOL_ALIASES, CANONICAL_NAME, } from './tool-aliases.js';
22
28
  export type { JsonSchema, JsonSchemaProperty, ToolSchema, ToolCategoryType, ITool, IToolMetadata, IValidationResult, ToolExecutorFn, IToolExecutionContext, IToolExecutionResult, IToolRegistrationOptions, IRegisteredTool, IToolQueryOptions, IToolRegistry, IRegistryStats, IToolRegistryEvents, ToolRegistryEventHandler, } from './types.js';
23
29
  /**
24
- * Create all tool instances for registration (async for lazy loading)
30
+ * Create all tool instances for registration (async for lazy loading).
31
+ * Also registers canonical-prefix alias tools (shell_*, file_*, browser_*, etc.)
32
+ * for Codex-style tool naming convention.
25
33
  */
26
34
  export declare function createAllToolsAsync(): Promise<ITool[]>;
27
35
  import type { ITool } from './types.js';
@@ -30,8 +30,22 @@ export { GitOperationTool, createGitTools, resetGitInstance, } from './git-tools
30
30
  export { BrowserExecuteTool, ReasoningExecuteTool, createMiscTools, resetMiscInstances, } from './misc-tools.js';
31
31
  // Tool Adapters - Process
32
32
  export { ProcessOperationTool, createProcessTools, resetProcessInstance, } from './process-tools.js';
33
+ // Tool Adapters - Script
34
+ export { createScriptTools, } from './script-tools.js';
35
+ // Tool Adapters - Plan
36
+ export { createPlanTools, } from './plan-tools.js';
37
+ // Tool Adapters - Knowledge, AskHuman, CreateSkill
38
+ export { KnowledgeSearchTool, KnowledgeAddTool, AskHumanExecuteTool, CreateSkillExecuteTool, createKnowledgeTools, } from './knowledge-tools.js';
39
+ // Tool Adapters - Attention (Todo + RestoreContext)
40
+ export { TodoAttentionTool, RestoreContextTool, createAttentionTools, } from './attention-tools.js';
41
+ // Tool Adapters - Lessons (self-improvement loop + verification contract)
42
+ export { LessonsAddTool, LessonsSearchTool, LessonsListTool, TaskVerifyTool, createLessonsTools, } from './lessons-tools.js';
43
+ // Tool Prefix Naming Convention — Codex-inspired canonical aliases
44
+ export { createAliasTools, toCanonicalName, toLegacyName, TOOL_ALIASES, CANONICAL_NAME, } from './tool-aliases.js';
33
45
  /**
34
- * Create all tool instances for registration (async for lazy loading)
46
+ * Create all tool instances for registration (async for lazy loading).
47
+ * Also registers canonical-prefix alias tools (shell_*, file_*, browser_*, etc.)
48
+ * for Codex-style tool naming convention.
35
49
  */
36
50
  export async function createAllToolsAsync() {
37
51
  const { createTextEditorTools } = await import('./text-editor-tools.js');
@@ -44,7 +58,13 @@ export async function createAllToolsAsync() {
44
58
  const { createGitTools } = await import('./git-tools.js');
45
59
  const { createMiscTools } = await import('./misc-tools.js');
46
60
  const { createProcessTools } = await import('./process-tools.js');
47
- return [
61
+ const { createKnowledgeTools } = await import('./knowledge-tools.js');
62
+ const { createScriptTools } = await import('./script-tools.js');
63
+ const { createPlanTools } = await import('./plan-tools.js');
64
+ const { createAttentionTools } = await import('./attention-tools.js');
65
+ const { createAliasTools } = await import('./tool-aliases.js');
66
+ const { createLessonsTools } = await import('./lessons-tools.js');
67
+ const primaryTools = [
48
68
  ...createTextEditorTools(),
49
69
  ...createBashTools(),
50
70
  ...createSearchTools(),
@@ -55,6 +75,14 @@ export async function createAllToolsAsync() {
55
75
  ...createGitTools(),
56
76
  ...createMiscTools(),
57
77
  ...createProcessTools(),
78
+ ...createKnowledgeTools(),
79
+ ...createScriptTools(),
80
+ ...createPlanTools(),
81
+ ...createAttentionTools(),
82
+ ...createLessonsTools(),
58
83
  ];
84
+ // Register backward-compat canonical-prefix aliases (shell_exec, file_read, etc.)
85
+ const aliasTools = createAliasTools(primaryTools);
86
+ return [...primaryTools, ...aliasTools];
59
87
  }
60
88
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/registry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,WAAW;AACX,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEvG,8BAA8B;AAC9B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,uBAAuB;AACvB,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,yBAAyB;AACzB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,sBAAsB;AACtB,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,uBAAuB;AACvB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,yBAAyB;AACzB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,6BAA6B;AAC7B,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,sBAAsB;AACtB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,4CAA4C;AAC5C,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,0BAA0B;AAC1B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AA4B5B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACzE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5D,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAChE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC1D,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5D,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAChE,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACxE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC1D,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5D,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAElE,OAAO;QACL,GAAG,qBAAqB,EAAE;QAC1B,GAAG,eAAe,EAAE;QACpB,GAAG,iBAAiB,EAAE;QACtB,GAAG,cAAc,EAAE;QACnB,GAAG,eAAe,EAAE;QACpB,GAAG,iBAAiB,EAAE;QACtB,GAAG,qBAAqB,EAAE;QAC1B,GAAG,cAAc,EAAE;QACnB,GAAG,eAAe,EAAE;QACpB,GAAG,kBAAkB,EAAE;KACxB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/registry/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Knowledge Tool Adapters
3
+ *
4
+ * ITool-compliant adapters exposing the KnowledgeManager to the agent:
5
+ * - knowledge_search: semantic keyword search across loaded knowledge bases
6
+ * - knowledge_add: create a new knowledge entry from within a session
7
+ */
8
+ import type { ToolResult } from '../../types/index.js';
9
+ import type { ITool, ToolSchema, IToolMetadata, IValidationResult } from './types.js';
10
+ export declare class KnowledgeSearchTool implements ITool {
11
+ readonly name = "knowledge_search";
12
+ readonly description = "Search the agent knowledge base for domain knowledge, conventions, or procedures. Returns ranked excerpts from loaded Knowledge.md files.";
13
+ execute(input: Record<string, unknown>): Promise<ToolResult>;
14
+ getSchema(): ToolSchema;
15
+ validate(input: unknown): IValidationResult;
16
+ getMetadata(): IToolMetadata;
17
+ isAvailable(): boolean;
18
+ }
19
+ export declare class KnowledgeAddTool implements ITool {
20
+ readonly name = "knowledge_add";
21
+ readonly description = "Add a new entry to the user-level knowledge base (~/.codebuddy/knowledge/). Use this to persist learned conventions, procedures, or domain knowledge across sessions.";
22
+ execute(input: Record<string, unknown>): Promise<ToolResult>;
23
+ getSchema(): ToolSchema;
24
+ validate(input: unknown): IValidationResult;
25
+ getMetadata(): IToolMetadata;
26
+ isAvailable(): boolean;
27
+ }
28
+ export declare class AskHumanExecuteTool implements ITool {
29
+ readonly name = "ask_human";
30
+ readonly description = "Pause execution and ask the user a clarifying question. Use when you need information that cannot be inferred from context, or when multiple interpretations exist. Returns the user's response.";
31
+ execute(input: Record<string, unknown>): Promise<ToolResult>;
32
+ getSchema(): ToolSchema;
33
+ validate(input: unknown): IValidationResult;
34
+ getMetadata(): IToolMetadata;
35
+ isAvailable(): boolean;
36
+ }
37
+ export declare class CreateSkillExecuteTool implements ITool {
38
+ readonly name = "create_skill";
39
+ readonly description = "Create a new SKILL.md file in the workspace skills directory. Use this to codify reusable workflows or procedures for future sessions. Skills are hot-reloaded immediately.";
40
+ execute(input: Record<string, unknown>): Promise<ToolResult>;
41
+ getSchema(): ToolSchema;
42
+ validate(input: unknown): IValidationResult;
43
+ getMetadata(): IToolMetadata;
44
+ isAvailable(): boolean;
45
+ }
46
+ export declare function createKnowledgeTools(): ITool[];
@@ -0,0 +1,293 @@
1
+ /**
2
+ * Knowledge Tool Adapters
3
+ *
4
+ * ITool-compliant adapters exposing the KnowledgeManager to the agent:
5
+ * - knowledge_search: semantic keyword search across loaded knowledge bases
6
+ * - knowledge_add: create a new knowledge entry from within a session
7
+ */
8
+ import { getKnowledgeManager } from '../../knowledge/knowledge-manager.js';
9
+ // ============================================================================
10
+ // knowledge_search
11
+ // ============================================================================
12
+ export class KnowledgeSearchTool {
13
+ name = 'knowledge_search';
14
+ description = 'Search the agent knowledge base for domain knowledge, conventions, or procedures. Returns ranked excerpts from loaded Knowledge.md files.';
15
+ async execute(input) {
16
+ const km = getKnowledgeManager();
17
+ if (!km.isLoaded) {
18
+ await km.load();
19
+ }
20
+ const query = input.query;
21
+ const limit = input.limit ?? 5;
22
+ const scope = input.scope;
23
+ const results = km.search(query, limit);
24
+ if (results.length === 0) {
25
+ // Try to give context about what's loaded
26
+ const all = km.list();
27
+ if (all.length === 0) {
28
+ return {
29
+ success: true,
30
+ output: 'No knowledge entries loaded. Create a Knowledge.md file in the project root or ~/.codebuddy/knowledge/ to add domain knowledge.',
31
+ };
32
+ }
33
+ return {
34
+ success: true,
35
+ output: `No matches found for "${query}". Available knowledge entries: ${all.map(e => e.title).join(', ')}`,
36
+ };
37
+ }
38
+ const lines = [`Found ${results.length} knowledge entries for "${query}":\n`];
39
+ for (const { entry, score, excerpt } of results) {
40
+ lines.push(`### ${entry.title} (score: ${score.toFixed(2)}, source: ${entry.source})`);
41
+ if (entry.tags.length > 0) {
42
+ lines.push(`Tags: ${entry.tags.join(', ')}`);
43
+ }
44
+ lines.push('');
45
+ lines.push(excerpt);
46
+ lines.push('');
47
+ }
48
+ return { success: true, output: lines.join('\n') };
49
+ }
50
+ getSchema() {
51
+ return {
52
+ name: this.name,
53
+ description: this.description,
54
+ parameters: {
55
+ type: 'object',
56
+ properties: {
57
+ query: {
58
+ type: 'string',
59
+ description: 'Keywords or phrase to search for in knowledge bases',
60
+ },
61
+ limit: {
62
+ type: 'number',
63
+ description: 'Maximum number of results to return (default: 5)',
64
+ },
65
+ scope: {
66
+ type: 'string',
67
+ description: 'Filter by agent mode scope (e.g. "code", "review")',
68
+ },
69
+ },
70
+ required: ['query'],
71
+ },
72
+ };
73
+ }
74
+ validate(input) {
75
+ if (typeof input !== 'object' || input === null) {
76
+ return { valid: false, errors: ['Input must be an object'] };
77
+ }
78
+ const data = input;
79
+ if (typeof data.query !== 'string' || !data.query.trim()) {
80
+ return { valid: false, errors: ['query must be a non-empty string'] };
81
+ }
82
+ return { valid: true };
83
+ }
84
+ getMetadata() {
85
+ return {
86
+ name: this.name,
87
+ description: this.description,
88
+ category: 'utility',
89
+ keywords: ['knowledge', 'search', 'conventions', 'docs', 'domain'],
90
+ priority: 4,
91
+ requiresConfirmation: false,
92
+ modifiesFiles: false,
93
+ makesNetworkRequests: false,
94
+ };
95
+ }
96
+ isAvailable() {
97
+ return true;
98
+ }
99
+ }
100
+ // ============================================================================
101
+ // knowledge_add
102
+ // ============================================================================
103
+ export class KnowledgeAddTool {
104
+ name = 'knowledge_add';
105
+ description = 'Add a new entry to the user-level knowledge base (~/.codebuddy/knowledge/). Use this to persist learned conventions, procedures, or domain knowledge across sessions.';
106
+ async execute(input) {
107
+ const km = getKnowledgeManager();
108
+ const title = input.title;
109
+ const content = input.content;
110
+ const tags = input.tags ?? [];
111
+ const scope = input.scope ?? [];
112
+ try {
113
+ const filePath = await km.add(title, content, tags, scope);
114
+ return {
115
+ success: true,
116
+ output: `Knowledge entry "${title}" saved to ${filePath}`,
117
+ };
118
+ }
119
+ catch (err) {
120
+ return {
121
+ success: false,
122
+ error: `Failed to save knowledge: ${err instanceof Error ? err.message : String(err)}`,
123
+ };
124
+ }
125
+ }
126
+ getSchema() {
127
+ return {
128
+ name: this.name,
129
+ description: this.description,
130
+ parameters: {
131
+ type: 'object',
132
+ properties: {
133
+ title: {
134
+ type: 'string',
135
+ description: 'Title for this knowledge entry (becomes the filename)',
136
+ },
137
+ content: {
138
+ type: 'string',
139
+ description: 'Markdown content of the knowledge entry',
140
+ },
141
+ tags: {
142
+ type: 'array',
143
+ items: { type: 'string' },
144
+ description: 'Tags for discovery',
145
+ },
146
+ scope: {
147
+ type: 'array',
148
+ items: { type: 'string' },
149
+ description: 'Agent modes this applies to (e.g. ["code", "review"])',
150
+ },
151
+ },
152
+ required: ['title', 'content'],
153
+ },
154
+ };
155
+ }
156
+ validate(input) {
157
+ if (typeof input !== 'object' || input === null) {
158
+ return { valid: false, errors: ['Input must be an object'] };
159
+ }
160
+ const data = input;
161
+ if (typeof data.title !== 'string' || !data.title.trim()) {
162
+ return { valid: false, errors: ['title must be a non-empty string'] };
163
+ }
164
+ if (typeof data.content !== 'string' || !data.content.trim()) {
165
+ return { valid: false, errors: ['content must be a non-empty string'] };
166
+ }
167
+ return { valid: true };
168
+ }
169
+ getMetadata() {
170
+ return {
171
+ name: this.name,
172
+ description: this.description,
173
+ category: 'utility',
174
+ keywords: ['knowledge', 'add', 'save', 'persist', 'conventions'],
175
+ priority: 3,
176
+ requiresConfirmation: false,
177
+ modifiesFiles: true,
178
+ makesNetworkRequests: false,
179
+ };
180
+ }
181
+ isAvailable() {
182
+ return true;
183
+ }
184
+ }
185
+ // ============================================================================
186
+ // AskHuman ITool adapter
187
+ // ============================================================================
188
+ import { getAskHumanTool } from '../ask-human-tool.js';
189
+ export class AskHumanExecuteTool {
190
+ name = 'ask_human';
191
+ description = "Pause execution and ask the user a clarifying question. Use when you need information that cannot be inferred from context, or when multiple interpretations exist. Returns the user's response.";
192
+ async execute(input) {
193
+ return await getAskHumanTool().execute({
194
+ question: input.question,
195
+ options: input.options,
196
+ timeout: input.timeout,
197
+ default: input.default,
198
+ });
199
+ }
200
+ getSchema() {
201
+ return getAskHumanTool().getSchema();
202
+ }
203
+ validate(input) {
204
+ if (typeof input !== 'object' || input === null) {
205
+ return { valid: false, errors: ['Input must be an object'] };
206
+ }
207
+ const data = input;
208
+ if (typeof data.question !== 'string' || !data.question.trim()) {
209
+ return { valid: false, errors: ['question must be a non-empty string'] };
210
+ }
211
+ return { valid: true };
212
+ }
213
+ getMetadata() {
214
+ return {
215
+ name: this.name,
216
+ description: this.description,
217
+ category: 'utility',
218
+ keywords: ['ask', 'human', 'input', 'clarify', 'pause', 'question'],
219
+ priority: 6,
220
+ requiresConfirmation: false,
221
+ modifiesFiles: false,
222
+ makesNetworkRequests: false,
223
+ };
224
+ }
225
+ isAvailable() {
226
+ return true;
227
+ }
228
+ }
229
+ // ============================================================================
230
+ // CreateSkill ITool adapter
231
+ // ============================================================================
232
+ import { getCreateSkillTool } from '../create-skill-tool.js';
233
+ export class CreateSkillExecuteTool {
234
+ name = 'create_skill';
235
+ description = 'Create a new SKILL.md file in the workspace skills directory. Use this to codify reusable workflows or procedures for future sessions. Skills are hot-reloaded immediately.';
236
+ async execute(input) {
237
+ return await getCreateSkillTool().execute({
238
+ name: input.name,
239
+ description: input.description,
240
+ body: input.body,
241
+ tags: input.tags,
242
+ env: input.env,
243
+ requires: input.requires,
244
+ overwrite: input.overwrite,
245
+ });
246
+ }
247
+ getSchema() {
248
+ return getCreateSkillTool().getSchema();
249
+ }
250
+ validate(input) {
251
+ if (typeof input !== 'object' || input === null) {
252
+ return { valid: false, errors: ['Input must be an object'] };
253
+ }
254
+ const data = input;
255
+ if (typeof data.name !== 'string' || !data.name.trim()) {
256
+ return { valid: false, errors: ['name is required'] };
257
+ }
258
+ if (typeof data.description !== 'string' || !data.description.trim()) {
259
+ return { valid: false, errors: ['description is required'] };
260
+ }
261
+ if (typeof data.body !== 'string' || !data.body.trim()) {
262
+ return { valid: false, errors: ['body is required'] };
263
+ }
264
+ return { valid: true };
265
+ }
266
+ getMetadata() {
267
+ return {
268
+ name: this.name,
269
+ description: this.description,
270
+ category: 'utility',
271
+ keywords: ['skill', 'create', 'write', 'self-author', 'extension', 'workflow'],
272
+ priority: 3,
273
+ requiresConfirmation: false,
274
+ modifiesFiles: true,
275
+ makesNetworkRequests: false,
276
+ };
277
+ }
278
+ isAvailable() {
279
+ return true;
280
+ }
281
+ }
282
+ // ============================================================================
283
+ // Factory
284
+ // ============================================================================
285
+ export function createKnowledgeTools() {
286
+ return [
287
+ new KnowledgeSearchTool(),
288
+ new KnowledgeAddTool(),
289
+ new AskHumanExecuteTool(),
290
+ new CreateSkillExecuteTool(),
291
+ ];
292
+ }
293
+ //# sourceMappingURL=knowledge-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-tools.js","sourceRoot":"","sources":["../../../src/tools/registry/knowledge-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Lessons Tool Adapters
3
+ *
4
+ * ITool-compliant adapters for the self-improvement loop:
5
+ * - LessonsAddTool (`lessons_add`) — capture a lesson after a correction
6
+ * - LessonsSearchTool (`lessons_search`) — find relevant lessons before a task
7
+ * - LessonsListTool (`lessons_list`) — list all lessons (with optional filter)
8
+ * - TaskVerifyTool (`task_verify`) — run tsc/tests/lint verification contract
9
+ */
10
+ import type { ToolResult } from '../../types/index.js';
11
+ import type { ITool, ToolSchema, IToolMetadata, IValidationResult } from './types.js';
12
+ export declare class LessonsAddTool implements ITool {
13
+ readonly name = "lessons_add";
14
+ readonly description: string;
15
+ execute(input: Record<string, unknown>): Promise<ToolResult>;
16
+ getSchema(): ToolSchema;
17
+ validate(input: Record<string, unknown>): IValidationResult;
18
+ getMetadata(): IToolMetadata;
19
+ isAvailable(): Promise<boolean>;
20
+ }
21
+ export declare class LessonsSearchTool implements ITool {
22
+ readonly name = "lessons_search";
23
+ readonly description: string;
24
+ execute(input: Record<string, unknown>): Promise<ToolResult>;
25
+ getSchema(): ToolSchema;
26
+ validate(input: Record<string, unknown>): IValidationResult;
27
+ getMetadata(): IToolMetadata;
28
+ isAvailable(): Promise<boolean>;
29
+ }
30
+ export declare class LessonsListTool implements ITool {
31
+ readonly name = "lessons_list";
32
+ readonly description = "List all lessons learned, optionally filtered by category (PATTERN|RULE|CONTEXT|INSIGHT).";
33
+ execute(input: Record<string, unknown>): Promise<ToolResult>;
34
+ getSchema(): ToolSchema;
35
+ validate(_input: Record<string, unknown>): IValidationResult;
36
+ getMetadata(): IToolMetadata;
37
+ isAvailable(): Promise<boolean>;
38
+ }
39
+ export declare class TaskVerifyTool implements ITool {
40
+ readonly name = "task_verify";
41
+ readonly description: string;
42
+ execute(input: Record<string, unknown>): Promise<ToolResult>;
43
+ getSchema(): ToolSchema;
44
+ validate(_input: Record<string, unknown>): IValidationResult;
45
+ getMetadata(): IToolMetadata;
46
+ isAvailable(): Promise<boolean>;
47
+ }
48
+ export declare function createLessonsTools(): ITool[];