@rryando/arcs 3.0.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 (370) hide show
  1. package/README.md +448 -0
  2. package/dist/cli/arcs-orchestrate-caveman.d.ts +16 -0
  3. package/dist/cli/arcs-orchestrate-caveman.d.ts.map +1 -0
  4. package/dist/cli/arcs-orchestrate-caveman.js +109 -0
  5. package/dist/cli/arcs-orchestrate-caveman.js.map +1 -0
  6. package/dist/cli/arcs-orchestrate.d.ts +2 -0
  7. package/dist/cli/arcs-orchestrate.d.ts.map +1 -0
  8. package/dist/cli/arcs-orchestrate.js +431 -0
  9. package/dist/cli/arcs-orchestrate.js.map +1 -0
  10. package/dist/cli/arg-parser.d.ts +20 -0
  11. package/dist/cli/arg-parser.d.ts.map +1 -0
  12. package/dist/cli/arg-parser.js +216 -0
  13. package/dist/cli/arg-parser.js.map +1 -0
  14. package/dist/cli/brief-renderer.d.ts +32 -0
  15. package/dist/cli/brief-renderer.d.ts.map +1 -0
  16. package/dist/cli/brief-renderer.js +67 -0
  17. package/dist/cli/brief-renderer.js.map +1 -0
  18. package/dist/cli/bundle-installer.d.ts +77 -0
  19. package/dist/cli/bundle-installer.d.ts.map +1 -0
  20. package/dist/cli/bundle-installer.js +328 -0
  21. package/dist/cli/bundle-installer.js.map +1 -0
  22. package/dist/cli/command-registry.d.ts +52 -0
  23. package/dist/cli/command-registry.d.ts.map +1 -0
  24. package/dist/cli/command-registry.js +68 -0
  25. package/dist/cli/command-registry.js.map +1 -0
  26. package/dist/cli/commands/batch.d.ts +2 -0
  27. package/dist/cli/commands/batch.d.ts.map +1 -0
  28. package/dist/cli/commands/batch.js +307 -0
  29. package/dist/cli/commands/batch.js.map +1 -0
  30. package/dist/cli/commands/brief.d.ts +2 -0
  31. package/dist/cli/commands/brief.d.ts.map +1 -0
  32. package/dist/cli/commands/brief.js +146 -0
  33. package/dist/cli/commands/brief.js.map +1 -0
  34. package/dist/cli/commands/bundle.d.ts +2 -0
  35. package/dist/cli/commands/bundle.d.ts.map +1 -0
  36. package/dist/cli/commands/bundle.js +90 -0
  37. package/dist/cli/commands/bundle.js.map +1 -0
  38. package/dist/cli/commands/dependency.d.ts +2 -0
  39. package/dist/cli/commands/dependency.d.ts.map +1 -0
  40. package/dist/cli/commands/dependency.js +260 -0
  41. package/dist/cli/commands/dependency.js.map +1 -0
  42. package/dist/cli/commands/diagnostics.d.ts +2 -0
  43. package/dist/cli/commands/diagnostics.d.ts.map +1 -0
  44. package/dist/cli/commands/diagnostics.js +91 -0
  45. package/dist/cli/commands/diagnostics.js.map +1 -0
  46. package/dist/cli/commands/diagram.d.ts +2 -0
  47. package/dist/cli/commands/diagram.d.ts.map +1 -0
  48. package/dist/cli/commands/diagram.js +305 -0
  49. package/dist/cli/commands/diagram.js.map +1 -0
  50. package/dist/cli/commands/done.d.ts +2 -0
  51. package/dist/cli/commands/done.d.ts.map +1 -0
  52. package/dist/cli/commands/done.js +140 -0
  53. package/dist/cli/commands/done.js.map +1 -0
  54. package/dist/cli/commands/graph.d.ts +2 -0
  55. package/dist/cli/commands/graph.d.ts.map +1 -0
  56. package/dist/cli/commands/graph.js +105 -0
  57. package/dist/cli/commands/graph.js.map +1 -0
  58. package/dist/cli/commands/index.d.ts +21 -0
  59. package/dist/cli/commands/index.d.ts.map +1 -0
  60. package/dist/cli/commands/index.js +22 -0
  61. package/dist/cli/commands/index.js.map +1 -0
  62. package/dist/cli/commands/knowledge-search.d.ts +2 -0
  63. package/dist/cli/commands/knowledge-search.d.ts.map +1 -0
  64. package/dist/cli/commands/knowledge-search.js +43 -0
  65. package/dist/cli/commands/knowledge-search.js.map +1 -0
  66. package/dist/cli/commands/knowledge.d.ts +2 -0
  67. package/dist/cli/commands/knowledge.d.ts.map +1 -0
  68. package/dist/cli/commands/knowledge.js +416 -0
  69. package/dist/cli/commands/knowledge.js.map +1 -0
  70. package/dist/cli/commands/loop.d.ts +2 -0
  71. package/dist/cli/commands/loop.d.ts.map +1 -0
  72. package/dist/cli/commands/loop.js +192 -0
  73. package/dist/cli/commands/loop.js.map +1 -0
  74. package/dist/cli/commands/maintenance.d.ts +2 -0
  75. package/dist/cli/commands/maintenance.d.ts.map +1 -0
  76. package/dist/cli/commands/maintenance.js +231 -0
  77. package/dist/cli/commands/maintenance.js.map +1 -0
  78. package/dist/cli/commands/next.d.ts +2 -0
  79. package/dist/cli/commands/next.d.ts.map +1 -0
  80. package/dist/cli/commands/next.js +116 -0
  81. package/dist/cli/commands/next.js.map +1 -0
  82. package/dist/cli/commands/plan.d.ts +2 -0
  83. package/dist/cli/commands/plan.d.ts.map +1 -0
  84. package/dist/cli/commands/plan.js +340 -0
  85. package/dist/cli/commands/plan.js.map +1 -0
  86. package/dist/cli/commands/project-updates.d.ts +2 -0
  87. package/dist/cli/commands/project-updates.d.ts.map +1 -0
  88. package/dist/cli/commands/project-updates.js +243 -0
  89. package/dist/cli/commands/project-updates.js.map +1 -0
  90. package/dist/cli/commands/project.d.ts +2 -0
  91. package/dist/cli/commands/project.d.ts.map +1 -0
  92. package/dist/cli/commands/project.js +362 -0
  93. package/dist/cli/commands/project.js.map +1 -0
  94. package/dist/cli/commands/remember.d.ts +2 -0
  95. package/dist/cli/commands/remember.d.ts.map +1 -0
  96. package/dist/cli/commands/remember.js +70 -0
  97. package/dist/cli/commands/remember.js.map +1 -0
  98. package/dist/cli/commands/status.d.ts +2 -0
  99. package/dist/cli/commands/status.d.ts.map +1 -0
  100. package/dist/cli/commands/status.js +104 -0
  101. package/dist/cli/commands/status.js.map +1 -0
  102. package/dist/cli/commands/task.d.ts +6 -0
  103. package/dist/cli/commands/task.d.ts.map +1 -0
  104. package/dist/cli/commands/task.js +361 -0
  105. package/dist/cli/commands/task.js.map +1 -0
  106. package/dist/cli/commands/utility.d.ts +9 -0
  107. package/dist/cli/commands/utility.d.ts.map +1 -0
  108. package/dist/cli/commands/utility.js +302 -0
  109. package/dist/cli/commands/utility.js.map +1 -0
  110. package/dist/cli/config.d.ts +42 -0
  111. package/dist/cli/config.d.ts.map +1 -0
  112. package/dist/cli/config.js +134 -0
  113. package/dist/cli/config.js.map +1 -0
  114. package/dist/cli/dag-commands.d.ts +7 -0
  115. package/dist/cli/dag-commands.d.ts.map +1 -0
  116. package/dist/cli/dag-commands.js +152 -0
  117. package/dist/cli/dag-commands.js.map +1 -0
  118. package/dist/cli/diagram-renderer.d.ts +26 -0
  119. package/dist/cli/diagram-renderer.d.ts.map +1 -0
  120. package/dist/cli/diagram-renderer.js +118 -0
  121. package/dist/cli/diagram-renderer.js.map +1 -0
  122. package/dist/cli/help-generator.d.ts +21 -0
  123. package/dist/cli/help-generator.d.ts.map +1 -0
  124. package/dist/cli/help-generator.js +100 -0
  125. package/dist/cli/help-generator.js.map +1 -0
  126. package/dist/cli/index.d.ts +8 -0
  127. package/dist/cli/index.d.ts.map +1 -0
  128. package/dist/cli/index.js +95 -0
  129. package/dist/cli/index.js.map +1 -0
  130. package/dist/cli/instructions.d.ts +53 -0
  131. package/dist/cli/instructions.d.ts.map +1 -0
  132. package/dist/cli/instructions.js +219 -0
  133. package/dist/cli/instructions.js.map +1 -0
  134. package/dist/cli/lean-output.d.ts +15 -0
  135. package/dist/cli/lean-output.d.ts.map +1 -0
  136. package/dist/cli/lean-output.js +66 -0
  137. package/dist/cli/lean-output.js.map +1 -0
  138. package/dist/cli/md-renderer.d.ts +6 -0
  139. package/dist/cli/md-renderer.d.ts.map +1 -0
  140. package/dist/cli/md-renderer.js +396 -0
  141. package/dist/cli/md-renderer.js.map +1 -0
  142. package/dist/cli/output-envelope.d.ts +15 -0
  143. package/dist/cli/output-envelope.d.ts.map +1 -0
  144. package/dist/cli/output-envelope.js +61 -0
  145. package/dist/cli/output-envelope.js.map +1 -0
  146. package/dist/cli/setup.d.ts +11 -0
  147. package/dist/cli/setup.d.ts.map +1 -0
  148. package/dist/cli/setup.js +415 -0
  149. package/dist/cli/setup.js.map +1 -0
  150. package/dist/cli/status-dashboard.d.ts +5 -0
  151. package/dist/cli/status-dashboard.d.ts.map +1 -0
  152. package/dist/cli/status-dashboard.js +248 -0
  153. package/dist/cli/status-dashboard.js.map +1 -0
  154. package/dist/index.d.ts +3 -0
  155. package/dist/index.d.ts.map +1 -0
  156. package/dist/index.js +25 -0
  157. package/dist/index.js.map +1 -0
  158. package/dist/retrieval/bm25.d.ts +23 -0
  159. package/dist/retrieval/bm25.d.ts.map +1 -0
  160. package/dist/retrieval/bm25.js +92 -0
  161. package/dist/retrieval/bm25.js.map +1 -0
  162. package/dist/retrieval/cross-project-search.d.ts +30 -0
  163. package/dist/retrieval/cross-project-search.d.ts.map +1 -0
  164. package/dist/retrieval/cross-project-search.js +109 -0
  165. package/dist/retrieval/cross-project-search.js.map +1 -0
  166. package/dist/retrieval/graph-builder.d.ts +6 -0
  167. package/dist/retrieval/graph-builder.d.ts.map +1 -0
  168. package/dist/retrieval/graph-builder.js +196 -0
  169. package/dist/retrieval/graph-builder.js.map +1 -0
  170. package/dist/retrieval/graph-cache.d.ts +15 -0
  171. package/dist/retrieval/graph-cache.d.ts.map +1 -0
  172. package/dist/retrieval/graph-cache.js +66 -0
  173. package/dist/retrieval/graph-cache.js.map +1 -0
  174. package/dist/retrieval/graph-invalidate.d.ts +18 -0
  175. package/dist/retrieval/graph-invalidate.d.ts.map +1 -0
  176. package/dist/retrieval/graph-invalidate.js +23 -0
  177. package/dist/retrieval/graph-invalidate.js.map +1 -0
  178. package/dist/retrieval/graph-retrieval.d.ts +24 -0
  179. package/dist/retrieval/graph-retrieval.d.ts.map +1 -0
  180. package/dist/retrieval/graph-retrieval.js +165 -0
  181. package/dist/retrieval/graph-retrieval.js.map +1 -0
  182. package/dist/retrieval/graph-traverse.d.ts +3 -0
  183. package/dist/retrieval/graph-traverse.d.ts.map +1 -0
  184. package/dist/retrieval/graph-traverse.js +53 -0
  185. package/dist/retrieval/graph-traverse.js.map +1 -0
  186. package/dist/retrieval/graph-types.d.ts +37 -0
  187. package/dist/retrieval/graph-types.d.ts.map +1 -0
  188. package/dist/retrieval/graph-types.js +12 -0
  189. package/dist/retrieval/graph-types.js.map +1 -0
  190. package/dist/retrieval/index-builder.d.ts +21 -0
  191. package/dist/retrieval/index-builder.d.ts.map +1 -0
  192. package/dist/retrieval/index-builder.js +94 -0
  193. package/dist/retrieval/index-builder.js.map +1 -0
  194. package/dist/retrieval/knowledge-selection.d.ts +7 -0
  195. package/dist/retrieval/knowledge-selection.d.ts.map +1 -0
  196. package/dist/retrieval/knowledge-selection.js +80 -0
  197. package/dist/retrieval/knowledge-selection.js.map +1 -0
  198. package/dist/retrieval/task-scoped.d.ts +23 -0
  199. package/dist/retrieval/task-scoped.d.ts.map +1 -0
  200. package/dist/retrieval/task-scoped.js +51 -0
  201. package/dist/retrieval/task-scoped.js.map +1 -0
  202. package/dist/utils/content-assembly.d.ts +44 -0
  203. package/dist/utils/content-assembly.d.ts.map +1 -0
  204. package/dist/utils/content-assembly.js +101 -0
  205. package/dist/utils/content-assembly.js.map +1 -0
  206. package/dist/utils/dag.d.ts +28 -0
  207. package/dist/utils/dag.d.ts.map +1 -0
  208. package/dist/utils/dag.js +68 -0
  209. package/dist/utils/dag.js.map +1 -0
  210. package/dist/utils/diagram-generator.d.ts +17 -0
  211. package/dist/utils/diagram-generator.d.ts.map +1 -0
  212. package/dist/utils/diagram-generator.js +38 -0
  213. package/dist/utils/diagram-generator.js.map +1 -0
  214. package/dist/utils/errors.d.ts +40 -0
  215. package/dist/utils/errors.d.ts.map +1 -0
  216. package/dist/utils/errors.js +83 -0
  217. package/dist/utils/errors.js.map +1 -0
  218. package/dist/utils/file-lock.d.ts +13 -0
  219. package/dist/utils/file-lock.d.ts.map +1 -0
  220. package/dist/utils/file-lock.js +80 -0
  221. package/dist/utils/file-lock.js.map +1 -0
  222. package/dist/utils/git.d.ts +14 -0
  223. package/dist/utils/git.d.ts.map +1 -0
  224. package/dist/utils/git.js +56 -0
  225. package/dist/utils/git.js.map +1 -0
  226. package/dist/utils/graphify-knowledge.d.ts +6 -0
  227. package/dist/utils/graphify-knowledge.d.ts.map +1 -0
  228. package/dist/utils/graphify-knowledge.js +60 -0
  229. package/dist/utils/graphify-knowledge.js.map +1 -0
  230. package/dist/utils/graphify.d.ts +49 -0
  231. package/dist/utils/graphify.d.ts.map +1 -0
  232. package/dist/utils/graphify.js +306 -0
  233. package/dist/utils/graphify.js.map +1 -0
  234. package/dist/utils/json-schemas.d.ts +723 -0
  235. package/dist/utils/json-schemas.d.ts.map +1 -0
  236. package/dist/utils/json-schemas.js +147 -0
  237. package/dist/utils/json-schemas.js.map +1 -0
  238. package/dist/utils/json.d.ts +15 -0
  239. package/dist/utils/json.d.ts.map +1 -0
  240. package/dist/utils/json.js +39 -0
  241. package/dist/utils/json.js.map +1 -0
  242. package/dist/utils/knowledge-store.d.ts +49 -0
  243. package/dist/utils/knowledge-store.d.ts.map +1 -0
  244. package/dist/utils/knowledge-store.js +191 -0
  245. package/dist/utils/knowledge-store.js.map +1 -0
  246. package/dist/utils/loop-state.d.ts +51 -0
  247. package/dist/utils/loop-state.d.ts.map +1 -0
  248. package/dist/utils/loop-state.js +123 -0
  249. package/dist/utils/loop-state.js.map +1 -0
  250. package/dist/utils/paths.d.ts +16 -0
  251. package/dist/utils/paths.d.ts.map +1 -0
  252. package/dist/utils/paths.js +66 -0
  253. package/dist/utils/paths.js.map +1 -0
  254. package/dist/utils/plan-store.d.ts +46 -0
  255. package/dist/utils/plan-store.d.ts.map +1 -0
  256. package/dist/utils/plan-store.js +184 -0
  257. package/dist/utils/plan-store.js.map +1 -0
  258. package/dist/utils/project-documents.d.ts +20 -0
  259. package/dist/utils/project-documents.d.ts.map +1 -0
  260. package/dist/utils/project-documents.js +10 -0
  261. package/dist/utils/project-documents.js.map +1 -0
  262. package/dist/utils/project-memory.d.ts +16 -0
  263. package/dist/utils/project-memory.d.ts.map +1 -0
  264. package/dist/utils/project-memory.js +16 -0
  265. package/dist/utils/project-memory.js.map +1 -0
  266. package/dist/utils/project-resolver.d.ts +28 -0
  267. package/dist/utils/project-resolver.d.ts.map +1 -0
  268. package/dist/utils/project-resolver.js +119 -0
  269. package/dist/utils/project-resolver.js.map +1 -0
  270. package/dist/utils/quick-scan.d.ts +13 -0
  271. package/dist/utils/quick-scan.d.ts.map +1 -0
  272. package/dist/utils/quick-scan.js +156 -0
  273. package/dist/utils/quick-scan.js.map +1 -0
  274. package/dist/utils/schemas.d.ts +13 -0
  275. package/dist/utils/schemas.d.ts.map +1 -0
  276. package/dist/utils/schemas.js +6 -0
  277. package/dist/utils/schemas.js.map +1 -0
  278. package/dist/utils/slug.d.ts +10 -0
  279. package/dist/utils/slug.d.ts.map +1 -0
  280. package/dist/utils/slug.js +18 -0
  281. package/dist/utils/slug.js.map +1 -0
  282. package/dist/utils/stdin.d.ts +6 -0
  283. package/dist/utils/stdin.d.ts.map +1 -0
  284. package/dist/utils/stdin.js +25 -0
  285. package/dist/utils/stdin.js.map +1 -0
  286. package/dist/utils/storage-utils.d.ts +48 -0
  287. package/dist/utils/storage-utils.d.ts.map +1 -0
  288. package/dist/utils/storage-utils.js +175 -0
  289. package/dist/utils/storage-utils.js.map +1 -0
  290. package/dist/utils/task-store.d.ts +49 -0
  291. package/dist/utils/task-store.d.ts.map +1 -0
  292. package/dist/utils/task-store.js +178 -0
  293. package/dist/utils/task-store.js.map +1 -0
  294. package/dist/utils/template.d.ts +15 -0
  295. package/dist/utils/template.d.ts.map +1 -0
  296. package/dist/utils/template.js +27 -0
  297. package/dist/utils/template.js.map +1 -0
  298. package/dist/utils/tool-response.d.ts +37 -0
  299. package/dist/utils/tool-response.d.ts.map +1 -0
  300. package/dist/utils/tool-response.js +44 -0
  301. package/dist/utils/tool-response.js.map +1 -0
  302. package/dist/utils/workflow-policy.d.ts +50 -0
  303. package/dist/utils/workflow-policy.d.ts.map +1 -0
  304. package/dist/utils/workflow-policy.js +111 -0
  305. package/dist/utils/workflow-policy.js.map +1 -0
  306. package/dist/utils/workspace-match.d.ts +35 -0
  307. package/dist/utils/workspace-match.d.ts.map +1 -0
  308. package/dist/utils/workspace-match.js +58 -0
  309. package/dist/utils/workspace-match.js.map +1 -0
  310. package/opencode/arcs/.opencode/plugins/arcs.js +348 -0
  311. package/opencode/arcs/bundle-runtime.json +68 -0
  312. package/opencode/arcs/manifest.json +279 -0
  313. package/opencode/arcs/prompts/arcs-docs.txt +124 -0
  314. package/opencode/arcs/prompts/arcs-orchestrate-caveman.txt +529 -0
  315. package/opencode/arcs/prompts/arcs-orchestrate.txt +437 -0
  316. package/opencode/arcs/prompts/code-reviewer.txt +55 -0
  317. package/opencode/arcs/prompts/devil-advocate.txt +121 -0
  318. package/opencode/arcs/prompts/docs-researcher.txt +54 -0
  319. package/opencode/arcs/prompts/oncall-ops.txt +54 -0
  320. package/opencode/arcs/prompts/qa-analyst.txt +54 -0
  321. package/opencode/arcs/prompts/software-engineer.txt +48 -0
  322. package/opencode/arcs/prompts/system-architect.txt +60 -0
  323. package/opencode/arcs/prompts/tech-architect.txt +54 -0
  324. package/opencode/arcs/skills/brainstorming/SKILL.md +144 -0
  325. package/opencode/arcs/skills/brainstorming/scripts/frame-template.html +214 -0
  326. package/opencode/arcs/skills/brainstorming/scripts/helper.js +88 -0
  327. package/opencode/arcs/skills/brainstorming/scripts/server.js +338 -0
  328. package/opencode/arcs/skills/brainstorming/scripts/start-server.sh +137 -0
  329. package/opencode/arcs/skills/brainstorming/scripts/stop-server.sh +31 -0
  330. package/opencode/arcs/skills/brainstorming/spec-document-reviewer-prompt.md +50 -0
  331. package/opencode/arcs/skills/brainstorming/visual-companion.md +277 -0
  332. package/opencode/arcs/skills/caveman-commit/SKILL.md +51 -0
  333. package/opencode/arcs/skills/code-agent/SKILL.md +58 -0
  334. package/opencode/arcs/skills/deep-pr-review/SKILL.md +191 -0
  335. package/opencode/arcs/skills/deep-pr-review/graphify-diff.md +102 -0
  336. package/opencode/arcs/skills/deep-pr-review/review-template.md +69 -0
  337. package/opencode/arcs/skills/executing-plans/SKILL.md +91 -0
  338. package/opencode/arcs/skills/init-project/SKILL.md +150 -0
  339. package/opencode/arcs/skills/quick-dev/SKILL.md +47 -0
  340. package/opencode/arcs/skills/requesting-code-review/SKILL.md +47 -0
  341. package/opencode/arcs/skills/requesting-code-review/code-reviewer.md +179 -0
  342. package/opencode/arcs/skills/subagent-driven-development/SKILL.md +162 -0
  343. package/opencode/arcs/skills/subagent-driven-development/code-quality-reviewer-prompt.md +53 -0
  344. package/opencode/arcs/skills/subagent-driven-development/implementer-prompt.md +148 -0
  345. package/opencode/arcs/skills/subagent-driven-development/spec-reviewer-prompt.md +85 -0
  346. package/opencode/arcs/skills/systematic-debugging/SKILL.md +174 -0
  347. package/opencode/arcs/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  348. package/opencode/arcs/skills/systematic-debugging/condition-based-waiting.md +115 -0
  349. package/opencode/arcs/skills/systematic-debugging/defense-in-depth.md +122 -0
  350. package/opencode/arcs/skills/systematic-debugging/find-polluter.sh +63 -0
  351. package/opencode/arcs/skills/systematic-debugging/phases-reference.md +168 -0
  352. package/opencode/arcs/skills/systematic-debugging/root-cause-tracing.md +169 -0
  353. package/opencode/arcs/skills/test-driven-development/SKILL.md +72 -0
  354. package/opencode/arcs/skills/test-driven-development/tdd-rationalizations-and-examples.md +157 -0
  355. package/opencode/arcs/skills/test-driven-development/testing-anti-patterns.md +299 -0
  356. package/opencode/arcs/skills/to-diagram/SKILL.md +235 -0
  357. package/opencode/arcs/skills/to-diagram/scripts/manage-diagram.mjs +963 -0
  358. package/opencode/arcs/skills/writing-plans/SKILL.md +179 -0
  359. package/opencode/arcs/skills/writing-plans/plan-document-reviewer-prompt.md +52 -0
  360. package/package.json +60 -0
  361. package/scripts/arcs-cli.mjs +45 -0
  362. package/skills/explore-dag.md +57 -0
  363. package/skills/init-project.md +105 -0
  364. package/skills/orchestrate.md +94 -0
  365. package/skills/update-docs.md +72 -0
  366. package/templates/dependency.md.tmpl +9 -0
  367. package/templates/knowledge.md.tmpl +15 -0
  368. package/templates/project-meta.json.tmpl +13 -0
  369. package/templates/project.md.tmpl +11 -0
  370. package/templates/task.md.tmpl +9 -0
