@phmotad/fire-code 0.2.0

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 (248) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +379 -0
  3. package/dist/agents/BaseAgent.d.ts +32 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -0
  5. package/dist/agents/BaseAgent.js +19 -0
  6. package/dist/agents/BaseAgent.js.map +1 -0
  7. package/dist/agents/CodeAgent.d.ts +7 -0
  8. package/dist/agents/CodeAgent.d.ts.map +1 -0
  9. package/dist/agents/CodeAgent.js +130 -0
  10. package/dist/agents/CodeAgent.js.map +1 -0
  11. package/dist/cli/commands/corpus.d.ts +20 -0
  12. package/dist/cli/commands/corpus.d.ts.map +1 -0
  13. package/dist/cli/commands/corpus.js +60 -0
  14. package/dist/cli/commands/corpus.js.map +1 -0
  15. package/dist/cli/commands/daemon.d.ts +5 -0
  16. package/dist/cli/commands/daemon.d.ts.map +1 -0
  17. package/dist/cli/commands/daemon.js +79 -0
  18. package/dist/cli/commands/daemon.js.map +1 -0
  19. package/dist/cli/commands/dev.d.ts +2 -0
  20. package/dist/cli/commands/dev.d.ts.map +1 -0
  21. package/dist/cli/commands/dev.js +20 -0
  22. package/dist/cli/commands/dev.js.map +1 -0
  23. package/dist/cli/commands/index-cmd.d.ts +6 -0
  24. package/dist/cli/commands/index-cmd.d.ts.map +1 -0
  25. package/dist/cli/commands/index-cmd.js +57 -0
  26. package/dist/cli/commands/index-cmd.js.map +1 -0
  27. package/dist/cli/commands/init.d.ts +2 -0
  28. package/dist/cli/commands/init.d.ts.map +1 -0
  29. package/dist/cli/commands/init.js +173 -0
  30. package/dist/cli/commands/init.js.map +1 -0
  31. package/dist/cli/commands/install.d.ts +8 -0
  32. package/dist/cli/commands/install.d.ts.map +1 -0
  33. package/dist/cli/commands/install.js +154 -0
  34. package/dist/cli/commands/install.js.map +1 -0
  35. package/dist/cli/commands/observe.d.ts +19 -0
  36. package/dist/cli/commands/observe.d.ts.map +1 -0
  37. package/dist/cli/commands/observe.js +86 -0
  38. package/dist/cli/commands/observe.js.map +1 -0
  39. package/dist/cli/index.d.ts +3 -0
  40. package/dist/cli/index.d.ts.map +1 -0
  41. package/dist/cli/index.js +162 -0
  42. package/dist/cli/index.js.map +1 -0
  43. package/dist/config/defaults.d.ts +3 -0
  44. package/dist/config/defaults.d.ts.map +1 -0
  45. package/dist/config/defaults.js +8 -0
  46. package/dist/config/defaults.js.map +1 -0
  47. package/dist/config/loader.d.ts +3 -0
  48. package/dist/config/loader.d.ts.map +1 -0
  49. package/dist/config/loader.js +96 -0
  50. package/dist/config/loader.js.map +1 -0
  51. package/dist/config/types.d.ts +436 -0
  52. package/dist/config/types.d.ts.map +1 -0
  53. package/dist/config/types.js +73 -0
  54. package/dist/config/types.js.map +1 -0
  55. package/dist/core/ExecutionEngine.d.ts +26 -0
  56. package/dist/core/ExecutionEngine.d.ts.map +1 -0
  57. package/dist/core/ExecutionEngine.js +102 -0
  58. package/dist/core/ExecutionEngine.js.map +1 -0
  59. package/dist/core/TaskRouter.d.ts +3 -0
  60. package/dist/core/TaskRouter.d.ts.map +1 -0
  61. package/dist/core/TaskRouter.js +29 -0
  62. package/dist/core/TaskRouter.js.map +1 -0
  63. package/dist/daemon/DaemonClient.d.ts +8 -0
  64. package/dist/daemon/DaemonClient.d.ts.map +1 -0
  65. package/dist/daemon/DaemonClient.js +61 -0
  66. package/dist/daemon/DaemonClient.js.map +1 -0
  67. package/dist/daemon/DaemonServer.d.ts +17 -0
  68. package/dist/daemon/DaemonServer.d.ts.map +1 -0
  69. package/dist/daemon/DaemonServer.js +235 -0
  70. package/dist/daemon/DaemonServer.js.map +1 -0
  71. package/dist/db/DatabaseManager.d.ts +79 -0
  72. package/dist/db/DatabaseManager.d.ts.map +1 -0
  73. package/dist/db/DatabaseManager.js +212 -0
  74. package/dist/db/DatabaseManager.js.map +1 -0
  75. package/dist/db/schema.d.ts +2 -0
  76. package/dist/db/schema.d.ts.map +1 -0
  77. package/dist/db/schema.js +127 -0
  78. package/dist/db/schema.js.map +1 -0
  79. package/dist/git/CommitFormatter.d.ts +19 -0
  80. package/dist/git/CommitFormatter.d.ts.map +1 -0
  81. package/dist/git/CommitFormatter.js +47 -0
  82. package/dist/git/CommitFormatter.js.map +1 -0
  83. package/dist/git/GitManager.d.ts +28 -0
  84. package/dist/git/GitManager.d.ts.map +1 -0
  85. package/dist/git/GitManager.js +147 -0
  86. package/dist/git/GitManager.js.map +1 -0
  87. package/dist/graph/GraphStore.d.ts +54 -0
  88. package/dist/graph/GraphStore.d.ts.map +1 -0
  89. package/dist/graph/GraphStore.js +3 -0
  90. package/dist/graph/GraphStore.js.map +1 -0
  91. package/dist/graph/InMemoryGraphStore.d.ts +16 -0
  92. package/dist/graph/InMemoryGraphStore.d.ts.map +1 -0
  93. package/dist/graph/InMemoryGraphStore.js +75 -0
  94. package/dist/graph/InMemoryGraphStore.js.map +1 -0
  95. package/dist/graph/SQLiteGraphStore.d.ts +31 -0
  96. package/dist/graph/SQLiteGraphStore.d.ts.map +1 -0
  97. package/dist/graph/SQLiteGraphStore.js +158 -0
  98. package/dist/graph/SQLiteGraphStore.js.map +1 -0
  99. package/dist/index.d.ts +16 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +32 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/indexing/ASTParser.d.ts +32 -0
  104. package/dist/indexing/ASTParser.d.ts.map +1 -0
  105. package/dist/indexing/ASTParser.js +185 -0
  106. package/dist/indexing/ASTParser.js.map +1 -0
  107. package/dist/indexing/EmbeddingGenerator.d.ts +15 -0
  108. package/dist/indexing/EmbeddingGenerator.d.ts.map +1 -0
  109. package/dist/indexing/EmbeddingGenerator.js +66 -0
  110. package/dist/indexing/EmbeddingGenerator.js.map +1 -0
  111. package/dist/indexing/FileScanner.d.ts +10 -0
  112. package/dist/indexing/FileScanner.d.ts.map +1 -0
  113. package/dist/indexing/FileScanner.js +58 -0
  114. package/dist/indexing/FileScanner.js.map +1 -0
  115. package/dist/indexing/GraphBuilder.d.ts +4 -0
  116. package/dist/indexing/GraphBuilder.d.ts.map +1 -0
  117. package/dist/indexing/GraphBuilder.js +51 -0
  118. package/dist/indexing/GraphBuilder.js.map +1 -0
  119. package/dist/indexing/Indexer.d.ts +13 -0
  120. package/dist/indexing/Indexer.d.ts.map +1 -0
  121. package/dist/indexing/Indexer.js +68 -0
  122. package/dist/indexing/Indexer.js.map +1 -0
  123. package/dist/mcp/server.d.ts +2 -0
  124. package/dist/mcp/server.d.ts.map +1 -0
  125. package/dist/mcp/server.js +155 -0
  126. package/dist/mcp/server.js.map +1 -0
  127. package/dist/mcp/tools/corpus_search.d.ts +14 -0
  128. package/dist/mcp/tools/corpus_search.d.ts.map +1 -0
  129. package/dist/mcp/tools/corpus_search.js +33 -0
  130. package/dist/mcp/tools/corpus_search.js.map +1 -0
  131. package/dist/mcp/tools/execute.d.ts +19 -0
  132. package/dist/mcp/tools/execute.d.ts.map +1 -0
  133. package/dist/mcp/tools/execute.js +38 -0
  134. package/dist/mcp/tools/execute.js.map +1 -0
  135. package/dist/mcp/tools/get_context.d.ts +17 -0
  136. package/dist/mcp/tools/get_context.d.ts.map +1 -0
  137. package/dist/mcp/tools/get_context.js +50 -0
  138. package/dist/mcp/tools/get_context.js.map +1 -0
  139. package/dist/mcp/tools/get_graph.d.ts +26 -0
  140. package/dist/mcp/tools/get_graph.d.ts.map +1 -0
  141. package/dist/mcp/tools/get_graph.js +68 -0
  142. package/dist/mcp/tools/get_graph.js.map +1 -0
  143. package/dist/mcp/tools/observations.d.ts +23 -0
  144. package/dist/mcp/tools/observations.d.ts.map +1 -0
  145. package/dist/mcp/tools/observations.js +72 -0
  146. package/dist/mcp/tools/observations.js.map +1 -0
  147. package/dist/mcp/tools/search_code.d.ts +14 -0
  148. package/dist/mcp/tools/search_code.d.ts.map +1 -0
  149. package/dist/mcp/tools/search_code.js +38 -0
  150. package/dist/mcp/tools/search_code.js.map +1 -0
  151. package/dist/mcp/tools/smart_outline.d.ts +14 -0
  152. package/dist/mcp/tools/smart_outline.d.ts.map +1 -0
  153. package/dist/mcp/tools/smart_outline.js +99 -0
  154. package/dist/mcp/tools/smart_outline.js.map +1 -0
  155. package/dist/mcp/tools/smart_search.d.ts +20 -0
  156. package/dist/mcp/tools/smart_search.d.ts.map +1 -0
  157. package/dist/mcp/tools/smart_search.js +131 -0
  158. package/dist/mcp/tools/smart_search.js.map +1 -0
  159. package/dist/memory/FallbackMemory.d.ts +9 -0
  160. package/dist/memory/FallbackMemory.d.ts.map +1 -0
  161. package/dist/memory/FallbackMemory.js +70 -0
  162. package/dist/memory/FallbackMemory.js.map +1 -0
  163. package/dist/memory/HybridMemory.d.ts +20 -0
  164. package/dist/memory/HybridMemory.d.ts.map +1 -0
  165. package/dist/memory/HybridMemory.js +74 -0
  166. package/dist/memory/HybridMemory.js.map +1 -0
  167. package/dist/providers/AgentSDKProvider.d.ts +13 -0
  168. package/dist/providers/AgentSDKProvider.d.ts.map +1 -0
  169. package/dist/providers/AgentSDKProvider.js +64 -0
  170. package/dist/providers/AgentSDKProvider.js.map +1 -0
  171. package/dist/providers/AnthropicProvider.d.ts +11 -0
  172. package/dist/providers/AnthropicProvider.d.ts.map +1 -0
  173. package/dist/providers/AnthropicProvider.js +61 -0
  174. package/dist/providers/AnthropicProvider.js.map +1 -0
  175. package/dist/providers/LLMProvider.d.ts +12 -0
  176. package/dist/providers/LLMProvider.d.ts.map +1 -0
  177. package/dist/providers/LLMProvider.js +3 -0
  178. package/dist/providers/LLMProvider.js.map +1 -0
  179. package/dist/providers/OllamaProvider.d.ts +11 -0
  180. package/dist/providers/OllamaProvider.d.ts.map +1 -0
  181. package/dist/providers/OllamaProvider.js +71 -0
  182. package/dist/providers/OllamaProvider.js.map +1 -0
  183. package/dist/providers/OpenAIProvider.d.ts +11 -0
  184. package/dist/providers/OpenAIProvider.d.ts.map +1 -0
  185. package/dist/providers/OpenAIProvider.js +63 -0
  186. package/dist/providers/OpenAIProvider.js.map +1 -0
  187. package/dist/providers/OpenRouterProvider.d.ts +12 -0
  188. package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
  189. package/dist/providers/OpenRouterProvider.js +89 -0
  190. package/dist/providers/OpenRouterProvider.js.map +1 -0
  191. package/dist/providers/ProviderFactory.d.ts +4 -0
  192. package/dist/providers/ProviderFactory.d.ts.map +1 -0
  193. package/dist/providers/ProviderFactory.js +27 -0
  194. package/dist/providers/ProviderFactory.js.map +1 -0
  195. package/dist/services/CorpusService.d.ts +27 -0
  196. package/dist/services/CorpusService.d.ts.map +1 -0
  197. package/dist/services/CorpusService.js +142 -0
  198. package/dist/services/CorpusService.js.map +1 -0
  199. package/dist/services/ObservationService.d.ts +17 -0
  200. package/dist/services/ObservationService.d.ts.map +1 -0
  201. package/dist/services/ObservationService.js +101 -0
  202. package/dist/services/ObservationService.js.map +1 -0
  203. package/dist/services/SessionService.d.ts +10 -0
  204. package/dist/services/SessionService.d.ts.map +1 -0
  205. package/dist/services/SessionService.js +38 -0
  206. package/dist/services/SessionService.js.map +1 -0
  207. package/dist/services/SummarizationService.d.ts +8 -0
  208. package/dist/services/SummarizationService.d.ts.map +1 -0
  209. package/dist/services/SummarizationService.js +65 -0
  210. package/dist/services/SummarizationService.js.map +1 -0
  211. package/dist/utils/errors.d.ts +26 -0
  212. package/dist/utils/errors.d.ts.map +1 -0
  213. package/dist/utils/errors.js +72 -0
  214. package/dist/utils/errors.js.map +1 -0
  215. package/dist/utils/logger.d.ts +4 -0
  216. package/dist/utils/logger.d.ts.map +1 -0
  217. package/dist/utils/logger.js +16 -0
  218. package/dist/utils/logger.js.map +1 -0
  219. package/dist/utils/paths.d.ts +10 -0
  220. package/dist/utils/paths.d.ts.map +1 -0
  221. package/dist/utils/paths.js +43 -0
  222. package/dist/utils/paths.js.map +1 -0
  223. package/dist/utils/privacy.d.ts +5 -0
  224. package/dist/utils/privacy.d.ts.map +1 -0
  225. package/dist/utils/privacy.js +39 -0
  226. package/dist/utils/privacy.js.map +1 -0
  227. package/dist/utils/zodToJsonSchema.d.ts +23 -0
  228. package/dist/utils/zodToJsonSchema.d.ts.map +1 -0
  229. package/dist/utils/zodToJsonSchema.js +52 -0
  230. package/dist/utils/zodToJsonSchema.js.map +1 -0
  231. package/dist/vector/MemoryVectorStore.d.ts +16 -0
  232. package/dist/vector/MemoryVectorStore.d.ts.map +1 -0
  233. package/dist/vector/MemoryVectorStore.js +97 -0
  234. package/dist/vector/MemoryVectorStore.js.map +1 -0
  235. package/dist/vector/VectorStore.d.ts +19 -0
  236. package/dist/vector/VectorStore.d.ts.map +1 -0
  237. package/dist/vector/VectorStore.js +3 -0
  238. package/dist/vector/VectorStore.js.map +1 -0
  239. package/dist/vector/VectraVectorStore.d.ts +23 -0
  240. package/dist/vector/VectraVectorStore.d.ts.map +1 -0
  241. package/dist/vector/VectraVectorStore.js +93 -0
  242. package/dist/vector/VectraVectorStore.js.map +1 -0
  243. package/examples/firecode.config.example.ts +87 -0
  244. package/package.json +111 -0
  245. package/plugin/.claude-plugin/plugin.json +17 -0
  246. package/plugin/hooks/hooks.json +86 -0
  247. package/plugin/scripts/context-inject.js +208 -0
  248. package/plugin/scripts/smart-install.js +33 -0
