@cdoing/core 0.1.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 (378) hide show
  1. package/dist/agents/coordinator.d.ts +114 -0
  2. package/dist/agents/coordinator.d.ts.map +1 -0
  3. package/dist/agents/coordinator.js +158 -0
  4. package/dist/agents/coordinator.js.map +1 -0
  5. package/dist/context-providers/clipboard.d.ts +13 -0
  6. package/dist/context-providers/clipboard.d.ts.map +1 -0
  7. package/dist/context-providers/clipboard.js +53 -0
  8. package/dist/context-providers/clipboard.js.map +1 -0
  9. package/dist/context-providers/codebase.d.ts +46 -0
  10. package/dist/context-providers/codebase.d.ts.map +1 -0
  11. package/dist/context-providers/codebase.js +273 -0
  12. package/dist/context-providers/codebase.js.map +1 -0
  13. package/dist/context-providers/diff.d.ts +18 -0
  14. package/dist/context-providers/diff.d.ts.map +1 -0
  15. package/dist/context-providers/diff.js +63 -0
  16. package/dist/context-providers/diff.js.map +1 -0
  17. package/dist/context-providers/docs.d.ts +21 -0
  18. package/dist/context-providers/docs.d.ts.map +1 -0
  19. package/dist/context-providers/docs.js +180 -0
  20. package/dist/context-providers/docs.js.map +1 -0
  21. package/dist/context-providers/file-include.d.ts +13 -0
  22. package/dist/context-providers/file-include.d.ts.map +1 -0
  23. package/dist/context-providers/file-include.js +82 -0
  24. package/dist/context-providers/file-include.js.map +1 -0
  25. package/dist/context-providers/folder.d.ts +19 -0
  26. package/dist/context-providers/folder.d.ts.map +1 -0
  27. package/dist/context-providers/folder.js +130 -0
  28. package/dist/context-providers/folder.js.map +1 -0
  29. package/dist/context-providers/git.d.ts +19 -0
  30. package/dist/context-providers/git.d.ts.map +1 -0
  31. package/dist/context-providers/git.js +74 -0
  32. package/dist/context-providers/git.js.map +1 -0
  33. package/dist/context-providers/index.d.ts +26 -0
  34. package/dist/context-providers/index.d.ts.map +1 -0
  35. package/dist/context-providers/index.js +37 -0
  36. package/dist/context-providers/index.js.map +1 -0
  37. package/dist/context-providers/open-files.d.ts +25 -0
  38. package/dist/context-providers/open-files.d.ts.map +1 -0
  39. package/dist/context-providers/open-files.js +134 -0
  40. package/dist/context-providers/open-files.js.map +1 -0
  41. package/dist/context-providers/problems.d.ts +24 -0
  42. package/dist/context-providers/problems.d.ts.map +1 -0
  43. package/dist/context-providers/problems.js +97 -0
  44. package/dist/context-providers/problems.js.map +1 -0
  45. package/dist/context-providers/registry.d.ts +61 -0
  46. package/dist/context-providers/registry.d.ts.map +1 -0
  47. package/dist/context-providers/registry.js +92 -0
  48. package/dist/context-providers/registry.js.map +1 -0
  49. package/dist/context-providers/terminal.d.ts +25 -0
  50. package/dist/context-providers/terminal.d.ts.map +1 -0
  51. package/dist/context-providers/terminal.js +55 -0
  52. package/dist/context-providers/terminal.js.map +1 -0
  53. package/dist/context-providers/tree.d.ts +29 -0
  54. package/dist/context-providers/tree.d.ts.map +1 -0
  55. package/dist/context-providers/tree.js +172 -0
  56. package/dist/context-providers/tree.js.map +1 -0
  57. package/dist/context-providers/types.d.ts +72 -0
  58. package/dist/context-providers/types.d.ts.map +1 -0
  59. package/dist/context-providers/types.js +10 -0
  60. package/dist/context-providers/types.js.map +1 -0
  61. package/dist/context-providers/url.d.ts +27 -0
  62. package/dist/context-providers/url.d.ts.map +1 -0
  63. package/dist/context-providers/url.js +131 -0
  64. package/dist/context-providers/url.js.map +1 -0
  65. package/dist/effort/index.d.ts +78 -0
  66. package/dist/effort/index.d.ts.map +1 -0
  67. package/dist/effort/index.js +146 -0
  68. package/dist/effort/index.js.map +1 -0
  69. package/dist/hooks/index.d.ts +47 -0
  70. package/dist/hooks/index.d.ts.map +1 -0
  71. package/dist/hooks/index.js +151 -0
  72. package/dist/hooks/index.js.map +1 -0
  73. package/dist/index.d.ts +75 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +152 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/indexing/chunker.d.ts +25 -0
  78. package/dist/indexing/chunker.d.ts.map +1 -0
  79. package/dist/indexing/chunker.js +217 -0
  80. package/dist/indexing/chunker.js.map +1 -0
  81. package/dist/indexing/database.d.ts +49 -0
  82. package/dist/indexing/database.d.ts.map +1 -0
  83. package/dist/indexing/database.js +287 -0
  84. package/dist/indexing/database.js.map +1 -0
  85. package/dist/indexing/index.d.ts +9 -0
  86. package/dist/indexing/index.d.ts.map +1 -0
  87. package/dist/indexing/index.js +13 -0
  88. package/dist/indexing/index.js.map +1 -0
  89. package/dist/indexing/indexer.d.ts +63 -0
  90. package/dist/indexing/indexer.d.ts.map +1 -0
  91. package/dist/indexing/indexer.js +352 -0
  92. package/dist/indexing/indexer.js.map +1 -0
  93. package/dist/indexing/recent-edits-cache.d.ts +77 -0
  94. package/dist/indexing/recent-edits-cache.d.ts.map +1 -0
  95. package/dist/indexing/recent-edits-cache.js +123 -0
  96. package/dist/indexing/recent-edits-cache.js.map +1 -0
  97. package/dist/indexing/types.d.ts +39 -0
  98. package/dist/indexing/types.d.ts.map +1 -0
  99. package/dist/indexing/types.js +6 -0
  100. package/dist/indexing/types.js.map +1 -0
  101. package/dist/mcp/index.d.ts +33 -0
  102. package/dist/mcp/index.d.ts.map +1 -0
  103. package/dist/mcp/index.js +37 -0
  104. package/dist/mcp/index.js.map +1 -0
  105. package/dist/mcp/manager.d.ts +123 -0
  106. package/dist/mcp/manager.d.ts.map +1 -0
  107. package/dist/mcp/manager.js +331 -0
  108. package/dist/mcp/manager.js.map +1 -0
  109. package/dist/oauth.d.ts +33 -0
  110. package/dist/oauth.d.ts.map +1 -0
  111. package/dist/oauth.js +312 -0
  112. package/dist/oauth.js.map +1 -0
  113. package/dist/permissions/index.d.ts +216 -0
  114. package/dist/permissions/index.d.ts.map +1 -0
  115. package/dist/permissions/index.js +938 -0
  116. package/dist/permissions/index.js.map +1 -0
  117. package/dist/plan/index.d.ts +20 -0
  118. package/dist/plan/index.d.ts.map +1 -0
  119. package/dist/plan/index.js +24 -0
  120. package/dist/plan/index.js.map +1 -0
  121. package/dist/plan/manager.d.ts +101 -0
  122. package/dist/plan/manager.d.ts.map +1 -0
  123. package/dist/plan/manager.js +170 -0
  124. package/dist/plan/manager.js.map +1 -0
  125. package/dist/rules/index.d.ts +28 -0
  126. package/dist/rules/index.d.ts.map +1 -0
  127. package/dist/rules/index.js +31 -0
  128. package/dist/rules/index.js.map +1 -0
  129. package/dist/rules/manager.d.ts +77 -0
  130. package/dist/rules/manager.d.ts.map +1 -0
  131. package/dist/rules/manager.js +279 -0
  132. package/dist/rules/manager.js.map +1 -0
  133. package/dist/rules/types.d.ts +34 -0
  134. package/dist/rules/types.d.ts.map +1 -0
  135. package/dist/rules/types.js +9 -0
  136. package/dist/rules/types.js.map +1 -0
  137. package/dist/sandbox/filesystem.d.ts +20 -0
  138. package/dist/sandbox/filesystem.d.ts.map +1 -0
  139. package/dist/sandbox/filesystem.js +141 -0
  140. package/dist/sandbox/filesystem.js.map +1 -0
  141. package/dist/sandbox/index.d.ts +4 -0
  142. package/dist/sandbox/index.d.ts.map +1 -0
  143. package/dist/sandbox/index.js +8 -0
  144. package/dist/sandbox/index.js.map +1 -0
  145. package/dist/sandbox/manager.d.ts +47 -0
  146. package/dist/sandbox/manager.d.ts.map +1 -0
  147. package/dist/sandbox/manager.js +220 -0
  148. package/dist/sandbox/manager.js.map +1 -0
  149. package/dist/sandbox/network.d.ts +14 -0
  150. package/dist/sandbox/network.d.ts.map +1 -0
  151. package/dist/sandbox/network.js +87 -0
  152. package/dist/sandbox/network.js.map +1 -0
  153. package/dist/sandbox/types.d.ts +42 -0
  154. package/dist/sandbox/types.d.ts.map +1 -0
  155. package/dist/sandbox/types.js +25 -0
  156. package/dist/sandbox/types.js.map +1 -0
  157. package/dist/tools/ast-edit.d.ts +57 -0
  158. package/dist/tools/ast-edit.d.ts.map +1 -0
  159. package/dist/tools/ast-edit.js +443 -0
  160. package/dist/tools/ast-edit.js.map +1 -0
  161. package/dist/tools/code-verify.d.ts +8 -0
  162. package/dist/tools/code-verify.d.ts.map +1 -0
  163. package/dist/tools/code-verify.js +159 -0
  164. package/dist/tools/code-verify.js.map +1 -0
  165. package/dist/tools/codebase-search.d.ts +17 -0
  166. package/dist/tools/codebase-search.d.ts.map +1 -0
  167. package/dist/tools/codebase-search.js +104 -0
  168. package/dist/tools/codebase-search.js.map +1 -0
  169. package/dist/tools/file-delete.d.ts +26 -0
  170. package/dist/tools/file-delete.d.ts.map +1 -0
  171. package/dist/tools/file-delete.js +179 -0
  172. package/dist/tools/file-delete.js.map +1 -0
  173. package/dist/tools/file-edit.d.ts +10 -0
  174. package/dist/tools/file-edit.d.ts.map +1 -0
  175. package/dist/tools/file-edit.js +138 -0
  176. package/dist/tools/file-edit.js.map +1 -0
  177. package/dist/tools/file-read.d.ts +12 -0
  178. package/dist/tools/file-read.d.ts.map +1 -0
  179. package/dist/tools/file-read.js +211 -0
  180. package/dist/tools/file-read.js.map +1 -0
  181. package/dist/tools/file-run.d.ts +10 -0
  182. package/dist/tools/file-run.d.ts.map +1 -0
  183. package/dist/tools/file-run.js +179 -0
  184. package/dist/tools/file-run.js.map +1 -0
  185. package/dist/tools/file-write.d.ts +10 -0
  186. package/dist/tools/file-write.d.ts.map +1 -0
  187. package/dist/tools/file-write.js +134 -0
  188. package/dist/tools/file-write.js.map +1 -0
  189. package/dist/tools/glob-search.d.ts +8 -0
  190. package/dist/tools/glob-search.d.ts.map +1 -0
  191. package/dist/tools/glob-search.js +108 -0
  192. package/dist/tools/glob-search.js.map +1 -0
  193. package/dist/tools/grep-search.d.ts +8 -0
  194. package/dist/tools/grep-search.d.ts.map +1 -0
  195. package/dist/tools/grep-search.js +139 -0
  196. package/dist/tools/grep-search.js.map +1 -0
  197. package/dist/tools/list-dir.d.ts +16 -0
  198. package/dist/tools/list-dir.d.ts.map +1 -0
  199. package/dist/tools/list-dir.js +183 -0
  200. package/dist/tools/list-dir.js.map +1 -0
  201. package/dist/tools/multi-edit.d.ts +16 -0
  202. package/dist/tools/multi-edit.d.ts.map +1 -0
  203. package/dist/tools/multi-edit.js +163 -0
  204. package/dist/tools/multi-edit.js.map +1 -0
  205. package/dist/tools/notebook-edit.d.ts +31 -0
  206. package/dist/tools/notebook-edit.d.ts.map +1 -0
  207. package/dist/tools/notebook-edit.js +321 -0
  208. package/dist/tools/notebook-edit.js.map +1 -0
  209. package/dist/tools/registry.d.ts +16 -0
  210. package/dist/tools/registry.d.ts.map +1 -0
  211. package/dist/tools/registry.js +41 -0
  212. package/dist/tools/registry.js.map +1 -0
  213. package/dist/tools/shell-exec.d.ts +12 -0
  214. package/dist/tools/shell-exec.d.ts.map +1 -0
  215. package/dist/tools/shell-exec.js +261 -0
  216. package/dist/tools/shell-exec.js.map +1 -0
  217. package/dist/tools/sub-agent-manager.d.ts +57 -0
  218. package/dist/tools/sub-agent-manager.d.ts.map +1 -0
  219. package/dist/tools/sub-agent-manager.js +153 -0
  220. package/dist/tools/sub-agent-manager.js.map +1 -0
  221. package/dist/tools/sub-agent-status.d.ts +12 -0
  222. package/dist/tools/sub-agent-status.d.ts.map +1 -0
  223. package/dist/tools/sub-agent-status.js +59 -0
  224. package/dist/tools/sub-agent-status.js.map +1 -0
  225. package/dist/tools/sub-agent-terminate.d.ts +12 -0
  226. package/dist/tools/sub-agent-terminate.d.ts.map +1 -0
  227. package/dist/tools/sub-agent-terminate.js +55 -0
  228. package/dist/tools/sub-agent-terminate.js.map +1 -0
  229. package/dist/tools/sub-agent.d.ts +34 -0
  230. package/dist/tools/sub-agent.d.ts.map +1 -0
  231. package/dist/tools/sub-agent.js +140 -0
  232. package/dist/tools/sub-agent.js.map +1 -0
  233. package/dist/tools/system-info.d.ts +24 -0
  234. package/dist/tools/system-info.d.ts.map +1 -0
  235. package/dist/tools/system-info.js +220 -0
  236. package/dist/tools/system-info.js.map +1 -0
  237. package/dist/tools/todo.d.ts +16 -0
  238. package/dist/tools/todo.d.ts.map +1 -0
  239. package/dist/tools/todo.js +144 -0
  240. package/dist/tools/todo.js.map +1 -0
  241. package/dist/tools/types.d.ts +20 -0
  242. package/dist/tools/types.d.ts.map +1 -0
  243. package/dist/tools/types.js +3 -0
  244. package/dist/tools/types.js.map +1 -0
  245. package/dist/tools/view-diff.d.ts +11 -0
  246. package/dist/tools/view-diff.d.ts.map +1 -0
  247. package/dist/tools/view-diff.js +88 -0
  248. package/dist/tools/view-diff.js.map +1 -0
  249. package/dist/tools/view-repo-map.d.ts +18 -0
  250. package/dist/tools/view-repo-map.d.ts.map +1 -0
  251. package/dist/tools/view-repo-map.js +245 -0
  252. package/dist/tools/view-repo-map.js.map +1 -0
  253. package/dist/tools/web-fetch.d.ts +13 -0
  254. package/dist/tools/web-fetch.d.ts.map +1 -0
  255. package/dist/tools/web-fetch.js +106 -0
  256. package/dist/tools/web-fetch.js.map +1 -0
  257. package/dist/tools/web-search.d.ts +10 -0
  258. package/dist/tools/web-search.d.ts.map +1 -0
  259. package/dist/tools/web-search.js +106 -0
  260. package/dist/tools/web-search.js.map +1 -0
  261. package/dist/utils/gitignore.d.ts +10 -0
  262. package/dist/utils/gitignore.d.ts.map +1 -0
  263. package/dist/utils/gitignore.js +104 -0
  264. package/dist/utils/gitignore.js.map +1 -0
  265. package/dist/utils/lazy-apply.d.ts +45 -0
  266. package/dist/utils/lazy-apply.d.ts.map +1 -0
  267. package/dist/utils/lazy-apply.js +164 -0
  268. package/dist/utils/lazy-apply.js.map +1 -0
  269. package/dist/utils/memory.d.ts +36 -0
  270. package/dist/utils/memory.d.ts.map +1 -0
  271. package/dist/utils/memory.js +136 -0
  272. package/dist/utils/memory.js.map +1 -0
  273. package/dist/utils/path-matching.d.ts +24 -0
  274. package/dist/utils/path-matching.d.ts.map +1 -0
  275. package/dist/utils/path-matching.js +116 -0
  276. package/dist/utils/path-matching.js.map +1 -0
  277. package/dist/utils/path-safety.d.ts +13 -0
  278. package/dist/utils/path-safety.d.ts.map +1 -0
  279. package/dist/utils/path-safety.js +54 -0
  280. package/dist/utils/path-safety.js.map +1 -0
  281. package/dist/utils/project-config.d.ts +18 -0
  282. package/dist/utils/project-config.d.ts.map +1 -0
  283. package/dist/utils/project-config.js +76 -0
  284. package/dist/utils/project-config.js.map +1 -0
  285. package/dist/utils/search-match.d.ts +63 -0
  286. package/dist/utils/search-match.d.ts.map +1 -0
  287. package/dist/utils/search-match.js +426 -0
  288. package/dist/utils/search-match.js.map +1 -0
  289. package/dist/utils/shell-paths.d.ts +17 -0
  290. package/dist/utils/shell-paths.d.ts.map +1 -0
  291. package/dist/utils/shell-paths.js +107 -0
  292. package/dist/utils/shell-paths.js.map +1 -0
  293. package/dist/utils/streaming-diff.d.ts +45 -0
  294. package/dist/utils/streaming-diff.d.ts.map +1 -0
  295. package/dist/utils/streaming-diff.js +230 -0
  296. package/dist/utils/streaming-diff.js.map +1 -0
  297. package/dist/utils/todo.d.ts +47 -0
  298. package/dist/utils/todo.d.ts.map +1 -0
  299. package/dist/utils/todo.js +102 -0
  300. package/dist/utils/todo.js.map +1 -0
  301. package/package.json +23 -0
  302. package/src/agents/coordinator.ts +240 -0
  303. package/src/context-providers/clipboard.ts +48 -0
  304. package/src/context-providers/codebase.ts +274 -0
  305. package/src/context-providers/diff.ts +66 -0
  306. package/src/context-providers/docs.ts +160 -0
  307. package/src/context-providers/file-include.ts +54 -0
  308. package/src/context-providers/folder.ts +106 -0
  309. package/src/context-providers/git.ts +72 -0
  310. package/src/context-providers/index.ts +26 -0
  311. package/src/context-providers/open-files.ts +113 -0
  312. package/src/context-providers/problems.ts +100 -0
  313. package/src/context-providers/registry.ts +99 -0
  314. package/src/context-providers/terminal.ts +58 -0
  315. package/src/context-providers/tree.ts +161 -0
  316. package/src/context-providers/types.ts +84 -0
  317. package/src/context-providers/url.ts +138 -0
  318. package/src/effort/index.ts +177 -0
  319. package/src/hooks/index.ts +148 -0
  320. package/src/index.ts +114 -0
  321. package/src/indexing/README.md +267 -0
  322. package/src/indexing/chunker.ts +206 -0
  323. package/src/indexing/database.ts +299 -0
  324. package/src/indexing/index.ts +15 -0
  325. package/src/indexing/indexer.ts +383 -0
  326. package/src/indexing/recent-edits-cache.ts +150 -0
  327. package/src/indexing/types.ts +44 -0
  328. package/src/mcp/index.ts +33 -0
  329. package/src/mcp/manager.ts +385 -0
  330. package/src/oauth.ts +330 -0
  331. package/src/permissions/index.ts +1011 -0
  332. package/src/plan/index.ts +20 -0
  333. package/src/plan/manager.ts +233 -0
  334. package/src/rules/index.ts +28 -0
  335. package/src/rules/manager.ts +276 -0
  336. package/src/rules/types.ts +40 -0
  337. package/src/sandbox/filesystem.ts +135 -0
  338. package/src/sandbox/index.ts +9 -0
  339. package/src/sandbox/manager.ts +213 -0
  340. package/src/sandbox/network.ts +101 -0
  341. package/src/sandbox/types.ts +63 -0
  342. package/src/tools/ast-edit.ts +493 -0
  343. package/src/tools/code-verify.ts +143 -0
  344. package/src/tools/codebase-search.ts +117 -0
  345. package/src/tools/file-delete.ts +155 -0
  346. package/src/tools/file-edit.ts +115 -0
  347. package/src/tools/file-read.ts +195 -0
  348. package/src/tools/file-run.ts +158 -0
  349. package/src/tools/file-write.ts +104 -0
  350. package/src/tools/glob-search.ts +80 -0
  351. package/src/tools/grep-search.ts +120 -0
  352. package/src/tools/list-dir.ts +172 -0
  353. package/src/tools/multi-edit.ts +138 -0
  354. package/src/tools/notebook-edit.ts +342 -0
  355. package/src/tools/registry.ts +43 -0
  356. package/src/tools/shell-exec.ts +251 -0
  357. package/src/tools/sub-agent-manager.ts +183 -0
  358. package/src/tools/sub-agent-status.ts +67 -0
  359. package/src/tools/sub-agent-terminate.ts +62 -0
  360. package/src/tools/sub-agent.ts +162 -0
  361. package/src/tools/system-info.ts +248 -0
  362. package/src/tools/todo.ts +149 -0
  363. package/src/tools/types.ts +21 -0
  364. package/src/tools/view-diff.ts +99 -0
  365. package/src/tools/view-repo-map.ts +249 -0
  366. package/src/tools/web-fetch.ts +118 -0
  367. package/src/tools/web-search.ts +129 -0
  368. package/src/utils/gitignore.ts +73 -0
  369. package/src/utils/lazy-apply.ts +189 -0
  370. package/src/utils/memory.ts +124 -0
  371. package/src/utils/path-matching.ts +84 -0
  372. package/src/utils/path-safety.ts +19 -0
  373. package/src/utils/project-config.ts +41 -0
  374. package/src/utils/search-match.ts +495 -0
  375. package/src/utils/shell-paths.ts +79 -0
  376. package/src/utils/streaming-diff.ts +260 -0
  377. package/src/utils/todo.ts +115 -0
  378. package/tsconfig.json +18 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Gitignore-aware file filtering.
