@phuetz/code-buddy 0.1.0 → 0.1.1

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 (206) 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 +3 -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 +41 -7
  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/specialized/archive-agent.d.ts +3 -0
  33. package/dist/agent/specialized/archive-agent.js +71 -31
  34. package/dist/agent/specialized/archive-agent.js.map +1 -1
  35. package/dist/agent/specialized/security-review/agent.js +19 -8
  36. package/dist/agent/specialized/security-review/agent.js.map +1 -1
  37. package/dist/agent/tool-executor.js +5 -0
  38. package/dist/agent/tool-executor.js.map +1 -1
  39. package/dist/agent/turn-diff-tracker.d.ts +79 -0
  40. package/dist/agent/turn-diff-tracker.js +195 -0
  41. package/dist/agent/turn-diff-tracker.js.map +1 -0
  42. package/dist/checkpoints/checkpoint-versioning.js +78 -20
  43. package/dist/checkpoints/checkpoint-versioning.js.map +1 -1
  44. package/dist/cli/config-loader.js +2 -4
  45. package/dist/cli/config-loader.js.map +1 -1
  46. package/dist/commands/handlers/fcs-handlers.js +1 -1
  47. package/dist/commands/handlers/fcs-handlers.js.map +1 -1
  48. package/dist/commands/handlers/memory-handlers.js +2 -1
  49. package/dist/commands/handlers/memory-handlers.js.map +1 -1
  50. package/dist/commands/handlers/worktree-handlers.js +11 -0
  51. package/dist/commands/handlers/worktree-handlers.js.map +1 -1
  52. package/dist/commands/mcp.d.ts +1 -0
  53. package/dist/commands/mcp.js +66 -7
  54. package/dist/commands/mcp.js.map +1 -1
  55. package/dist/commands/pipeline.js +25 -13
  56. package/dist/commands/pipeline.js.map +1 -1
  57. package/dist/config/model-tools.d.ts +41 -0
  58. package/dist/config/model-tools.js +194 -0
  59. package/dist/config/model-tools.js.map +1 -0
  60. package/dist/context/context-manager-v2.d.ts +2 -1
  61. package/dist/context/context-manager-v2.js +34 -5
  62. package/dist/context/context-manager-v2.js.map +1 -1
  63. package/dist/daemon/daemon-manager.js +23 -19
  64. package/dist/daemon/daemon-manager.js.map +1 -1
  65. package/dist/database/database-manager.d.ts +4 -0
  66. package/dist/database/database-manager.js +16 -7
  67. package/dist/database/database-manager.js.map +1 -1
  68. package/dist/desktop-automation/nutjs-provider.js +89 -0
  69. package/dist/desktop-automation/nutjs-provider.js.map +1 -1
  70. package/dist/fcs/builtins.d.ts +2 -6
  71. package/dist/fcs/builtins.js +2 -568
  72. package/dist/fcs/builtins.js.map +1 -1
  73. package/dist/fcs/codebuddy-bindings.d.ts +3 -43
  74. package/dist/fcs/codebuddy-bindings.js +2 -606
  75. package/dist/fcs/codebuddy-bindings.js.map +1 -1
  76. package/dist/fcs/index.d.ts +2 -27
  77. package/dist/fcs/index.js +2 -53
  78. package/dist/fcs/index.js.map +1 -1
  79. package/dist/fcs/lexer.d.ts +2 -37
  80. package/dist/fcs/lexer.js +2 -459
  81. package/dist/fcs/lexer.js.map +1 -1
  82. package/dist/fcs/parser.d.ts +2 -68
  83. package/dist/fcs/parser.js +2 -893
  84. package/dist/fcs/parser.js.map +1 -1
  85. package/dist/fcs/runtime.d.ts +2 -59
  86. package/dist/fcs/runtime.js +2 -623
  87. package/dist/fcs/runtime.js.map +1 -1
  88. package/dist/fcs/script-registry.d.ts +3 -69
  89. package/dist/fcs/script-registry.js +2 -219
  90. package/dist/fcs/script-registry.js.map +1 -1
  91. package/dist/fcs/sync-bindings.d.ts +3 -101
  92. package/dist/fcs/sync-bindings.js +2 -410
  93. package/dist/fcs/sync-bindings.js.map +1 -1
  94. package/dist/fcs/types.d.ts +2 -285
  95. package/dist/fcs/types.js +2 -103
  96. package/dist/fcs/types.js.map +1 -1
  97. package/dist/hooks/use-input-handler.d.ts +1 -1
  98. package/dist/index.js +5 -2
  99. package/dist/index.js.map +1 -1
  100. package/dist/input/voice-control.js +11 -5
  101. package/dist/input/voice-control.js.map +1 -1
  102. package/dist/integrations/json-rpc/server.js +5 -5
  103. package/dist/integrations/json-rpc/server.js.map +1 -1
  104. package/dist/integrations/mcp/mcp-server.js +1 -1
  105. package/dist/integrations/mcp/mcp-server.js.map +1 -1
  106. package/dist/mcp/client.js +2 -1
  107. package/dist/mcp/client.js.map +1 -1
  108. package/dist/mcp/config.js +89 -5
  109. package/dist/mcp/config.js.map +1 -1
  110. package/dist/mcp/mcp-client.js +65 -14
  111. package/dist/mcp/mcp-client.js.map +1 -1
  112. package/dist/mcp/transports.d.ts +0 -1
  113. package/dist/mcp/transports.js +1 -5
  114. package/dist/mcp/transports.js.map +1 -1
  115. package/dist/mcp/types.d.ts +2 -0
  116. package/dist/persistence/session-lock.d.ts +42 -0
  117. package/dist/persistence/session-lock.js +165 -0
  118. package/dist/persistence/session-lock.js.map +1 -0
  119. package/dist/persistence/session-store.d.ts +18 -3
  120. package/dist/persistence/session-store.js +90 -21
  121. package/dist/persistence/session-store.js.map +1 -1
  122. package/dist/plugins/isolated-plugin-runner.d.ts +6 -0
  123. package/dist/plugins/isolated-plugin-runner.js +19 -1
  124. package/dist/plugins/isolated-plugin-runner.js.map +1 -1
  125. package/dist/providers/local-llm-provider.js +21 -4
  126. package/dist/providers/local-llm-provider.js.map +1 -1
  127. package/dist/sandbox/docker-sandbox.js +7 -4
  128. package/dist/sandbox/docker-sandbox.js.map +1 -1
  129. package/dist/scripting/builtins.d.ts +8 -3
  130. package/dist/scripting/builtins.js +506 -355
  131. package/dist/scripting/builtins.js.map +1 -1
  132. package/dist/scripting/codebuddy-bindings.d.ts +47 -0
  133. package/dist/scripting/codebuddy-bindings.js +487 -0
  134. package/dist/scripting/codebuddy-bindings.js.map +1 -0
  135. package/dist/scripting/index.d.ts +33 -30
  136. package/dist/scripting/index.js +41 -36
  137. package/dist/scripting/index.js.map +1 -1
  138. package/dist/scripting/lexer.d.ts +31 -13
  139. package/dist/scripting/lexer.js +379 -292
  140. package/dist/scripting/lexer.js.map +1 -1
  141. package/dist/scripting/parser.d.ts +63 -44
  142. package/dist/scripting/parser.js +700 -473
  143. package/dist/scripting/parser.js.map +1 -1
  144. package/dist/scripting/runtime.d.ts +55 -24
  145. package/dist/scripting/runtime.js +600 -288
  146. package/dist/scripting/runtime.js.map +1 -1
  147. package/dist/scripting/script-registry.d.ts +54 -0
  148. package/dist/scripting/script-registry.js +202 -0
  149. package/dist/scripting/script-registry.js.map +1 -0
  150. package/dist/scripting/sync-bindings.d.ts +105 -0
  151. package/dist/scripting/sync-bindings.js +353 -0
  152. package/dist/scripting/sync-bindings.js.map +1 -0
  153. package/dist/scripting/types.d.ts +297 -199
  154. package/dist/scripting/types.js +86 -60
  155. package/dist/scripting/types.js.map +1 -1
  156. package/dist/search/usearch-index.js +42 -7
  157. package/dist/search/usearch-index.js.map +1 -1
  158. package/dist/security/bash-parser.d.ts +51 -0
  159. package/dist/security/bash-parser.js +327 -0
  160. package/dist/security/bash-parser.js.map +1 -0
  161. package/dist/security/skill-scanner.d.ts +36 -0
  162. package/dist/security/skill-scanner.js +149 -0
  163. package/dist/security/skill-scanner.js.map +1 -0
  164. package/dist/security/trust-folders.d.ts +1 -0
  165. package/dist/security/trust-folders.js +19 -1
  166. package/dist/security/trust-folders.js.map +1 -1
  167. package/dist/server/websocket/handler.js +15 -5
  168. package/dist/server/websocket/handler.js.map +1 -1
  169. package/dist/skills/eligibility.js +26 -4
  170. package/dist/skills/eligibility.js.map +1 -1
  171. package/dist/tasks/background-tasks.js +5 -1
  172. package/dist/tasks/background-tasks.js.map +1 -1
  173. package/dist/tools/apply-patch.d.ts +55 -0
  174. package/dist/tools/apply-patch.js +273 -0
  175. package/dist/tools/apply-patch.js.map +1 -0
  176. package/dist/tools/registry/bash-tools.js +6 -3
  177. package/dist/tools/registry/bash-tools.js.map +1 -1
  178. package/dist/tools/registry/misc-tools.js +1 -2
  179. package/dist/tools/registry/misc-tools.js.map +1 -1
  180. package/dist/tools/registry/search-tools.js +1 -1
  181. package/dist/tools/registry/search-tools.js.map +1 -1
  182. package/dist/tools/registry/text-editor-tools.js +1 -1
  183. package/dist/tools/registry/text-editor-tools.js.map +1 -1
  184. package/dist/tools/registry/todo-tools.js +37 -5
  185. package/dist/tools/registry/todo-tools.js.map +1 -1
  186. package/dist/tools/registry/tool-registry.js +5 -4
  187. package/dist/tools/registry/tool-registry.js.map +1 -1
  188. package/dist/tools/registry/web-tools.d.ts +1 -1
  189. package/dist/tools/registry/web-tools.js +28 -8
  190. package/dist/tools/registry/web-tools.js.map +1 -1
  191. package/dist/tools/text-editor.d.ts +1 -1
  192. package/dist/tools/text-editor.js +23 -5
  193. package/dist/tools/text-editor.js.map +1 -1
  194. package/dist/tools/web-search.d.ts +52 -37
  195. package/dist/tools/web-search.js +368 -163
  196. package/dist/tools/web-search.js.map +1 -1
  197. package/dist/ui/components/ChatInterface.d.ts +1 -1
  198. package/dist/utils/head-tail-truncation.d.ts +34 -0
  199. package/dist/utils/head-tail-truncation.js +98 -0
  200. package/dist/utils/head-tail-truncation.js.map +1 -0
  201. package/dist/utils/sanitize.d.ts +5 -0
  202. package/dist/utils/sanitize.js +19 -0
  203. package/dist/utils/sanitize.js.map +1 -1
  204. package/dist/utils/settings-manager.js +4 -4
  205. package/dist/utils/settings-manager.js.map +1 -1
  206. package/package.json +3 -1
