@phuetz/code-buddy 0.1.0 → 0.1.2

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 (305) hide show
  1. package/.codebuddy/skills/bundled/brave-search/SKILL.md +490 -0
  2. package/.codebuddy/skills/bundled/exa-search/SKILL.md +1122 -0
  3. package/.codebuddy/skills/bundled/perplexity/SKILL.md +748 -0
  4. package/.codebuddy/skills/bundled/playwright/SKILL.md +520 -0
  5. package/.codebuddy/skills/bundled/puppeteer/SKILL.md +708 -0
  6. package/.codebuddy/skills/bundled/web-fetch/SKILL.md +1003 -0
  7. package/README.md +56 -0
  8. package/dist/agent/agent-state.d.ts +3 -3
  9. package/dist/agent/agent-state.js +6 -6
  10. package/dist/agent/agent-state.js.map +1 -1
  11. package/dist/agent/base-agent.d.ts +4 -4
  12. package/dist/agent/base-agent.js +22 -9
  13. package/dist/agent/base-agent.js.map +1 -1
  14. package/dist/agent/cache-trace.d.ts +56 -0
  15. package/dist/agent/cache-trace.js +98 -0
  16. package/dist/agent/cache-trace.js.map +1 -0
  17. package/dist/agent/codebuddy-agent.js +4 -2
  18. package/dist/agent/codebuddy-agent.js.map +1 -1
  19. package/dist/agent/execution/agent-executor.d.ts +4 -4
  20. package/dist/agent/execution/agent-executor.js +46 -14
  21. package/dist/agent/execution/agent-executor.js.map +1 -1
  22. package/dist/agent/facades/agent-context-facade.js +1 -3
  23. package/dist/agent/facades/agent-context-facade.js.map +1 -1
  24. package/dist/agent/facades/message-history-manager.js +14 -12
  25. package/dist/agent/facades/message-history-manager.js.map +1 -1
  26. package/dist/agent/facades/session-facade.d.ts +3 -3
  27. package/dist/agent/facades/session-facade.js +6 -6
  28. package/dist/agent/facades/session-facade.js.map +1 -1
  29. package/dist/agent/history-repair.d.ts +37 -0
  30. package/dist/agent/history-repair.js +124 -0
  31. package/dist/agent/history-repair.js.map +1 -0
  32. package/dist/agent/index.d.ts +3 -3
  33. package/dist/agent/index.js +3 -3
  34. package/dist/agent/index.js.map +1 -1
  35. package/dist/agent/isolation/agent-workspace.d.ts +1 -0
  36. package/dist/agent/isolation/agent-workspace.js +10 -0
  37. package/dist/agent/isolation/agent-workspace.js.map +1 -1
  38. package/dist/agent/specialized/archive-agent.d.ts +3 -0
  39. package/dist/agent/specialized/archive-agent.js +71 -31
  40. package/dist/agent/specialized/archive-agent.js.map +1 -1
  41. package/dist/agent/specialized/index.d.ts +9 -8
  42. package/dist/agent/specialized/index.js +16 -8
  43. package/dist/agent/specialized/index.js.map +1 -1
  44. package/dist/agent/specialized/security-review/agent.js +19 -8
  45. package/dist/agent/specialized/security-review/agent.js.map +1 -1
  46. package/dist/agent/tool-executor.js +5 -0
  47. package/dist/agent/tool-executor.js.map +1 -1
  48. package/dist/agent/turn-diff-tracker.d.ts +79 -0
  49. package/dist/agent/turn-diff-tracker.js +195 -0
  50. package/dist/agent/turn-diff-tracker.js.map +1 -0
  51. package/dist/browser/controller.js +8 -4
  52. package/dist/browser/controller.js.map +1 -1
  53. package/dist/browser-automation/browser-manager.js +8 -1
  54. package/dist/browser-automation/browser-manager.js.map +1 -1
  55. package/dist/checkpoints/checkpoint-versioning.js +78 -20
  56. package/dist/checkpoints/checkpoint-versioning.js.map +1 -1
  57. package/dist/cli/config-loader.js +2 -4
  58. package/dist/cli/config-loader.js.map +1 -1
  59. package/dist/codebuddy/client.js +70 -11
  60. package/dist/codebuddy/client.js.map +1 -1
  61. package/dist/codebuddy/tools.d.ts +1 -7
  62. package/dist/codebuddy/tools.js +2 -30
  63. package/dist/codebuddy/tools.js.map +1 -1
  64. package/dist/commands/cli/daemon-commands.d.ts +14 -0
  65. package/dist/commands/cli/daemon-commands.js +166 -0
  66. package/dist/commands/cli/daemon-commands.js.map +1 -0
  67. package/dist/commands/cli/speak-command.d.ts +10 -0
  68. package/dist/commands/cli/speak-command.js +97 -0
  69. package/dist/commands/cli/speak-command.js.map +1 -0
  70. package/dist/commands/cli/utility-commands.d.ts +10 -0
  71. package/dist/commands/cli/utility-commands.js +88 -0
  72. package/dist/commands/cli/utility-commands.js.map +1 -0
  73. package/dist/commands/handlers/fcs-handlers.js +1 -1
  74. package/dist/commands/handlers/fcs-handlers.js.map +1 -1
  75. package/dist/commands/handlers/memory-handlers.js +2 -1
  76. package/dist/commands/handlers/memory-handlers.js.map +1 -1
  77. package/dist/commands/handlers/vibe-handlers.js +0 -1
  78. package/dist/commands/handlers/vibe-handlers.js.map +1 -1
  79. package/dist/commands/handlers/worktree-handlers.js +11 -0
  80. package/dist/commands/handlers/worktree-handlers.js.map +1 -1
  81. package/dist/commands/index.d.ts +8 -7
  82. package/dist/commands/index.js +10 -8
  83. package/dist/commands/index.js.map +1 -1
  84. package/dist/commands/mcp.d.ts +1 -0
  85. package/dist/commands/mcp.js +66 -7
  86. package/dist/commands/mcp.js.map +1 -1
  87. package/dist/commands/pipeline.js +25 -13
  88. package/dist/commands/pipeline.js.map +1 -1
  89. package/dist/config/hot-reload/watcher.js +4 -4
  90. package/dist/config/hot-reload/watcher.js.map +1 -1
  91. package/dist/config/model-tools.d.ts +41 -0
  92. package/dist/config/model-tools.js +194 -0
  93. package/dist/config/model-tools.js.map +1 -0
  94. package/dist/context/context-manager-v2.d.ts +2 -1
  95. package/dist/context/context-manager-v2.js +34 -5
  96. package/dist/context/context-manager-v2.js.map +1 -1
  97. package/dist/context/index.d.ts +12 -12
  98. package/dist/context/index.js +25 -12
  99. package/dist/context/index.js.map +1 -1
  100. package/dist/daemon/daemon-manager.js +23 -19
  101. package/dist/daemon/daemon-manager.js.map +1 -1
  102. package/dist/database/database-manager.d.ts +4 -0
  103. package/dist/database/database-manager.js +16 -7
  104. package/dist/database/database-manager.js.map +1 -1
  105. package/dist/desktop-automation/nutjs-provider.js +89 -0
  106. package/dist/desktop-automation/nutjs-provider.js.map +1 -1
  107. package/dist/errors/index.d.ts +4 -4
  108. package/dist/errors/index.js +8 -4
  109. package/dist/errors/index.js.map +1 -1
  110. package/dist/fcs/builtins.d.ts +2 -6
  111. package/dist/fcs/builtins.js +2 -568
  112. package/dist/fcs/builtins.js.map +1 -1
  113. package/dist/fcs/codebuddy-bindings.d.ts +3 -43
  114. package/dist/fcs/codebuddy-bindings.js +2 -606
  115. package/dist/fcs/codebuddy-bindings.js.map +1 -1
  116. package/dist/fcs/index.d.ts +2 -27
  117. package/dist/fcs/index.js +2 -53
  118. package/dist/fcs/index.js.map +1 -1
  119. package/dist/fcs/lexer.d.ts +2 -37
  120. package/dist/fcs/lexer.js +2 -459
  121. package/dist/fcs/lexer.js.map +1 -1
  122. package/dist/fcs/parser.d.ts +2 -68
  123. package/dist/fcs/parser.js +2 -893
  124. package/dist/fcs/parser.js.map +1 -1
  125. package/dist/fcs/runtime.d.ts +2 -59
  126. package/dist/fcs/runtime.js +2 -623
  127. package/dist/fcs/runtime.js.map +1 -1
  128. package/dist/fcs/script-registry.d.ts +3 -69
  129. package/dist/fcs/script-registry.js +2 -219
  130. package/dist/fcs/script-registry.js.map +1 -1
  131. package/dist/fcs/sync-bindings.d.ts +3 -101
  132. package/dist/fcs/sync-bindings.js +2 -410
  133. package/dist/fcs/sync-bindings.js.map +1 -1
  134. package/dist/fcs/types.d.ts +2 -285
  135. package/dist/fcs/types.js +2 -103
  136. package/dist/fcs/types.js.map +1 -1
  137. package/dist/hooks/index.d.ts +4 -4
  138. package/dist/hooks/index.js +4 -4
  139. package/dist/hooks/index.js.map +1 -1
  140. package/dist/hooks/use-input-handler.d.ts +1 -1
  141. package/dist/index.js +20 -330
  142. package/dist/index.js.map +1 -1
  143. package/dist/input/voice-control.js +11 -5
  144. package/dist/input/voice-control.js.map +1 -1
  145. package/dist/integrations/json-rpc/server.d.ts +9 -0
  146. package/dist/integrations/json-rpc/server.js +43 -13
  147. package/dist/integrations/json-rpc/server.js.map +1 -1
  148. package/dist/integrations/mcp/mcp-server.js +1 -1
  149. package/dist/integrations/mcp/mcp-server.js.map +1 -1
  150. package/dist/integrations/notification-integrations.d.ts +1 -0
  151. package/dist/integrations/notification-integrations.js +6 -1
  152. package/dist/integrations/notification-integrations.js.map +1 -1
  153. package/dist/mcp/client.js +2 -1
  154. package/dist/mcp/client.js.map +1 -1
  155. package/dist/mcp/config.js +89 -5
  156. package/dist/mcp/config.js.map +1 -1
  157. package/dist/mcp/mcp-client.js +65 -14
  158. package/dist/mcp/mcp-client.js.map +1 -1
  159. package/dist/mcp/transports.d.ts +0 -1
  160. package/dist/mcp/transports.js +1 -5
  161. package/dist/mcp/transports.js.map +1 -1
  162. package/dist/mcp/types.d.ts +2 -0
  163. package/dist/memory/index.d.ts +2 -2
  164. package/dist/memory/index.js +2 -2
  165. package/dist/memory/index.js.map +1 -1
  166. package/dist/persistence/session-lock.d.ts +42 -0
  167. package/dist/persistence/session-lock.js +165 -0
  168. package/dist/persistence/session-lock.js.map +1 -0
  169. package/dist/persistence/session-store.d.ts +18 -3
  170. package/dist/persistence/session-store.js +90 -21
  171. package/dist/persistence/session-store.js.map +1 -1
  172. package/dist/plugins/conflict-detection.js +2 -1
  173. package/dist/plugins/conflict-detection.js.map +1 -1
  174. package/dist/plugins/index.d.ts +3 -3
  175. package/dist/plugins/index.js +3 -3
  176. package/dist/plugins/index.js.map +1 -1
  177. package/dist/plugins/isolated-plugin-runner.d.ts +6 -0
  178. package/dist/plugins/isolated-plugin-runner.js +19 -1
  179. package/dist/plugins/isolated-plugin-runner.js.map +1 -1
  180. package/dist/providers/local-llm-provider.js +28 -8
  181. package/dist/providers/local-llm-provider.js.map +1 -1
  182. package/dist/sandbox/docker-sandbox.js +7 -4
  183. package/dist/sandbox/docker-sandbox.js.map +1 -1
  184. package/dist/scripting/builtins.d.ts +8 -3
  185. package/dist/scripting/builtins.js +506 -355
  186. package/dist/scripting/builtins.js.map +1 -1
  187. package/dist/scripting/codebuddy-bindings.d.ts +47 -0
  188. package/dist/scripting/codebuddy-bindings.js +488 -0
  189. package/dist/scripting/codebuddy-bindings.js.map +1 -0
  190. package/dist/scripting/index.d.ts +33 -30
  191. package/dist/scripting/index.js +41 -36
  192. package/dist/scripting/index.js.map +1 -1
  193. package/dist/scripting/lexer.d.ts +31 -13
  194. package/dist/scripting/lexer.js +379 -292
  195. package/dist/scripting/lexer.js.map +1 -1
  196. package/dist/scripting/parser.d.ts +63 -44
  197. package/dist/scripting/parser.js +700 -473
  198. package/dist/scripting/parser.js.map +1 -1
  199. package/dist/scripting/runtime.d.ts +55 -24
  200. package/dist/scripting/runtime.js +600 -288
  201. package/dist/scripting/runtime.js.map +1 -1
  202. package/dist/scripting/script-registry.d.ts +54 -0
  203. package/dist/scripting/script-registry.js +202 -0
  204. package/dist/scripting/script-registry.js.map +1 -0
  205. package/dist/scripting/sync-bindings.d.ts +105 -0
  206. package/dist/scripting/sync-bindings.js +353 -0
  207. package/dist/scripting/sync-bindings.js.map +1 -0
  208. package/dist/scripting/types.d.ts +297 -199
  209. package/dist/scripting/types.js +86 -60
  210. package/dist/scripting/types.js.map +1 -1
  211. package/dist/search/usearch-index.js +42 -7
  212. package/dist/search/usearch-index.js.map +1 -1
  213. package/dist/security/bash-parser.d.ts +51 -0
  214. package/dist/security/bash-parser.js +327 -0
  215. package/dist/security/bash-parser.js.map +1 -0
  216. package/dist/security/index.d.ts +7 -5
  217. package/dist/security/index.js +8 -7
  218. package/dist/security/index.js.map +1 -1
  219. package/dist/security/skill-scanner.d.ts +36 -0
  220. package/dist/security/skill-scanner.js +149 -0
  221. package/dist/security/skill-scanner.js.map +1 -0
  222. package/dist/security/trust-folders.d.ts +1 -0
  223. package/dist/security/trust-folders.js +19 -1
  224. package/dist/security/trust-folders.js.map +1 -1
  225. package/dist/server/auth/index.d.ts +2 -2
  226. package/dist/server/auth/index.js +2 -2
  227. package/dist/server/auth/index.js.map +1 -1
  228. package/dist/server/middleware/index.d.ts +5 -5
  229. package/dist/server/middleware/index.js +5 -5
  230. package/dist/server/middleware/index.js.map +1 -1
  231. package/dist/server/middleware/rate-limit.js +15 -3
  232. package/dist/server/middleware/rate-limit.js.map +1 -1
  233. package/dist/server/websocket/handler.js +54 -6
  234. package/dist/server/websocket/handler.js.map +1 -1
  235. package/dist/skills/eligibility.js +26 -4
  236. package/dist/skills/eligibility.js.map +1 -1
  237. package/dist/tasks/background-tasks.js +5 -1
  238. package/dist/tasks/background-tasks.js.map +1 -1
  239. package/dist/tools/apply-patch.d.ts +55 -0
  240. package/dist/tools/apply-patch.js +273 -0
  241. package/dist/tools/apply-patch.js.map +1 -0
  242. package/dist/tools/hooks/default-hooks.d.ts +1 -1
  243. package/dist/tools/hooks/default-hooks.js +2 -1
  244. package/dist/tools/hooks/default-hooks.js.map +1 -1
  245. package/dist/tools/index.d.ts +10 -10
  246. package/dist/tools/index.js +11 -11
  247. package/dist/tools/index.js.map +1 -1
  248. package/dist/tools/registry/bash-tools.js +6 -3
  249. package/dist/tools/registry/bash-tools.js.map +1 -1
  250. package/dist/tools/registry/misc-tools.js +1 -2
  251. package/dist/tools/registry/misc-tools.js.map +1 -1
  252. package/dist/tools/registry/search-tools.js +1 -1
  253. package/dist/tools/registry/search-tools.js.map +1 -1
  254. package/dist/tools/registry/text-editor-tools.js +1 -1
  255. package/dist/tools/registry/text-editor-tools.js.map +1 -1
  256. package/dist/tools/registry/todo-tools.js +37 -5
  257. package/dist/tools/registry/todo-tools.js.map +1 -1
  258. package/dist/tools/registry/tool-registry.js +5 -4
  259. package/dist/tools/registry/tool-registry.js.map +1 -1
  260. package/dist/tools/registry/web-tools.d.ts +1 -1
  261. package/dist/tools/registry/web-tools.js +28 -8
  262. package/dist/tools/registry/web-tools.js.map +1 -1
  263. package/dist/tools/text-editor.d.ts +1 -1
  264. package/dist/tools/text-editor.js +23 -5
  265. package/dist/tools/text-editor.js.map +1 -1
  266. package/dist/tools/web-search.d.ts +52 -37
  267. package/dist/tools/web-search.js +368 -163
  268. package/dist/tools/web-search.js.map +1 -1
  269. package/dist/types/errors.d.ts +1 -1
  270. package/dist/types/errors.js +2 -8
  271. package/dist/types/errors.js.map +1 -1
  272. package/dist/types/index.d.ts +2 -1
  273. package/dist/types/index.js +1 -2
  274. package/dist/types/index.js.map +1 -1
  275. package/dist/ui/components/ChatInterface.d.ts +1 -1
  276. package/dist/ui/index.d.ts +17 -21
  277. package/dist/ui/index.js +25 -22
  278. package/dist/ui/index.js.map +1 -1
  279. package/dist/utils/config-validation/schema.d.ts +15 -15
  280. package/dist/utils/head-tail-truncation.d.ts +34 -0
  281. package/dist/utils/head-tail-truncation.js +98 -0
  282. package/dist/utils/head-tail-truncation.js.map +1 -0
  283. package/dist/utils/logger.js +3 -9
  284. package/dist/utils/logger.js.map +1 -1
  285. package/dist/utils/sanitize.d.ts +5 -0
  286. package/dist/utils/sanitize.js +19 -0
  287. package/dist/utils/sanitize.js.map +1 -1
  288. package/dist/utils/settings-manager.js +4 -4
  289. package/dist/utils/settings-manager.js.map +1 -1
  290. package/dist/workflows/index.d.ts +4 -279
  291. package/dist/workflows/index.js +8 -822
  292. package/dist/workflows/index.js.map +1 -1
  293. package/dist/workflows/state-manager.d.ts +77 -0
  294. package/dist/workflows/state-manager.js +198 -0
  295. package/dist/workflows/state-manager.js.map +1 -0
  296. package/dist/workflows/step-manager.d.ts +39 -0
  297. package/dist/workflows/step-manager.js +196 -0
  298. package/dist/workflows/step-manager.js.map +1 -0
  299. package/dist/workflows/types.d.ts +87 -0
  300. package/dist/workflows/types.js +5 -0
  301. package/dist/workflows/types.js.map +1 -0
  302. package/dist/workflows/workflow-engine.d.ts +34 -0
  303. package/dist/workflows/workflow-engine.js +354 -0
  304. package/dist/workflows/workflow-engine.js.map +1 -0
  305. package/package.json +5 -1