3
+ * Reads .gitignore and applies patterns to glob/grep searches.
4
+ */
5
+ /**
6
+ * Load ignore patterns from .gitignore + defaults.
7
+ * Converts .gitignore patterns to glob-compatible patterns.
8
+ */
9
+ export declare function loadIgnorePatterns(workingDir: string): string[];
10
+ //# sourceMappingURL=gitignore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CA2C/D"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ /**
3
+ * Gitignore-aware file filtering.
4
+ * Reads .gitignore and applies patterns to glob/grep searches.
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.loadIgnorePatterns = loadIgnorePatterns;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ /** Default patterns to always ignore */
44
+ const DEFAULT_IGNORE = [
45
+ "**/node_modules/**",
46
+ "**/dist/**",
47
+ "**/.git/**",
48
+ "**/*.lock",
49
+ "**/build/**",
50
+ "**/.next/**",
51
+ "**/.nuxt/**",
52
+ "**/coverage/**",
53
+ "**/__pycache__/**",
54
+ "**/.venv/**",
55
+ "**/venv/**",
56
+ "**/.env",
57
+ "**/.DS_Store",
58
+ ];
59
+ /**
60
+ * Load ignore patterns from .gitignore + defaults.
61
+ * Converts .gitignore patterns to glob-compatible patterns.
62
+ */
63
+ function loadIgnorePatterns(workingDir) {
64
+ const patterns = [...DEFAULT_IGNORE];
65
+ const gitignorePath = path.join(workingDir, ".gitignore");
66
+ try {
67
+ if (fs.existsSync(gitignorePath)) {
68
+ const content = fs.readFileSync(gitignorePath, "utf-8");
69
+ const lines = content.split("\n");
70
+ for (let line of lines) {
71
+ line = line.trim();
72
+ // Skip empty lines and comments
73
+ if (!line || line.startsWith("#"))
74
+ continue;
75
+ // Skip negation patterns (complex to handle)
76
+ if (line.startsWith("!"))
77
+ continue;
78
+ // Convert to glob pattern
79
+ let pattern = line;
80
+ // If it ends with /, it's a directory — add **
81
+ if (pattern.endsWith("/")) {
82
+ pattern = `**/${pattern}**`;
83
+ }
84
+ // If it doesn't contain a slash, it can match anywhere
85
+ else if (!pattern.includes("/")) {
86
+ pattern = `**/${pattern}`;
87
+ }
88
+ // If it starts with /, it's relative to root
89
+ else if (pattern.startsWith("/")) {
90
+ pattern = pattern.substring(1);
91
+ }
92
+ // Avoid duplicates
93
+ if (!patterns.includes(pattern)) {
94
+ patterns.push(pattern);
95
+ }
96
+ }
97
+ }
98
+ }
99
+ catch {
100
+ // Silently ignore read errors
101
+ }
102
+ return patterns;
103
+ }
104
+ //# sourceMappingURL=gitignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BH,gDA2CC;AAnED,uCAAyB;AACzB,2CAA6B;AAE7B,wCAAwC;AACxC,MAAM,cAAc,GAAG;IACrB,oBAAoB;IACpB,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,aAAa;IACb,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,mBAAmB;IACnB,aAAa;IACb,YAAY;IACZ,SAAS;IACT,cAAc;CACf,CAAC;AAEF;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,QAAQ,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,gCAAgC;gBAChC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC5C,6CAA6C;gBAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAEnC,0BAA0B;gBAC1B,IAAI,OAAO,GAAG,IAAI,CAAC;gBAEnB,+CAA+C;gBAC/C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO,GAAG,MAAM,OAAO,IAAI,CAAC;gBAC9B,CAAC;gBACD,uDAAuD;qBAClD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,OAAO,GAAG,MAAM,OAAO,EAAE,CAAC;gBAC5B,CAAC;gBACD,6CAA6C;qBACxC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC;gBAED,mBAAmB;gBACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Lazy Apply — LLM-assisted placeholder expansion for file edits.
3
+ *
4
+ * When an LLM generates code with placeholder markers like:
5
+ * // ... existing code ...
6
+ * // ... rest of the function ...
7
+ * # ... remaining imports ...
8
+ *
9
+ * This module detects those placeholders and expands them by preserving
10
+ * the corresponding original code sections. This allows LLMs to make
11
+ * targeted edits without reproducing entire files.
12
+ *
13
+ * Three strategies:
14
+ * 1. Deterministic — match anchors (lines before/after placeholder) against
15
+ * original content and splice in the preserved region
16
+ * 2. Unified diff — if the new content is a diff, apply it directly
17
+ * 3. Streaming — process token-by-token as LLM generates, expanding in real-time
18
+ */
19
+ export interface LazyApplyResult {
20
+ content: string;
21
+ placeholdersExpanded: number;
22
+ strategy: "deterministic" | "none";
23
+ }
24
+ /**
25
+ * Check if a line is a placeholder marker.
26
+ */
27
+ export declare function isPlaceholderLine(line: string): boolean;
28
+ /**
29
+ * Detect if content contains any placeholder markers.
30
+ */
31
+ export declare function hasPlaceholders(content: string): boolean;
32
+ /**
33
+ * Expand placeholders in newContent by referencing originalContent.
34
+ *
35
+ * Algorithm:
36
+ * 1. Split both contents into lines
37
+ * 2. Walk through newContent lines
38
+ * 3. When a placeholder line is found:
39
+ * a. Use anchor lines (the non-placeholder lines before and after) to locate
40
+ * the corresponding region in the original file
41
+ * b. Splice in the original lines between the anchors
42
+ * 4. Return the expanded content
43
+ */
44
+ export declare function expandPlaceholders(originalContent: string, newContent: string): LazyApplyResult;
45
+ //# sourceMappingURL=lazy-apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-apply.d.ts","sourceRoot":"","sources":["../../src/utils/lazy-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAuBH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,eAAe,GAAG,MAAM,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GACjB,eAAe,CA6CjB"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ /**
3
+ * Lazy Apply — LLM-assisted placeholder expansion for file edits.
4
+ *
5
+ * When an LLM generates code with placeholder markers like:
6
+ * // ... existing code ...
7
+ * // ... rest of the function ...
8
+ * # ... remaining imports ...
9
+ *
10
+ * This module detects those placeholders and expands them by preserving
11
+ * the corresponding original code sections. This allows LLMs to make
12
+ * targeted edits without reproducing entire files.
13
+ *
14
+ * Three strategies:
15
+ * 1. Deterministic — match anchors (lines before/after placeholder) against
16
+ * original content and splice in the preserved region
17
+ * 2. Unified diff — if the new content is a diff, apply it directly
18
+ * 3. Streaming — process token-by-token as LLM generates, expanding in real-time
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.isPlaceholderLine = isPlaceholderLine;
22
+ exports.hasPlaceholders = hasPlaceholders;
23
+ exports.expandPlaceholders = expandPlaceholders;
24
+ /**
25
+ * Common placeholder patterns used by LLMs to indicate "keep existing code here".
26
+ * Matches patterns like:
27
+ * // ... existing code ...
28
+ * // ... rest of the function ...
29
+ * # ... remaining imports ...
30
+ * /* ... keep existing ... * /
31
+ * // [existing code]
32
+ * // (rest remains the same)
33
+ */
34
+ const PLACEHOLDER_PATTERNS = [
35
+ // Comment-style with ellipsis: // ... existing code ...
36
+ /^(\s*)(?:\/\/|#|--|\/\*|\*|<!--)\s*\.{2,}\s*(existing|remaining|rest|keep|same|unchanged|other|previous).*$/i,
37
+ // Comment-style with brackets: // [existing code]
38
+ /^(\s*)(?:\/\/|#|--|\/\*|\*|<!--)\s*\[(?:existing|remaining|rest|keep|same|unchanged|other|previous).*\].*$/i,
39
+ // Comment-style with parens: // (rest remains the same)
40
+ /^(\s*)(?:\/\/|#|--|\/\*|\*|<!--)\s*\((?:existing|remaining|rest|keep|same|unchanged|other|previous).*\).*$/i,
41
+ // Bare ellipsis comment: // ...
42
+ /^(\s*)(?:\/\/|#|--|\/\*|\*|<!--)\s*\.{3,}\s*(?:\*\/|-->)?\s*$/,
43
+ ];
44
+ /**
45
+ * Check if a line is a placeholder marker.
46
+ */
47
+ function isPlaceholderLine(line) {
48
+ return PLACEHOLDER_PATTERNS.some((p) => p.test(line));
49
+ }
50
+ /**
51
+ * Detect if content contains any placeholder markers.
52
+ */
53
+ function hasPlaceholders(content) {
54
+ return content.split("\n").some(isPlaceholderLine);
55
+ }
56
+ /**
57
+ * Expand placeholders in newContent by referencing originalContent.
58
+ *
59
+ * Algorithm:
60
+ * 1. Split both contents into lines
61
+ * 2. Walk through newContent lines
62
+ * 3. When a placeholder line is found:
63
+ * a. Use anchor lines (the non-placeholder lines before and after) to locate
64
+ * the corresponding region in the original file
65
+ * b. Splice in the original lines between the anchors
66
+ * 4. Return the expanded content
67
+ */
68
+ function expandPlaceholders(originalContent, newContent) {
69
+ const newLines = newContent.split("\n");
70
+ if (!newLines.some(isPlaceholderLine)) {
71
+ return { content: newContent, placeholdersExpanded: 0, strategy: "none" };
72
+ }
73
+ const originalLines = originalContent.split("\n");
74
+ const result = [];
75
+ let placeholdersExpanded = 0;
76
+ let i = 0;
77
+ while (i < newLines.length) {
78
+ if (!isPlaceholderLine(newLines[i])) {
79
+ result.push(newLines[i]);
80
+ i++;
81
+ continue;
82
+ }
83
+ // Found a placeholder — find anchor lines before and after
84
+ const anchorBefore = findAnchorBefore(result);
85
+ const anchorAfter = findAnchorAfter(newLines, i);
86
+ // Locate the region in original content between these anchors
87
+ const region = findOriginalRegion(originalLines, anchorBefore, anchorAfter);
88
+ if (region) {
89
+ // Splice in the original lines
90
+ for (let r = region.start; r < region.end; r++) {
91
+ result.push(originalLines[r]);
92
+ }
93
+ placeholdersExpanded++;
94
+ }
95
+ else {
96
+ // Couldn't find region — keep placeholder as a comment so it's visible
97
+ result.push(newLines[i]);
98
+ }
99
+ i++;
100
+ }
101
+ return {
102
+ content: result.join("\n"),
103
+ placeholdersExpanded,
104
+ strategy: placeholdersExpanded > 0 ? "deterministic" : "none",
105
+ };
106
+ }
107
+ /**
108
+ * Find the last non-empty, non-placeholder line from the result so far.
109
+ */
110
+ function findAnchorBefore(resultSoFar) {
111
+ for (let i = resultSoFar.length - 1; i >= 0; i--) {
112
+ const line = resultSoFar[i].trim();
113
+ if (line && !isPlaceholderLine(resultSoFar[i])) {
114
+ return resultSoFar[i];
115
+ }
116
+ }
117
+ return null;
118
+ }
119
+ /**
120
+ * Find the next non-empty, non-placeholder line after position i.
121
+ */
122
+ function findAnchorAfter(lines, fromIndex) {
123
+ for (let i = fromIndex + 1; i < lines.length; i++) {
124
+ const line = lines[i].trim();
125
+ if (line && !isPlaceholderLine(lines[i])) {
126
+ return lines[i];
127
+ }
128
+ }
129
+ return null;
130
+ }
131
+ /**
132
+ * Find the region in originalLines between anchorBefore and anchorAfter.
133
+ * Returns the line range (exclusive end) of original lines to preserve.
134
+ */
135
+ function findOriginalRegion(originalLines, anchorBefore, anchorAfter) {
136
+ let startIdx = 0;
137
+ let endIdx = originalLines.length;
138
+ // Find where anchorBefore occurs in original
139
+ if (anchorBefore !== null) {
140
+ const beforeTrimmed = anchorBefore.trim();
141
+ for (let i = 0; i < originalLines.length; i++) {
142
+ if (originalLines[i].trim() === beforeTrimmed) {
143
+ startIdx = i + 1; // Start after the anchor
144
+ break;
145
+ }
146
+ }
147
+ }
148
+ // Find where anchorAfter occurs in original (searching from startIdx)
149
+ if (anchorAfter !== null) {
150
+ const afterTrimmed = anchorAfter.trim();
151
+ for (let i = startIdx; i < originalLines.length; i++) {
152
+ if (originalLines[i].trim() === afterTrimmed) {
153
+ endIdx = i; // End before the anchor
154
+ break;
155
+ }
156
+ }
157
+ }
158
+ // Validate we found a sensible region
159
+ if (startIdx >= endIdx) {
160
+ return null;
161
+ }
162
+ return { start: startIdx, end: endIdx };
163
+ }
164
+ //# sourceMappingURL=lazy-apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-apply.js","sourceRoot":"","sources":["../../src/utils/lazy-apply.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAgCH,8CAEC;AAKD,0CAEC;AAcD,gDAgDC;AArGD;;;;;;;;;GASG;AACH,MAAM,oBAAoB,GAAG;IAC3B,wDAAwD;IACxD,8GAA8G;IAC9G,kDAAkD;IAClD,6GAA6G;IAC7G,wDAAwD;IACxD,6GAA6G;IAC7G,gCAAgC;IAChC,+DAA+D;CAChE,CAAC;AAQF;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,OAAe;IAC7C,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,kBAAkB,CAChC,eAAuB,EACvB,UAAkB;IAElB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5E,CAAC;IAED,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,2DAA2D;QAC3D,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEjD,8DAA8D;QAC9D,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAE5E,IAAI,MAAM,EAAE,CAAC;YACX,+BAA+B;YAC/B,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;YACD,oBAAoB,EAAE,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,uEAAuE;YACvE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,oBAAoB;QACpB,QAAQ,EAAE,oBAAoB,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM;KAC9D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,WAAqB;IAC7C,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAe,EAAE,SAAiB;IACzD,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CACzB,aAAuB,EACvB,YAA2B,EAC3B,WAA0B;IAE1B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IAElC,6CAA6C;IAC7C,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,aAAa,EAAE,CAAC;gBAC9C,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB;gBAC3C,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,YAAY,EAAE,CAAC;gBAC7C,MAAM,GAAG,CAAC,CAAC,CAAC,wBAAwB;gBACpC,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Memory System — persistent memory across sessions.
3
+ *
4
+ * Stores key-value memories in ~/.cdoing/memory.json
5
+ * The agent can save, recall, and forget memories.
6
+ */
7
+ export interface MemoryEntry {
8
+ key: string;
9
+ value: string;
10
+ category: "user" | "project" | "preference" | "context";
11
+ createdAt: string;
12
+ updatedAt: string;
13
+ }
14
+ export declare class MemoryStore {
15
+ private memories;
16
+ constructor();
17
+ private load;
18
+ private save;
19
+ /** Save or update a memory */
20
+ set(key: string, value: string, category?: MemoryEntry["category"]): void;
21
+ /** Get a specific memory */
22
+ get(key: string): string | null;
23
+ /** Search memories by keyword */
24
+ search(query: string): MemoryEntry[];
25
+ /** Get all memories */
26
+ getAll(): ReadonlyArray<MemoryEntry>;
27
+ /** Get memories by category */
28
+ getByCategory(category: MemoryEntry["category"]): MemoryEntry[];
29
+ /** Delete a memory */
30
+ forget(key: string): boolean;
31
+ /** Clear all memories */
32
+ clear(): void;
33
+ /** Format memories for inclusion in system prompt */
34
+ formatForPrompt(): string;
35
+ }
36
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/utils/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAqB;;IAMrC,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,IAAI;IASZ,8BAA8B;IAC9B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,WAAW,CAAC,UAAU,CAAa,GAAG,IAAI;IAapF,4BAA4B;IAC5B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAK/B,iCAAiC;IACjC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;IAOpC,uBAAuB;IACvB,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC;IAIpC,+BAA+B;IAC/B,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,WAAW,EAAE;IAI/D,sBAAsB;IACtB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ5B,yBAAyB;IACzB,KAAK,IAAI,IAAI;IAKb,qDAAqD;IACrD,eAAe,IAAI,MAAM;CAoB1B"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ /**
3
+ * Memory System — persistent memory across sessions.
4
+ *
5
+ * Stores key-value memories in ~/.cdoing/memory.json
6
+ * The agent can save, recall, and forget memories.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.MemoryStore = void 0;
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const os = __importStar(require("os"));
46
+ const MEMORY_DIR = path.join(os.homedir(), ".cdoing");
47
+ const MEMORY_FILE = path.join(MEMORY_DIR, "memory.json");
48
+ class MemoryStore {
49
+ memories = [];
50
+ constructor() {
51
+ this.load();
52
+ }
53
+ load() {
54
+ try {
55
+ if (fs.existsSync(MEMORY_FILE)) {
56
+ const data = JSON.parse(fs.readFileSync(MEMORY_FILE, "utf-8"));
57
+ this.memories = Array.isArray(data.memories) ? data.memories : [];
58
+ }
59
+ }
60
+ catch {
61
+ this.memories = [];
62
+ }
63
+ }
64
+ save() {
65
+ if (!fs.existsSync(MEMORY_DIR))
66
+ fs.mkdirSync(MEMORY_DIR, { recursive: true });
67
+ fs.writeFileSync(MEMORY_FILE, JSON.stringify({ memories: this.memories }, null, 2), "utf-8");
68
+ }
69
+ /** Save or update a memory */
70
+ set(key, value, category = "context") {
71
+ const now = new Date().toISOString();
72
+ const existing = this.memories.find((m) => m.key === key);
73
+ if (existing) {
74
+ existing.value = value;
75
+ existing.updatedAt = now;
76
+ existing.category = category;
77
+ }
78
+ else {
79
+ this.memories.push({ key, value, category, createdAt: now, updatedAt: now });
80
+ }
81
+ this.save();
82
+ }
83
+ /** Get a specific memory */
84
+ get(key) {
85
+ const entry = this.memories.find((m) => m.key === key);
86
+ return entry?.value || null;
87
+ }
88
+ /** Search memories by keyword */
89
+ search(query) {
90
+ const q = query.toLowerCase();
91
+ return this.memories.filter((m) => m.key.toLowerCase().includes(q) || m.value.toLowerCase().includes(q));
92
+ }
93
+ /** Get all memories */
94
+ getAll() {
95
+ return this.memories;
96
+ }
97
+ /** Get memories by category */
98
+ getByCategory(category) {
99
+ return this.memories.filter((m) => m.category === category);
100
+ }
101
+ /** Delete a memory */
102
+ forget(key) {
103
+ const index = this.memories.findIndex((m) => m.key === key);
104
+ if (index === -1)
105
+ return false;
106
+ this.memories.splice(index, 1);
107
+ this.save();
108
+ return true;
109
+ }
110
+ /** Clear all memories */
111
+ clear() {
112
+ this.memories = [];
113
+ this.save();
114
+ }
115
+ /** Format memories for inclusion in system prompt */
116
+ formatForPrompt() {
117
+ if (this.memories.length === 0)
118
+ return "";
119
+ const byCategory = new Map();
120
+ for (const m of this.memories) {
121
+ const list = byCategory.get(m.category) || [];
122
+ list.push(m);
123
+ byCategory.set(m.category, list);
124
+ }
125
+ const parts = [];
126
+ for (const [category, entries] of byCategory) {
127
+ parts.push(`## ${category}`);
128
+ for (const e of entries) {
129
+ parts.push(`- **${e.key}**: ${e.value}`);
130
+ }
131
+ }
132
+ return parts.join("\n");
133
+ }
134
+ }
135
+ exports.MemoryStore = MemoryStore;
136
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/utils/memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Path Matching Utilities — shared by permissions and sandbox systems.
3
+ *
4
+ * Supports path specifier prefixes:
5
+ * //abs/path → absolute from filesystem root
6
+ * ~/rel/path → relative to home directory
7
+ * /proj/path → relative to project root
8
+ * ./rel/path → relative to current working directory
9
+ * rel/path → relative to current working directory
10
+ */
11
+ /**
12
+ * Resolve a specifier to an absolute base path for matching.
13
+ */
14
+ export declare function resolveSpecifierBase(specifier: string, projectDir: string, cwd: string): string;
15
+ /** Glob match: * matches single directory segment, ** matches recursively. */
16
+ export declare function pathGlob(filePath: string, pattern: string): boolean;
17
+ export declare function matchPathParts(fp: string[], pp: string[], fi: number, pi: number): boolean;
18
+ export declare function matchSegment(name: string, pat: string): boolean;
19
+ /**
20
+ * Match a file path against a specifier, resolving the specifier relative
21
+ * to the project directory and current working directory.
22
+ */
23
+ export declare function matchPath(filePath: string, specifier: string, projectDir: string, cwd: string): boolean;
24
+ //# sourceMappingURL=path-matching.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-matching.d.ts","sourceRoot":"","sources":["../../src/utils/path-matching.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAc/F;AAED,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAOnE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAc1F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAI/D;AAMD;;;GAGG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAGT"}