@@ -1,241 +1,269 @@
1
1
  /**
2
- * Buddy Script Types
2
+ * Unified Script Types
3
3
  *
4
- * Type definitions for the Buddy Script language (.bs files)
5
- * Inspired by FileCommander Script (FCS)
4
+ * Merged from FileCommander Script (FCS) and Buddy Script
5
+ * FCS lexer/parser types as the superset, plus Buddy Script runtime types
6
+ *
7
+ * Extensions: .bs (primary), .fcs (backward-compatible alias)
6
8
  */
7
9
  export declare enum TokenType {
8
- NUMBER = "NUMBER",
9
- STRING = "STRING",
10
- BOOLEAN = "BOOLEAN",
11
- NULL = "NULL",
12
- IDENTIFIER = "IDENTIFIER",
13
- LET = "LET",
14
- CONST = "CONST",
15
- FUNCTION = "FUNCTION",
16
- RETURN = "RETURN",
17
- IF = "IF",
18
- ELSE = "ELSE",
19
- WHILE = "WHILE",
20
- FOR = "FOR",
21
- IN = "IN",
22
- BREAK = "BREAK",
23
- CONTINUE = "CONTINUE",
24
- TRY = "TRY",
25
- CATCH = "CATCH",
26
- THROW = "THROW",
27
- IMPORT = "IMPORT",
28
- EXPORT = "EXPORT",
29
- ASYNC = "ASYNC",
30
- AWAIT = "AWAIT",
31
- PLUS = "PLUS",
32
- MINUS = "MINUS",
33
- MULTIPLY = "MULTIPLY",
34
- DIVIDE = "DIVIDE",
35
- MODULO = "MODULO",
36
- POWER = "POWER",
37
- ASSIGN = "ASSIGN",
38
- PLUS_ASSIGN = "PLUS_ASSIGN",
39
- MINUS_ASSIGN = "MINUS_ASSIGN",
40
- EQUALS = "EQUALS",
41
- NOT_EQUALS = "NOT_EQUALS",
42
- LESS_THAN = "LESS_THAN",
43
- GREATER_THAN = "GREATER_THAN",
44
- LESS_EQUAL = "LESS_EQUAL",
45
- GREATER_EQUAL = "GREATER_EQUAL",
46
- AND = "AND",
47
- OR = "OR",
48
- NOT = "NOT",
49
- LPAREN = "LPAREN",
50
- RPAREN = "RPAREN",
51
- LBRACE = "LBRACE",
52
- RBRACE = "RBRACE",
53
- LBRACKET = "LBRACKET",
54
- RBRACKET = "RBRACKET",
55
- COMMA = "COMMA",
56
- DOT = "DOT",
57
- COLON = "COLON",
58
- SEMICOLON = "SEMICOLON",
59
- ARROW = "ARROW",
60
- QUESTION = "QUESTION",
61
- COMMENT = "COMMENT",
62
- NEWLINE = "NEWLINE",
63
- EOF = "EOF"
10
+ Number = "Number",
11
+ String = "String",
12
+ Boolean = "Boolean",
13
+ Null = "Null",
14
+ Regex = "Regex",
15
+ Identifier = "Identifier",
16
+ Keyword = "Keyword",
17
+ Plus = "Plus",// +
18
+ Minus = "Minus",// -
19
+ Multiply = "Multiply",// *
20
+ Divide = "Divide",// /
21
+ Modulo = "Modulo",// %
22
+ Power = "Power",// **
23
+ Equal = "Equal",// ==
24
+ NotEqual = "NotEqual",// !=
25
+ Less = "Less",// <
26
+ Greater = "Greater",// >
27
+ LessEqual = "LessEqual",// <=
28
+ GreaterEqual = "GreaterEqual",// >=
29
+ And = "And",// &&
30
+ Or = "Or",// ||
31
+ Not = "Not",// !
32
+ Assign = "Assign",// =
33
+ PlusAssign = "PlusAssign",// +=
34
+ MinusAssign = "MinusAssign",// -=
35
+ MultiplyAssign = "MultiplyAssign",// *=
36
+ DivideAssign = "DivideAssign",// /=
37
+ LeftParen = "LeftParen",// (
38
+ RightParen = "RightParen",// )
39
+ LeftBrace = "LeftBrace",// {
40
+ RightBrace = "RightBrace",// }
41
+ LeftBracket = "LeftBracket",// [
42
+ RightBracket = "RightBracket",// ]
43
+ Semicolon = "Semicolon",// ;
44
+ Comma = "Comma",// ,
45
+ Dot = "Dot",// .
46
+ Colon = "Colon",// :
47
+ Question = "Question",// ? (from Buddy Script - separate from Colon)
48
+ Arrow = "Arrow",// =>
49
+ Pipeline = "Pipeline",// |>
50
+ Comment = "Comment",
51
+ Newline = "Newline",
52
+ Indent = "Indent",
53
+ Dedent = "Dedent",
54
+ EOF = "EOF",
55
+ Decorator = "Decorator"
64
56
  }