@@ -1,609 +1,5 @@
1
1
  /**
2
- * Grok-CLI Bindings for FCS
3
- *
4
- * Provides full integration with code-buddy features:
5
- * - AI/CodeBuddy API calls
6
- * - Tool execution (read, edit, search, grep)
7
- * - Context management
8
- * - Agent control
9
- * - MCP integration
2
+ * @deprecated Use src/scripting/codebuddy-bindings.ts instead. This file re-exports for backward compatibility.
10
3
  */
11
- import * as fs from 'fs';
12
- import * as path from 'path';
13
- import { execSync } from 'child_process';
14
- // Lazy imports to avoid circular dependencies
15
- let codebuddyClientInstance = null;
16
- let mcpManagerInstance = null;
17
- /**
18
- * Create code-buddy bindings for FCS
19
- */
20
- export function createGrokBindings(config, print) {
21
- const bindings = {};
22
- // Store references
23
- codebuddyClientInstance = config.codebuddyClient || null;
24
- mcpManagerInstance = config.mcpManager || null;
25
- // Conversation history for chat
26
- const conversationHistory = config.conversationHistory || [];
27
- // Context files set
28
- const contextFiles = config.contextFiles || new Set();
29
- // ============================================
30
- // GROK NAMESPACE - AI Integration
31
- // ============================================
32
- const grok = {};
33
- /**
34
- * Ask Grok a question (single prompt)
35
- */
36
- const askFn = async (prompt) => {
37
- if (!codebuddyClientInstance) {
38
- print('[grok.ask] No Grok client available - returning mock response');
39
- return `[Mock AI Response to: ${prompt}]`;
40
- }
41
- try {
42
- const response = await codebuddyClientInstance.complete(prompt);
43
- return response;
44
- }
45
- catch (error) {
46
- throw new Error(`CodeBuddy API error: ${error.message}`);
47
- }
48
- };
49
- grok.ask = askFn;
50
- /**
51
- * Chat with Grok (maintains conversation history)
52
- */
53
- const chatFn = async (message) => {
54
- conversationHistory.push({ role: 'user', content: message });
55
- if (!codebuddyClientInstance) {
56
- const mockResponse = `[Mock Chat Response to: ${message}]`;
57
- conversationHistory.push({ role: 'assistant', content: mockResponse });
58
- return mockResponse;
59
- }
60
- try {
61
- const response = await codebuddyClientInstance.chat(conversationHistory);
62
- conversationHistory.push({ role: 'assistant', content: response });
63
- return response;
64
- }
65
- catch (error) {
66
- throw new Error(`Grok chat error: ${error.message}`);
67
- }
68
- };
69
- grok.chat = chatFn;
70
- /**
71
- * Generate code with Grok
72
- */
73
- grok.generate = async (prompt, language) => {
74
- const fullPrompt = language
75
- ? `Generate ${language} code for: ${prompt}\n\nOnly output the code, no explanations.`
76
- : `Generate code for: ${prompt}\n\nOnly output the code, no explanations.`;
77
- return askFn(fullPrompt);
78
- };
79
- /**
80
- * Explain code with Grok
81
- */
82
- grok.explain = async (code) => {
83
- return askFn(`Explain this code:\n\n${code}`);
84
- };
85
- /**
86
- * Review code with Grok
87
- */
88
- grok.review = async (code) => {
89
- return askFn(`Review this code for bugs, security issues, and improvements:\n\n${code}`);
90
- };
91
- /**
92
- * Clear conversation history
93
- */
94
- grok.clearHistory = () => {
95
- conversationHistory.length = 0;
96
- print('Conversation history cleared');
97
- };
98
- /**
99
- * Get conversation history
100
- */
101
- grok.history = () => {
102
- return [...conversationHistory];
103
- };
104
- bindings.grok = grok;
105
- // ============================================
106
- // TOOL NAMESPACE - File Operations
107
- // ============================================
108
- const tool = {};
109
- /**
110
- * Read a file (with optional line range)
111
- */
112
- tool.read = (filePath, startLine, endLine) => {
113
- const fullPath = path.resolve(config.workdir, filePath);
114
- if (!fs.existsSync(fullPath)) {
115
- throw new Error(`File not found: ${filePath}`);
116
- }
117
- const content = fs.readFileSync(fullPath, 'utf-8');
118
- if (startLine !== undefined) {
119
- const lines = content.split('\n');
120
- const start = Math.max(0, startLine - 1);
121
- const end = endLine !== undefined ? endLine : lines.length;
122
- return lines.slice(start, end).join('\n');
123
- }
124
- return content;
125
- };
126
- /**
127
- * Write to a file
128
- */
129
- tool.write = (filePath, content) => {
130
- if (config.dryRun) {
131
- print(`[DRY RUN] Would write ${content.length} chars to: ${filePath}`);
132
- return true;
133
- }
134
- const fullPath = path.resolve(config.workdir, filePath);
135
- const dir = path.dirname(fullPath);
136
- if (!fs.existsSync(dir)) {
137
- fs.mkdirSync(dir, { recursive: true });
138
- }
139
- fs.writeFileSync(fullPath, content);
140
- print(`Written: ${filePath}`);
141
- return true;
142
- };
143
- /**
144
- * Edit a file (find and replace)
145
- */
146
- tool.edit = (filePath, oldText, newText) => {
147
- const fullPath = path.resolve(config.workdir, filePath);
148
- if (!fs.existsSync(fullPath)) {
149
- throw new Error(`File not found: ${filePath}`);
150
- }
151
- const content = fs.readFileSync(fullPath, 'utf-8');
152
- if (!content.includes(oldText)) {
153
- throw new Error(`Text not found in ${filePath}`);
154
- }
155
- if (config.dryRun) {
156
- print(`[DRY RUN] Would edit: ${filePath}`);
157
- print(` - Old: ${oldText.substring(0, 50)}...`);
158
- print(` + New: ${newText.substring(0, 50)}...`);
159
- return true;
160
- }
161
- const newContent = content.replace(oldText, newText);
162
- fs.writeFileSync(fullPath, newContent);
163
- print(`Edited: ${filePath}`);
164
- return true;
165
- };
166
- /**
167
- * Multi-edit a file (multiple replacements)
168
- */
169
- tool.multiEdit = (filePath, edits) => {
170
- const fullPath = path.resolve(config.workdir, filePath);
171
- if (!fs.existsSync(fullPath)) {
172
- throw new Error(`File not found: ${filePath}`);
173
- }
174
- let content = fs.readFileSync(fullPath, 'utf-8');
175
- for (const edit of edits) {
176
- if (!content.includes(edit.old)) {
177
- throw new Error(`Text not found in ${filePath}: ${edit.old.substring(0, 30)}...`);
178
- }
179
- content = content.replace(edit.old, edit.new);
180
- }
181
- if (config.dryRun) {
182
- print(`[DRY RUN] Would apply ${edits.length} edits to: ${filePath}`);
183
- return true;
184
- }
185
- fs.writeFileSync(fullPath, content);
186
- print(`Applied ${edits.length} edits to: ${filePath}`);
187
- return true;
188
- };
189
- /**
190
- * Search for files by glob pattern
191
- */
192
- tool.glob = (pattern) => {
193
- // Simple glob implementation using find command
194
- try {
195
- const result = execSync(`find ${config.workdir} -type f -name "${pattern}" 2>/dev/null | head -100`, { encoding: 'utf-8' });
196
- return result.trim().split('\n').filter(Boolean).map(f => path.relative(config.workdir, f));
197
- }
198
- catch {
199
- return [];
200
- }
201
- };
202
- /**
203
- * Search file contents with grep
204
- */
205
- tool.grep = (pattern, filePattern) => {
206
- try {
207
- const globPart = filePattern ? `--include="${filePattern}"` : '';
208
- const result = execSync(`grep -rn ${globPart} "${pattern}" ${config.workdir} 2>/dev/null | head -100`, { encoding: 'utf-8' });
209
- return result.trim().split('\n').filter(Boolean).map(line => {
210
- const match = line.match(/^(.+?):(\d+):(.*)$/);
211
- if (match) {
212
- return {
213
- file: path.relative(config.workdir, match[1]),
214
- line: parseInt(match[2], 10),
215
- content: match[3]
216
- };
217
- }
218
- return { file: '', line: 0, content: line };
219
- });
220
- }
221
- catch {
222
- return [];
223
- }
224
- };
225
- /**
226
- * Search with ripgrep (faster)
227
- */
228
- tool.rg = (pattern, filePattern) => {
229
- try {
230
- const globPart = filePattern ? `-g "${filePattern}"` : '';
231
- const result = execSync(`rg -n ${globPart} "${pattern}" ${config.workdir} 2>/dev/null | head -100`, { encoding: 'utf-8' });
232
- return result.trim().split('\n').filter(Boolean).map(line => {
233
- const match = line.match(/^(.+?):(\d+):(.*)$/);
234
- if (match) {
235
- return {
236
- file: path.relative(config.workdir, match[1]),
237
- line: parseInt(match[2], 10),
238
- content: match[3]
239
- };
240
- }
241
- return { file: '', line: 0, content: line };
242
- });
243
- }
244
- catch {
245
- // Fallback to grep if rg not available
246
- return tool.grep(pattern, filePattern);
247
- }
248
- };
249
- /**
250
- * List directory contents
251
- */
252
- tool.ls = (dirPath) => {
253
- const fullPath = path.resolve(config.workdir, dirPath || '.');
254
- return fs.readdirSync(fullPath);
255
- };
256
- /**
257
- * Get file info
258
- */
259
- tool.stat = (filePath) => {
260
- const fullPath = path.resolve(config.workdir, filePath);
261
- const stats = fs.statSync(fullPath);
262
- return {
263
- size: stats.size,
264
- mtime: stats.mtime,
265
- isDir: stats.isDirectory()
266
- };
267
- };
268
- bindings.tool = tool;
269
- // ============================================
270
- // CONTEXT NAMESPACE - Context Management
271
- // ============================================
272
- const context = {};
273
- /**
274
- * Add files to context
275
- */
276
- context.add = (pattern) => {
277
- const files = tool.glob(pattern);
278
- let added = 0;
279
- for (const file of files) {
280
- if (!contextFiles.has(file)) {
281
- contextFiles.add(file);
282
- added++;
283
- }
284
- }
285
- print(`Added ${added} files to context (${contextFiles.size} total)`);
286
- return added;
287
- };
288
- /**
289
- * Remove files from context
290
- */
291
- context.remove = (pattern) => {
292
- const regex = new RegExp(pattern.replace(/\*/g, '.*'));
293
- let removed = 0;
294
- for (const file of contextFiles) {
295
- if (regex.test(file)) {
296
- contextFiles.delete(file);
297
- removed++;
298
- }
299
- }
300
- print(`Removed ${removed} files from context`);
301
- return removed;
302
- };
303
- /**
304
- * Clear all context
305
- */
306
- context.clear = () => {
307
- contextFiles.clear();
308
- print('Context cleared');
309
- };
310
- /**
311
- * List context files
312
- */
313
- context.list = () => {
314
- return Array.from(contextFiles);
315
- };
316
- /**
317
- * Get context content (all files concatenated)
318
- */
319
- context.content = () => {
320
- const parts = [];
321
- for (const file of contextFiles) {
322
- try {
323
- const content = tool.read(file);
324
- parts.push(`// === ${file} ===\n${content}`);
325
- }
326
- catch {
327
- // Skip unreadable files
328
- }
329
- }
330
- return parts.join('\n\n');
331
- };
332
- /**
333
- * Get context size
334
- */
335
- context.size = () => {
336
- return contextFiles.size;
337
- };
338
- bindings.context = context;
339
- // ============================================
340
- // AGENT NAMESPACE - Agent Control
341
- // ============================================
342
- const agent = {};
343
- /**
344
- * Run a task with an agent
345
- */
346
- const runTaskFn = async (task) => {
347
- print(`[Agent] Running task: ${task}`);
348
- // Use askFn with agent-style prompt
349
- const agentPrompt = `You are an autonomous agent. Complete this task step by step:
350
-
351
- Task: ${task}
352
-
353
- Available tools: read files, edit files, search code, run shell commands.
354
- Think through the problem and execute the necessary steps.`;
355
- return askFn(agentPrompt);
356
- };
357
- agent.run = runTaskFn;
358
- /**
359
- * Run multiple tasks in parallel
360
- */
361
- agent.parallel = async (tasks) => {
362
- print(`[Agent] Running ${tasks.length} tasks in parallel`);
363
- const promises = tasks.map(task => runTaskFn(task));
364
- return Promise.all(promises);
365
- };
366
- /**
367
- * Run a security review
368
- */
369
- agent.securityReview = async (targetPath) => {
370
- const target = targetPath || '.';
371
- return askFn(`Perform a security review of the code in ${target}. Check for:
372
- - SQL injection
373
- - XSS vulnerabilities
374
- - Command injection
375
- - Path traversal
376
- - Insecure dependencies
377
- - Authentication issues
378
- - Data exposure`);
379
- };
380
- /**
381
- * Run code review
382
- */
383
- agent.codeReview = async (filePath) => {
384
- let content = '';
385
- if (filePath) {
386
- content = tool.read(filePath);
387
- }
388
- else {
389
- // Get git diff
390
- try {
391
- content = execSync('git diff', { cwd: config.workdir, encoding: 'utf-8' });
392
- }
393
- catch {
394
- content = 'No git diff available';
395
- }
396
- }
397
- return askFn(`Review this code for quality, bugs, and improvements:\n\n${content}`);
398
- };
399
- /**
400
- * Generate tests
401
- */
402
- agent.generateTests = async (filePath) => {
403
- const content = tool.read(filePath);
404
- return askFn(`Generate comprehensive unit tests for this code:\n\n${content}`);
405
- };
406
- /**
407
- * Refactor code
408
- */
409
- agent.refactor = async (filePath, instructions) => {
410
- const content = tool.read(filePath);
411
- return askFn(`Refactor this code according to these instructions: ${instructions}\n\nCode:\n${content}`);
412
- };
413
- bindings.agent = agent;
414
- // ============================================
415
- // MCP NAMESPACE - MCP Integration
416
- // ============================================
417
- const mcp = {};
418
- /**
419
- * List available MCP servers
420
- */
421
- mcp.servers = () => {
422
- if (!mcpManagerInstance) {
423
- return [];
424
- }
425
- return mcpManagerInstance.listServers();
426
- };
427
- /**
428
- * List tools on a server
429
- */
430
- mcp.tools = (server) => {
431
- if (!mcpManagerInstance) {
432
- return [];
433
- }
434
- return mcpManagerInstance.listTools(server);
435
- };
436
- /**
437
- * Call an MCP tool
438
- */
439
- mcp.call = async (server, tool, args = {}) => {
440
- if (!mcpManagerInstance) {
441
- print(`[MCP] No MCP manager - mock call to ${server}.${tool}`);
442
- return { mock: true, server, tool, args };
443
- }
444
- try {
445
- return await mcpManagerInstance.callTool(server, tool, args);
446
- }
447
- catch (error) {
448
- throw new Error(`MCP call failed: ${error.message}`);
449
- }
450
- };
451
- bindings.mcp = mcp;
452
- // ============================================
453
- // GIT NAMESPACE - Git Operations
454
- // ============================================
455
- const git = {};
456
- /**
457
- * Get git status
458
- */
459
- git.status = () => {
460
- try {
461
- return execSync('git status --short', { cwd: config.workdir, encoding: 'utf-8' });
462
- }
463
- catch {
464
- return '';
465
- }
466
- };
467
- /**
468
- * Get git diff
469
- */
470
- git.diff = (file) => {
471
- try {
472
- const cmd = file ? `git diff ${file}` : 'git diff';
473
- return execSync(cmd, { cwd: config.workdir, encoding: 'utf-8' });
474
- }
475
- catch {
476
- return '';
477
- }
478
- };
479
- /**
480
- * Stage files
481
- */
482
- git.add = (pattern) => {
483
- if (config.dryRun) {
484
- print(`[DRY RUN] Would stage: ${pattern}`);
485
- return true;
486
- }
487
- try {
488
- execSync(`git add ${pattern}`, { cwd: config.workdir });
489
- return true;
490
- }
491
- catch {
492
- return false;
493
- }
494
- };
495
- /**
496
- * Create commit
497
- */
498
- git.commit = (message) => {
499
- if (config.dryRun) {
500
- print(`[DRY RUN] Would commit: ${message}`);
501
- return true;
502
- }
503
- try {
504
- execSync(`git commit -m "${message.replace(/"/g, '\\"')}"`, { cwd: config.workdir });
505
- return true;
506
- }
507
- catch {
508
- return false;
509
- }
510
- };
511
- /**
512
- * Get recent commits
513
- */
514
- git.log = (count = 10) => {
515
- try {
516
- return execSync(`git log --oneline -${count}`, { cwd: config.workdir, encoding: 'utf-8' });
517
- }
518
- catch {
519
- return '';
520
- }
521
- };
522
- /**
523
- * Get current branch
524
- */
525
- git.branch = () => {
526
- try {
527
- return execSync('git branch --show-current', { cwd: config.workdir, encoding: 'utf-8' }).trim();
528
- }
529
- catch {
530
- return '';
531
- }
532
- };
533
- bindings.git = git;
534
- // ============================================
535
- // SESSION NAMESPACE - Session Management
536
- // ============================================
537
- const session = {};
538
- /**
539
- * Save current session
540
- */
541
- session.save = (name) => {
542
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
543
- const filename = name || `session-${timestamp}.json`;
544
- const sessionData = {
545
- timestamp,
546
- history: conversationHistory,
547
- context: Array.from(contextFiles),
548
- config: {
549
- workdir: config.workdir,
550
- enableAI: config.enableAI,
551
- enableBash: config.enableBash
552
- }
553
- };
554
- const sessionsDir = path.join(config.workdir, '.codebuddy', 'sessions');
555
- if (!fs.existsSync(sessionsDir)) {
556
- fs.mkdirSync(sessionsDir, { recursive: true });
557
- }
558
- const filePath = path.join(sessionsDir, filename);
559
- fs.writeFileSync(filePath, JSON.stringify(sessionData, null, 2));
560
- print(`Session saved: ${filename}`);
561
- return filePath;
562
- };
563
- /**
564
- * List saved sessions
565
- */
566
- session.list = () => {
567
- const sessionsDir = path.join(config.workdir, '.codebuddy', 'sessions');
568
- if (!fs.existsSync(sessionsDir)) {
569
- return [];
570
- }
571
- return fs.readdirSync(sessionsDir).filter(f => f.endsWith('.json'));
572
- };
573
- /**
574
- * Load a session
575
- */
576
- session.load = (name) => {
577
- const sessionsDir = path.join(config.workdir, '.codebuddy', 'sessions');
578
- const filePath = path.join(sessionsDir, name);
579
- if (!fs.existsSync(filePath)) {
580
- throw new Error(`Session not found: ${name}`);
581
- }
582
- const data = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
583
- // Restore history
584
- conversationHistory.length = 0;
585
- conversationHistory.push(...(data.history || []));
586
- // Restore context
587
- contextFiles.clear();
588
- for (const file of (data.context || [])) {
589
- contextFiles.add(file);
590
- }
591
- print(`Session loaded: ${name}`);
592
- return true;
593
- };
594
- bindings.session = session;
595
- return bindings;
596
- }
597
- /**
598
- * Set the Grok client instance (called from code-buddy initialization)
599
- */
600
- export function setCodeBuddyClient(client) {
601
- codebuddyClientInstance = client;
602
- }
603
- /**
604
- * Set the MCP manager instance
605
- */
606
- export function setMCPManager(manager) {
607
- mcpManagerInstance = manager;
608
- }
4
+ export { createGrokBindings, setCodeBuddyClient, setMCPManager } from '../scripting/codebuddy-bindings.js';
609
5
  //# sourceMappingURL=codebuddy-bindings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codebuddy-bindings.js","sourceRoot":"","sources":["../../src/fcs/codebuddy-bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codebuddy-bindings.js","sourceRoot":"","sources":["../../src/fcs/codebuddy-bindings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC"}
