@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,626 +1,5 @@
1
1
  /**
2
- * FileCommander Script (FCS) Runtime
3
- *
4
- * 100% compatible interpreter for FCS AST
2
+ * @deprecated Use src/scripting/runtime.ts instead. This file re-exports for backward compatibility.
5
3
  */
6
- import { TokenType, DEFAULT_FCS_CONFIG, } from './types.js';
7
- import { createFCSBuiltins } from './builtins.js';
8
- import { createGrokBindings } from './codebuddy-bindings.js';
9
- // Control flow signals
10
- class ReturnSignal {
11
- value;
12
- constructor(value) {
13
- this.value = value;
14
- }
15
- }
16
- class BreakSignal {
17
- }
18
- class ContinueSignal {
19
- }
20
- export class FCSRuntime {
21
- config;
22
- globalContext;
23
- output = [];
24
- startTime = 0;
25
- testResults = [];
26
- constructor(config = {}) {
27
- this.config = { ...DEFAULT_FCS_CONFIG, ...config };
28
- this.globalContext = {
29
- variables: new Map(),
30
- functions: new Map(),
31
- };
32
- this.initializeBuiltins();
33
- }
34
- initializeBuiltins() {
35
- const printFn = (msg) => {
36
- this.output.push(msg);
37
- };
38
- // Load standard FCS builtins
39
- const builtins = createFCSBuiltins(this.config, printFn);
40
- for (const [name, value] of Object.entries(builtins)) {
41
- // Store in variables for lookup
42
- this.globalContext.variables.set(name, value);
43
- // Only store functions in the functions map
44
- if (typeof value === 'function') {
45
- this.globalContext.functions.set(name, value);
46
- }
47
- }
48
- // Load code-buddy bindings (grok, tool, context, agent, mcp, git, session)
49
- const codebuddyBindings = createGrokBindings(this.config, printFn);
50
- for (const [name, value] of Object.entries(codebuddyBindings)) {
51
- this.globalContext.variables.set(name, value);
52
- if (typeof value === 'function') {
53
- this.globalContext.functions.set(name, value);
54
- }
55
- }
56
- // Inject user variables
57
- if (this.config.variables) {
58
- for (const [name, value] of Object.entries(this.config.variables)) {
59
- this.globalContext.variables.set(name, value);
60
- }
61
- }
62
- }
63
- async execute(program) {
64
- this.startTime = Date.now();
65
- this.output = [];
66
- this.testResults = [];
67
- let returnValue = null;
68
- let error;
69
- try {
70
- for (const statement of program.statements) {
71
- const result = await this.executeNode(statement, this.globalContext);
72
- if (result instanceof ReturnSignal) {
73
- returnValue = result.value;
74
- break;
75
- }
76
- }
77
- }
78
- catch (err) {
79
- if (err instanceof ReturnSignal) {
80
- returnValue = err.value;
81
- }
82
- else {
83
- error = err instanceof Error ? err.message : String(err);
84
- }
85
- }
86
- return {
87
- success: !error,
88
- output: this.output,
89
- error,
90
- returnValue,
91
- duration: Date.now() - this.startTime,
92
- };
93
- }
94
- async executeNode(node, ctx) {
95
- // Check timeout
96
- if (Date.now() - this.startTime > this.config.timeout) {
97
- throw new Error(`Script timeout after ${this.config.timeout}ms`);
98
- }
99
- switch (node.type) {
100
- // Declarations
101
- case 'VarDeclaration':
102
- return this.executeVarDeclaration(node, ctx);
103
- case 'FunctionDeclaration':
104
- return this.executeFunctionDeclaration(node, ctx);
105
- case 'ClassDeclaration':
106
- return this.executeClassDeclaration(node, ctx);
107
- case 'TestDeclaration':
108
- return this.executeTestDeclaration(node, ctx);
109
- // Statements
110
- case 'Block':
111
- return this.executeBlock(node, ctx);
112
- case 'ExpressionStmt':
113
- return this.evaluate(node.expression, ctx);
114
- case 'If':
115
- return this.executeIfStatement(node, ctx);
116
- case 'While':
117
- return this.executeWhileStatement(node, ctx);
118
- case 'For':
119
- return this.executeForStatement(node, ctx);
120
- case 'Return':
121
- return this.executeReturnStatement(node, ctx);
122
- case 'Break':
123
- return new BreakSignal();
124
- case 'Continue':
125
- return new ContinueSignal();
126
- case 'Try':
127
- return this.executeTryStatement(node, ctx);
128
- case 'Throw':
129
- return this.executeThrowStatement(node, ctx);
130
- case 'Import':
131
- return this.executeImportStatement(node, ctx);
132
- case 'Assert':
133
- return this.executeAssertStatement(node, ctx);
134
- // Expressions (delegated to evaluate)
135
- default:
136
- return this.evaluate(node, ctx);
137
- }
138
- }
139
- // ============================================
140
- // Statement Execution
141
- // ============================================
142
- async executeVarDeclaration(node, ctx) {
143
- const value = node.initializer
144
- ? await this.evaluate(node.initializer, ctx)
145
- : null;
146
- ctx.variables.set(node.name, value);
147
- return null;
148
- }
149
- async executeFunctionDeclaration(node, ctx) {
150
- const fn = async (...args) => {
151
- const localCtx = {
152
- variables: new Map(),
153
- functions: new Map(ctx.functions),
154
- parent: ctx,
155
- };
156
- // Bind parameters (with named args support)
157
- const lastArg = args.length > 0 ? args[args.length - 1] : null;
158
- const hasNamedArgs = lastArg !== null && typeof lastArg === 'object' && lastArg !== null && '__namedArgs' in lastArg;
159
- const namedArgs = hasNamedArgs
160
- ? args.pop().__namedArgs
161
- : {};
162
- for (let i = 0; i < node.parameters.length; i++) {
163
- const param = node.parameters[i];
164
- let value;
165
- if (namedArgs[param.name] !== undefined) {
166
- value = namedArgs[param.name];
167
- }
168
- else if (args[i] !== undefined) {
169
- value = args[i];
170
- }
171
- else if (param.defaultValue) {
172
- value = await this.evaluate(param.defaultValue, ctx);
173
- }
174
- else {
175
- value = null;
176
- }
177
- localCtx.variables.set(param.name, value);
178
- }
179
- try {
180
- const result = await this.executeBlock(node.body, localCtx);
181
- if (result instanceof ReturnSignal) {
182
- return result.value;
183
- }
184
- return null;
185
- }
186
- catch (err) {
187
- if (err instanceof ReturnSignal) {
188
- return err.value;
189
- }
190
- throw err;
191
- }
192
- };
193
- ctx.functions.set(node.name, fn);
194
- ctx.variables.set(node.name, fn);
195
- return null;
196
- }
197
- async executeClassDeclaration(node, ctx) {
198
- // Create class constructor
199
- const classConstructor = async (...args) => {
200
- const instance = {};
201
- // Initialize members
202
- for (const member of node.members) {
203
- if (member.type === 'VarDeclaration') {
204
- const varDecl = member;
205
- instance[varDecl.name] = varDecl.initializer
206
- ? await this.evaluate(varDecl.initializer, ctx)
207
- : null;
208
- }
209
- else if (member.type === 'FunctionDeclaration') {
210
- const fnDecl = member;
211
- // Create method bound to instance
212
- instance[fnDecl.name] = async (...methodArgs) => {
213
- const methodCtx = {
214
- variables: new Map([['this', instance]]),
215
- functions: new Map(ctx.functions),
216
- parent: ctx,
217
- };
218
- for (let i = 0; i < fnDecl.parameters.length; i++) {
219
- methodCtx.variables.set(fnDecl.parameters[i].name, methodArgs[i]);
220
- }
221
- const result = await this.executeBlock(fnDecl.body, methodCtx);
222
- if (result instanceof ReturnSignal) {
223
- return result.value;
224
- }
225
- return null;
226
- };
227
- }
228
- }
229
- // Call constructor if exists
230
- if (instance.constructor && typeof instance.constructor === 'function') {
231
- await instance.constructor(...args);
232
- }
233
- return instance;
234
- };
235
- ctx.variables.set(node.name, classConstructor);
236
- return null;
237
- }
238
- async executeTestDeclaration(node, ctx) {
239
- if (!this.config.verbose) {
240
- // Skip test execution if not in verbose/test mode
241
- return null;
242
- }
243
- try {
244
- await this.executeBlock(node.body, ctx);
245
- this.testResults.push({ name: node.name, passed: true });
246
- this.output.push(`✓ ${node.name}`);
247
- }
248
- catch (err) {
249
- const errorMsg = err instanceof Error ? err.message : String(err);
250
- this.testResults.push({ name: node.name, passed: false, error: errorMsg });
251
- this.output.push(`✗ ${node.name}: ${errorMsg}`);
252
- }
253
- return null;
254
- }
255
- async executeBlock(node, ctx) {
256
- for (const stmt of node.statements) {
257
- const result = await this.executeNode(stmt, ctx);
258
- if (result instanceof ReturnSignal ||
259
- result instanceof BreakSignal ||
260
- result instanceof ContinueSignal) {
261
- return result;
262
- }
263
- }
264
- return null;
265
- }
266
- async executeIfStatement(node, ctx) {
267
- const condition = await this.evaluate(node.condition, ctx);
268
- if (this.isTruthy(condition)) {
269
- return this.executeNode(node.thenBranch, ctx);
270
- }
271
- else if (node.elseBranch) {
272
- return this.executeNode(node.elseBranch, ctx);
273
- }
274
- return null;
275
- }
276
- async executeWhileStatement(node, ctx) {
277
- while (this.isTruthy(await this.evaluate(node.condition, ctx))) {
278
- const result = await this.executeNode(node.body, ctx);
279
- if (result instanceof ReturnSignal)
280
- return result;
281
- if (result instanceof BreakSignal)
282
- break;
283
- if (result instanceof ContinueSignal)
284
- continue;
285
- }
286
- return null;
287
- }
288
- async executeForStatement(node, ctx) {
289
- const iterable = await this.evaluate(node.iterable, ctx);
290
- if (!Array.isArray(iterable) && typeof iterable !== 'object') {
291
- throw new Error('for-in requires an iterable (array or object)');
292
- }
293
- const items = Array.isArray(iterable)
294
- ? iterable
295
- : Object.entries(iterable);
296
- const localCtx = {
297
- variables: new Map(),
298
- functions: ctx.functions,
299
- parent: ctx,
300
- };
301
- for (const item of items) {
302
- localCtx.variables.set(node.variable, item);
303
- const result = await this.executeNode(node.body, localCtx);
304
- if (result instanceof ReturnSignal)
305
- return result;
306
- if (result instanceof BreakSignal)
307
- break;
308
- if (result instanceof ContinueSignal)
309
- continue;
310
- }
311
- return null;
312
- }
313
- async executeReturnStatement(node, ctx) {
314
- const value = node.value ? await this.evaluate(node.value, ctx) : null;
315
- return new ReturnSignal(value);
316
- }
317
- async executeTryStatement(node, ctx) {
318
- try {
319
- return await this.executeBlock(node.tryBlock, ctx);
320
- }
321
- catch (err) {
322
- for (const clause of node.catchClauses) {
323
- const localCtx = {
324
- variables: new Map(ctx.variables),
325
- functions: ctx.functions,
326
- parent: ctx,
327
- };
328
- if (clause.variable) {
329
- const errorValue = err instanceof Error
330
- ? { message: err.message, stack: err.stack }
331
- : err;
332
- localCtx.variables.set(clause.variable, errorValue);
333
- }
334
- return this.executeBlock(clause.body, localCtx);
335
- }
336
- throw err;
337
- }
338
- finally {
339
- if (node.finallyBlock) {
340
- await this.executeBlock(node.finallyBlock, ctx);
341
- }
342
- }
343
- }
344
- async executeThrowStatement(node, ctx) {
345
- const value = await this.evaluate(node.expression, ctx);
346
- if (typeof value === 'string') {
347
- throw new Error(value);
348
- }
349
- throw value;
350
- }
351
- async executeImportStatement(_node, _ctx) {
352
- // Imports are handled at initialization or by module system
353
- // For now, just skip
354
- return null;
355
- }
356
- async executeAssertStatement(node, ctx) {
357
- const condition = await this.evaluate(node.condition, ctx);
358
- if (!this.isTruthy(condition)) {
359
- const message = node.message || 'Assertion failed';
360
- throw new Error(message);
361
- }
362
- return null;
363
- }
364
- // ============================================
365
- // Expression Evaluation
366
- // ============================================
367
- async evaluate(node, ctx) {
368
- switch (node.type) {
369
- case 'Literal':
370
- return node.value;
371
- case 'Identifier':
372
- return this.lookupVariable(node.name, ctx);
373
- case 'Binary':
374
- return this.evaluateBinary(node, ctx);
375
- case 'Unary':
376
- return this.evaluateUnary(node, ctx);
377
- case 'Assignment':
378
- return this.evaluateAssignment(node, ctx);
379
- case 'Call':
380
- return this.evaluateCall(node, ctx);
381
- case 'Member':
382
- return this.evaluateMember(node, ctx);
383
- case 'Index':
384
- return this.evaluateIndex(node, ctx);
385
- case 'Array':
386
- return this.evaluateArray(node, ctx);
387
- case 'Dict':
388
- return this.evaluateDict(node, ctx);
389
- case 'Lambda':
390
- return this.evaluateLambda(node, ctx);
391
- case 'Interpolation':
392
- return this.evaluateInterpolation(node, ctx);
393
- case 'Ternary':
394
- return this.evaluateTernary(node, ctx);
395
- default:
396
- throw new Error(`Unknown expression type: ${node.type}`);
397
- }
398
- }
399
- lookupVariable(name, ctx) {
400
- if (ctx.variables.has(name)) {
401
- return ctx.variables.get(name);
402
- }
403
- if (ctx.functions.has(name)) {
404
- return ctx.functions.get(name);
405
- }
406
- if (ctx.parent) {
407
- return this.lookupVariable(name, ctx.parent);
408
- }
409
- throw new Error(`Undefined variable: ${name}`);
410
- }
411
- setVariable(name, value, ctx) {
412
- let current = ctx;
413
- while (current) {
414
- if (current.variables.has(name)) {
415
- current.variables.set(name, value);
416
- return;
417
- }
418
- current = current.parent;
419
- }
420
- ctx.variables.set(name, value);
421
- }
422
- async evaluateBinary(node, ctx) {
423
- const left = await this.evaluate(node.left, ctx);
424
- const right = await this.evaluate(node.right, ctx);
425
- switch (node.operator) {
426
- case TokenType.Plus:
427
- if (typeof left === 'string' || typeof right === 'string') {
428
- return String(left) + String(right);
429
- }
430
- return left + right;
431
- case TokenType.Minus:
432
- return left - right;
433
- case TokenType.Multiply:
434
- if (typeof left === 'string' && typeof right === 'number') {
435
- return left.repeat(right);
436
- }
437
- return left * right;
438
- case TokenType.Divide:
439
- return left / right;
440
- case TokenType.Modulo:
441
- return left % right;
442
- case TokenType.Power:
443
- return Math.pow(left, right);
444
- case TokenType.Equal:
445
- return left === right;
446
- case TokenType.NotEqual:
447
- return left !== right;
448
- case TokenType.Less:
449
- return left < right;
450
- case TokenType.LessEqual:
451
- return left <= right;
452
- case TokenType.Greater:
453
- return left > right;
454
- case TokenType.GreaterEqual:
455
- return left >= right;
456
- case TokenType.And:
457
- return this.isTruthy(left) && this.isTruthy(right);
458
- case TokenType.Or:
459
- return this.isTruthy(left) || this.isTruthy(right);
460
- default:
461
- throw new Error(`Unknown binary operator: ${node.operator}`);
462
- }
463
- }
464
- async evaluateUnary(node, ctx) {
465
- const operand = await this.evaluate(node.operand, ctx);
466
- switch (node.operator) {
467
- case TokenType.Minus:
468
- return -operand;
469
- case TokenType.Not:
470
- return !this.isTruthy(operand);
471
- default:
472
- throw new Error(`Unknown unary operator: ${node.operator}`);
473
- }
474
- }
475
- async evaluateAssignment(node, ctx) {
476
- let value = await this.evaluate(node.value, ctx);
477
- // Handle compound assignment
478
- if (node.operator !== TokenType.Assign) {
479
- const current = await this.evaluate(node.target, ctx);
480
- switch (node.operator) {
481
- case TokenType.PlusAssign:
482
- if (typeof current === 'string' || typeof value === 'string') {
483
- value = String(current) + String(value);
484
- }
485
- else {
486
- value = current + value;
487
- }
488
- break;
489
- case TokenType.MinusAssign:
490
- value = current - value;
491
- break;
492
- case TokenType.MultiplyAssign:
493
- value = current * value;
494
- break;
495
- case TokenType.DivideAssign:
496
- value = current / value;
497
- break;
498
- }
499
- }
500
- if (node.target.type === 'Identifier') {
501
- this.setVariable(node.target.name, value, ctx);
502
- }
503
- else if (node.target.type === 'Member') {
504
- const member = node.target;
505
- const object = await this.evaluate(member.object, ctx);
506
- object[member.member] = value;
507
- }
508
- else if (node.target.type === 'Index') {
509
- const index = node.target;
510
- const object = await this.evaluate(index.object, ctx);
511
- const key = await this.evaluate(index.index, ctx);
512
- object[key] = value;
513
- }
514
- return value;
515
- }
516
- async evaluateCall(node, ctx) {
517
- const callee = await this.evaluate(node.callee, ctx);
518
- if (typeof callee !== 'function') {
519
- throw new Error(`${JSON.stringify(callee)} is not a function`);
520
- }
521
- const args = [];
522
- for (const arg of node.arguments) {
523
- args.push(await this.evaluate(arg, ctx));
524
- }
525
- // Handle named arguments
526
- if (node.namedArgs && Object.keys(node.namedArgs).length > 0) {
527
- const namedValues = {};
528
- for (const [name, expr] of Object.entries(node.namedArgs)) {
529
- namedValues[name] = await this.evaluate(expr, ctx);
530
- }
531
- args.push({ __namedArgs: namedValues });
532
- }
533
- // Await the result in case it's a Promise (async function)
534
- const result = callee(...args);
535
- return result instanceof Promise ? await result : result;
536
- }
537
- async evaluateMember(node, ctx) {
538
- const object = await this.evaluate(node.object, ctx);
539
- if (object === null || object === undefined) {
540
- throw new Error('Cannot read property of null or undefined');
541
- }
542
- const obj = object;
543
- const value = obj[node.member];
544
- // Bind methods
545
- if (typeof value === 'function') {
546
- return value.bind(obj);
547
- }
548
- return value;
549
- }
550
- async evaluateIndex(node, ctx) {
551
- const object = await this.evaluate(node.object, ctx);
552
- const index = await this.evaluate(node.index, ctx);
553
- if (object === null || object === undefined) {
554
- throw new Error('Cannot index null or undefined');
555
- }
556
- return object[index];
557
- }
558
- async evaluateArray(node, ctx) {
559
- const elements = [];
560
- for (const element of node.elements) {
561
- elements.push(await this.evaluate(element, ctx));
562
- }
563
- return elements;
564
- }
565
- async evaluateDict(node, ctx) {
566
- const dict = {};
567
- for (const [key, valueNode] of node.elements) {
568
- dict[key] = await this.evaluate(valueNode, ctx);
569
- }
570
- return dict;
571
- }
572
- evaluateLambda(node, ctx) {
573
- return async (...args) => {
574
- const localCtx = {
575
- variables: new Map(),
576
- functions: ctx.functions,
577
- parent: ctx,
578
- };
579
- for (let i = 0; i < node.parameters.length; i++) {
580
- localCtx.variables.set(node.parameters[i], args[i]);
581
- }
582
- if (node.body.type === 'Block') {
583
- const result = await this.executeBlock(node.body, localCtx);
584
- if (result instanceof ReturnSignal) {
585
- return result.value;
586
- }
587
- return null;
588
- }
589
- return this.evaluate(node.body, localCtx);
590
- };
591
- }
592
- async evaluateInterpolation(node, ctx) {
593
- let result = '';
594
- for (const part of node.parts) {
595
- const value = await this.evaluate(part, ctx);
596
- result += String(value);
597
- }
598
- return result;
599
- }
600
- async evaluateTernary(node, ctx) {
601
- const condition = await this.evaluate(node.condition, ctx);
602
- if (this.isTruthy(condition)) {
603
- return this.evaluate(node.consequent, ctx);
604
- }
605
- return this.evaluate(node.alternate, ctx);
606
- }
607
- // ============================================
608
- // Helpers
609
- // ============================================
610
- isTruthy(value) {
611
- if (value === null || value === undefined || value === false || value === 0 || value === '') {
612
- return false;
613
- }
614
- return true;
615
- }
616
- getTestResults() {
617
- return this.testResults;
618
- }
619
- getOutput() {
620
- return this.output;
621
- }
622
- }
623
- export function createRuntime(config = {}) {
624
- return new FCSRuntime(config);
625
- }
4
+ export { FCSRuntime, Runtime, createRuntime } from '../scripting/runtime.js';
626
5
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/fcs/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/fcs/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC"}