65
57
  export interface Token {
66
58
  type: TokenType;
67
- value: string | number | boolean | null;
59
+ value: string;
68
60
  line: number;
69
61
  column: number;
62
+ position: number;
63
+ length: number;
64
+ }
65
+ export declare const FCS_KEYWORDS: Set<string>;
66
+ export interface AstNode {
67
+ type: string;
68
+ line?: number;
69
+ column?: number;
70
70
  }
71
- export type ASTNode = ProgramNode | StatementNode | ExpressionNode;
72
- export interface ProgramNode {
71
+ export interface Program extends AstNode {
73
72
  type: 'Program';
74
- body: StatementNode[];
73
+ statements: AstNode[];
74
+ /** @deprecated Use statements instead */
75
+ body?: AstNode[];
76
+ }
77
+ export interface LiteralExpr extends AstNode {
78
+ type: 'Literal';
79
+ value: unknown;
80
+ tokenType: TokenType;
81
+ }
82
+ export interface IdentifierExpr extends AstNode {
83
+ type: 'Identifier';
84
+ name: string;
85
+ }
86
+ export interface BinaryExpr extends AstNode {
87
+ type: 'Binary';
88
+ left: AstNode;
89
+ operator: TokenType;
90
+ right: AstNode;
91
+ }
92
+ export interface UnaryExpr extends AstNode {
93
+ type: 'Unary';
94
+ operator: TokenType;
95
+ operand: AstNode;
96
+ }
97
+ export interface AssignmentExpr extends AstNode {
98
+ type: 'Assignment';
99
+ target: AstNode;
100
+ operator: TokenType;
101
+ value: AstNode;
102
+ }
103
+ export interface CallExpr extends AstNode {
104
+ type: 'Call';
105
+ callee: AstNode;
106
+ arguments: AstNode[];
107
+ namedArgs?: Record<string, AstNode>;
108
+ }
109
+ export interface MemberExpr extends AstNode {
110
+ type: 'Member';
111
+ object: AstNode;
112
+ member: string;
113
+ computed: boolean;
75
114
  }
76
- export type StatementNode = VariableDeclaration | FunctionDeclaration | ExpressionStatement | IfStatement | WhileStatement | ForStatement | ForInStatement | ReturnStatement | BreakStatement | ContinueStatement | TryStatement | ThrowStatement | ImportStatement | BlockStatement;
77
- export interface VariableDeclaration {
78
- type: 'VariableDeclaration';
79
- kind: 'let' | 'const';
115
+ export interface IndexExpr extends AstNode {
116
+ type: 'Index';
117
+ object: AstNode;
118
+ index: AstNode;
119
+ }
120
+ export interface ArrayExpr extends AstNode {
121
+ type: 'Array';
122
+ elements: AstNode[];
123
+ }
124
+ export interface DictExpr extends AstNode {
125
+ type: 'Dict';
126
+ elements: Map<string, AstNode>;
127
+ }
128
+ export interface LambdaExpr extends AstNode {
129
+ type: 'Lambda';
130
+ parameters: string[];
131
+ body: AstNode;
132
+ }
133
+ export interface InterpolationExpr extends AstNode {
134
+ type: 'Interpolation';
135
+ parts: AstNode[];
136
+ }
137
+ export interface PipelineExpr extends AstNode {
138
+ type: 'Pipeline';
139
+ left: AstNode;
140
+ right: AstNode;
141
+ }
142
+ export interface TernaryExpr extends AstNode {
143
+ type: 'Ternary';
144
+ condition: AstNode;
145
+ consequent: AstNode;
146
+ alternate: AstNode;
147
+ }
148
+ export interface AwaitExpr extends AstNode {
149
+ type: 'Await';
150
+ argument: AstNode;
151
+ }
152
+ export interface BlockStmt extends AstNode {
153
+ type: 'Block';
154
+ statements: AstNode[];
155
+ }
156
+ export interface ExpressionStmt extends AstNode {
157
+ type: 'ExpressionStmt';
158
+ expression: AstNode;
159
+ }
160
+ export interface VarDeclaration extends AstNode {
161
+ type: 'VarDeclaration';
80
162
  name: string;
81
- init: ExpressionNode | null;
163
+ initializer: AstNode | null;
164
+ isConst: boolean;
165
+ varType?: string;
82
166
  }
83
- export interface FunctionDeclaration {
167
+ export interface FunctionDeclaration extends AstNode {
84
168
  type: 'FunctionDeclaration';
85
169
  name: string;
86
- params: ParameterNode[];
87
- body: BlockStatement;
88
- async: boolean;
170
+ parameters: Parameter[];
171
+ body: BlockStmt;
172
+ isAsync: boolean;
173
+ returnType?: string;
89
174
  }
90
- export interface ParameterNode {
175
+ export interface Parameter {
91
176
  name: string;
92
- defaultValue?: ExpressionNode;
93
- }
94
- export interface ExpressionStatement {
95
- type: 'ExpressionStatement';
96
- expression: ExpressionNode;
97
- }
98
- export interface IfStatement {
99
- type: 'IfStatement';
100
- condition: ExpressionNode;
101
- consequent: BlockStatement;
102
- alternate: BlockStatement | IfStatement | null;
103
- }
104
- export interface WhileStatement {
105
- type: 'WhileStatement';
106
- condition: ExpressionNode;
107
- body: BlockStatement;
108
- }
109
- export interface ForStatement {
110
- type: 'ForStatement';
111
- init: VariableDeclaration | ExpressionNode | null;
112
- test: ExpressionNode | null;
113
- update: ExpressionNode | null;
114
- body: BlockStatement;
115
- }
116
- export interface ForInStatement {
117
- type: 'ForInStatement';
177
+ type?: string;
178
+ defaultValue?: AstNode;
179
+ }
180
+ export interface ClassDeclaration extends AstNode {
181
+ type: 'ClassDeclaration';
182
+ name: string;
183
+ baseClass?: string;
184
+ members: AstNode[];
185
+ }
186
+ export interface IfStmt extends AstNode {
187
+ type: 'If';
188
+ condition: AstNode;
189
+ thenBranch: AstNode;
190
+ elseBranch: AstNode | null;
191
+ }
192
+ export interface WhileStmt extends AstNode {
193
+ type: 'While';
194
+ condition: AstNode;
195
+ body: AstNode;
196
+ }
197
+ export interface ForStmt extends AstNode {
198
+ type: 'For';
118
199
  variable: string;
119
- iterable: ExpressionNode;
120
- body: BlockStatement;
200
+ iterable: AstNode;
201
+ body: AstNode;
202
+ }
203
+ export interface ForCStyleStmt extends AstNode {
204
+ type: 'ForCStyle';
205
+ init: AstNode | null;
206
+ test: AstNode | null;
207
+ update: AstNode | null;
208
+ body: AstNode;
121
209
  }
122
- export interface ReturnStatement {
123
- type: 'ReturnStatement';
124
- argument: ExpressionNode | null;
210
+ export interface ReturnStmt extends AstNode {
211
+ type: 'Return';
212
+ value: AstNode | null;
125
213
  }
126
- export interface BreakStatement {
127
- type: 'BreakStatement';
214
+ export interface BreakStmt extends AstNode {
215
+ type: 'Break';
128
216
  }
129
- export interface ContinueStatement {
130
- type: 'ContinueStatement';
217
+ export interface ContinueStmt extends AstNode {
218
+ type: 'Continue';
131
219
  }
132
- export interface TryStatement {
133
- type: 'TryStatement';
134
- block: BlockStatement;
135
- handler: CatchClause | null;
220
+ export interface TryStmt extends AstNode {
221
+ type: 'Try';
222
+ tryBlock: BlockStmt;
223
+ catchClauses: CatchClause[];
224
+ finallyBlock: BlockStmt | null;
136
225
  }
137
226
  export interface CatchClause {
138
- param: string;
139
- body: BlockStatement;
227
+ variable?: string;
228
+ type?: string;
229
+ body: BlockStmt;
140
230
  }
141
- export interface ThrowStatement {
142
- type: 'ThrowStatement';
143
- argument: ExpressionNode;
231
+ export interface ThrowStmt extends AstNode {
232
+ type: 'Throw';
233
+ expression: AstNode;
144
234
  }
145
- export interface ImportStatement {
146
- type: 'ImportStatement';
235
+ export interface ImportStmt extends AstNode {
236
+ type: 'Import';
147
237
  module: string;
238
+ names: string[];
148
239
  alias?: string;
149
240
  }
150
- export interface BlockStatement {
151
- type: 'BlockStatement';
152
- body: StatementNode[];
241
+ export interface ExportStmt extends AstNode {
242
+ type: 'Export';
243
+ declaration: AstNode;
153
244
  }
154
- export type ExpressionNode = Literal | Identifier | BinaryExpression | UnaryExpression | LogicalExpression | AssignmentExpression | CallExpression | MemberExpression | ArrayExpression | ObjectExpression | ConditionalExpression | ArrowFunction | AwaitExpression | TemplateLiteral;
155
- export interface Literal {
156
- type: 'Literal';
157
- value: string | number | boolean | null;
158
- }
159
- export interface Identifier {
160
- type: 'Identifier';
245
+ export interface TestDeclaration extends AstNode {
246
+ type: 'TestDeclaration';
161
247
  name: string;
248
+ body: BlockStmt;
249
+ tags: string[];
162
250
  }
163
- export interface BinaryExpression {
164
- type: 'BinaryExpression';
165
- operator: string;
166
- left: ExpressionNode;
167
- right: ExpressionNode;
168
- }
169
- export interface UnaryExpression {
170
- type: 'UnaryExpression';
171
- operator: string;
172
- argument: ExpressionNode;
173
- prefix: boolean;
174
- }
175
- export interface LogicalExpression {
176
- type: 'LogicalExpression';
177
- operator: '&&' | '||';
178
- left: ExpressionNode;
179
- right: ExpressionNode;
180
- }
181
- export interface AssignmentExpression {
182
- type: 'AssignmentExpression';
183
- operator: string;
184
- left: Identifier | MemberExpression;
185
- right: ExpressionNode;
186
- }
187
- export interface CallExpression {
188
- type: 'CallExpression';
189
- callee: ExpressionNode;
190
- arguments: ExpressionNode[];
191
- }
192
- export interface MemberExpression {
193
- type: 'MemberExpression';
194
- object: ExpressionNode;
195
- property: ExpressionNode;
196
- computed: boolean;
197
- }
198
- export interface ArrayExpression {
199
- type: 'ArrayExpression';
200
- elements: ExpressionNode[];
201
- }
202
- export interface ObjectExpression {
203
- type: 'ObjectExpression';
204
- properties: PropertyNode[];
205
- }
206
- export interface PropertyNode {
207
- key: string | ExpressionNode;
208
- value: ExpressionNode;
209
- computed: boolean;
210
- }
211
- export interface ConditionalExpression {
212
- type: 'ConditionalExpression';
213
- test: ExpressionNode;
214
- consequent: ExpressionNode;
215
- alternate: ExpressionNode;
216
- }
217
- export interface ArrowFunction {
218
- type: 'ArrowFunction';
219
- params: ParameterNode[];
220
- body: ExpressionNode | BlockStatement;
221
- async: boolean;
222
- }
223
- export interface AwaitExpression {
224
- type: 'AwaitExpression';
225
- argument: ExpressionNode;
251
+ export interface AssertStmt extends AstNode {
252
+ type: 'Assert';
253
+ condition: AstNode;
254
+ message?: string;
226
255
  }
227
- export interface TemplateLiteral {
228
- type: 'TemplateLiteral';
229
- parts: (string | ExpressionNode)[];
256
+ export interface EditorCommand extends AstNode {
257
+ type: 'EditorCommand';
258
+ command: string;
259
+ arguments: AstNode[];
230
260
  }
231
261
  /**
232
- * Primitive types that can be stored in scripting variables
262
+ * Primitive types that can be stored in script variables
233
263
  */
234
264
  export type CodeBuddyPrimitive = string | number | boolean | null | undefined;
235
265
  /**
236
266
  * Function type for the scripting runtime.
237
- * Note: Uses flexible typing to support dynamic scripting scenarios.
238
- * Implementations should validate arguments at runtime.
239
267
  */
240
268
  export type CodeBuddyFunction = (...args: CodeBuddyValue[]) => CodeBuddyValue | Promise<CodeBuddyValue> | any;
241
269
  /**
@@ -250,7 +278,6 @@ export type CodeBuddyObject = {
250
278
  export type CodeBuddyArray = CodeBuddyValue[];
251
279
  /**
252
280
  * Dynamic value type for the scripting runtime.
253
- * Uses a union of known types for better type safety.
254
281
  */
255
282
  export type CodeBuddyValue = CodeBuddyPrimitive | CodeBuddyFunction | CodeBuddyObject | CodeBuddyArray | any;
256
283
  /**
@@ -268,6 +295,11 @@ export interface ScriptResult {
268
295
  error?: string;
269
296
  returnValue?: CodeBuddyValue;
270
297
  duration: number;
298
+ testResults?: {
299
+ name: string;
300
+ passed: boolean;
301
+ error?: string;
302
+ }[];
271
303
  }
272
304
  /** Interface for AI agent used by scripts */
273
305
  export interface ScriptAgentInterface {
@@ -296,3 +328,69 @@ export interface CodeBuddyScriptConfig {
296
328
  agent?: ScriptAgentInterface;
297
329
  }
298
330
  export declare const DEFAULT_SCRIPT_CONFIG: CodeBuddyScriptConfig;
331
+ /** @deprecated Use CodeBuddyScriptConfig instead */
332
+ export type FCSConfig = CodeBuddyScriptConfig;
333
+ /** @deprecated Use CodeBuddyValue instead */
334
+ export type FCSValue = CodeBuddyValue;
335
+ /** @deprecated Use CodeBuddyFunction instead */
336
+ export type FCSFunction = CodeBuddyFunction;
337
+ /** @deprecated Use CodeBuddyPrimitive instead */
338
+ export type FCSPrimitive = CodeBuddyPrimitive;
339
+ /** @deprecated Use CodeBuddyObject instead */
340
+ export type FCSObject = CodeBuddyObject;
341
+ /** @deprecated Use CodeBuddyArray instead */
342
+ export type FCSArray = CodeBuddyArray;
343
+ /** @deprecated Use RuntimeContext instead */
344
+ export type FCSContext = RuntimeContext;
345
+ /** @deprecated Use ScriptResult instead */
346
+ export type FCSResult = ScriptResult;
347
+ /** @deprecated Use DEFAULT_SCRIPT_CONFIG instead */
348
+ export declare const DEFAULT_FCS_CONFIG: CodeBuddyScriptConfig;
349
+ /** @deprecated Use Program instead */
350
+ export type ProgramNode = Program;
351
+ /** @deprecated Use BlockStmt instead */
352
+ export type BlockStatement = BlockStmt;
353
+ /** @deprecated Use VarDeclaration instead */
354
+ export type VariableDeclaration = VarDeclaration;
355
+ /** @deprecated Use IfStmt instead */
356
+ export type IfStatement = IfStmt;
357
+ /** @deprecated Use WhileStmt instead */
358
+ export type WhileStatement = WhileStmt;
359
+ /** @deprecated Use ForStmt instead */
360
+ export type ForStatement = ForStmt;
361
+ /** @deprecated Use ForStmt instead */
362
+ export type ForInStatement = ForStmt;
363
+ /** @deprecated Use ReturnStmt instead */
364
+ export type ReturnStatement = ReturnStmt;
365
+ /** @deprecated Use TryStmt instead */
366
+ export type TryStatement = TryStmt;
367
+ /** @deprecated Use ThrowStmt instead */
368
+ export type ThrowStatement = ThrowStmt;
369
+ /** @deprecated Use ExpressionStmt instead */
370
+ export type ExpressionStatement = ExpressionStmt;
371
+ /** @deprecated Use LiteralExpr instead */
372
+ export type Literal = LiteralExpr;
373
+ /** @deprecated Use IdentifierExpr instead */
374
+ export type Identifier = IdentifierExpr;
375
+ /** @deprecated Use BinaryExpr instead */
376
+ export type BinaryExpression = BinaryExpr;
377
+ /** @deprecated Use UnaryExpr instead */
378
+ export type UnaryExpression = UnaryExpr;
379
+ /** @deprecated Use AssignmentExpr instead */
380
+ export type AssignmentExpression = AssignmentExpr;
381
+ /** @deprecated Use CallExpr instead */
382
+ export type CallExpression = CallExpr;
383
+ /** @deprecated Use MemberExpr instead */
384
+ export type MemberExpression = MemberExpr;
385
+ /** @deprecated Use ArrayExpr instead */
386
+ export type ArrayExpression = ArrayExpr;
387
+ /** @deprecated Use DictExpr instead */
388
+ export type ObjectExpression = DictExpr;
389
+ /** @deprecated Use TernaryExpr instead */
390
+ export type ConditionalExpression = TernaryExpr;
391
+ /** @deprecated Use LambdaExpr instead */
392
+ export type ArrowFunction = LambdaExpr;
393
+ /** @deprecated Use AssignmentExpr instead */
394
+ export type LogicalExpression = AssignmentExpr;
395
+ /** @deprecated Use AwaitExpr instead */
396
+ export type AwaitExpression = AwaitExpr;