@@ -0,0 +1,436 @@
1
+ import { z } from 'zod';
2
+ export declare const LLMConfigSchema: z.ZodObject<{
3
+ provider: z.ZodDefault<z.ZodEnum<["openrouter", "anthropic", "openai", "ollama", "agent-sdk"]>>;
4
+ model: z.ZodDefault<z.ZodString>;
5
+ apiKey: z.ZodOptional<z.ZodString>;
6
+ baseUrl: z.ZodOptional<z.ZodString>;
7
+ maxTokens: z.ZodDefault<z.ZodNumber>;
8
+ temperature: z.ZodDefault<z.ZodNumber>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ provider: "openrouter" | "anthropic" | "openai" | "ollama" | "agent-sdk";
11
+ model: string;
12
+ maxTokens: number;
13
+ temperature: number;
14
+ apiKey?: string | undefined;
15
+ baseUrl?: string | undefined;
16
+ }, {
17
+ provider?: "openrouter" | "anthropic" | "openai" | "ollama" | "agent-sdk" | undefined;
18
+ model?: string | undefined;
19
+ apiKey?: string | undefined;
20
+ baseUrl?: string | undefined;
21
+ maxTokens?: number | undefined;
22
+ temperature?: number | undefined;
23
+ }>;
24
+ export declare const EmbeddingsConfigSchema: z.ZodObject<{
25
+ provider: z.ZodDefault<z.ZodEnum<["local", "openai", "voyage"]>>;
26
+ model: z.ZodDefault<z.ZodString>;
27
+ apiKey: z.ZodOptional<z.ZodString>;
28
+ }, "strip", z.ZodTypeAny, {
29
+ provider: "openai" | "local" | "voyage";
30
+ model: string;
31
+ apiKey?: string | undefined;
32
+ }, {
33
+ provider?: "openai" | "local" | "voyage" | undefined;
34
+ model?: string | undefined;
35
+ apiKey?: string | undefined;
36
+ }>;
37
+ export declare const VectorStoreConfigSchema: z.ZodObject<{
38
+ provider: z.ZodDefault<z.ZodEnum<["memory", "qdrant"]>>;
39
+ url: z.ZodOptional<z.ZodString>;
40
+ apiKey: z.ZodOptional<z.ZodString>;
41
+ collection: z.ZodDefault<z.ZodString>;
42
+ }, "strip", z.ZodTypeAny, {
43
+ provider: "memory" | "qdrant";
44
+ collection: string;
45
+ apiKey?: string | undefined;
46
+ url?: string | undefined;
47
+ }, {
48
+ provider?: "memory" | "qdrant" | undefined;
49
+ apiKey?: string | undefined;
50
+ url?: string | undefined;
51
+ collection?: string | undefined;
52
+ }>;
53
+ export declare const GraphStoreConfigSchema: z.ZodObject<{
54
+ provider: z.ZodDefault<z.ZodEnum<["memory", "neo4j"]>>;
55
+ url: z.ZodOptional<z.ZodString>;
56
+ user: z.ZodOptional<z.ZodString>;
57
+ password: z.ZodOptional<z.ZodString>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ provider: "memory" | "neo4j";
60
+ url?: string | undefined;
61
+ user?: string | undefined;
62
+ password?: string | undefined;
63
+ }, {
64
+ provider?: "memory" | "neo4j" | undefined;
65
+ url?: string | undefined;
66
+ user?: string | undefined;
67
+ password?: string | undefined;
68
+ }>;
69
+ export declare const MemoryConfigSchema: z.ZodObject<{
70
+ strategy: z.ZodDefault<z.ZodEnum<["hybrid", "vector", "graph", "auto"]>>;
71
+ maxResults: z.ZodDefault<z.ZodNumber>;
72
+ }, "strip", z.ZodTypeAny, {
73
+ strategy: "hybrid" | "vector" | "graph" | "auto";
74
+ maxResults: number;
75
+ }, {
76
+ strategy?: "hybrid" | "vector" | "graph" | "auto" | undefined;
77
+ maxResults?: number | undefined;
78
+ }>;
79
+ export declare const GitConfigSchema: z.ZodObject<{
80
+ enabled: z.ZodDefault<z.ZodBoolean>;
81
+ autoBranch: z.ZodDefault<z.ZodBoolean>;
82
+ branchPrefix: z.ZodDefault<z.ZodString>;
83
+ branchStrategy: z.ZodDefault<z.ZodEnum<["reuse", "increment", "fail"]>>;
84
+ autoCommit: z.ZodDefault<z.ZodBoolean>;
85
+ commitFormat: z.ZodDefault<z.ZodEnum<["conventional", "simple"]>>;
86
+ includeMetadata: z.ZodDefault<z.ZodBoolean>;
87
+ workingTree: z.ZodDefault<z.ZodEnum<["stash", "commit", "fail", "ignore"]>>;
88
+ enforcePattern: z.ZodDefault<z.ZodBoolean>;
89
+ }, "strip", z.ZodTypeAny, {
90
+ enabled: boolean;
91
+ autoBranch: boolean;
92
+ branchPrefix: string;
93
+ branchStrategy: "reuse" | "increment" | "fail";
94
+ autoCommit: boolean;
95
+ commitFormat: "conventional" | "simple";
96
+ includeMetadata: boolean;
97
+ workingTree: "fail" | "stash" | "commit" | "ignore";
98
+ enforcePattern: boolean;
99
+ }, {
100
+ enabled?: boolean | undefined;
101
+ autoBranch?: boolean | undefined;
102
+ branchPrefix?: string | undefined;
103
+ branchStrategy?: "reuse" | "increment" | "fail" | undefined;
104
+ autoCommit?: boolean | undefined;
105
+ commitFormat?: "conventional" | "simple" | undefined;
106
+ includeMetadata?: boolean | undefined;
107
+ workingTree?: "fail" | "stash" | "commit" | "ignore" | undefined;
108
+ enforcePattern?: boolean | undefined;
109
+ }>;
110
+ export declare const ExecutionConfigSchema: z.ZodObject<{
111
+ mode: z.ZodDefault<z.ZodEnum<["safe", "aggressive"]>>;
112
+ dryRun: z.ZodDefault<z.ZodBoolean>;
113
+ conflictStrategy: z.ZodDefault<z.ZodEnum<["merge", "overwrite", "fail"]>>;
114
+ validateSyntax: z.ZodDefault<z.ZodBoolean>;
115
+ validateBuild: z.ZodDefault<z.ZodBoolean>;
116
+ }, "strip", z.ZodTypeAny, {
117
+ mode: "safe" | "aggressive";
118
+ dryRun: boolean;
119
+ conflictStrategy: "fail" | "merge" | "overwrite";
120
+ validateSyntax: boolean;
121
+ validateBuild: boolean;
122
+ }, {
123
+ mode?: "safe" | "aggressive" | undefined;
124
+ dryRun?: boolean | undefined;
125
+ conflictStrategy?: "fail" | "merge" | "overwrite" | undefined;
126
+ validateSyntax?: boolean | undefined;
127
+ validateBuild?: boolean | undefined;
128
+ }>;
129
+ export declare const IndexingConfigSchema: z.ZodObject<{
130
+ mode: z.ZodDefault<z.ZodEnum<["full", "lazy"]>>;
131
+ include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
132
+ exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
133
+ maxFileSize: z.ZodDefault<z.ZodNumber>;
134
+ }, "strip", z.ZodTypeAny, {
135
+ mode: "full" | "lazy";
136
+ include: string[];
137
+ exclude: string[];
138
+ maxFileSize: number;
139
+ }, {
140
+ mode?: "full" | "lazy" | undefined;
141
+ include?: string[] | undefined;
142
+ exclude?: string[] | undefined;
143
+ maxFileSize?: number | undefined;
144
+ }>;
145
+ export declare const ProjectConfigSchema: z.ZodObject<{
146
+ name: z.ZodDefault<z.ZodString>;
147
+ mode: z.ZodDefault<z.ZodEnum<["legacy", "standard"]>>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ mode: "legacy" | "standard";
150
+ name: string;
151
+ }, {
152
+ mode?: "legacy" | "standard" | undefined;
153
+ name?: string | undefined;
154
+ }>;
155
+ export declare const FireCodeConfigSchema: z.ZodObject<{
156
+ project: z.ZodDefault<z.ZodObject<{
157
+ name: z.ZodDefault<z.ZodString>;
158
+ mode: z.ZodDefault<z.ZodEnum<["legacy", "standard"]>>;
159
+ }, "strip", z.ZodTypeAny, {
160
+ mode: "legacy" | "standard";
161
+ name: string;
162
+ }, {
163
+ mode?: "legacy" | "standard" | undefined;
164
+ name?: string | undefined;
165
+ }>>;
166
+ llm: z.ZodDefault<z.ZodObject<{
167
+ provider: z.ZodDefault<z.ZodEnum<["openrouter", "anthropic", "openai", "ollama", "agent-sdk"]>>;
168
+ model: z.ZodDefault<z.ZodString>;
169
+ apiKey: z.ZodOptional<z.ZodString>;
170
+ baseUrl: z.ZodOptional<z.ZodString>;
171
+ maxTokens: z.ZodDefault<z.ZodNumber>;
172
+ temperature: z.ZodDefault<z.ZodNumber>;
173
+ }, "strip", z.ZodTypeAny, {
174
+ provider: "openrouter" | "anthropic" | "openai" | "ollama" | "agent-sdk";
175
+ model: string;
176
+ maxTokens: number;
177
+ temperature: number;
178
+ apiKey?: string | undefined;
179
+ baseUrl?: string | undefined;
180
+ }, {
181
+ provider?: "openrouter" | "anthropic" | "openai" | "ollama" | "agent-sdk" | undefined;
182
+ model?: string | undefined;
183
+ apiKey?: string | undefined;
184
+ baseUrl?: string | undefined;
185
+ maxTokens?: number | undefined;
186
+ temperature?: number | undefined;
187
+ }>>;
188
+ embeddings: z.ZodDefault<z.ZodObject<{
189
+ provider: z.ZodDefault<z.ZodEnum<["local", "openai", "voyage"]>>;
190
+ model: z.ZodDefault<z.ZodString>;
191
+ apiKey: z.ZodOptional<z.ZodString>;
192
+ }, "strip", z.ZodTypeAny, {
193
+ provider: "openai" | "local" | "voyage";
194
+ model: string;
195
+ apiKey?: string | undefined;
196
+ }, {
197
+ provider?: "openai" | "local" | "voyage" | undefined;
198
+ model?: string | undefined;
199
+ apiKey?: string | undefined;
200
+ }>>;
201
+ vectorStore: z.ZodDefault<z.ZodObject<{
202
+ provider: z.ZodDefault<z.ZodEnum<["memory", "qdrant"]>>;
203
+ url: z.ZodOptional<z.ZodString>;
204
+ apiKey: z.ZodOptional<z.ZodString>;
205
+ collection: z.ZodDefault<z.ZodString>;
206
+ }, "strip", z.ZodTypeAny, {
207
+ provider: "memory" | "qdrant";
208
+ collection: string;
209
+ apiKey?: string | undefined;
210
+ url?: string | undefined;
211
+ }, {
212
+ provider?: "memory" | "qdrant" | undefined;
213
+ apiKey?: string | undefined;
214
+ url?: string | undefined;
215
+ collection?: string | undefined;
216
+ }>>;
217
+ graphStore: z.ZodDefault<z.ZodObject<{
218
+ provider: z.ZodDefault<z.ZodEnum<["memory", "neo4j"]>>;
219
+ url: z.ZodOptional<z.ZodString>;
220
+ user: z.ZodOptional<z.ZodString>;
221
+ password: z.ZodOptional<z.ZodString>;
222
+ }, "strip", z.ZodTypeAny, {
223
+ provider: "memory" | "neo4j";
224
+ url?: string | undefined;
225
+ user?: string | undefined;
226
+ password?: string | undefined;
227
+ }, {
228
+ provider?: "memory" | "neo4j" | undefined;
229
+ url?: string | undefined;
230
+ user?: string | undefined;
231
+ password?: string | undefined;
232
+ }>>;
233
+ memory: z.ZodDefault<z.ZodObject<{
234
+ strategy: z.ZodDefault<z.ZodEnum<["hybrid", "vector", "graph", "auto"]>>;
235
+ maxResults: z.ZodDefault<z.ZodNumber>;
236
+ }, "strip", z.ZodTypeAny, {
237
+ strategy: "hybrid" | "vector" | "graph" | "auto";
238
+ maxResults: number;
239
+ }, {
240
+ strategy?: "hybrid" | "vector" | "graph" | "auto" | undefined;
241
+ maxResults?: number | undefined;
242
+ }>>;
243
+ git: z.ZodDefault<z.ZodObject<{
244
+ enabled: z.ZodDefault<z.ZodBoolean>;
245
+ autoBranch: z.ZodDefault<z.ZodBoolean>;
246
+ branchPrefix: z.ZodDefault<z.ZodString>;
247
+ branchStrategy: z.ZodDefault<z.ZodEnum<["reuse", "increment", "fail"]>>;
248
+ autoCommit: z.ZodDefault<z.ZodBoolean>;
249
+ commitFormat: z.ZodDefault<z.ZodEnum<["conventional", "simple"]>>;
250
+ includeMetadata: z.ZodDefault<z.ZodBoolean>;
251
+ workingTree: z.ZodDefault<z.ZodEnum<["stash", "commit", "fail", "ignore"]>>;
252
+ enforcePattern: z.ZodDefault<z.ZodBoolean>;
253
+ }, "strip", z.ZodTypeAny, {
254
+ enabled: boolean;
255
+ autoBranch: boolean;
256
+ branchPrefix: string;
257
+ branchStrategy: "reuse" | "increment" | "fail";
258
+ autoCommit: boolean;
259
+ commitFormat: "conventional" | "simple";
260
+ includeMetadata: boolean;
261
+ workingTree: "fail" | "stash" | "commit" | "ignore";
262
+ enforcePattern: boolean;
263
+ }, {
264
+ enabled?: boolean | undefined;
265
+ autoBranch?: boolean | undefined;
266
+ branchPrefix?: string | undefined;
267
+ branchStrategy?: "reuse" | "increment" | "fail" | undefined;
268
+ autoCommit?: boolean | undefined;
269
+ commitFormat?: "conventional" | "simple" | undefined;
270
+ includeMetadata?: boolean | undefined;
271
+ workingTree?: "fail" | "stash" | "commit" | "ignore" | undefined;
272
+ enforcePattern?: boolean | undefined;
273
+ }>>;
274
+ execution: z.ZodDefault<z.ZodObject<{
275
+ mode: z.ZodDefault<z.ZodEnum<["safe", "aggressive"]>>;
276
+ dryRun: z.ZodDefault<z.ZodBoolean>;
277
+ conflictStrategy: z.ZodDefault<z.ZodEnum<["merge", "overwrite", "fail"]>>;
278
+ validateSyntax: z.ZodDefault<z.ZodBoolean>;
279
+ validateBuild: z.ZodDefault<z.ZodBoolean>;
280
+ }, "strip", z.ZodTypeAny, {
281
+ mode: "safe" | "aggressive";
282
+ dryRun: boolean;
283
+ conflictStrategy: "fail" | "merge" | "overwrite";
284
+ validateSyntax: boolean;
285
+ validateBuild: boolean;
286
+ }, {
287
+ mode?: "safe" | "aggressive" | undefined;
288
+ dryRun?: boolean | undefined;
289
+ conflictStrategy?: "fail" | "merge" | "overwrite" | undefined;
290
+ validateSyntax?: boolean | undefined;
291
+ validateBuild?: boolean | undefined;
292
+ }>>;
293
+ indexing: z.ZodDefault<z.ZodObject<{
294
+ mode: z.ZodDefault<z.ZodEnum<["full", "lazy"]>>;
295
+ include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
296
+ exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
297
+ maxFileSize: z.ZodDefault<z.ZodNumber>;
298
+ }, "strip", z.ZodTypeAny, {
299
+ mode: "full" | "lazy";
300
+ include: string[];
301
+ exclude: string[];
302
+ maxFileSize: number;
303
+ }, {
304
+ mode?: "full" | "lazy" | undefined;
305
+ include?: string[] | undefined;
306
+ exclude?: string[] | undefined;
307
+ maxFileSize?: number | undefined;
308
+ }>>;
309
+ }, "strip", z.ZodTypeAny, {
310
+ memory: {
311
+ strategy: "hybrid" | "vector" | "graph" | "auto";
312
+ maxResults: number;
313
+ };
314
+ project: {
315
+ mode: "legacy" | "standard";
316
+ name: string;
317
+ };
318
+ llm: {
319
+ provider: "openrouter" | "anthropic" | "openai" | "ollama" | "agent-sdk";
320
+ model: string;
321
+ maxTokens: number;
322
+ temperature: number;
323
+ apiKey?: string | undefined;
324
+ baseUrl?: string | undefined;
325
+ };
326
+ embeddings: {
327
+ provider: "openai" | "local" | "voyage";
328
+ model: string;
329
+ apiKey?: string | undefined;
330
+ };
331
+ vectorStore: {
332
+ provider: "memory" | "qdrant";
333
+ collection: string;
334
+ apiKey?: string | undefined;
335
+ url?: string | undefined;
336
+ };
337
+ graphStore: {
338
+ provider: "memory" | "neo4j";
339
+ url?: string | undefined;
340
+ user?: string | undefined;
341
+ password?: string | undefined;
342
+ };
343
+ git: {
344
+ enabled: boolean;
345
+ autoBranch: boolean;
346
+ branchPrefix: string;
347
+ branchStrategy: "reuse" | "increment" | "fail";
348
+ autoCommit: boolean;
349
+ commitFormat: "conventional" | "simple";
350
+ includeMetadata: boolean;
351
+ workingTree: "fail" | "stash" | "commit" | "ignore";
352
+ enforcePattern: boolean;
353
+ };
354
+ execution: {
355
+ mode: "safe" | "aggressive";
356
+ dryRun: boolean;
357
+ conflictStrategy: "fail" | "merge" | "overwrite";
358
+ validateSyntax: boolean;
359
+ validateBuild: boolean;
360
+ };
361
+ indexing: {
362
+ mode: "full" | "lazy";
363
+ include: string[];
364
+ exclude: string[];
365
+ maxFileSize: number;
366
+ };
367
+ }, {
368
+ memory?: {
369
+ strategy?: "hybrid" | "vector" | "graph" | "auto" | undefined;
370
+ maxResults?: number | undefined;
371
+ } | undefined;
372
+ project?: {
373
+ mode?: "legacy" | "standard" | undefined;
374
+ name?: string | undefined;
375
+ } | undefined;
376
+ llm?: {
377
+ provider?: "openrouter" | "anthropic" | "openai" | "ollama" | "agent-sdk" | undefined;
378
+ model?: string | undefined;
379
+ apiKey?: string | undefined;
380
+ baseUrl?: string | undefined;
381
+ maxTokens?: number | undefined;
382
+ temperature?: number | undefined;
383
+ } | undefined;
384
+ embeddings?: {
385
+ provider?: "openai" | "local" | "voyage" | undefined;
386
+ model?: string | undefined;
387
+ apiKey?: string | undefined;
388
+ } | undefined;
389
+ vectorStore?: {
390
+ provider?: "memory" | "qdrant" | undefined;
391
+ apiKey?: string | undefined;
392
+ url?: string | undefined;
393
+ collection?: string | undefined;
394
+ } | undefined;
395
+ graphStore?: {
396
+ provider?: "memory" | "neo4j" | undefined;
397
+ url?: string | undefined;
398
+ user?: string | undefined;
399
+ password?: string | undefined;
400
+ } | undefined;
401
+ git?: {
402
+ enabled?: boolean | undefined;
403
+ autoBranch?: boolean | undefined;
404
+ branchPrefix?: string | undefined;
405
+ branchStrategy?: "reuse" | "increment" | "fail" | undefined;
406
+ autoCommit?: boolean | undefined;
407
+ commitFormat?: "conventional" | "simple" | undefined;
408
+ includeMetadata?: boolean | undefined;
409
+ workingTree?: "fail" | "stash" | "commit" | "ignore" | undefined;
410
+ enforcePattern?: boolean | undefined;
411
+ } | undefined;
412
+ execution?: {
413
+ mode?: "safe" | "aggressive" | undefined;
414
+ dryRun?: boolean | undefined;
415
+ conflictStrategy?: "fail" | "merge" | "overwrite" | undefined;
416
+ validateSyntax?: boolean | undefined;
417
+ validateBuild?: boolean | undefined;
418
+ } | undefined;
419
+ indexing?: {
420
+ mode?: "full" | "lazy" | undefined;
421
+ include?: string[] | undefined;
422
+ exclude?: string[] | undefined;
423
+ maxFileSize?: number | undefined;
424
+ } | undefined;
425
+ }>;
426
+ export type FireCodeConfig = z.infer<typeof FireCodeConfigSchema>;
427
+ export type LLMConfig = z.infer<typeof LLMConfigSchema>;
428
+ export type EmbeddingsConfig = z.infer<typeof EmbeddingsConfigSchema>;
429
+ export type VectorStoreConfig = z.infer<typeof VectorStoreConfigSchema>;
430
+ export type GraphStoreConfig = z.infer<typeof GraphStoreConfigSchema>;
431
+ export type MemoryConfig = z.infer<typeof MemoryConfigSchema>;
432
+ export type GitConfig = z.infer<typeof GitConfigSchema>;
433
+ export type ExecutionConfig = z.infer<typeof ExecutionConfigSchema>;
434
+ export type IndexingConfig = z.infer<typeof IndexingConfigSchema>;
435
+ export type ProjectConfig = z.infer<typeof ProjectConfigSchema>;
436
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;EAKlC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;EAKjC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU1B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;EAMhC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FireCodeConfigSchema = exports.ProjectConfigSchema = exports.IndexingConfigSchema = exports.ExecutionConfigSchema = exports.GitConfigSchema = exports.MemoryConfigSchema = exports.GraphStoreConfigSchema = exports.VectorStoreConfigSchema = exports.EmbeddingsConfigSchema = exports.LLMConfigSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.LLMConfigSchema = zod_1.z.object({
6
+ provider: zod_1.z.enum(['openrouter', 'anthropic', 'openai', 'ollama', 'agent-sdk']).default('openrouter'),
7
+ model: zod_1.z.string().default('deepseek/deepseek-coder'),
8
+ apiKey: zod_1.z.string().optional(),
9
+ baseUrl: zod_1.z.string().optional(),
10
+ maxTokens: zod_1.z.number().int().positive().default(4096),
11
+ temperature: zod_1.z.number().min(0).max(2).default(0.2),
12
+ });
13
+ exports.EmbeddingsConfigSchema = zod_1.z.object({
14
+ provider: zod_1.z.enum(['local', 'openai', 'voyage']).default('local'),
15
+ model: zod_1.z.string().default('Xenova/all-MiniLM-L6-v2'),
16
+ apiKey: zod_1.z.string().optional(),
17
+ });
18
+ exports.VectorStoreConfigSchema = zod_1.z.object({
19
+ provider: zod_1.z.enum(['memory', 'qdrant']).default('memory'),
20
+ url: zod_1.z.string().optional(),
21
+ apiKey: zod_1.z.string().optional(),
22
+ collection: zod_1.z.string().default('firecode'),
23
+ });
24
+ exports.GraphStoreConfigSchema = zod_1.z.object({
25
+ provider: zod_1.z.enum(['memory', 'neo4j']).default('memory'),
26
+ url: zod_1.z.string().optional(),
27
+ user: zod_1.z.string().optional(),
28
+ password: zod_1.z.string().optional(),
29
+ });
30
+ exports.MemoryConfigSchema = zod_1.z.object({
31
+ strategy: zod_1.z.enum(['hybrid', 'vector', 'graph', 'auto']).default('auto'),
32
+ maxResults: zod_1.z.number().int().positive().default(10),
33
+ });
34
+ exports.GitConfigSchema = zod_1.z.object({
35
+ enabled: zod_1.z.boolean().default(true),
36
+ autoBranch: zod_1.z.boolean().default(true),
37
+ branchPrefix: zod_1.z.string().default('firecode/'),
38
+ branchStrategy: zod_1.z.enum(['reuse', 'increment', 'fail']).default('reuse'),
39
+ autoCommit: zod_1.z.boolean().default(true),
40
+ commitFormat: zod_1.z.enum(['conventional', 'simple']).default('conventional'),
41
+ includeMetadata: zod_1.z.boolean().default(true),
42
+ workingTree: zod_1.z.enum(['stash', 'commit', 'fail', 'ignore']).default('stash'),
43
+ enforcePattern: zod_1.z.boolean().default(false),
44
+ });
45
+ exports.ExecutionConfigSchema = zod_1.z.object({
46
+ mode: zod_1.z.enum(['safe', 'aggressive']).default('safe'),
47
+ dryRun: zod_1.z.boolean().default(false),
48
+ conflictStrategy: zod_1.z.enum(['merge', 'overwrite', 'fail']).default('fail'),
49
+ validateSyntax: zod_1.z.boolean().default(true),
50
+ validateBuild: zod_1.z.boolean().default(false),
51
+ });
52
+ exports.IndexingConfigSchema = zod_1.z.object({
53
+ mode: zod_1.z.enum(['full', 'lazy']).default('lazy'),
54
+ include: zod_1.z.array(zod_1.z.string()).default(['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx']),
55
+ exclude: zod_1.z.array(zod_1.z.string()).default(['node_modules/**', 'dist/**', '.firecode/**']),
56
+ maxFileSize: zod_1.z.number().int().positive().default(500_000),
57
+ });
58
+ exports.ProjectConfigSchema = zod_1.z.object({
59
+ name: zod_1.z.string().default('unnamed-project'),
60
+ mode: zod_1.z.enum(['legacy', 'standard']).default('standard'),
61
+ });
62
+ exports.FireCodeConfigSchema = zod_1.z.object({
63
+ project: exports.ProjectConfigSchema.default({}),
64
+ llm: exports.LLMConfigSchema.default({}),
65
+ embeddings: exports.EmbeddingsConfigSchema.default({}),
66
+ vectorStore: exports.VectorStoreConfigSchema.default({}),
67
+ graphStore: exports.GraphStoreConfigSchema.default({}),
68
+ memory: exports.MemoryConfigSchema.default({}),
69
+ git: exports.GitConfigSchema.default({}),
70
+ execution: exports.ExecutionConfigSchema.default({}),
71
+ indexing: exports.IndexingConfigSchema.default({}),
72
+ });
73
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { FireCodeConfig } from '../config/types.js';
2
+ import type { LLMProvider } from '../providers/LLMProvider.js';
3
+ import { type TaskType } from './TaskRouter.js';
4
+ import type { AgentResult } from '../agents/BaseAgent.js';
5
+ export interface ExecuteOptions {
6
+ task: string;
7
+ type?: TaskType;
8
+ mode?: 'safe' | 'aggressive';
9
+ cwd?: string;
10
+ }
11
+ export interface ExecutionResult extends AgentResult {
12
+ branch?: string;
13
+ commit?: string;
14
+ }
15
+ export declare class ExecutionEngine {
16
+ private readonly config;
17
+ private readonly provider;
18
+ private vectorStore;
19
+ private memory;
20
+ private agent;
21
+ private cwd;
22
+ private git;
23
+ constructor(config: FireCodeConfig, provider: LLMProvider, cwd?: string);
24
+ run(opts: ExecuteOptions): Promise<ExecutionResult>;
25
+ }
26
+ //# sourceMappingURL=ExecutionEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionEngine.d.ts","sourceRoot":"","sources":["../../src/core/ExecutionEngine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAO/D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAS9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AASD,qBAAa,eAAe;IAQxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAa;gBAGL,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,WAAW,EACtC,GAAG,CAAC,EAAE,MAAM;IA8BR,GAAG,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;CAgD1D"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExecutionEngine = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const path_1 = require("path");
6
+ const HybridMemory_js_1 = require("../memory/HybridMemory.js");
7
+ const FallbackMemory_js_1 = require("../memory/FallbackMemory.js");
8
+ const DatabaseManager_js_1 = require("../db/DatabaseManager.js");
9
+ const MemoryVectorStore_js_1 = require("../vector/MemoryVectorStore.js");
10
+ const GitManager_js_1 = require("../git/GitManager.js");
11
+ const CodeAgent_js_1 = require("../agents/CodeAgent.js");
12
+ const TaskRouter_js_1 = require("./TaskRouter.js");
13
+ function toCommitType(t) {
14
+ return t === 'feature' ? 'feat' : t;
15
+ }
16
+ const logger_js_1 = require("../utils/logger.js");
17
+ const fs_1 = require("fs");
18
+ const paths_js_1 = require("../utils/paths.js");
19
+ function getProjectName(cwd) {
20
+ try {
21
+ const pkg = JSON.parse((0, fs_1.readFileSync)(require('path').join(cwd, 'package.json'), 'utf8'));
22
+ return pkg.name ?? (0, path_1.basename)(cwd);
23
+ }
24
+ catch {
25
+ return (0, path_1.basename)(cwd);
26
+ }
27
+ }
28
+ class ExecutionEngine {
29
+ config;
30
+ provider;
31
+ vectorStore;
32
+ memory;
33
+ agent;
34
+ cwd;
35
+ git;
36
+ constructor(config, provider, cwd) {
37
+ this.config = config;
38
+ this.provider = provider;
39
+ this.cwd = cwd ?? process.cwd();
40
+ this.git = new GitManager_js_1.GitManager(this.cwd, config.git);
41
+ this.vectorStore = new MemoryVectorStore_js_1.MemoryVectorStore();
42
+ const project = getProjectName(this.cwd);
43
+ const firedotDir = (0, paths_js_1.getFireCodeDir)(this.cwd);
44
+ const db = DatabaseManager_js_1.DatabaseManager.getInstance(firedotDir);
45
+ const graphStore = db.getGraphStore(project);
46
+ // Load persisted vectors
47
+ const vectorsPath = (0, paths_js_1.getVectorsPath)(this.cwd);
48
+ if ((0, fs_1.existsSync)(vectorsPath)) {
49
+ try {
50
+ this.vectorStore = MemoryVectorStore_js_1.MemoryVectorStore.deserialize((0, fs_1.readFileSync)(vectorsPath, 'utf8'));
51
+ logger_js_1.logger.debug({ size: this.vectorStore.size() }, 'Loaded persisted vectors');
52
+ }
53
+ catch { /* start fresh */ }
54
+ }
55
+ const hasData = this.vectorStore.size() > 0;
56
+ if (hasData || config.memory.strategy !== 'auto') {
57
+ this.memory = new HybridMemory_js_1.HybridMemory(this.vectorStore, graphStore);
58
+ }
59
+ else {
60
+ this.memory = new FallbackMemory_js_1.FallbackMemory(this.cwd);
61
+ }
62
+ this.agent = new CodeAgent_js_1.CodeAgent(this.provider, this.memory, config);
63
+ }
64
+ async run(opts) {
65
+ const taskId = (0, crypto_1.randomUUID)();
66
+ const taskType = opts.type ?? (0, TaskRouter_js_1.classifyTask)(opts.task);
67
+ logger_js_1.logger.info({ taskId, type: taskType, task: opts.task.slice(0, 100) }, 'Execution started');
68
+ if (this.config.git.enabled && await this.git.isRepo()) {
69
+ await this.git.validateWorkingTree();
70
+ }
71
+ let branch;
72
+ if (this.config.git.enabled && await this.git.isRepo()) {
73
+ branch = await this.git.createBranch(toCommitType(taskType), opts.task);
74
+ logger_js_1.logger.info({ branch }, 'Branch created/switched');
75
+ }
76
+ const result = await this.agent.execute({
77
+ id: taskId,
78
+ description: opts.task,
79
+ type: taskType,
80
+ mode: opts.mode ?? this.config.execution.mode,
81
+ });
82
+ let commit;
83
+ if (result.success &&
84
+ result.changes.length > 0 &&
85
+ this.config.git.autoCommit &&
86
+ !this.config.execution.dryRun &&
87
+ await this.git.isRepo()) {
88
+ const changedFiles = result.changes
89
+ .filter((c) => c.operation !== 'delete')
90
+ .map((c) => c.path);
91
+ commit = await this.git.commit({
92
+ type: toCommitType(taskType),
93
+ description: opts.task.slice(0, 70),
94
+ metadata: { taskId, agent: 'CodeAgent', durationMs: result.durationMs, filesChanged: changedFiles },
95
+ }, changedFiles);
96
+ logger_js_1.logger.info({ commit }, 'Changes committed');
97
+ }
98
+ return { ...result, branch, commit };
99
+ }
100
+ }
101
+ exports.ExecutionEngine = ExecutionEngine;
102
+ //# sourceMappingURL=ExecutionEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionEngine.js","sourceRoot":"","sources":["../../src/core/ExecutionEngine.ts"],"names":[],"mappings":"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"}