@@ -0,0 +1,415 @@
1
+ import { execSync } from "node:child_process";
2
+ import * as p from "@clack/prompts";
3
+ import color from "picocolors";
4
+ import { detectGraphify } from "../utils/graphify.js";
5
+ import { detectArcsBundleInstall, installArcsBundle } from "./bundle-installer.js";
6
+ import { extractModelPreFills, getAvailableModels, readOpenCodeConfig, writeConfig, } from "./config.js";
7
+ import { applyAgentModelConfig, displayPath, opencodeHasAgent, writeOpencodeAgent, } from "./instructions.js";
8
+ // ---------------------------------------------------------------------------
9
+ // TUI Wizard
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * Runs the interactive setup wizard.
13
+ * @param mode "init" for first-time setup, "config" for reconfiguration.
14
+ */
15
+ export async function runSetup(mode) {
16
+ // ── Opencode detection gate ─────────────────────────────────────────────────
17
+ try {
18
+ execSync("which opencode", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
19
+ }
20
+ catch {
21
+ p.cancel("OpenCode is not installed or not on PATH. ARCS requires OpenCode.\nInstall it from: https://opencode.ai");
22
+ process.exit(1);
23
+ }
24
+ const isInit = mode === "init";
25
+ console.clear();
26
+ p.intro(color.bgCyan(color.black(isInit ? " ARCS setup " : " ARCS config ")));
27
+ // ── Model configuration ───────────────────────────────────────────────────
28
+ const openCodeConfig = await readOpenCodeConfig();
29
+ const preFills = extractModelPreFills(openCodeConfig);
30
+ if (openCodeConfig) {
31
+ p.note(`Found models:\n model: ${preFills.heavy || "(not set)"}\n small_model: ${preFills.light || "(not set)"}`, "OpenCode Config");
32
+ }
33
+ else {
34
+ p.note("No opencode config found at ~/.config/opencode/opencode.json\nEnter model identifiers manually below.", "OpenCode Config");
35
+ }
36
+ // Fetch available models from authenticated providers
37
+ const availableModels = await getAvailableModels(preFills.heavy);
38
+ const heavyModel = await selectModel("Heavy model (reasoning, synthesis)", availableModels, preFills.heavy);
39
+ if (p.isCancel(heavyModel)) {
40
+ p.cancel("Setup cancelled.");
41
+ process.exit(0);
42
+ }
43
+ p.note("Used by: software-engineer, docs-researcher, arcs-docs, oncall-ops, system-architect, plan, general", "Heavy tier agents");
44
+ const standardModel = await selectModel("Standard model (general purpose)", availableModels, preFills.standard);
45
+ if (p.isCancel(standardModel)) {
46
+ p.cancel("Setup cancelled.");
47
+ process.exit(0);
48
+ }
49
+ p.note("Used by: build, ARCS Orchestrator, ARCS Caveman", "Standard tier agents");
50
+ const lightModel = await selectModel("Light/fast model (read-only, exploration)", availableModels, preFills.light);
51
+ if (p.isCancel(lightModel)) {
52
+ p.cancel("Setup cancelled.");
53
+ process.exit(0);
54
+ }
55
+ p.note("Used by: explore, code-reviewer, tech-architect, qa-analyst", "Light tier agents");
56
+ // T004 will wire modelConfig into agent registration calls below.
57
+ const modelConfig = {
58
+ heavy: heavyModel,
59
+ standard: standardModel,
60
+ light: lightModel,
61
+ };
62
+ // Step 3.5e — Optional per-agent customization
63
+ const customizeAgents = await p.confirm({
64
+ message: "Customize model for individual agents?",
65
+ initialValue: false,
66
+ });
67
+ if (p.isCancel(customizeAgents)) {
68
+ p.cancel("Setup cancelled.");
69
+ process.exit(0);
70
+ }
71
+ if (customizeAgents) {
72
+ // Agent tier mapping for display
73
+ const agentTiers = [
74
+ { name: "software-engineer", tier: "heavy" },
75
+ { name: "docs-researcher", tier: "heavy" },
76
+ { name: "arcs-docs", tier: "heavy" },
77
+ { name: "oncall-ops", tier: "heavy" },
78
+ { name: "system-architect", tier: "heavy" },
79
+ { name: "plan", tier: "heavy" },
80
+ { name: "general", tier: "heavy" },
81
+ { name: "build", tier: "standard" },
82
+ { name: "explore", tier: "light" },
83
+ { name: "code-reviewer", tier: "light" },
84
+ { name: "tech-architect", tier: "light" },
85
+ { name: "qa-analyst", tier: "light" },
86
+ ];
87
+ p.note("Select a model for each agent, or keep the tier default.", "Per-Agent Customization");
88
+ const perAgent = {};
89
+ for (const agent of agentTiers) {
90
+ const tierModel = modelConfig[agent.tier];
91
+ const override = await selectModelForAgent(`${agent.name} [${agent.tier}: ${tierModel}]`, availableModels, tierModel);
92
+ if (p.isCancel(override)) {
93
+ p.cancel("Setup cancelled.");
94
+ process.exit(0);
95
+ }
96
+ if (override && override !== tierModel) {
97
+ perAgent[agent.name] = override;
98
+ }
99
+ }
100
+ if (Object.keys(perAgent).length > 0) {
101
+ modelConfig.perAgent = perAgent;
102
+ }
103
+ }
104
+ // ── Build config ──────────────────────────────────────────────────────────
105
+ const config = {
106
+ version: "1",
107
+ ides: ["opencode"],
108
+ };
109
+ // ── Write ARCS config ───────────────────────────────────────────────────
110
+ const s = p.spinner();
111
+ s.start("Writing configuration…");
112
+ writeConfig(config);
113
+ s.stop("Configuration saved.");
114
+ // ── Register OpenCode agent (orchestrate always enabled) ──────────────────
115
+ const selectedOpenCode = true;
116
+ const orchestrateEnabled = true;
117
+ let opencodeAgentActive = false;
118
+ if (selectedOpenCode && orchestrateEnabled) {
119
+ const alreadyHasAgent = opencodeHasAgent();
120
+ opencodeAgentActive = alreadyHasAgent;
121
+ if (alreadyHasAgent) {
122
+ // Already registered — re-apply silently to keep the entry and prompt up to date
123
+ const agentResult = writeOpencodeAgent(modelConfig);
124
+ opencodeAgentActive = true;
125
+ p.note([
126
+ `${color.green("✔")} Updated agent entries in ${color.dim(displayPath(agentResult.configPath))}`,
127
+ `${color.green("✔")} Refreshed orchestrator prompt at ${color.dim(displayPath(agentResult.promptPath))}`,
128
+ `${color.green("✔")} Refreshed Caveman prompt at ${color.dim(displayPath(agentResult.cavemanPromptPath))}`,
129
+ ].join("\n"), "OpenCode Agent");
130
+ }
131
+ else {
132
+ const shouldRegister = await p.confirm({
133
+ message: `Register ${color.cyan("ARCS - (Orchestrator)")} and ${color.cyan("ARCS - Caveman")} as primary agents in OpenCode? (Tab-switchable alongside Build/Plan)`,
134
+ initialValue: true,
135
+ });
136
+ if (p.isCancel(shouldRegister)) {
137
+ p.cancel("Setup cancelled.");
138
+ process.exit(0);
139
+ }
140
+ if (shouldRegister) {
141
+ const agentResult = writeOpencodeAgent(modelConfig);
142
+ opencodeAgentActive = true;
143
+ const verb = agentResult.action === "created" ? "Created" : "Updated";
144
+ p.note([
145
+ `${color.green("✔")} ${verb} agent entries in ${color.dim(displayPath(agentResult.configPath))}`,
146
+ `${color.green("✔")} Wrote orchestrator prompt to ${color.dim(displayPath(agentResult.promptPath))}`,
147
+ `${color.green("✔")} Wrote Caveman prompt to ${color.dim(displayPath(agentResult.cavemanPromptPath))}`,
148
+ "",
149
+ `Switch to ${color.cyan("ARCS - (Orchestrator)")} or ${color.cyan("ARCS - Caveman")} with ${color.bold("Tab")} in OpenCode.`,
150
+ `${color.dim("Caveman = same capabilities, ~65% fewer output tokens.")}`,
151
+ ].join("\n"), "OpenCode Agent");
152
+ }
153
+ else {
154
+ p.note(`${color.yellow("⊘")} Skipped OpenCode agent registration`, "OpenCode Agent");
155
+ }
156
+ }
157
+ }
158
+ if (selectedOpenCode && orchestrateEnabled && !opencodeAgentActive) {
159
+ p.note(`${color.yellow("⊘")} Skipped bundled OpenCode ARCS Bundle install because the user declined ARCS Orchestrator registration`, "OpenCode ARCS Bundle");
160
+ }
161
+ if (selectedOpenCode && orchestrateEnabled && opencodeAgentActive) {
162
+ const detection = detectArcsBundleInstall();
163
+ if (detection.state === "foreign-existing") {
164
+ const shouldReplace = await p.confirm({
165
+ message: "Replace the active OpenCode ARCS bundle setup with the bundled ARCS-customized version? Future arcs config runs will keep it synced.",
166
+ initialValue: true,
167
+ });
168
+ if (p.isCancel(shouldReplace)) {
169
+ p.cancel("Setup cancelled.");
170
+ process.exit(0);
171
+ }
172
+ if (shouldReplace) {
173
+ const result = installArcsBundle({ autoConfirmReplacement: true });
174
+ p.note(result.summary, "OpenCode ARCS Bundle");
175
+ }
176
+ else {
177
+ p.note(`${color.yellow("⊘")} Skipped OpenCode bundled ARCS Bundle install`, "OpenCode ARCS Bundle");
178
+ }
179
+ }
180
+ else {
181
+ const result = installArcsBundle({ autoConfirmReplacement: false });
182
+ p.note(result.summary, "OpenCode ARCS Bundle");
183
+ }
184
+ }
185
+ // ── Apply model config to all agent entries ────────────────────────────────
186
+ // Runs after bundle install to overwrite hardcoded manifest models
187
+ // with the user's configured tier values.
188
+ if (selectedOpenCode && opencodeAgentActive) {
189
+ applyAgentModelConfig(modelConfig);
190
+ }
191
+ // ── Optional graphify installation ──────────────────────────────────────────
192
+ await promptGraphifyInstall();
193
+ p.outro(color.green("Done!") +
194
+ " You can re-run this setup at any time with " +
195
+ color.cyan("npm run init"));
196
+ }
197
+ // ---------------------------------------------------------------------------
198
+ // Model Selection Helper
199
+ // ---------------------------------------------------------------------------
200
+ const CUSTOM_MODEL_SENTINEL = "__custom__";
201
+ const KEEP_DEFAULT_SENTINEL = "__keep_default__";
202
+ /**
203
+ * Per-agent model selection with "Keep default" as the first option.
204
+ */
205
+ async function selectModelForAgent(message, availableModels, defaultModel) {
206
+ if (availableModels.length === 0) {
207
+ // No providers discovered — fall back to text input
208
+ const result = await p.text({
209
+ message: `${message}`,
210
+ placeholder: "Enter to keep default",
211
+ initialValue: "",
212
+ });
213
+ if (p.isCancel(result))
214
+ return result;
215
+ const trimmed = result.trim();
216
+ return trimmed === "" ? defaultModel : trimmed;
217
+ }
218
+ const options = [];
219
+ options.push({
220
+ value: KEEP_DEFAULT_SENTINEL,
221
+ label: `Keep default (${defaultModel})`,
222
+ });
223
+ for (const group of availableModels) {
224
+ options.push({
225
+ value: `__sep_${group.provider}__`,
226
+ label: `── ${group.provider} ──`,
227
+ hint: "separator",
228
+ });
229
+ for (const model of group.models) {
230
+ if (model === defaultModel)
231
+ continue; // already shown as "keep default"
232
+ options.push({
233
+ value: model,
234
+ label: model,
235
+ });
236
+ }
237
+ }
238
+ options.push({
239
+ value: CUSTOM_MODEL_SENTINEL,
240
+ label: "Enter custom model ID",
241
+ });
242
+ const selected = await p.select({
243
+ message,
244
+ options,
245
+ initialValue: KEEP_DEFAULT_SENTINEL,
246
+ });
247
+ if (p.isCancel(selected))
248
+ return selected;
249
+ if (typeof selected === "string" && selected.startsWith("__sep_")) {
250
+ return selectModelForAgent(message, availableModels, defaultModel);
251
+ }
252
+ if (selected === KEEP_DEFAULT_SENTINEL) {
253
+ return defaultModel;
254
+ }
255
+ if (selected === CUSTOM_MODEL_SENTINEL) {
256
+ const custom = await p.text({
257
+ message: `${message} (custom)`,
258
+ placeholder: "e.g. github-copilot/claude-sonnet-4.6",
259
+ initialValue: "",
260
+ });
261
+ if (p.isCancel(custom))
262
+ return custom;
263
+ const trimmed = custom.trim();
264
+ return trimmed === "" ? defaultModel : trimmed;
265
+ }
266
+ return selected;
267
+ }
268
+ /**
269
+ * Presents a select UI with available models grouped by provider.
270
+ * Falls back to text input if no models available or user picks custom.
271
+ */
272
+ async function selectModel(message, availableModels, currentValue) {
273
+ if (availableModels.length === 0) {
274
+ // No providers discovered — fall back to text input
275
+ return p.text({
276
+ message,
277
+ placeholder: "e.g. github-copilot/claude-sonnet-4.6",
278
+ initialValue: currentValue,
279
+ });
280
+ }
281
+ const options = [];
282
+ for (const group of availableModels) {
283
+ // Add separator-style label for provider group
284
+ options.push({
285
+ value: `__sep_${group.provider}__`,
286
+ label: `── ${group.provider} ──`,
287
+ hint: "separator",
288
+ });
289
+ for (const model of group.models) {
290
+ options.push({
291
+ value: model,
292
+ label: model,
293
+ hint: model === currentValue ? "current" : undefined,
294
+ });
295
+ }
296
+ }
297
+ options.push({
298
+ value: CUSTOM_MODEL_SENTINEL,
299
+ label: "Enter custom model ID",
300
+ });
301
+ const selected = await p.select({
302
+ message,
303
+ options,
304
+ initialValue: currentValue || undefined,
305
+ });
306
+ if (p.isCancel(selected))
307
+ return selected;
308
+ // Skip separators — shouldn't normally happen but guard
309
+ if (typeof selected === "string" && selected.startsWith("__sep_")) {
310
+ return selectModel(message, availableModels, currentValue);
311
+ }
312
+ if (selected === CUSTOM_MODEL_SENTINEL) {
313
+ return p.text({
314
+ message: `${message} (custom)`,
315
+ placeholder: "e.g. github-copilot/claude-sonnet-4.6",
316
+ initialValue: currentValue,
317
+ });
318
+ }
319
+ return selected;
320
+ }
321
+ // ---------------------------------------------------------------------------
322
+ // Graphify Installation Prompt
323
+ // ---------------------------------------------------------------------------
324
+ /**
325
+ * Detects Python 3.10+ availability and returns the major.minor version,
326
+ * or null if Python is not found or version is insufficient.
327
+ */
328
+ function detectPython310() {
329
+ for (const cmd of ["python3", "python"]) {
330
+ try {
331
+ const output = execSync(`${cmd} --version`, {
332
+ encoding: "utf-8",
333
+ stdio: ["pipe", "pipe", "pipe"],
334
+ timeout: 5000,
335
+ }).trim();
336
+ const match = output.match(/(\d+)\.(\d+)\.(\d+)/);
337
+ if (match) {
338
+ const major = Number.parseInt(match[1], 10);
339
+ const minor = Number.parseInt(match[2], 10);
340
+ if (major >= 3 && minor >= 10) {
341
+ return { version: `${major}.${minor}.${match[3]}`, command: cmd };
342
+ }
343
+ }
344
+ }
345
+ catch {
346
+ // Command not found or failed, try next
347
+ }
348
+ }
349
+ return null;
350
+ }
351
+ const GRAPHIFY_URL = "https://github.com/safishamsi/graphify";
352
+ /**
353
+ * Prompts the user to install graphify if it's not already available
354
+ * and Python 3.10+ is detected. Gracefully handles all decline/failure paths.
355
+ */
356
+ export async function promptGraphifyInstall() {
357
+ const info = detectGraphify();
358
+ if (info.available)
359
+ return;
360
+ const python = detectPython310();
361
+ if (!python) {
362
+ p.note([
363
+ "Graphify enables automatic codebase graph analysis.",
364
+ "AI agents get richer structural context without scanning from scratch each session.",
365
+ "",
366
+ `${color.yellow("Requirement not met:")} Python 3.10+ is required but was not found.`,
367
+ "",
368
+ "To enable this capability, install Python 3.10+ then follow:",
369
+ color.cyan(GRAPHIFY_URL),
370
+ "",
371
+ `Then run: ${color.dim("uv tool install graphifyy")} (or pipx / pip)`,
372
+ ].join("\n"), "Optional: Graphify");
373
+ return;
374
+ }
375
+ p.note([
376
+ "Graphify enables automatic codebase graph analysis.",
377
+ "AI agents get richer structural context without scanning from scratch each session.",
378
+ "",
379
+ color.cyan(GRAPHIFY_URL),
380
+ ].join("\n"), "Optional: Graphify");
381
+ const shouldInstall = await p.confirm({
382
+ message: `Install graphify now? (Python ${python.version} detected)`,
383
+ initialValue: false,
384
+ });
385
+ if (p.isCancel(shouldInstall) || !shouldInstall) {
386
+ p.log.info(color.dim(`Install later: uv tool install graphifyy | ${GRAPHIFY_URL}`));
387
+ return;
388
+ }
389
+ const installCommands = [
390
+ "uv tool install graphifyy",
391
+ "pipx install graphifyy",
392
+ "pip install graphifyy",
393
+ ];
394
+ const s = p.spinner();
395
+ s.start("Installing graphify…");
396
+ for (const cmd of installCommands) {
397
+ try {
398
+ execSync(cmd, {
399
+ encoding: "utf-8",
400
+ stdio: ["pipe", "pipe", "pipe"],
401
+ timeout: 60_000,
402
+ });
403
+ s.stop(`${color.green("✔")} Graphify installed via ${color.dim(cmd.split(" ")[0])}`);
404
+ return;
405
+ }
406
+ catch {
407
+ // Try next installer
408
+ }
409
+ }
410
+ s.stop([
411
+ `${color.yellow("⚠")} Could not install graphify — all installers failed.`,
412
+ `Install manually: ${color.cyan(GRAPHIFY_URL)}`,
413
+ ].join("\n"));
414
+ }
415
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Show a compact status dashboard when `arcs` is invoked with no args in a TTY.
3
+ */
4
+ export declare function showStatusDashboard(): Promise<void>;
5
+ //# sourceMappingURL=status-dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-dashboard.d.ts","sourceRoot":"","sources":["../../src/cli/status-dashboard.ts"],"names":[],"mappings":"AAwBA;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBzD"}