@@ -1,29 +1,4 @@
1
1
  /**
2
- * FileCommander Script (FCS) Module
3
- *
4
- * 100% compatible scripting language for FileCommander integration
2
+ * @deprecated Use src/scripting/index.ts instead. This file re-exports for backward compatibility.
5
3
  */
6
- export * from './types.js';
7
- export { FCSLexer, tokenize } from './lexer.js';
8
- export { FCSParser, parse } from './parser.js';
9
- export { FCSRuntime, createRuntime } from './runtime.js';
10
- export { createFCSBuiltins } from './builtins.js';
11
- export { createGrokBindings, setCodeBuddyClient, setMCPManager } from './codebuddy-bindings.js';
12
- export { ScriptRegistry, getScriptRegistry, initScriptRegistry, type ScriptTemplate, type ScriptCategory } from './script-registry.js';
13
- export { createSyncBindings, getWorkspaceTracker, resetWorkspaceTracker, WorkspaceStateTracker, type WorkspaceSnapshot, type FileState, type SessionContext, type FileDiff, } from './sync-bindings.js';
14
- import { FCSConfig, FCSResult } from './types.js';
15
- /**
16
- * Execute FCS source code
17
- */
18
- export declare function executeFCS(source: string, config?: Partial<FCSConfig>): Promise<FCSResult>;
19
- /**
20
- * Execute FCS file
21
- */
22
- export declare function executeFCSFile(filePath: string, config?: Partial<FCSConfig>): Promise<FCSResult>;
23
- /**
24
- * Parse FCS source and return AST (for debugging/analysis)
25
- */
26
- export declare function parseFCS(source: string): {
27
- tokens: import("./types.js").Token[];
28
- ast: import("./types.js").Program;
29
- };
4
+ export * from '../scripting/index.js';