@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.
- package/.codebuddy/skills/bundled/brave-search/SKILL.md +490 -0
- package/.codebuddy/skills/bundled/exa-search/SKILL.md +1122 -0
- package/.codebuddy/skills/bundled/perplexity/SKILL.md +748 -0
- package/.codebuddy/skills/bundled/playwright/SKILL.md +520 -0
- package/.codebuddy/skills/bundled/puppeteer/SKILL.md +708 -0
- package/.codebuddy/skills/bundled/web-fetch/SKILL.md +1003 -0
- package/README.md +56 -0
- package/dist/agent/agent-state.d.ts +3 -3
- package/dist/agent/agent-state.js +6 -6
- package/dist/agent/agent-state.js.map +1 -1
- package/dist/agent/base-agent.d.ts +4 -4
- package/dist/agent/base-agent.js +22 -9
- package/dist/agent/base-agent.js.map +1 -1
- package/dist/agent/cache-trace.d.ts +56 -0
- package/dist/agent/cache-trace.js +98 -0
- package/dist/agent/cache-trace.js.map +1 -0
- package/dist/agent/codebuddy-agent.js +4 -2
- package/dist/agent/codebuddy-agent.js.map +1 -1
- package/dist/agent/execution/agent-executor.d.ts +4 -4
- package/dist/agent/execution/agent-executor.js +46 -14
- package/dist/agent/execution/agent-executor.js.map +1 -1
- package/dist/agent/facades/agent-context-facade.js +1 -3
- package/dist/agent/facades/agent-context-facade.js.map +1 -1
- package/dist/agent/facades/message-history-manager.js +14 -12
- package/dist/agent/facades/message-history-manager.js.map +1 -1
- package/dist/agent/facades/session-facade.d.ts +3 -3
- package/dist/agent/facades/session-facade.js +6 -6
- package/dist/agent/facades/session-facade.js.map +1 -1
- package/dist/agent/history-repair.d.ts +37 -0
- package/dist/agent/history-repair.js +124 -0
- package/dist/agent/history-repair.js.map +1 -0
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.js +3 -3
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/isolation/agent-workspace.d.ts +1 -0
- package/dist/agent/isolation/agent-workspace.js +10 -0
- package/dist/agent/isolation/agent-workspace.js.map +1 -1
- package/dist/agent/specialized/archive-agent.d.ts +3 -0
- package/dist/agent/specialized/archive-agent.js +71 -31
- package/dist/agent/specialized/archive-agent.js.map +1 -1
- package/dist/agent/specialized/index.d.ts +9 -8
- package/dist/agent/specialized/index.js +16 -8
- package/dist/agent/specialized/index.js.map +1 -1
- package/dist/agent/specialized/security-review/agent.js +19 -8
- package/dist/agent/specialized/security-review/agent.js.map +1 -1
- package/dist/agent/tool-executor.js +5 -0
- package/dist/agent/tool-executor.js.map +1 -1
- package/dist/agent/turn-diff-tracker.d.ts +79 -0
- package/dist/agent/turn-diff-tracker.js +195 -0
- package/dist/agent/turn-diff-tracker.js.map +1 -0
- package/dist/browser/controller.js +8 -4
- package/dist/browser/controller.js.map +1 -1
- package/dist/browser-automation/browser-manager.js +8 -1
- package/dist/browser-automation/browser-manager.js.map +1 -1
- package/dist/checkpoints/checkpoint-versioning.js +78 -20
- package/dist/checkpoints/checkpoint-versioning.js.map +1 -1
- package/dist/cli/config-loader.js +2 -4
- package/dist/cli/config-loader.js.map +1 -1
- package/dist/codebuddy/client.js +70 -11
- package/dist/codebuddy/client.js.map +1 -1
- package/dist/codebuddy/tools.d.ts +1 -7
- package/dist/codebuddy/tools.js +2 -30
- package/dist/codebuddy/tools.js.map +1 -1
- package/dist/commands/cli/daemon-commands.d.ts +14 -0
- package/dist/commands/cli/daemon-commands.js +166 -0
- package/dist/commands/cli/daemon-commands.js.map +1 -0
- package/dist/commands/cli/speak-command.d.ts +10 -0
- package/dist/commands/cli/speak-command.js +97 -0
- package/dist/commands/cli/speak-command.js.map +1 -0
- package/dist/commands/cli/utility-commands.d.ts +10 -0
- package/dist/commands/cli/utility-commands.js +88 -0
- package/dist/commands/cli/utility-commands.js.map +1 -0
- package/dist/commands/handlers/fcs-handlers.js +1 -1
- package/dist/commands/handlers/fcs-handlers.js.map +1 -1
- package/dist/commands/handlers/memory-handlers.js +2 -1
- package/dist/commands/handlers/memory-handlers.js.map +1 -1
- package/dist/commands/handlers/vibe-handlers.js +0 -1
- package/dist/commands/handlers/vibe-handlers.js.map +1 -1
- package/dist/commands/handlers/worktree-handlers.js +11 -0
- package/dist/commands/handlers/worktree-handlers.js.map +1 -1
- package/dist/commands/index.d.ts +8 -7
- package/dist/commands/index.js +10 -8
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -0
- package/dist/commands/mcp.js +66 -7
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/pipeline.js +25 -13
- package/dist/commands/pipeline.js.map +1 -1
- package/dist/config/hot-reload/watcher.js +4 -4
- package/dist/config/hot-reload/watcher.js.map +1 -1
- package/dist/config/model-tools.d.ts +41 -0
- package/dist/config/model-tools.js +194 -0
- package/dist/config/model-tools.js.map +1 -0
- package/dist/context/context-manager-v2.d.ts +2 -1
- package/dist/context/context-manager-v2.js +34 -5
- package/dist/context/context-manager-v2.js.map +1 -1
- package/dist/context/index.d.ts +12 -12
- package/dist/context/index.js +25 -12
- package/dist/context/index.js.map +1 -1
- package/dist/daemon/daemon-manager.js +23 -19
- package/dist/daemon/daemon-manager.js.map +1 -1
- package/dist/database/database-manager.d.ts +4 -0
- package/dist/database/database-manager.js +16 -7
- package/dist/database/database-manager.js.map +1 -1
- package/dist/desktop-automation/nutjs-provider.js +89 -0
- package/dist/desktop-automation/nutjs-provider.js.map +1 -1
- package/dist/errors/index.d.ts +4 -4
- package/dist/errors/index.js +8 -4
- package/dist/errors/index.js.map +1 -1
- package/dist/fcs/builtins.d.ts +2 -6
- package/dist/fcs/builtins.js +2 -568
- package/dist/fcs/builtins.js.map +1 -1
- package/dist/fcs/codebuddy-bindings.d.ts +3 -43
- package/dist/fcs/codebuddy-bindings.js +2 -606
- package/dist/fcs/codebuddy-bindings.js.map +1 -1
- package/dist/fcs/index.d.ts +2 -27
- package/dist/fcs/index.js +2 -53
- package/dist/fcs/index.js.map +1 -1
- package/dist/fcs/lexer.d.ts +2 -37
- package/dist/fcs/lexer.js +2 -459
- package/dist/fcs/lexer.js.map +1 -1
- package/dist/fcs/parser.d.ts +2 -68
- package/dist/fcs/parser.js +2 -893
- package/dist/fcs/parser.js.map +1 -1
- package/dist/fcs/runtime.d.ts +2 -59
- package/dist/fcs/runtime.js +2 -623
- package/dist/fcs/runtime.js.map +1 -1
- package/dist/fcs/script-registry.d.ts +3 -69
- package/dist/fcs/script-registry.js +2 -219
- package/dist/fcs/script-registry.js.map +1 -1
- package/dist/fcs/sync-bindings.d.ts +3 -101
- package/dist/fcs/sync-bindings.js +2 -410
- package/dist/fcs/sync-bindings.js.map +1 -1
- package/dist/fcs/types.d.ts +2 -285
- package/dist/fcs/types.js +2 -103
- package/dist/fcs/types.js.map +1 -1
- package/dist/hooks/index.d.ts +4 -4
- package/dist/hooks/index.js +4 -4
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/use-input-handler.d.ts +1 -1
- package/dist/index.js +20 -330
- package/dist/index.js.map +1 -1
- package/dist/input/voice-control.js +11 -5
- package/dist/input/voice-control.js.map +1 -1
- package/dist/integrations/json-rpc/server.d.ts +9 -0
- package/dist/integrations/json-rpc/server.js +43 -13
- package/dist/integrations/json-rpc/server.js.map +1 -1
- package/dist/integrations/mcp/mcp-server.js +1 -1
- package/dist/integrations/mcp/mcp-server.js.map +1 -1
- package/dist/integrations/notification-integrations.d.ts +1 -0
- package/dist/integrations/notification-integrations.js +6 -1
- package/dist/integrations/notification-integrations.js.map +1 -1
- package/dist/mcp/client.js +2 -1
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/config.js +89 -5
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/mcp-client.js +65 -14
- package/dist/mcp/mcp-client.js.map +1 -1
- package/dist/mcp/transports.d.ts +0 -1
- package/dist/mcp/transports.js +1 -5
- package/dist/mcp/transports.js.map +1 -1
- package/dist/mcp/types.d.ts +2 -0
- package/dist/memory/index.d.ts +2 -2
- package/dist/memory/index.js +2 -2
- package/dist/memory/index.js.map +1 -1
- package/dist/persistence/session-lock.d.ts +42 -0
- package/dist/persistence/session-lock.js +165 -0
- package/dist/persistence/session-lock.js.map +1 -0
- package/dist/persistence/session-store.d.ts +18 -3
- package/dist/persistence/session-store.js +90 -21
- package/dist/persistence/session-store.js.map +1 -1
- package/dist/plugins/conflict-detection.js +2 -1
- package/dist/plugins/conflict-detection.js.map +1 -1
- package/dist/plugins/index.d.ts +3 -3
- package/dist/plugins/index.js +3 -3
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/isolated-plugin-runner.d.ts +6 -0
- package/dist/plugins/isolated-plugin-runner.js +19 -1
- package/dist/plugins/isolated-plugin-runner.js.map +1 -1
- package/dist/providers/local-llm-provider.js +28 -8
- package/dist/providers/local-llm-provider.js.map +1 -1
- package/dist/sandbox/docker-sandbox.js +7 -4
- package/dist/sandbox/docker-sandbox.js.map +1 -1
- package/dist/scripting/builtins.d.ts +8 -3
- package/dist/scripting/builtins.js +506 -355
- package/dist/scripting/builtins.js.map +1 -1
- package/dist/scripting/codebuddy-bindings.d.ts +47 -0
- package/dist/scripting/codebuddy-bindings.js +488 -0
- package/dist/scripting/codebuddy-bindings.js.map +1 -0
- package/dist/scripting/index.d.ts +33 -30
- package/dist/scripting/index.js +41 -36
- package/dist/scripting/index.js.map +1 -1
- package/dist/scripting/lexer.d.ts +31 -13
- package/dist/scripting/lexer.js +379 -292
- package/dist/scripting/lexer.js.map +1 -1
- package/dist/scripting/parser.d.ts +63 -44
- package/dist/scripting/parser.js +700 -473
- package/dist/scripting/parser.js.map +1 -1
- package/dist/scripting/runtime.d.ts +55 -24
- package/dist/scripting/runtime.js +600 -288
- package/dist/scripting/runtime.js.map +1 -1
- package/dist/scripting/script-registry.d.ts +54 -0
- package/dist/scripting/script-registry.js +202 -0
- package/dist/scripting/script-registry.js.map +1 -0
- package/dist/scripting/sync-bindings.d.ts +105 -0
- package/dist/scripting/sync-bindings.js +353 -0
- package/dist/scripting/sync-bindings.js.map +1 -0
- package/dist/scripting/types.d.ts +297 -199
- package/dist/scripting/types.js +86 -60
- package/dist/scripting/types.js.map +1 -1
- package/dist/search/usearch-index.js +42 -7
- package/dist/search/usearch-index.js.map +1 -1
- package/dist/security/bash-parser.d.ts +51 -0
- package/dist/security/bash-parser.js +327 -0
- package/dist/security/bash-parser.js.map +1 -0
- package/dist/security/index.d.ts +7 -5
- package/dist/security/index.js +8 -7
- package/dist/security/index.js.map +1 -1
- package/dist/security/skill-scanner.d.ts +36 -0
- package/dist/security/skill-scanner.js +149 -0
- package/dist/security/skill-scanner.js.map +1 -0
- package/dist/security/trust-folders.d.ts +1 -0
- package/dist/security/trust-folders.js +19 -1
- package/dist/security/trust-folders.js.map +1 -1
- package/dist/server/auth/index.d.ts +2 -2
- package/dist/server/auth/index.js +2 -2
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/middleware/index.d.ts +5 -5
- package/dist/server/middleware/index.js +5 -5
- package/dist/server/middleware/index.js.map +1 -1
- package/dist/server/middleware/rate-limit.js +15 -3
- package/dist/server/middleware/rate-limit.js.map +1 -1
- package/dist/server/websocket/handler.js +54 -6
- package/dist/server/websocket/handler.js.map +1 -1
- package/dist/skills/eligibility.js +26 -4
- package/dist/skills/eligibility.js.map +1 -1
- package/dist/tasks/background-tasks.js +5 -1
- package/dist/tasks/background-tasks.js.map +1 -1
- package/dist/tools/apply-patch.d.ts +55 -0
- package/dist/tools/apply-patch.js +273 -0
- package/dist/tools/apply-patch.js.map +1 -0
- package/dist/tools/hooks/default-hooks.d.ts +1 -1
- package/dist/tools/hooks/default-hooks.js +2 -1
- package/dist/tools/hooks/default-hooks.js.map +1 -1
- package/dist/tools/index.d.ts +10 -10
- package/dist/tools/index.js +11 -11
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/registry/bash-tools.js +6 -3
- package/dist/tools/registry/bash-tools.js.map +1 -1
- package/dist/tools/registry/misc-tools.js +1 -2
- package/dist/tools/registry/misc-tools.js.map +1 -1
- package/dist/tools/registry/search-tools.js +1 -1
- package/dist/tools/registry/search-tools.js.map +1 -1
- package/dist/tools/registry/text-editor-tools.js +1 -1
- package/dist/tools/registry/text-editor-tools.js.map +1 -1
- package/dist/tools/registry/todo-tools.js +37 -5
- package/dist/tools/registry/todo-tools.js.map +1 -1
- package/dist/tools/registry/tool-registry.js +5 -4
- package/dist/tools/registry/tool-registry.js.map +1 -1
- package/dist/tools/registry/web-tools.d.ts +1 -1
- package/dist/tools/registry/web-tools.js +28 -8
- package/dist/tools/registry/web-tools.js.map +1 -1
- package/dist/tools/text-editor.d.ts +1 -1
- package/dist/tools/text-editor.js +23 -5
- package/dist/tools/text-editor.js.map +1 -1
- package/dist/tools/web-search.d.ts +52 -37
- package/dist/tools/web-search.js +368 -163
- package/dist/tools/web-search.js.map +1 -1
- package/dist/types/errors.d.ts +1 -1
- package/dist/types/errors.js +2 -8
- package/dist/types/errors.js.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.js +1 -2
- package/dist/types/index.js.map +1 -1
- package/dist/ui/components/ChatInterface.d.ts +1 -1
- package/dist/ui/index.d.ts +17 -21
- package/dist/ui/index.js +25 -22
- package/dist/ui/index.js.map +1 -1
- package/dist/utils/config-validation/schema.d.ts +15 -15
- package/dist/utils/head-tail-truncation.d.ts +34 -0
- package/dist/utils/head-tail-truncation.js +98 -0
- package/dist/utils/head-tail-truncation.js.map +1 -0
- package/dist/utils/logger.js +3 -9
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/sanitize.d.ts +5 -0
- package/dist/utils/sanitize.js +19 -0
- package/dist/utils/sanitize.js.map +1 -1
- package/dist/utils/settings-manager.js +4 -4
- package/dist/utils/settings-manager.js.map +1 -1
- package/dist/workflows/index.d.ts +4 -279
- package/dist/workflows/index.js +8 -822
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/state-manager.d.ts +77 -0
- package/dist/workflows/state-manager.js +198 -0
- package/dist/workflows/state-manager.js.map +1 -0
- package/dist/workflows/step-manager.d.ts +39 -0
- package/dist/workflows/step-manager.js +196 -0
- package/dist/workflows/step-manager.js.map +1 -0
- package/dist/workflows/types.d.ts +87 -0
- package/dist/workflows/types.js +5 -0
- package/dist/workflows/types.js.map +1 -0
- package/dist/workflows/workflow-engine.d.ts +34 -0
- package/dist/workflows/workflow-engine.js +354 -0
- package/dist/workflows/workflow-engine.js.map +1 -0
- package/package.json +5 -1
|
@@ -1,609 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
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
|
-
|
|
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"}
|
package/dist/fcs/index.d.ts
CHANGED
|
@@ -1,29 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
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 '
|
|
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';
|