@compilr-dev/cli 0.4.0 → 0.5.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 (634) hide show
  1. package/README.md +254 -68
  2. package/dist/.tsbuildinfo.app +1 -0
  3. package/dist/.tsbuildinfo.data +1 -0
  4. package/dist/.tsbuildinfo.domain +1 -0
  5. package/dist/.tsbuildinfo.foundation +1 -0
  6. package/dist/agent.d.ts +134 -4
  7. package/dist/agent.js +345 -166
  8. package/dist/anchors/index.d.ts +9 -0
  9. package/dist/anchors/index.js +9 -0
  10. package/dist/anchors/project-anchors.d.ts +79 -0
  11. package/dist/anchors/project-anchors.js +202 -0
  12. package/dist/auth/api-client.d.ts +124 -0
  13. package/dist/auth/api-client.js +261 -0
  14. package/dist/auth/index.d.ts +172 -0
  15. package/dist/auth/index.js +545 -0
  16. package/dist/auth/storage.d.ts +52 -0
  17. package/dist/auth/storage.js +118 -0
  18. package/dist/changelog/index.d.ts +16 -0
  19. package/dist/changelog/index.js +24 -0
  20. package/dist/changelog/releases.d.ts +17 -0
  21. package/dist/changelog/releases.js +63 -0
  22. package/dist/commands/index.d.ts +2 -1
  23. package/dist/commands-v2/handlers/auth.d.ts +10 -0
  24. package/dist/commands-v2/handlers/auth.js +118 -0
  25. package/dist/commands-v2/handlers/background.d.ts +14 -0
  26. package/dist/commands-v2/handlers/background.js +276 -0
  27. package/dist/commands-v2/handlers/context.d.ts +13 -0
  28. package/dist/commands-v2/handlers/context.js +533 -0
  29. package/dist/commands-v2/handlers/core.d.ts +14 -0
  30. package/dist/commands-v2/handlers/core.js +290 -0
  31. package/dist/commands-v2/handlers/debug.d.ts +11 -0
  32. package/dist/commands-v2/handlers/debug.js +177 -0
  33. package/dist/commands-v2/handlers/delegations.d.ts +8 -0
  34. package/dist/commands-v2/handlers/delegations.js +29 -0
  35. package/dist/commands-v2/handlers/files.d.ts +8 -0
  36. package/dist/commands-v2/handlers/files.js +162 -0
  37. package/dist/commands-v2/handlers/filter.d.ts +9 -0
  38. package/dist/commands-v2/handlers/filter.js +130 -0
  39. package/dist/commands-v2/handlers/games.d.ts +7 -0
  40. package/dist/commands-v2/handlers/games.js +57 -0
  41. package/dist/commands-v2/handlers/index.d.ts +25 -0
  42. package/dist/commands-v2/handlers/index.js +63 -0
  43. package/dist/commands-v2/handlers/mcp.d.ts +8 -0
  44. package/dist/commands-v2/handlers/mcp.js +39 -0
  45. package/dist/commands-v2/handlers/notifications.d.ts +9 -0
  46. package/dist/commands-v2/handlers/notifications.js +34 -0
  47. package/dist/commands-v2/handlers/project.d.ts +22 -0
  48. package/dist/commands-v2/handlers/project.js +1035 -0
  49. package/dist/commands-v2/handlers/reset.d.ts +11 -0
  50. package/dist/commands-v2/handlers/reset.js +118 -0
  51. package/dist/commands-v2/handlers/session.d.ts +161 -0
  52. package/dist/commands-v2/handlers/session.js +805 -0
  53. package/dist/commands-v2/handlers/settings.d.ts +17 -0
  54. package/dist/commands-v2/handlers/settings.js +417 -0
  55. package/dist/commands-v2/handlers/tasks.d.ts +5 -0
  56. package/dist/commands-v2/handlers/tasks.js +36 -0
  57. package/dist/commands-v2/handlers/team.d.ts +9 -0
  58. package/dist/commands-v2/handlers/team.js +549 -0
  59. package/dist/commands-v2/handlers/terminals.d.ts +9 -0
  60. package/dist/commands-v2/handlers/terminals.js +34 -0
  61. package/dist/commands-v2/index.d.ts +14 -0
  62. package/dist/commands-v2/index.js +18 -0
  63. package/dist/commands-v2/registry.d.ts +52 -0
  64. package/dist/commands-v2/registry.js +114 -0
  65. package/dist/commands-v2/types.d.ts +153 -0
  66. package/dist/commands-v2/types.js +7 -0
  67. package/dist/commands.js +123 -7
  68. package/dist/compilr-diff-companion.vsix +0 -0
  69. package/dist/db/index.js +98 -4
  70. package/dist/db/repositories/document-repository.d.ts +2 -0
  71. package/dist/db/repositories/document-repository.js +5 -1
  72. package/dist/db/repositories/index.d.ts +2 -0
  73. package/dist/db/repositories/index.js +1 -0
  74. package/dist/db/repositories/plan-repository.d.ts +101 -0
  75. package/dist/db/repositories/plan-repository.js +275 -0
  76. package/dist/db/repositories/project-repository.d.ts +6 -0
  77. package/dist/db/repositories/project-repository.js +41 -0
  78. package/dist/db/repositories/work-item-repository.d.ts +15 -0
  79. package/dist/db/repositories/work-item-repository.js +69 -4
  80. package/dist/db/schema.d.ts +40 -3
  81. package/dist/db/schema.js +66 -3
  82. package/dist/episodes/index.d.ts +20 -0
  83. package/dist/episodes/index.js +27 -0
  84. package/dist/episodes/recorder.d.ts +51 -0
  85. package/dist/episodes/recorder.js +195 -0
  86. package/dist/episodes/significant-work.d.ts +21 -0
  87. package/dist/episodes/significant-work.js +56 -0
  88. package/dist/episodes/store.d.ts +38 -0
  89. package/dist/episodes/store.js +199 -0
  90. package/dist/episodes/types.d.ts +35 -0
  91. package/dist/episodes/types.js +6 -0
  92. package/dist/episodes/work-at-risk.d.ts +12 -0
  93. package/dist/episodes/work-at-risk.js +38 -0
  94. package/dist/episodes/work-summary-anchor.d.ts +23 -0
  95. package/dist/episodes/work-summary-anchor.js +73 -0
  96. package/dist/games/coins.d.ts +66 -0
  97. package/dist/games/coins.js +165 -0
  98. package/dist/games/game-base.d.ts +84 -0
  99. package/dist/games/game-base.js +204 -0
  100. package/dist/games/index.d.ts +16 -0
  101. package/dist/games/index.js +49 -0
  102. package/dist/games/scores.d.ts +69 -0
  103. package/dist/games/scores.js +191 -0
  104. package/dist/games/tetris/board.d.ts +59 -0
  105. package/dist/games/tetris/board.js +170 -0
  106. package/dist/games/tetris/index.d.ts +109 -0
  107. package/dist/games/tetris/index.js +610 -0
  108. package/dist/games/tetris/pieces.d.ts +44 -0
  109. package/dist/games/tetris/pieces.js +271 -0
  110. package/dist/games/tetris/renderer.d.ts +26 -0
  111. package/dist/games/tetris/renderer.js +77 -0
  112. package/dist/guide/guide-content.d.ts +23 -0
  113. package/dist/guide/guide-content.js +196 -0
  114. package/dist/guide/index.d.ts +8 -0
  115. package/dist/guide/index.js +7 -0
  116. package/dist/guide/shared-content.d.ts +37 -0
  117. package/dist/guide/shared-content.js +1272 -0
  118. package/dist/guide/tutorial-helpers.d.ts +57 -0
  119. package/dist/guide/tutorial-helpers.js +147 -0
  120. package/dist/handlers/ask-user-handlers.d.ts +32 -0
  121. package/dist/handlers/ask-user-handlers.js +104 -0
  122. package/dist/handlers/delegation-handlers.d.ts +34 -0
  123. package/dist/handlers/delegation-handlers.js +291 -0
  124. package/dist/handlers/permission-handler.d.ts +30 -0
  125. package/dist/handlers/permission-handler.js +205 -0
  126. package/dist/index.d.ts +11 -1
  127. package/dist/index.js +615 -179
  128. package/dist/input-handlers/index.d.ts +7 -0
  129. package/dist/input-handlers/index.js +7 -0
  130. package/dist/input-handlers/memory-handler.d.ts +26 -0
  131. package/dist/input-handlers/memory-handler.js +69 -0
  132. package/dist/models/index.d.ts +10 -0
  133. package/dist/models/index.js +12 -0
  134. package/dist/models/model-registry.d.ts +38 -0
  135. package/dist/models/model-registry.js +69 -0
  136. package/dist/models/model-tiers.d.ts +28 -0
  137. package/dist/models/model-tiers.js +71 -0
  138. package/dist/models/model-validation.d.ts +25 -0
  139. package/dist/models/model-validation.js +291 -0
  140. package/dist/models/ollama-models.d.ts +73 -0
  141. package/dist/models/ollama-models.js +178 -0
  142. package/dist/models/provider-types.d.ts +6 -0
  143. package/dist/models/provider-types.js +1 -0
  144. package/dist/models/providers.d.ts +35 -0
  145. package/dist/models/providers.js +58 -0
  146. package/dist/models/types.d.ts +4 -0
  147. package/dist/models/types.js +4 -0
  148. package/dist/multi-agent/activity.d.ts +21 -0
  149. package/dist/multi-agent/activity.js +34 -0
  150. package/dist/multi-agent/agent-selection.d.ts +55 -0
  151. package/dist/multi-agent/agent-selection.js +90 -0
  152. package/dist/multi-agent/artifacts.d.ts +197 -0
  153. package/dist/multi-agent/artifacts.js +379 -0
  154. package/dist/multi-agent/checkpointer.d.ts +138 -0
  155. package/dist/multi-agent/checkpointer.js +471 -0
  156. package/dist/multi-agent/collision-utils.d.ts +16 -0
  157. package/dist/multi-agent/collision-utils.js +28 -0
  158. package/dist/multi-agent/context-resolver.d.ts +97 -0
  159. package/dist/multi-agent/context-resolver.js +316 -0
  160. package/dist/multi-agent/custom-agents.d.ts +83 -0
  161. package/dist/multi-agent/custom-agents.js +227 -0
  162. package/dist/multi-agent/delegation-tracker.d.ts +157 -0
  163. package/dist/multi-agent/delegation-tracker.js +243 -0
  164. package/dist/multi-agent/file-lock-hook.d.ts +29 -0
  165. package/dist/multi-agent/file-lock-hook.js +97 -0
  166. package/dist/multi-agent/file-locks.d.ts +58 -0
  167. package/dist/multi-agent/file-locks.js +194 -0
  168. package/dist/multi-agent/index.d.ts +24 -0
  169. package/dist/multi-agent/index.js +30 -0
  170. package/dist/multi-agent/mention-parser.d.ts +64 -0
  171. package/dist/multi-agent/mention-parser.js +146 -0
  172. package/dist/multi-agent/notification-manager.d.ts +84 -0
  173. package/dist/multi-agent/notification-manager.js +224 -0
  174. package/dist/multi-agent/pending-requests.d.ts +122 -0
  175. package/dist/multi-agent/pending-requests.js +155 -0
  176. package/dist/multi-agent/session-registry.d.ts +139 -0
  177. package/dist/multi-agent/session-registry.js +514 -0
  178. package/dist/multi-agent/shared-context.d.ts +293 -0
  179. package/dist/multi-agent/shared-context.js +671 -0
  180. package/dist/multi-agent/skill-requirements.d.ts +66 -0
  181. package/dist/multi-agent/skill-requirements.js +178 -0
  182. package/dist/multi-agent/task-assignment.d.ts +69 -0
  183. package/dist/multi-agent/task-assignment.js +123 -0
  184. package/dist/multi-agent/task-suggestion.d.ts +31 -0
  185. package/dist/multi-agent/task-suggestion.js +72 -0
  186. package/dist/multi-agent/team-agent.d.ts +201 -0
  187. package/dist/multi-agent/team-agent.js +488 -0
  188. package/dist/multi-agent/team.d.ts +286 -0
  189. package/dist/multi-agent/team.js +610 -0
  190. package/dist/multi-agent/tool-config.d.ts +110 -0
  191. package/dist/multi-agent/tool-config.js +661 -0
  192. package/dist/multi-agent/types.d.ts +211 -0
  193. package/dist/multi-agent/types.js +617 -0
  194. package/dist/prompts/plan-mode-prompt.d.ts +11 -0
  195. package/dist/prompts/plan-mode-prompt.js +95 -0
  196. package/dist/repl-helpers.d.ts +63 -0
  197. package/dist/repl-helpers.js +319 -0
  198. package/dist/repl-v2.d.ts +554 -0
  199. package/dist/repl-v2.js +3286 -0
  200. package/dist/session/index.d.ts +6 -0
  201. package/dist/session/index.js +6 -0
  202. package/dist/session/project-session-manager.d.ts +158 -0
  203. package/dist/session/project-session-manager.js +650 -0
  204. package/dist/settings/index.d.ts +156 -13
  205. package/dist/settings/index.js +377 -24
  206. package/dist/settings/mcp-config.d.ts +76 -0
  207. package/dist/settings/mcp-config.js +143 -0
  208. package/dist/settings/paths.d.ts +114 -0
  209. package/dist/settings/paths.js +270 -0
  210. package/dist/shared-handlers.d.ts +62 -0
  211. package/dist/shared-handlers.js +48 -0
  212. package/dist/system-prompt/builder.d.ts +5 -0
  213. package/dist/system-prompt/builder.js +4 -0
  214. package/dist/system-prompt/index.d.ts +18 -0
  215. package/dist/system-prompt/index.js +18 -0
  216. package/dist/system-prompt/modules.d.ts +5 -0
  217. package/dist/system-prompt/modules.js +4 -0
  218. package/dist/tabbed-menu.js +2 -1
  219. package/dist/templates/compilr-md-import.d.ts +16 -0
  220. package/dist/templates/compilr-md-import.js +241 -0
  221. package/dist/templates/compilr-md.js +10 -58
  222. package/dist/templates/config-json.d.ts +1 -25
  223. package/dist/templates/index.d.ts +2 -0
  224. package/dist/templates/index.js +35 -75
  225. package/dist/themes/colors.js +3 -1
  226. package/dist/themes/registry.d.ts +5 -36
  227. package/dist/themes/registry.js +11 -95
  228. package/dist/themes/types.d.ts +3 -38
  229. package/dist/themes/types.js +2 -2
  230. package/dist/tool-names.d.ts +108 -0
  231. package/dist/tool-names.js +227 -0
  232. package/dist/tools/anchor-tools.d.ts +31 -0
  233. package/dist/tools/anchor-tools.js +255 -0
  234. package/dist/tools/artifact-tools.d.ts +42 -0
  235. package/dist/tools/artifact-tools.js +328 -0
  236. package/dist/tools/ask-user-simple.d.ts +1 -1
  237. package/dist/tools/ask-user-simple.js +2 -1
  238. package/dist/tools/ask-user.d.ts +1 -1
  239. package/dist/tools/ask-user.js +2 -1
  240. package/dist/tools/backlog-wrappers.d.ts +56 -0
  241. package/dist/tools/backlog-wrappers.js +353 -0
  242. package/dist/tools/backlog.d.ts +2 -2
  243. package/dist/tools/backlog.js +2 -2
  244. package/dist/tools/db-tools.d.ts +12 -0
  245. package/dist/tools/db-tools.js +14 -0
  246. package/dist/tools/delegate-background.d.ts +27 -0
  247. package/dist/tools/delegate-background.js +115 -0
  248. package/dist/tools/delegate.d.ts +22 -0
  249. package/dist/tools/delegate.js +97 -0
  250. package/dist/tools/delegation-status.d.ts +16 -0
  251. package/dist/tools/delegation-status.js +128 -0
  252. package/dist/tools/document-db.d.ts +43 -0
  253. package/dist/tools/document-db.js +220 -0
  254. package/dist/tools/guide-tool.d.ts +12 -0
  255. package/dist/tools/guide-tool.js +59 -0
  256. package/dist/tools/handoff.d.ts +25 -0
  257. package/dist/tools/handoff.js +99 -0
  258. package/dist/tools/meta-tools.d.ts +26 -0
  259. package/dist/tools/meta-tools.js +47 -0
  260. package/dist/tools/plan-tools.d.ts +54 -0
  261. package/dist/tools/plan-tools.js +338 -0
  262. package/dist/tools/platform-adapter.d.ts +29 -0
  263. package/dist/tools/platform-adapter.js +394 -0
  264. package/dist/tools/project-db.d.ts +34 -0
  265. package/dist/tools/project-db.js +39 -0
  266. package/dist/tools/recall-work-tool.d.ts +18 -0
  267. package/dist/tools/recall-work-tool.js +82 -0
  268. package/dist/tools/workitem-db.d.ts +135 -0
  269. package/dist/tools/workitem-db.js +730 -0
  270. package/dist/tools.d.ts +67 -2
  271. package/dist/tools.js +238 -38
  272. package/dist/ui/ask-user-overlay.d.ts +2 -2
  273. package/dist/ui/ask-user-overlay.js +443 -535
  274. package/dist/ui/ask-user-simple-overlay.d.ts +2 -2
  275. package/dist/ui/ask-user-simple-overlay.js +182 -209
  276. package/dist/ui/autocomplete-controller.d.ts +42 -0
  277. package/dist/ui/autocomplete-controller.js +384 -0
  278. package/dist/ui/base/index.d.ts +26 -0
  279. package/dist/ui/base/index.js +33 -0
  280. package/dist/ui/base/inline-overlay-utils.d.ts +217 -0
  281. package/dist/ui/base/inline-overlay-utils.js +320 -0
  282. package/dist/ui/base/inline-overlay.d.ts +159 -0
  283. package/dist/ui/base/inline-overlay.js +257 -0
  284. package/dist/ui/base/key-utils.d.ts +15 -0
  285. package/dist/ui/base/key-utils.js +30 -0
  286. package/dist/ui/base/overlay-base-v2.d.ts +203 -0
  287. package/dist/ui/base/overlay-base-v2.js +260 -0
  288. package/dist/ui/base/overlay-base.d.ts +156 -0
  289. package/dist/ui/base/overlay-base.js +238 -0
  290. package/dist/ui/base/overlay-lifecycle.d.ts +65 -0
  291. package/dist/ui/base/overlay-lifecycle.js +159 -0
  292. package/dist/ui/base/overlay-types.d.ts +185 -0
  293. package/dist/ui/base/overlay-types.js +7 -0
  294. package/dist/ui/base/render-utils.d.ts +27 -0
  295. package/dist/ui/base/render-utils.js +36 -0
  296. package/dist/ui/base/screen-stack.d.ts +148 -0
  297. package/dist/ui/base/screen-stack.js +184 -0
  298. package/dist/ui/base/tabbed-list-overlay-v2.d.ts +118 -0
  299. package/dist/ui/base/tabbed-list-overlay-v2.js +335 -0
  300. package/dist/ui/base/tabbed-list-overlay.d.ts +153 -0
  301. package/dist/ui/base/tabbed-list-overlay.js +369 -0
  302. package/dist/ui/constants/labels.d.ts +14 -0
  303. package/dist/ui/constants/labels.js +51 -0
  304. package/dist/ui/conversation-store.d.ts +55 -0
  305. package/dist/ui/conversation-store.js +107 -0
  306. package/dist/ui/conversation.d.ts +75 -4
  307. package/dist/ui/conversation.js +376 -165
  308. package/dist/ui/diff.d.ts +7 -1
  309. package/dist/ui/diff.js +85 -48
  310. package/dist/ui/ephemeral.d.ts +1 -1
  311. package/dist/ui/ephemeral.js +4 -10
  312. package/dist/ui/features/index.d.ts +34 -0
  313. package/dist/ui/features/index.js +34 -0
  314. package/dist/ui/features/input-feature.d.ts +85 -0
  315. package/dist/ui/features/input-feature.js +238 -0
  316. package/dist/ui/features/list-feature.d.ts +155 -0
  317. package/dist/ui/features/list-feature.js +244 -0
  318. package/dist/ui/features/pagination-feature.d.ts +154 -0
  319. package/dist/ui/features/pagination-feature.js +238 -0
  320. package/dist/ui/features/search-feature.d.ts +148 -0
  321. package/dist/ui/features/search-feature.js +185 -0
  322. package/dist/ui/features/tab-feature.d.ts +194 -0
  323. package/dist/ui/features/tab-feature.js +307 -0
  324. package/dist/ui/file-autocomplete.d.ts +24 -0
  325. package/dist/ui/file-autocomplete.js +56 -0
  326. package/dist/ui/footer-renderer.d.ts +69 -0
  327. package/dist/ui/footer-renderer.js +431 -0
  328. package/dist/ui/footer.d.ts +181 -7
  329. package/dist/ui/footer.js +523 -74
  330. package/dist/ui/guardrail-overlay.d.ts +29 -0
  331. package/dist/ui/guardrail-overlay.js +145 -0
  332. package/dist/ui/index.d.ts +1 -1
  333. package/dist/ui/index.js +1 -3
  334. package/dist/ui/input-controller.d.ts +51 -0
  335. package/dist/ui/input-controller.js +176 -0
  336. package/dist/ui/input-prompt.d.ts +135 -33
  337. package/dist/ui/input-prompt.js +728 -337
  338. package/dist/ui/iteration-limit-overlay.d.ts +2 -2
  339. package/dist/ui/iteration-limit-overlay.js +92 -128
  340. package/dist/ui/keyboard-handler.d.ts +57 -0
  341. package/dist/ui/keyboard-handler.js +557 -0
  342. package/dist/ui/keys-overlay.d.ts +1 -0
  343. package/dist/ui/keys-overlay.js +203 -141
  344. package/dist/ui/line-utils.d.ts +88 -0
  345. package/dist/ui/line-utils.js +150 -0
  346. package/dist/ui/live-region-facade.d.ts +42 -0
  347. package/dist/ui/live-region-facade.js +205 -0
  348. package/dist/ui/live-region.d.ts +157 -0
  349. package/dist/ui/live-region.js +379 -0
  350. package/dist/ui/mascot/expressions.d.ts +32 -0
  351. package/dist/ui/mascot/expressions.js +213 -0
  352. package/dist/ui/mascot/index.d.ts +8 -0
  353. package/dist/ui/mascot/index.js +8 -0
  354. package/dist/ui/mascot/renderer.d.ts +19 -0
  355. package/dist/ui/mascot/renderer.js +132 -0
  356. package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
  357. package/dist/ui/overlay/data/tutorial-content.js +9 -0
  358. package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
  359. package/dist/ui/overlay/data/tutorial-registry.js +116 -0
  360. package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
  361. package/dist/ui/overlay/data/tutorial-types.js +6 -0
  362. package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
  363. package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
  364. package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
  365. package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
  366. package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
  367. package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
  368. package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
  369. package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
  370. package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
  371. package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
  372. package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
  373. package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
  374. package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
  375. package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
  376. package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
  377. package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
  378. package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
  379. package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
  380. package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
  381. package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
  382. package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
  383. package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
  384. package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
  385. package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
  386. package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
  387. package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
  388. package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
  389. package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
  390. package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
  391. package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
  392. package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
  393. package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
  394. package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
  395. package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
  396. package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
  397. package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
  398. package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
  399. package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
  400. package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
  401. package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
  402. package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
  403. package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
  404. package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
  405. package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
  406. package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
  407. package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
  408. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
  409. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
  410. package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
  411. package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
  412. package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
  413. package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
  414. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
  415. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
  416. package/dist/ui/overlay/impl/agents-overlay-v2.d.ts +45 -0
  417. package/dist/ui/overlay/impl/agents-overlay-v2.js +814 -0
  418. package/dist/ui/overlay/impl/anchors-overlay-v2.d.ts +47 -0
  419. package/dist/ui/overlay/impl/anchors-overlay-v2.js +749 -0
  420. package/dist/ui/overlay/impl/arch-type-overlay-v2.d.ts +37 -0
  421. package/dist/ui/overlay/impl/arch-type-overlay-v2.js +240 -0
  422. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
  423. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
  424. package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
  425. package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
  426. package/dist/ui/overlay/impl/ask-user-overlay-v2.d.ts +72 -0
  427. package/dist/ui/overlay/impl/ask-user-overlay-v2.js +581 -0
  428. package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.d.ts +46 -0
  429. package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.js +204 -0
  430. package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
  431. package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
  432. package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +52 -0
  433. package/dist/ui/overlay/impl/backlog-overlay-v2.js +681 -0
  434. package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
  435. package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
  436. package/dist/ui/overlay/impl/commands-overlay-v2.d.ts +33 -0
  437. package/dist/ui/overlay/impl/commands-overlay-v2.js +439 -0
  438. package/dist/ui/overlay/impl/config-overlay-v2.d.ts +111 -0
  439. package/dist/ui/overlay/impl/config-overlay-v2.js +718 -0
  440. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
  441. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
  442. package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +57 -0
  443. package/dist/ui/overlay/impl/dashboard-overlay-v2.js +382 -0
  444. package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
  445. package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
  446. package/dist/ui/overlay/impl/docs-overlay-v2.d.ts +45 -0
  447. package/dist/ui/overlay/impl/docs-overlay-v2.js +117 -0
  448. package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +84 -0
  449. package/dist/ui/overlay/impl/document-detail-overlay-v2.js +1112 -0
  450. package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
  451. package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
  452. package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
  453. package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
  454. package/dist/ui/overlay/impl/guardrail-overlay-v2.d.ts +43 -0
  455. package/dist/ui/overlay/impl/guardrail-overlay-v2.js +114 -0
  456. package/dist/ui/overlay/impl/help-overlay-v2.d.ts +57 -0
  457. package/dist/ui/overlay/impl/help-overlay-v2.js +287 -0
  458. package/dist/ui/overlay/impl/init-setup-overlay-v2.d.ts +25 -0
  459. package/dist/ui/overlay/impl/init-setup-overlay-v2.js +97 -0
  460. package/dist/ui/overlay/impl/iteration-limit-overlay-v2.d.ts +35 -0
  461. package/dist/ui/overlay/impl/iteration-limit-overlay-v2.js +105 -0
  462. package/dist/ui/overlay/impl/keys-overlay-v2.d.ts +41 -0
  463. package/dist/ui/overlay/impl/keys-overlay-v2.js +248 -0
  464. package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
  465. package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
  466. package/dist/ui/overlay/impl/mascot-overlay-v2.d.ts +41 -0
  467. package/dist/ui/overlay/impl/mascot-overlay-v2.js +138 -0
  468. package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
  469. package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
  470. package/dist/ui/overlay/impl/model-overlay-v2.d.ts +93 -0
  471. package/dist/ui/overlay/impl/model-overlay-v2.js +1143 -0
  472. package/dist/ui/overlay/impl/model-warning-overlay-v2.d.ts +46 -0
  473. package/dist/ui/overlay/impl/model-warning-overlay-v2.js +132 -0
  474. package/dist/ui/overlay/impl/new-overlay-v2.d.ts +108 -0
  475. package/dist/ui/overlay/impl/new-overlay-v2.js +1243 -0
  476. package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
  477. package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
  478. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
  479. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
  480. package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
  481. package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
  482. package/dist/ui/overlay/impl/permission-overlay-v2.d.ts +36 -0
  483. package/dist/ui/overlay/impl/permission-overlay-v2.js +380 -0
  484. package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
  485. package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
  486. package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
  487. package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
  488. package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
  489. package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
  490. package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +37 -0
  491. package/dist/ui/overlay/impl/projects-overlay-v2.js +733 -0
  492. package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
  493. package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
  494. package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
  495. package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
  496. package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
  497. package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
  498. package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
  499. package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
  500. package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
  501. package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
  502. package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
  503. package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
  504. package/dist/ui/overlay/impl/theme-overlay-v2.d.ts +42 -0
  505. package/dist/ui/overlay/impl/theme-overlay-v2.js +135 -0
  506. package/dist/ui/overlay/impl/tools-overlay-v2.d.ts +47 -0
  507. package/dist/ui/overlay/impl/tools-overlay-v2.js +214 -0
  508. package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +45 -0
  509. package/dist/ui/overlay/impl/tutorial-overlay-v2.js +212 -0
  510. package/dist/ui/overlay/impl/workflow-overlay-v2.d.ts +80 -0
  511. package/dist/ui/overlay/impl/workflow-overlay-v2.js +641 -0
  512. package/dist/ui/overlay/index.d.ts +52 -0
  513. package/dist/ui/overlay/index.js +54 -0
  514. package/dist/ui/overlay/key-utils.d.ts +6 -0
  515. package/dist/ui/overlay/key-utils.js +6 -0
  516. package/dist/ui/overlay/types.d.ts +140 -0
  517. package/dist/ui/overlay/types.js +22 -0
  518. package/dist/ui/overlay-manager.d.ts +43 -0
  519. package/dist/ui/overlay-manager.js +238 -0
  520. package/dist/ui/overlays.d.ts +0 -4
  521. package/dist/ui/overlays.js +4 -460
  522. package/dist/ui/permission-overlay.d.ts +1 -1
  523. package/dist/ui/permission-overlay.js +189 -300
  524. package/dist/ui/providers/types.d.ts +178 -0
  525. package/dist/ui/providers/types.js +9 -0
  526. package/dist/ui/render-modes.d.ts +36 -0
  527. package/dist/ui/render-modes.js +44 -0
  528. package/dist/ui/startup-menu.d.ts +36 -0
  529. package/dist/ui/startup-menu.js +236 -0
  530. package/dist/ui/status-bar-controller.d.ts +33 -0
  531. package/dist/ui/status-bar-controller.js +99 -0
  532. package/dist/ui/subagent-renderer.d.ts +117 -0
  533. package/dist/ui/subagent-renderer.js +318 -0
  534. package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
  535. package/dist/ui/terminal-autocomplete-utils.js +83 -0
  536. package/dist/ui/terminal-codes.d.ts +94 -0
  537. package/dist/ui/terminal-codes.js +124 -0
  538. package/dist/ui/terminal-line-builders.d.ts +17 -0
  539. package/dist/ui/terminal-line-builders.js +42 -0
  540. package/dist/ui/terminal-render-item.d.ts +16 -0
  541. package/dist/ui/terminal-render-item.js +267 -0
  542. package/dist/ui/terminal-renderer.d.ts +220 -0
  543. package/dist/ui/terminal-renderer.js +750 -0
  544. package/dist/ui/terminal-types.d.ts +179 -0
  545. package/dist/ui/terminal-types.js +34 -0
  546. package/dist/ui/terminal-ui.d.ts +331 -0
  547. package/dist/ui/terminal-ui.js +819 -0
  548. package/dist/ui/terminal.d.ts +20 -0
  549. package/dist/ui/terminal.js +72 -0
  550. package/dist/ui/todo-zone.d.ts +19 -1
  551. package/dist/ui/todo-zone.js +124 -38
  552. package/dist/ui/tool-formatters.d.ts +16 -0
  553. package/dist/ui/tool-formatters.js +1027 -0
  554. package/dist/ui/turn-metrics.d.ts +56 -0
  555. package/dist/ui/turn-metrics.js +75 -0
  556. package/dist/ui/types.d.ts +28 -0
  557. package/dist/ui/types.js +1 -0
  558. package/dist/ui/vscode-diff-ipc.d.ts +102 -0
  559. package/dist/ui/vscode-diff-ipc.js +385 -0
  560. package/dist/utils/credentials.d.ts +24 -5
  561. package/dist/utils/credentials.js +123 -9
  562. package/dist/utils/debug-log.d.ts +28 -0
  563. package/dist/utils/debug-log.js +57 -0
  564. package/dist/utils/format-tokens.d.ts +13 -0
  565. package/dist/utils/format-tokens.js +18 -0
  566. package/dist/utils/git-config.d.ts +26 -0
  567. package/dist/utils/git-config.js +54 -0
  568. package/dist/utils/message-utils.d.ts +61 -0
  569. package/dist/utils/message-utils.js +72 -0
  570. package/dist/utils/model-tiers.d.ts +8 -1
  571. package/dist/utils/model-tiers.js +39 -17
  572. package/dist/utils/open-browser.d.ts +5 -0
  573. package/dist/utils/open-browser.js +32 -0
  574. package/dist/utils/path-safety.d.ts +56 -0
  575. package/dist/utils/path-safety.js +240 -0
  576. package/dist/utils/project-detection.d.ts +58 -0
  577. package/dist/utils/project-detection.js +424 -0
  578. package/dist/utils/project-memory.js +2 -1
  579. package/dist/utils/project-status.d.ts +2 -2
  580. package/dist/utils/startup-perf.d.ts +18 -0
  581. package/dist/utils/startup-perf.js +60 -0
  582. package/dist/utils/token-tracker.d.ts +62 -0
  583. package/dist/utils/token-tracker.js +150 -0
  584. package/dist/utils/token-types.d.ts +23 -0
  585. package/dist/utils/token-types.js +18 -0
  586. package/dist/utils/types/config-types.d.ts +32 -0
  587. package/dist/utils/types/config-types.js +8 -0
  588. package/dist/utils/update-checker.d.ts +28 -0
  589. package/dist/utils/update-checker.js +106 -0
  590. package/dist/utils/version.d.ts +7 -0
  591. package/dist/utils/version.js +10 -0
  592. package/dist/utils/vscode-detect.d.ts +39 -0
  593. package/dist/utils/vscode-detect.js +137 -0
  594. package/dist/workflow/guided-mode-injector.d.ts +42 -0
  595. package/dist/workflow/guided-mode-injector.js +191 -0
  596. package/dist/workflow/index.d.ts +8 -0
  597. package/dist/workflow/index.js +8 -0
  598. package/dist/workflow/step-criteria.d.ts +62 -0
  599. package/dist/workflow/step-criteria.js +150 -0
  600. package/dist/workflow/step-tracker.d.ts +92 -0
  601. package/dist/workflow/step-tracker.js +141 -0
  602. package/package.json +32 -12
  603. package/dist/index.old.d.ts +0 -7
  604. package/dist/index.old.js +0 -1014
  605. package/dist/repl.d.ts +0 -121
  606. package/dist/repl.js +0 -1878
  607. package/dist/templates/claude-md.d.ts +0 -7
  608. package/dist/templates/claude-md.js +0 -189
  609. package/dist/test-autocomplete.d.ts +0 -7
  610. package/dist/test-autocomplete.js +0 -85
  611. package/dist/test-tabbed-menu.d.ts +0 -7
  612. package/dist/test-tabbed-menu.js +0 -25
  613. package/dist/tool-selector.d.ts +0 -71
  614. package/dist/tool-selector.js +0 -184
  615. package/dist/ui/agents-overlay.d.ts +0 -12
  616. package/dist/ui/agents-overlay.js +0 -501
  617. package/dist/ui/arch-type-overlay.d.ts +0 -20
  618. package/dist/ui/arch-type-overlay.js +0 -229
  619. package/dist/ui/backlog-overlay.d.ts +0 -17
  620. package/dist/ui/backlog-overlay.js +0 -786
  621. package/dist/ui/commands-overlay.d.ts +0 -11
  622. package/dist/ui/commands-overlay.js +0 -410
  623. package/dist/ui/config-overlay.d.ts +0 -34
  624. package/dist/ui/config-overlay.js +0 -977
  625. package/dist/ui/init-overlay.d.ts +0 -24
  626. package/dist/ui/init-overlay.js +0 -525
  627. package/dist/ui/input-prompt-v2.d.ts +0 -179
  628. package/dist/ui/input-prompt-v2.js +0 -991
  629. package/dist/ui/model-warning-overlay.d.ts +0 -30
  630. package/dist/ui/model-warning-overlay.js +0 -171
  631. package/dist/ui/tools-overlay.d.ts +0 -26
  632. package/dist/ui/tools-overlay.js +0 -278
  633. package/dist/ui/tutorial-overlay.d.ts +0 -10
  634. package/dist/ui/tutorial-overlay.js +0 -936
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Plan Mode System Prompt Addition
3
+ *
4
+ * Appended to the system prompt when Plan Mode is active.
5
+ * Instructs the agent to explore, create plans, and wait for approval.
6
+ */
7
+ export const PLAN_MODE_PROMPT = `## PLAN MODE ACTIVE
8
+
9
+ You are currently in **Plan Mode**. In this mode, you must:
10
+
11
+ 1. **Gather Context from Database FIRST**:
12
+ - Use \`project_document_get\` to read PRD and architecture docs
13
+ - Use \`workitem_query\` to read backlog items
14
+ - Use \`plan_list\` to see existing plans
15
+ - Only read actual source files when you need specific implementation details
16
+
17
+ 2. **Ask Questions**: Use \`ask_user\` to clarify requirements, constraints, and preferences. Don't assume.
18
+
19
+ 3. **Create a Plan**: Use \`plan_create\` to document your approach before implementing:
20
+ - Name: kebab-case, descriptive (e.g., "auth-jwt-migration")
21
+ - Content: Follow the standard plan format (Context, Goals, Steps, Verification)
22
+ - Link to work item if one was mentioned
23
+
24
+ 4. **Request Approval**: After creating the plan, summarize it and ask for approval:
25
+ - List 3-5 key points
26
+ - Mention files that will be modified
27
+ - End with: "Ready for your review. [PLAN_READY:plan_id:plan_name]"
28
+
29
+ 5. **Wait for Approval**: Do NOT implement until the user approves the plan.
30
+
31
+ 6. **Track Status**: After approval, update the plan status:
32
+ - Use \`plan_update\` with status: 'approved' when user approves
33
+ - Use \`plan_update\` with status: 'in_progress' when you start implementing
34
+ - Use \`plan_update\` with status: 'completed' when all steps are done
35
+
36
+ ### Plan Format
37
+
38
+ Use this structure when creating plans:
39
+
40
+ \`\`\`markdown
41
+ # Plan: [Name]
42
+
43
+ ## Context
44
+ [Why this plan exists, what problem it solves]
45
+ [Link to work item if applicable]
46
+
47
+ ## Goals
48
+ - [ ] Primary goal 1
49
+ - [ ] Primary goal 2
50
+
51
+ ## Approach
52
+ [High-level description of the implementation approach]
53
+
54
+ ## Steps
55
+ 1. **Step 1 Title**
56
+ - Details about step 1
57
+ - Files to modify: \`src/foo.ts\`
58
+
59
+ 2. **Step 2 Title**
60
+ - Details about step 2
61
+
62
+ ## Verification
63
+ - [ ] How to verify completion
64
+ - [ ] Tests pass
65
+ \`\`\`
66
+
67
+ ### DO NOT in Plan Mode:
68
+ - Skip planning for non-trivial tasks
69
+ - Make code changes without an approved plan
70
+ - Assume requirements without asking
71
+ - Read files in .compilr/requirements/ (use project_document_get instead)
72
+ - Scan the filesystem before checking database for project docs
73
+
74
+ ### Available Plan Tools:
75
+ - \`plan_create\` - Create a new plan (starts as 'draft')
76
+ - \`plan_update\` - Update plan content or status
77
+ - \`plan_get\` - Get plan details by ID or name
78
+ - \`plan_list\` - List plans for the project
79
+ - \`plan_delete\` - Delete a plan
80
+ `;
81
+ /**
82
+ * Get the plan mode prompt for a specific active plan (if any)
83
+ */
84
+ export function getPlanModePrompt(activePlanId, activePlanName) {
85
+ let prompt = PLAN_MODE_PROMPT;
86
+ if (activePlanId && activePlanName) {
87
+ prompt += `\n### Current Active Plan
88
+
89
+ You are continuing work on plan **"${activePlanName}"** (ID: ${String(activePlanId)}).
90
+
91
+ Use \`plan_get\` with plan_id: ${String(activePlanId)} to load the plan details and continue from where you left off.
92
+ `;
93
+ }
94
+ return prompt;
95
+ }
@@ -0,0 +1,63 @@
1
+ /**
2
+ * REPL Helper Functions
3
+ *
4
+ * Standalone utility functions extracted from repl.ts to reduce file size
5
+ * and improve maintainability. These functions support the REPL but don't
6
+ * depend on REPL instance state.
7
+ */
8
+ import type { BacklogItem } from './tools/backlog.js';
9
+ /**
10
+ * Keyword patterns for tool selection based on user input.
11
+ * Maps tool names to keywords that suggest the tool should be used.
12
+ */
13
+ export declare const TOOL_KEYWORDS: Record<string, string[]>;
14
+ /**
15
+ * Select relevant tool names based on user input intent.
16
+ * Returns all tools if input is short or a question.
17
+ */
18
+ export declare function selectToolNamesByIntent(input: string, allToolNames: string[]): string[];
19
+ /**
20
+ * Priority order for sorting backlog items (most important first).
21
+ */
22
+ export declare const PRIORITY_ORDER: string[];
23
+ /**
24
+ * Result of detecting a compilr project structure.
25
+ */
26
+ export interface CompilrProjectInfo {
27
+ found: boolean;
28
+ backlogPath: string | null;
29
+ projectPath: string | null;
30
+ docsPath: string | null;
31
+ }
32
+ /**
33
+ * Detect if we're in a compilr project (has .compilr folder or -docs sibling).
34
+ * Returns project path from config.json if available.
35
+ */
36
+ export declare function detectCompilrProject(): CompilrProjectInfo;
37
+ /**
38
+ * Check if backlog has any items using the shared parser.
39
+ */
40
+ export declare function hasBacklogItems(backlogPath: string | null): boolean;
41
+ /**
42
+ * Get skill prompt by name from builtinSkills or codingSkills.
43
+ */
44
+ export declare function getSkillPrompt(name: string): string | null;
45
+ /**
46
+ * Select the best backlog item to build.
47
+ * If requestedId is provided, finds that specific item.
48
+ * Otherwise, auto-picks the highest priority 📋 item.
49
+ */
50
+ export declare function selectBuildItem(items: BacklogItem[], requestedId?: string): BacklogItem | null;
51
+ /**
52
+ * Find dependency IDs mentioned in item title/description.
53
+ * Looks for patterns like "depends on REQ-001", "blocked by BUG-002", etc.
54
+ */
55
+ export declare function findDependencies(item: BacklogItem): string[];
56
+ /**
57
+ * Get list of dependencies that are not yet completed.
58
+ */
59
+ export declare function getUnmetDependencies(item: BacklogItem, allItems: BacklogItem[]): BacklogItem[];
60
+ /**
61
+ * Check if the project has a code foundation (src/, package.json, etc.)
62
+ */
63
+ export declare function hasProjectFoundation(): boolean;
@@ -0,0 +1,319 @@
1
+ /**
2
+ * REPL Helper Functions
3
+ *
4
+ * Standalone utility functions extracted from repl.ts to reduce file size
5
+ * and improve maintainability. These functions support the REPL but don't
6
+ * depend on REPL instance state.
7
+ */
8
+ import { builtinSkills, platformSkills } from '@compilr-dev/sdk';
9
+ import { codingSkills } from '@compilr-dev/agents-coding';
10
+ import * as fs from 'fs';
11
+ import * as path from 'path';
12
+ import { findBacklogPath, parseBacklogItems } from './tools/backlog.js';
13
+ import { loadCompilrConfig } from './utils/project-status.js';
14
+ // =============================================================================
15
+ // Tool Intent Detection
16
+ // =============================================================================
17
+ /**
18
+ * Keyword patterns for tool selection based on user input.
19
+ * Maps tool names to keywords that suggest the tool should be used.
20
+ */
21
+ export const TOOL_KEYWORDS = {
22
+ read_file: ['read', 'show', 'display', 'look at', 'view', 'what is in', 'content of'],
23
+ write_file: ['write', 'create', 'save', 'make a file'],
24
+ edit: ['edit', 'modify', 'change', 'update', 'fix', 'replace'],
25
+ bash: ['run', 'execute', 'command', 'shell', 'npm', 'git', 'pip', 'ls', 'pwd', 'mkdir', 'build', 'install'],
26
+ grep: ['search', 'find', 'grep', 'look for', 'where is', 'occurrences'],
27
+ glob: ['list files', 'find files', 'what files', 'show files', 'directory', 'pattern'],
28
+ todo_write: ['todo', 'task list', 'plan', 'steps'],
29
+ todo_read: ['todo', 'task list', 'plan', 'steps'],
30
+ // Database-backed workitem tools replace file-based backlog tools
31
+ workitem_query: ['backlog', 'requirements', 'features', 'bugs', 'items', 'work items'],
32
+ workitem_add: ['backlog', 'requirements', 'features', 'bugs', 'add item', 'add feature', 'add work item'],
33
+ workitem_update: ['update item', 'change status', 'complete item'],
34
+ git_status: ['git status', 'changes', 'modified', 'staged'],
35
+ git_diff: ['git diff', 'differences', 'what changed'],
36
+ git_log: ['git log', 'history', 'commits'],
37
+ git_commit: ['commit', 'save changes'],
38
+ git_branch: ['branch', 'branches'],
39
+ detect_project: ['project type', 'what kind of project', 'framework'],
40
+ find_project_root: ['project root', 'root directory'],
41
+ run_tests: ['test', 'tests', 'run tests', 'check tests'],
42
+ run_lint: ['lint', 'linting', 'check code', 'style'],
43
+ // Task tool for sub-agent delegation
44
+ task: [
45
+ 'explore', 'investigate', 'analyze', 'review code', 'code review',
46
+ 'security audit', 'refactor', 'help me find', 'search the codebase',
47
+ 'look through', 'scan for', 'debug', 'figure out', 'understand',
48
+ 'complex', 'multi-step', 'delegate', 'sub-agent', 'agent',
49
+ ],
50
+ // User interaction tools
51
+ ask_user: ['ask', 'question', 'choice', 'select', 'options'],
52
+ ask_user_simple: ['confirm', 'yes or no', 'simple question'],
53
+ suggest: ['suggest', 'recommendation', 'next step'],
54
+ };
55
+ /**
56
+ * Select relevant tool names based on user input intent.
57
+ * Returns all tools if input is short or a question.
58
+ */
59
+ export function selectToolNamesByIntent(input, allToolNames) {
60
+ const lower = input.toLowerCase();
61
+ // If input is very short or a question, use all tools
62
+ if (input.length < 10 || input.includes('?')) {
63
+ return allToolNames;
64
+ }
65
+ const selected = new Set();
66
+ // Add tools based on keyword matches
67
+ for (const [tool, keywords] of Object.entries(TOOL_KEYWORDS)) {
68
+ if (keywords.some((kw) => lower.includes(kw)) && allToolNames.includes(tool)) {
69
+ selected.add(tool);
70
+ }
71
+ }
72
+ // If nothing matched from keywords, use all tools
73
+ // (Check BEFORE adding always-included tools)
74
+ if (selected.size === 0) {
75
+ return allToolNames;
76
+ }
77
+ // Always include todo tools (they're used implicitly for task tracking)
78
+ if (allToolNames.includes('todo_write'))
79
+ selected.add('todo_write');
80
+ if (allToolNames.includes('todo_read'))
81
+ selected.add('todo_read');
82
+ // Always include suggest tool (for next action suggestions)
83
+ if (allToolNames.includes('suggest'))
84
+ selected.add('suggest');
85
+ return Array.from(selected);
86
+ }
87
+ // =============================================================================
88
+ // Build Command Types and Constants
89
+ // =============================================================================
90
+ /**
91
+ * Priority order for sorting backlog items (most important first).
92
+ */
93
+ export const PRIORITY_ORDER = ['critical', 'high', 'medium', 'low'];
94
+ /**
95
+ * Detect if we're in a compilr project (has .compilr folder or -docs sibling).
96
+ * Returns project path from config.json if available.
97
+ */
98
+ export function detectCompilrProject() {
99
+ const cwd = process.cwd();
100
+ // First try to load config and get paths from there
101
+ const config = loadCompilrConfig(cwd);
102
+ if (config) {
103
+ return {
104
+ found: true,
105
+ backlogPath: findBacklogPath(cwd),
106
+ projectPath: config.paths.project || null,
107
+ docsPath: config.paths.docs,
108
+ };
109
+ }
110
+ // Check for .compilr folder in current directory
111
+ const compilrDir = path.join(cwd, '.compilr');
112
+ if (fs.existsSync(compilrDir)) {
113
+ const backlogPath = path.join(compilrDir, 'backlog.md');
114
+ return {
115
+ found: true,
116
+ backlogPath: fs.existsSync(backlogPath) ? backlogPath : null,
117
+ projectPath: cwd,
118
+ docsPath: null,
119
+ };
120
+ }
121
+ // Check for -docs sibling folder (two-repo pattern)
122
+ const parentDir = path.dirname(cwd);
123
+ const projectName = path.basename(cwd);
124
+ const docsDir = path.join(parentDir, `${projectName}-docs`);
125
+ const docsBacklogPath = path.join(docsDir, '01-planning', 'backlog.md');
126
+ if (fs.existsSync(docsBacklogPath)) {
127
+ return {
128
+ found: true,
129
+ backlogPath: docsBacklogPath,
130
+ projectPath: cwd,
131
+ docsPath: docsDir,
132
+ };
133
+ }
134
+ // Check if we're in the docs repo itself
135
+ const inDocsBacklog = path.join(cwd, '01-planning', 'backlog.md');
136
+ if (fs.existsSync(inDocsBacklog)) {
137
+ // We're in -docs folder, try to find sibling code folder
138
+ const baseName = projectName.replace(/-docs$/, '');
139
+ const codeDir = path.join(parentDir, baseName);
140
+ return {
141
+ found: true,
142
+ backlogPath: inDocsBacklog,
143
+ projectPath: fs.existsSync(codeDir) ? codeDir : null,
144
+ docsPath: cwd,
145
+ };
146
+ }
147
+ // Check for project subfolders (running from parent folder after /new)
148
+ try {
149
+ const entries = fs.readdirSync(cwd, { withFileTypes: true });
150
+ for (const entry of entries) {
151
+ if (!entry.isDirectory())
152
+ continue;
153
+ // Check for .compilr in subfolder (single-repo pattern)
154
+ const subCompilrDir = path.join(cwd, entry.name, '.compilr');
155
+ if (fs.existsSync(subCompilrDir)) {
156
+ const backlogPath = path.join(subCompilrDir, 'backlog.md');
157
+ return {
158
+ found: true,
159
+ backlogPath: fs.existsSync(backlogPath) ? backlogPath : null,
160
+ projectPath: path.join(cwd, entry.name),
161
+ docsPath: null,
162
+ };
163
+ }
164
+ // Check for -docs subfolder (two-repo pattern)
165
+ if (entry.name.endsWith('-docs')) {
166
+ const docsBacklog = path.join(cwd, entry.name, '01-planning', 'backlog.md');
167
+ if (fs.existsSync(docsBacklog)) {
168
+ const baseName = entry.name.replace(/-docs$/, '');
169
+ const codeDir = path.join(cwd, baseName);
170
+ return {
171
+ found: true,
172
+ backlogPath: docsBacklog,
173
+ projectPath: fs.existsSync(codeDir) ? codeDir : null,
174
+ docsPath: path.join(cwd, entry.name),
175
+ };
176
+ }
177
+ }
178
+ }
179
+ }
180
+ catch {
181
+ // Ignore read errors
182
+ }
183
+ return { found: false, backlogPath: null, projectPath: null, docsPath: null };
184
+ }
185
+ /**
186
+ * Check if backlog has any items using the shared parser.
187
+ */
188
+ export function hasBacklogItems(backlogPath) {
189
+ if (!backlogPath || !fs.existsSync(backlogPath)) {
190
+ return false;
191
+ }
192
+ try {
193
+ const content = fs.readFileSync(backlogPath, 'utf-8');
194
+ const items = parseBacklogItems(content);
195
+ return items.length > 0;
196
+ }
197
+ catch {
198
+ return false;
199
+ }
200
+ }
201
+ /**
202
+ * Get skill prompt by name from builtinSkills or codingSkills.
203
+ */
204
+ export function getSkillPrompt(name) {
205
+ const skill = platformSkills.find((s) => s.name === name)
206
+ ?? builtinSkills.find((s) => s.name === name)
207
+ ?? codingSkills.find((s) => s.name === name);
208
+ return skill?.prompt ?? null;
209
+ }
210
+ // =============================================================================
211
+ // Build Command Helpers
212
+ // =============================================================================
213
+ /**
214
+ * Select the best backlog item to build.
215
+ * If requestedId is provided, finds that specific item.
216
+ * Otherwise, auto-picks the highest priority 📋 item.
217
+ */
218
+ export function selectBuildItem(items, requestedId) {
219
+ // If specific ID requested, find it
220
+ if (requestedId && requestedId.toLowerCase() !== 'scaffold') {
221
+ const searchId = requestedId.toUpperCase();
222
+ const item = items.find(i => i.id === searchId);
223
+ if (!item)
224
+ return null;
225
+ if (item.status !== '📋') {
226
+ // Item exists but not in planned status
227
+ return null; // Handler will show appropriate message
228
+ }
229
+ return item;
230
+ }
231
+ // Filter to only 📋 (planned) items
232
+ const planned = items.filter(i => i.status === '📋');
233
+ if (planned.length === 0)
234
+ return null;
235
+ // Sort by priority, then by ID
236
+ planned.sort((a, b) => {
237
+ const prioA = PRIORITY_ORDER.indexOf(a.priority.toLowerCase());
238
+ const prioB = PRIORITY_ORDER.indexOf(b.priority.toLowerCase());
239
+ if (prioA !== prioB)
240
+ return prioA - prioB;
241
+ return a.id.localeCompare(b.id); // REQ-001 before REQ-002
242
+ });
243
+ return planned[0];
244
+ }
245
+ /**
246
+ * Find dependency IDs mentioned in item title/description.
247
+ * Looks for patterns like "depends on REQ-001", "blocked by BUG-002", etc.
248
+ */
249
+ export function findDependencies(item) {
250
+ const text = `${item.title} ${item.description}`;
251
+ const patterns = [
252
+ /depends\s+on\s+([A-Z]+-\d+)/gi,
253
+ /blocked\s+by\s+([A-Z]+-\d+)/gi,
254
+ /requires\s+([A-Z]+-\d+)/gi,
255
+ /after\s+([A-Z]+-\d+)/gi,
256
+ /needs\s+([A-Z]+-\d+)/gi,
257
+ ];
258
+ const deps = [];
259
+ for (const pattern of patterns) {
260
+ const matches = text.matchAll(pattern);
261
+ for (const match of matches) {
262
+ deps.push(match[1].toUpperCase());
263
+ }
264
+ }
265
+ return [...new Set(deps)];
266
+ }
267
+ /**
268
+ * Get list of dependencies that are not yet completed.
269
+ */
270
+ export function getUnmetDependencies(item, allItems) {
271
+ const depIds = findDependencies(item);
272
+ return allItems.filter(i => depIds.includes(i.id) && i.status !== '✅');
273
+ }
274
+ /**
275
+ * Check if the project has a code foundation (src/, package.json, etc.)
276
+ */
277
+ export function hasProjectFoundation() {
278
+ const cwd = process.cwd();
279
+ const indicators = [
280
+ 'src',
281
+ 'lib',
282
+ 'app',
283
+ 'package.json',
284
+ 'requirements.txt',
285
+ 'Cargo.toml',
286
+ 'go.mod',
287
+ 'pom.xml',
288
+ 'build.gradle',
289
+ 'setup.py',
290
+ 'pyproject.toml',
291
+ ];
292
+ for (const indicator of indicators) {
293
+ const fullPath = path.join(cwd, indicator);
294
+ if (fs.existsSync(fullPath)) {
295
+ return true;
296
+ }
297
+ }
298
+ // Also check in project subfolders (for two-repo pattern)
299
+ try {
300
+ const entries = fs.readdirSync(cwd, { withFileTypes: true });
301
+ for (const entry of entries) {
302
+ if (!entry.isDirectory())
303
+ continue;
304
+ // Skip docs folder and hidden folders
305
+ if (entry.name.endsWith('-docs') || entry.name.startsWith('.'))
306
+ continue;
307
+ for (const indicator of indicators) {
308
+ const subPath = path.join(cwd, entry.name, indicator);
309
+ if (fs.existsSync(subPath)) {
310
+ return true;
311
+ }
312
+ }
313
+ }
314
+ }
315
+ catch {
316
+ // Ignore read errors
317
+ }
318
+ return false;
319
+ }