smol-symphony 0.2.0 → 0.3.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 (716) hide show
  1. package/AGENTS.md +41 -22
  2. package/DESIGN.md +494 -273
  3. package/README.md +109 -57
  4. package/SPEC.md +33 -24
  5. package/WORKFLOW.minimal.yaml +34 -0
  6. package/{WORKFLOW.template.md → WORKFLOW.template.yaml} +409 -256
  7. package/WORKFLOW.yaml +487 -0
  8. package/assets/skills/symphony-issues/SKILL.md +136 -0
  9. package/assets/symphony-mise.system.toml +68 -0
  10. package/dist/src/bin/symphony.js +30 -0
  11. package/dist/src/bin/symphony.js.map +1 -0
  12. package/dist/src/core/actions/context.js +109 -0
  13. package/dist/src/core/actions/context.js.map +1 -0
  14. package/dist/{actions/parsing.js → src/core/actions/parse.js} +33 -114
  15. package/dist/src/core/actions/parse.js.map +1 -0
  16. package/dist/src/core/actions/plan.js +197 -0
  17. package/dist/src/core/actions/plan.js.map +1 -0
  18. package/dist/src/core/actions/predicates.js +111 -0
  19. package/dist/src/core/actions/predicates.js.map +1 -0
  20. package/dist/src/core/actions/run-fold.js +248 -0
  21. package/dist/src/core/actions/run-fold.js.map +1 -0
  22. package/dist/src/core/actions/template.js +118 -0
  23. package/dist/src/core/actions/template.js.map +1 -0
  24. package/dist/src/core/cli/args.js +116 -0
  25. package/dist/src/core/cli/args.js.map +1 -0
  26. package/dist/src/core/coerce.js +75 -0
  27. package/dist/src/core/coerce.js.map +1 -0
  28. package/dist/src/core/credential/account-id.js +20 -0
  29. package/dist/src/core/credential/account-id.js.map +1 -0
  30. package/dist/src/core/credential/adapter-config.js +136 -0
  31. package/dist/src/core/credential/adapter-config.js.map +1 -0
  32. package/dist/src/core/credential/availability.js +98 -0
  33. package/dist/src/core/credential/availability.js.map +1 -0
  34. package/dist/src/core/credential/extract.js +228 -0
  35. package/dist/src/core/credential/extract.js.map +1 -0
  36. package/dist/src/core/credential/fake-creds.js +171 -0
  37. package/dist/src/core/credential/fake-creds.js.map +1 -0
  38. package/dist/src/core/credential/identity.js +125 -0
  39. package/dist/src/core/credential/identity.js.map +1 -0
  40. package/dist/src/core/credential/shape.js +230 -0
  41. package/dist/src/core/credential/shape.js.map +1 -0
  42. package/dist/src/core/credential/strings.js +15 -0
  43. package/dist/src/core/credential/strings.js.map +1 -0
  44. package/dist/src/core/doctor/checks.js +303 -0
  45. package/dist/src/core/doctor/checks.js.map +1 -0
  46. package/dist/src/core/git/result.js +107 -0
  47. package/dist/src/core/git/result.js.map +1 -0
  48. package/dist/src/core/http/decisions.js +225 -0
  49. package/dist/src/core/http/decisions.js.map +1 -0
  50. package/dist/{http.js → src/core/http/render.js} +472 -738
  51. package/dist/src/core/http/render.js.map +1 -0
  52. package/dist/{http-handlers.js → src/core/http/routes.js} +52 -87
  53. package/dist/src/core/http/routes.js.map +1 -0
  54. package/dist/src/core/http/views.js +181 -0
  55. package/dist/src/core/http/views.js.map +1 -0
  56. package/dist/src/core/image/managed-image.js +95 -0
  57. package/dist/src/core/image/managed-image.js.map +1 -0
  58. package/dist/src/core/issue/file.js +149 -0
  59. package/dist/src/core/issue/file.js.map +1 -0
  60. package/dist/src/core/issue/parse.js +210 -0
  61. package/dist/src/core/issue/parse.js.map +1 -0
  62. package/dist/src/core/mcp/dispatch.js +239 -0
  63. package/dist/src/core/mcp/dispatch.js.map +1 -0
  64. package/dist/src/core/mcp/post-move.js +92 -0
  65. package/dist/src/core/mcp/post-move.js.map +1 -0
  66. package/dist/src/core/mcp/protocol.js +293 -0
  67. package/dist/src/core/mcp/protocol.js.map +1 -0
  68. package/dist/src/core/mcp/url.js +162 -0
  69. package/dist/src/core/mcp/url.js.map +1 -0
  70. package/dist/src/core/path.js +63 -0
  71. package/dist/src/core/path.js.map +1 -0
  72. package/dist/src/core/reconcile/image-decide.js +48 -0
  73. package/dist/src/core/reconcile/image-decide.js.map +1 -0
  74. package/dist/src/core/reconcile/ledger.js +142 -0
  75. package/dist/src/core/reconcile/ledger.js.map +1 -0
  76. package/dist/src/core/reconcile/pr-classify.js +62 -0
  77. package/dist/src/core/reconcile/pr-classify.js.map +1 -0
  78. package/dist/{reconciler → src/core/reconcile}/pr-decide.js +25 -12
  79. package/dist/src/core/reconcile/pr-decide.js.map +1 -0
  80. package/dist/src/core/reconcile/pr-loop.js +161 -0
  81. package/dist/src/core/reconcile/pr-loop.js.map +1 -0
  82. package/dist/src/core/reconcile/pr-notes.js +35 -0
  83. package/dist/src/core/reconcile/pr-notes.js.map +1 -0
  84. package/dist/src/core/reconcile/vm-decide.js +70 -0
  85. package/dist/src/core/reconcile/vm-decide.js.map +1 -0
  86. package/dist/src/core/reconcile/vm-reap.js +207 -0
  87. package/dist/src/core/reconcile/vm-reap.js.map +1 -0
  88. package/dist/src/core/reconcile/workspace-decide.js +162 -0
  89. package/dist/src/core/reconcile/workspace-decide.js.map +1 -0
  90. package/dist/src/core/runlog/summary.js +231 -0
  91. package/dist/src/core/runlog/summary.js.map +1 -0
  92. package/dist/src/core/runner/dispatch-config.js +95 -0
  93. package/dist/src/core/runner/dispatch-config.js.map +1 -0
  94. package/dist/src/core/runner/injection.js +61 -0
  95. package/dist/src/core/runner/injection.js.map +1 -0
  96. package/dist/src/core/runner/mise.js +210 -0
  97. package/dist/src/core/runner/mise.js.map +1 -0
  98. package/dist/src/core/runner/prompt.js +720 -0
  99. package/dist/src/core/runner/prompt.js.map +1 -0
  100. package/dist/src/core/runner/turn.js +242 -0
  101. package/dist/src/core/runner/turn.js.map +1 -0
  102. package/dist/src/core/runner/vm-plan.js +390 -0
  103. package/dist/src/core/runner/vm-plan.js.map +1 -0
  104. package/dist/src/core/schedule/admission.js +123 -0
  105. package/dist/src/core/schedule/admission.js.map +1 -0
  106. package/dist/src/core/schedule/circuit-breaker.js +111 -0
  107. package/dist/src/core/schedule/circuit-breaker.js.map +1 -0
  108. package/dist/src/core/schedule/eligibility.js +83 -0
  109. package/dist/src/core/schedule/eligibility.js.map +1 -0
  110. package/dist/src/core/schedule/reconcile-issue.js +82 -0
  111. package/dist/src/core/schedule/reconcile-issue.js.map +1 -0
  112. package/dist/src/core/schedule/retry.js +96 -0
  113. package/dist/src/core/schedule/retry.js.map +1 -0
  114. package/dist/src/core/schedule/sleep-cycle.js +133 -0
  115. package/dist/src/core/schedule/sleep-cycle.js.map +1 -0
  116. package/dist/src/core/schedule/slots.js +124 -0
  117. package/dist/src/core/schedule/slots.js.map +1 -0
  118. package/dist/src/core/schedule/tick.js +553 -0
  119. package/dist/src/core/schedule/tick.js.map +1 -0
  120. package/dist/src/core/schedule/token-fold.js +181 -0
  121. package/dist/src/core/schedule/token-fold.js.map +1 -0
  122. package/dist/src/core/state-resolve.js +86 -0
  123. package/dist/src/core/state-resolve.js.map +1 -0
  124. package/dist/src/core/vm-guards.js +278 -0
  125. package/dist/src/core/vm-guards.js.map +1 -0
  126. package/dist/src/core/workflow/derive.js +107 -0
  127. package/dist/src/core/workflow/derive.js.map +1 -0
  128. package/dist/src/core/workflow/parse.js +687 -0
  129. package/dist/src/core/workflow/parse.js.map +1 -0
  130. package/dist/src/core/workflow/prompt-probe.js +78 -0
  131. package/dist/src/core/workflow/prompt-probe.js.map +1 -0
  132. package/dist/src/core/workflow/validate.js +189 -0
  133. package/dist/src/core/workflow/validate.js.map +1 -0
  134. package/dist/src/core/workspace-key.js +19 -0
  135. package/dist/src/core/workspace-key.js.map +1 -0
  136. package/dist/src/shell/actions-runner.js +356 -0
  137. package/dist/src/shell/actions-runner.js.map +1 -0
  138. package/dist/src/shell/adapter/adapter-registry.js +45 -0
  139. package/dist/src/shell/adapter/adapter-registry.js.map +1 -0
  140. package/dist/src/shell/adapter/clock-random.js +96 -0
  141. package/dist/src/shell/adapter/clock-random.js.map +1 -0
  142. package/dist/src/shell/adapter/gondolin-dispatch-helpers.js +158 -0
  143. package/dist/src/shell/adapter/gondolin-dispatch-helpers.js.map +1 -0
  144. package/dist/src/shell/adapter/gondolin-dispatch.js +385 -0
  145. package/dist/src/shell/adapter/gondolin-dispatch.js.map +1 -0
  146. package/dist/src/shell/adapter/gondolin-image-converter.js +233 -0
  147. package/dist/src/shell/adapter/gondolin-image-converter.js.map +1 -0
  148. package/dist/src/shell/adapter/gondolin-image-fetch.js +180 -0
  149. package/dist/src/shell/adapter/gondolin-image-fetch.js.map +1 -0
  150. package/dist/src/shell/adapter/launcher-asset.js +57 -0
  151. package/dist/src/shell/adapter/launcher-asset.js.map +1 -0
  152. package/dist/src/shell/adapter/mise-config-asset.js +65 -0
  153. package/dist/src/shell/adapter/mise-config-asset.js.map +1 -0
  154. package/dist/src/shell/adapter/workflow-loader.js +304 -0
  155. package/dist/src/shell/adapter/workflow-loader.js.map +1 -0
  156. package/dist/src/shell/cli/doctor.js +268 -0
  157. package/dist/src/shell/cli/doctor.js.map +1 -0
  158. package/dist/src/shell/effect-interpreter-families.js +314 -0
  159. package/dist/src/shell/effect-interpreter-families.js.map +1 -0
  160. package/dist/src/shell/effect-interpreter.js +29 -0
  161. package/dist/src/shell/effect-interpreter.js.map +1 -0
  162. package/dist/src/shell/interp/acp-frame.js +137 -0
  163. package/dist/src/shell/interp/acp-frame.js.map +1 -0
  164. package/dist/src/shell/interp/acp-ws-conn.js +320 -0
  165. package/dist/src/shell/interp/acp-ws-conn.js.map +1 -0
  166. package/dist/src/shell/interp/acp-ws-frames.js +159 -0
  167. package/dist/src/shell/interp/acp-ws-frames.js.map +1 -0
  168. package/dist/src/shell/interp/acp-ws.js +197 -0
  169. package/dist/src/shell/interp/acp-ws.js.map +1 -0
  170. package/dist/src/shell/interp/acp.js +319 -0
  171. package/dist/src/shell/interp/acp.js.map +1 -0
  172. package/dist/src/shell/interp/credential-defaults.js +128 -0
  173. package/dist/src/shell/interp/credential-defaults.js.map +1 -0
  174. package/dist/src/shell/interp/credential-hooks.js +149 -0
  175. package/dist/src/shell/interp/credential-hooks.js.map +1 -0
  176. package/dist/src/shell/interp/credential-registry.js +226 -0
  177. package/dist/src/shell/interp/credential-registry.js.map +1 -0
  178. package/dist/src/shell/interp/credential.js +103 -0
  179. package/dist/src/shell/interp/credential.js.map +1 -0
  180. package/dist/src/shell/interp/gh.js +163 -0
  181. package/dist/src/shell/interp/gh.js.map +1 -0
  182. package/dist/src/shell/interp/git.js +28 -0
  183. package/dist/src/shell/interp/git.js.map +1 -0
  184. package/dist/src/shell/interp/log.js +213 -0
  185. package/dist/src/shell/interp/log.js.map +1 -0
  186. package/dist/src/shell/interp/process.js +178 -0
  187. package/dist/src/shell/interp/process.js.map +1 -0
  188. package/dist/src/shell/interp/runlog.js +193 -0
  189. package/dist/src/shell/interp/runlog.js.map +1 -0
  190. package/dist/src/shell/interp/timer.js +64 -0
  191. package/dist/src/shell/interp/timer.js.map +1 -0
  192. package/dist/src/shell/interp/tracker-disk.js +99 -0
  193. package/dist/src/shell/interp/tracker-disk.js.map +1 -0
  194. package/dist/src/shell/interp/tracker-parse.js +71 -0
  195. package/dist/src/shell/interp/tracker-parse.js.map +1 -0
  196. package/dist/src/shell/interp/tracker-scan.js +238 -0
  197. package/dist/src/shell/interp/tracker-scan.js.map +1 -0
  198. package/dist/src/shell/interp/tracker-write.js +91 -0
  199. package/dist/src/shell/interp/tracker-write.js.map +1 -0
  200. package/dist/src/shell/interp/tracker.js +41 -0
  201. package/dist/src/shell/interp/tracker.js.map +1 -0
  202. package/dist/src/shell/interp/tty.js +48 -0
  203. package/dist/src/shell/interp/tty.js.map +1 -0
  204. package/dist/src/shell/interp/vm.js +199 -0
  205. package/dist/src/shell/interp/vm.js.map +1 -0
  206. package/dist/src/shell/interp/workspace.js +310 -0
  207. package/dist/src/shell/interp/workspace.js.map +1 -0
  208. package/dist/src/shell/main-acp.js +78 -0
  209. package/dist/src/shell/main-acp.js.map +1 -0
  210. package/dist/src/shell/main-adapters.js +222 -0
  211. package/dist/src/shell/main-adapters.js.map +1 -0
  212. package/dist/src/shell/main-credential.js +122 -0
  213. package/dist/src/shell/main-credential.js.map +1 -0
  214. package/dist/src/shell/main-doctor.js +22 -0
  215. package/dist/src/shell/main-doctor.js.map +1 -0
  216. package/dist/src/shell/main-entry.js +46 -0
  217. package/dist/src/shell/main-entry.js.map +1 -0
  218. package/dist/src/shell/main-http-csrf.js +45 -0
  219. package/dist/src/shell/main-http-csrf.js.map +1 -0
  220. package/dist/src/shell/main-http-handler.js +389 -0
  221. package/dist/src/shell/main-http-handler.js.map +1 -0
  222. package/dist/src/shell/main-http-mcp.js +122 -0
  223. package/dist/src/shell/main-http-mcp.js.map +1 -0
  224. package/dist/src/shell/main-http-views.js +253 -0
  225. package/dist/src/shell/main-http-views.js.map +1 -0
  226. package/dist/src/shell/main-http.js +76 -0
  227. package/dist/src/shell/main-http.js.map +1 -0
  228. package/dist/src/shell/main-loops.js +130 -0
  229. package/dist/src/shell/main-loops.js.map +1 -0
  230. package/dist/src/shell/main-mcp.js +129 -0
  231. package/dist/src/shell/main-mcp.js.map +1 -0
  232. package/dist/src/shell/main-orchestrator.js +120 -0
  233. package/dist/src/shell/main-orchestrator.js.map +1 -0
  234. package/dist/src/shell/main-preflight.js +43 -0
  235. package/dist/src/shell/main-preflight.js.map +1 -0
  236. package/dist/src/shell/main-reconcilers-helpers.js +244 -0
  237. package/dist/src/shell/main-reconcilers-helpers.js.map +1 -0
  238. package/dist/src/shell/main-reconcilers-pr.js +148 -0
  239. package/dist/src/shell/main-reconcilers-pr.js.map +1 -0
  240. package/dist/src/shell/main-reconcilers.js +225 -0
  241. package/dist/src/shell/main-reconcilers.js.map +1 -0
  242. package/dist/src/shell/main-runner.js +355 -0
  243. package/dist/src/shell/main-runner.js.map +1 -0
  244. package/dist/src/shell/main-scaffold.js +116 -0
  245. package/dist/src/shell/main-scaffold.js.map +1 -0
  246. package/dist/src/shell/main-shutdown.js +115 -0
  247. package/dist/src/shell/main-shutdown.js.map +1 -0
  248. package/dist/src/shell/main-startup.js +48 -0
  249. package/dist/src/shell/main-startup.js.map +1 -0
  250. package/dist/src/shell/main-substrates.js +43 -0
  251. package/dist/src/shell/main-substrates.js.map +1 -0
  252. package/dist/src/shell/main.js +385 -0
  253. package/dist/src/shell/main.js.map +1 -0
  254. package/dist/src/shell/orchestrator-feedback.js +69 -0
  255. package/dist/src/shell/orchestrator-feedback.js.map +1 -0
  256. package/dist/src/shell/orchestrator-image.js +167 -0
  257. package/dist/src/shell/orchestrator-image.js.map +1 -0
  258. package/dist/src/shell/orchestrator-loop.js +468 -0
  259. package/dist/src/shell/orchestrator-loop.js.map +1 -0
  260. package/dist/src/shell/orchestrator-reconcile.js +36 -0
  261. package/dist/src/shell/orchestrator-reconcile.js.map +1 -0
  262. package/dist/src/shell/reconciler-loop.js +228 -0
  263. package/dist/src/shell/reconciler-loop.js.map +1 -0
  264. package/dist/src/shell/runner-loop-turn.js +301 -0
  265. package/dist/src/shell/runner-loop-turn.js.map +1 -0
  266. package/dist/src/shell/runner-loop.js +338 -0
  267. package/dist/src/shell/runner-loop.js.map +1 -0
  268. package/dist/src/shell/server/http.js +208 -0
  269. package/dist/src/shell/server/http.js.map +1 -0
  270. package/dist/src/shell/server/mcp-runtime-effects.js +237 -0
  271. package/dist/src/shell/server/mcp-runtime-effects.js.map +1 -0
  272. package/dist/src/shell/server/mcp-runtime.js +99 -0
  273. package/dist/src/shell/server/mcp-runtime.js.map +1 -0
  274. package/dist/src/shell/workspace-key.js +14 -0
  275. package/dist/src/shell/workspace-key.js.map +1 -0
  276. package/dist/src/types/acp.js +8 -0
  277. package/dist/src/types/acp.js.map +1 -0
  278. package/dist/src/types/actions/plan.js +6 -0
  279. package/dist/src/types/actions/plan.js.map +1 -0
  280. package/dist/src/types/actions/predicates.js +6 -0
  281. package/dist/src/types/actions/predicates.js.map +1 -0
  282. package/dist/src/types/actions/run-fold.js +8 -0
  283. package/dist/src/types/actions/run-fold.js.map +1 -0
  284. package/dist/src/types/actions.js +7 -0
  285. package/dist/src/types/actions.js.map +1 -0
  286. package/dist/src/types/adapter/clock-random.js +4 -0
  287. package/dist/src/types/adapter/clock-random.js.map +1 -0
  288. package/dist/src/types/adapter/gondolin-image-converter.js +5 -0
  289. package/dist/src/types/adapter/gondolin-image-converter.js.map +1 -0
  290. package/dist/src/types/adapter/gondolin-image-fetch.js +5 -0
  291. package/dist/src/types/adapter/gondolin-image-fetch.js.map +1 -0
  292. package/dist/src/types/adapter/workflow-loader.js +4 -0
  293. package/dist/src/types/adapter/workflow-loader.js.map +1 -0
  294. package/dist/src/types/cli/args.js +8 -0
  295. package/dist/src/types/cli/args.js.map +1 -0
  296. package/dist/src/types/config.js +8 -0
  297. package/dist/src/types/config.js.map +1 -0
  298. package/dist/src/types/credential-interp.js +6 -0
  299. package/dist/src/types/credential-interp.js.map +1 -0
  300. package/dist/src/types/credentials.js +10 -0
  301. package/dist/src/types/credentials.js.map +1 -0
  302. package/dist/src/types/doctor.js +7 -0
  303. package/dist/src/types/doctor.js.map +1 -0
  304. package/dist/src/types/domain.js +7 -0
  305. package/dist/src/types/domain.js.map +1 -0
  306. package/dist/src/types/effect.js +15 -0
  307. package/dist/src/types/effect.js.map +1 -0
  308. package/dist/src/types/errors.js +39 -0
  309. package/dist/src/types/errors.js.map +1 -0
  310. package/dist/src/types/http/decisions.js +6 -0
  311. package/dist/src/types/http/decisions.js.map +1 -0
  312. package/dist/src/types/http/render.js +10 -0
  313. package/dist/src/types/http/render.js.map +1 -0
  314. package/dist/src/types/http/views.js +6 -0
  315. package/dist/src/types/http/views.js.map +1 -0
  316. package/dist/src/types/http.js +9 -0
  317. package/dist/src/types/http.js.map +1 -0
  318. package/dist/src/types/image/managed-image.js +7 -0
  319. package/dist/src/types/image/managed-image.js.map +1 -0
  320. package/dist/src/types/interp/effect-interpreter.js +8 -0
  321. package/dist/src/types/interp/effect-interpreter.js.map +1 -0
  322. package/dist/src/types/interp/tracker.js +7 -0
  323. package/dist/src/types/interp/tracker.js.map +1 -0
  324. package/dist/src/types/issue/file.js +6 -0
  325. package/dist/src/types/issue/file.js.map +1 -0
  326. package/dist/src/types/issue/parse.js +8 -0
  327. package/dist/src/types/issue/parse.js.map +1 -0
  328. package/dist/src/types/main-acp.js +13 -0
  329. package/dist/src/types/main-acp.js.map +1 -0
  330. package/dist/src/types/main-adapters.js +5 -0
  331. package/dist/src/types/main-adapters.js.map +1 -0
  332. package/dist/src/types/main-credential.js +21 -0
  333. package/dist/src/types/main-credential.js.map +1 -0
  334. package/dist/src/types/main-doctor.js +6 -0
  335. package/dist/src/types/main-doctor.js.map +1 -0
  336. package/dist/src/types/main-http-handler.js +12 -0
  337. package/dist/src/types/main-http-handler.js.map +1 -0
  338. package/dist/src/types/main-http.js +5 -0
  339. package/dist/src/types/main-http.js.map +1 -0
  340. package/dist/src/types/main-loops.js +5 -0
  341. package/dist/src/types/main-loops.js.map +1 -0
  342. package/dist/src/types/main-mcp.js +12 -0
  343. package/dist/src/types/main-mcp.js.map +1 -0
  344. package/dist/src/types/main-orchestrator.js +5 -0
  345. package/dist/src/types/main-orchestrator.js.map +1 -0
  346. package/dist/src/types/main-reconcilers.js +11 -0
  347. package/dist/src/types/main-reconcilers.js.map +1 -0
  348. package/dist/src/types/main-runner.js +13 -0
  349. package/dist/src/types/main-runner.js.map +1 -0
  350. package/dist/src/types/main-startup.js +5 -0
  351. package/dist/src/types/main-startup.js.map +1 -0
  352. package/dist/src/types/main-substrates.js +5 -0
  353. package/dist/src/types/main-substrates.js.map +1 -0
  354. package/dist/src/types/mcp/dispatch.js +4 -0
  355. package/dist/src/types/mcp/dispatch.js.map +1 -0
  356. package/dist/src/types/mcp/post-move.js +7 -0
  357. package/dist/src/types/mcp/post-move.js.map +1 -0
  358. package/dist/src/types/mcp.js +9 -0
  359. package/dist/src/types/mcp.js.map +1 -0
  360. package/dist/src/types/ports.js +12 -0
  361. package/dist/src/types/ports.js.map +1 -0
  362. package/dist/src/types/reconcile/image-decide.js +5 -0
  363. package/dist/src/types/reconcile/image-decide.js.map +1 -0
  364. package/dist/src/types/reconcile/ledger.js +7 -0
  365. package/dist/src/types/reconcile/ledger.js.map +1 -0
  366. package/dist/src/types/reconcile/pr-loop.js +8 -0
  367. package/dist/src/types/reconcile/pr-loop.js.map +1 -0
  368. package/dist/src/types/reconcile/vm-reap.js +8 -0
  369. package/dist/src/types/reconcile/vm-reap.js.map +1 -0
  370. package/dist/src/types/reconcile/workspace-decide.js +7 -0
  371. package/dist/src/types/reconcile/workspace-decide.js.map +1 -0
  372. package/dist/src/types/reconcile.js +9 -0
  373. package/dist/src/types/reconcile.js.map +1 -0
  374. package/dist/src/types/runlog.js +7 -0
  375. package/dist/src/types/runlog.js.map +1 -0
  376. package/dist/src/types/runner/actions-runner.js +12 -0
  377. package/dist/src/types/runner/actions-runner.js.map +1 -0
  378. package/dist/src/types/runner/gondolin-dispatch.js +5 -0
  379. package/dist/src/types/runner/gondolin-dispatch.js.map +1 -0
  380. package/dist/src/types/runner/injection.js +6 -0
  381. package/dist/src/types/runner/injection.js.map +1 -0
  382. package/dist/src/types/runner/runner-loop.js +5 -0
  383. package/dist/src/types/runner/runner-loop.js.map +1 -0
  384. package/dist/src/types/runner/turn.js +4 -0
  385. package/dist/src/types/runner/turn.js.map +1 -0
  386. package/dist/src/types/runner/vm-plan.js +4 -0
  387. package/dist/src/types/runner/vm-plan.js.map +1 -0
  388. package/dist/src/types/runtime.js +9 -0
  389. package/dist/src/types/runtime.js.map +1 -0
  390. package/dist/src/types/schedule/admission.js +7 -0
  391. package/dist/src/types/schedule/admission.js.map +1 -0
  392. package/dist/src/types/schedule/circuit-breaker.js +2 -0
  393. package/dist/src/types/schedule/circuit-breaker.js.map +1 -0
  394. package/dist/src/types/schedule/eligibility.js +9 -0
  395. package/dist/src/types/schedule/eligibility.js.map +1 -0
  396. package/dist/src/types/schedule/orchestrator-loop.js +10 -0
  397. package/dist/src/types/schedule/orchestrator-loop.js.map +1 -0
  398. package/dist/src/types/schedule/sleep-cycle.js +4 -0
  399. package/dist/src/types/schedule/sleep-cycle.js.map +1 -0
  400. package/dist/src/types/schedule/slots.js +8 -0
  401. package/dist/src/types/schedule/slots.js.map +1 -0
  402. package/dist/src/types/schedule/tick.js +9 -0
  403. package/dist/src/types/schedule/tick.js.map +1 -0
  404. package/dist/src/types/server/mcp-runtime.js +8 -0
  405. package/dist/src/types/server/mcp-runtime.js.map +1 -0
  406. package/dist/src/types/workflow/parse.js +4 -0
  407. package/dist/src/types/workflow/parse.js.map +1 -0
  408. package/dist/tests/core/account-id.test.js +35 -0
  409. package/dist/tests/core/account-id.test.js.map +1 -0
  410. package/dist/tests/core/actions-parse.test.js +176 -0
  411. package/dist/tests/core/actions-parse.test.js.map +1 -0
  412. package/dist/tests/core/adapter-config.test.js +133 -0
  413. package/dist/tests/core/adapter-config.test.js.map +1 -0
  414. package/dist/tests/core/admission.test.js +215 -0
  415. package/dist/tests/core/admission.test.js.map +1 -0
  416. package/dist/tests/core/args.test.js +132 -0
  417. package/dist/tests/core/args.test.js.map +1 -0
  418. package/dist/tests/core/availability.test.js +62 -0
  419. package/dist/tests/core/availability.test.js.map +1 -0
  420. package/dist/tests/core/checks.test.js +395 -0
  421. package/dist/tests/core/checks.test.js.map +1 -0
  422. package/dist/tests/core/circuit-breaker.test.js +172 -0
  423. package/dist/tests/core/circuit-breaker.test.js.map +1 -0
  424. package/dist/tests/core/coerce.test.js +87 -0
  425. package/dist/tests/core/coerce.test.js.map +1 -0
  426. package/dist/tests/core/context.test.js +228 -0
  427. package/dist/tests/core/context.test.js.map +1 -0
  428. package/dist/tests/core/decisions.test.js +310 -0
  429. package/dist/tests/core/decisions.test.js.map +1 -0
  430. package/dist/tests/core/derive.test.js +205 -0
  431. package/dist/tests/core/derive.test.js.map +1 -0
  432. package/dist/tests/core/dispatch-config.test.js +164 -0
  433. package/dist/tests/core/dispatch-config.test.js.map +1 -0
  434. package/dist/tests/core/dispatch.test.js +302 -0
  435. package/dist/tests/core/dispatch.test.js.map +1 -0
  436. package/dist/tests/core/eligibility.test.js +163 -0
  437. package/dist/tests/core/eligibility.test.js.map +1 -0
  438. package/dist/tests/core/extract.test.js +139 -0
  439. package/dist/tests/core/extract.test.js.map +1 -0
  440. package/dist/tests/core/fake-creds.test.js +134 -0
  441. package/dist/tests/core/fake-creds.test.js.map +1 -0
  442. package/dist/tests/core/file.test.js +197 -0
  443. package/dist/tests/core/file.test.js.map +1 -0
  444. package/dist/tests/core/git-result.test.js +113 -0
  445. package/dist/tests/core/git-result.test.js.map +1 -0
  446. package/dist/tests/core/identity.test.js +180 -0
  447. package/dist/tests/core/identity.test.js.map +1 -0
  448. package/dist/tests/core/image-decide.test.js +59 -0
  449. package/dist/tests/core/image-decide.test.js.map +1 -0
  450. package/dist/tests/core/injection.test.js +163 -0
  451. package/dist/tests/core/injection.test.js.map +1 -0
  452. package/dist/tests/core/ledger.test.js +218 -0
  453. package/dist/tests/core/ledger.test.js.map +1 -0
  454. package/dist/tests/core/managed-image.test.js +68 -0
  455. package/dist/tests/core/managed-image.test.js.map +1 -0
  456. package/dist/tests/core/mise.test.js +138 -0
  457. package/dist/tests/core/mise.test.js.map +1 -0
  458. package/dist/tests/core/parse.test.js +174 -0
  459. package/dist/tests/core/parse.test.js.map +1 -0
  460. package/dist/tests/core/path.test.js +50 -0
  461. package/dist/tests/core/path.test.js.map +1 -0
  462. package/dist/tests/core/plan.test.js +218 -0
  463. package/dist/tests/core/plan.test.js.map +1 -0
  464. package/dist/tests/core/post-move.test.js +162 -0
  465. package/dist/tests/core/post-move.test.js.map +1 -0
  466. package/dist/tests/core/pr-classify.test.js +117 -0
  467. package/dist/tests/core/pr-classify.test.js.map +1 -0
  468. package/dist/tests/core/pr-decide.test.js +298 -0
  469. package/dist/tests/core/pr-decide.test.js.map +1 -0
  470. package/dist/tests/core/pr-loop.test.js +301 -0
  471. package/dist/tests/core/pr-loop.test.js.map +1 -0
  472. package/dist/tests/core/pr-notes.test.js +165 -0
  473. package/dist/tests/core/pr-notes.test.js.map +1 -0
  474. package/dist/tests/core/predicates.test.js +154 -0
  475. package/dist/tests/core/predicates.test.js.map +1 -0
  476. package/dist/tests/core/prompt.test.js +189 -0
  477. package/dist/tests/core/prompt.test.js.map +1 -0
  478. package/dist/tests/core/protocol.test.js +195 -0
  479. package/dist/tests/core/protocol.test.js.map +1 -0
  480. package/dist/tests/core/reconcile-issue.test.js +116 -0
  481. package/dist/tests/core/reconcile-issue.test.js.map +1 -0
  482. package/dist/tests/core/render.test.js +549 -0
  483. package/dist/tests/core/render.test.js.map +1 -0
  484. package/dist/tests/core/retry.test.js +186 -0
  485. package/dist/tests/core/retry.test.js.map +1 -0
  486. package/dist/tests/core/routes.test.js +247 -0
  487. package/dist/tests/core/routes.test.js.map +1 -0
  488. package/dist/tests/core/run-fold.test.js +299 -0
  489. package/dist/tests/core/run-fold.test.js.map +1 -0
  490. package/dist/tests/core/shape.test.js +185 -0
  491. package/dist/tests/core/shape.test.js.map +1 -0
  492. package/dist/tests/core/sleep-cycle.test.js +150 -0
  493. package/dist/tests/core/sleep-cycle.test.js.map +1 -0
  494. package/dist/tests/core/slots.test.js +201 -0
  495. package/dist/tests/core/slots.test.js.map +1 -0
  496. package/dist/tests/core/state-resolve.test.js +80 -0
  497. package/dist/tests/core/state-resolve.test.js.map +1 -0
  498. package/dist/tests/core/summary.test.js +200 -0
  499. package/dist/tests/core/summary.test.js.map +1 -0
  500. package/dist/tests/core/template.test.js +116 -0
  501. package/dist/tests/core/template.test.js.map +1 -0
  502. package/dist/tests/core/tick.test.js +558 -0
  503. package/dist/tests/core/tick.test.js.map +1 -0
  504. package/dist/tests/core/token-fold.test.js +176 -0
  505. package/dist/tests/core/token-fold.test.js.map +1 -0
  506. package/dist/tests/core/turn.test.js +388 -0
  507. package/dist/tests/core/turn.test.js.map +1 -0
  508. package/dist/tests/core/url.test.js +118 -0
  509. package/dist/tests/core/url.test.js.map +1 -0
  510. package/dist/tests/core/validate.test.js +247 -0
  511. package/dist/tests/core/validate.test.js.map +1 -0
  512. package/dist/tests/core/views.test.js +252 -0
  513. package/dist/tests/core/views.test.js.map +1 -0
  514. package/dist/tests/core/vm-decide.test.js +110 -0
  515. package/dist/tests/core/vm-decide.test.js.map +1 -0
  516. package/dist/tests/core/vm-guards.test.js +153 -0
  517. package/dist/tests/core/vm-guards.test.js.map +1 -0
  518. package/dist/tests/core/vm-plan.test.js +332 -0
  519. package/dist/tests/core/vm-plan.test.js.map +1 -0
  520. package/dist/tests/core/vm-reap.test.js +196 -0
  521. package/dist/tests/core/vm-reap.test.js.map +1 -0
  522. package/dist/tests/core/workflow-parse.test.js +493 -0
  523. package/dist/tests/core/workflow-parse.test.js.map +1 -0
  524. package/dist/tests/core/workspace-decide.test.js +236 -0
  525. package/dist/tests/core/workspace-decide.test.js.map +1 -0
  526. package/dist/tests/helpers/fixtures.js +167 -0
  527. package/dist/tests/helpers/fixtures.js.map +1 -0
  528. package/dist/tests/shell/acp-substrate.test.js +101 -0
  529. package/dist/tests/shell/acp-substrate.test.js.map +1 -0
  530. package/dist/tests/shell/actions-runner-push.test.js +203 -0
  531. package/dist/tests/shell/actions-runner-push.test.js.map +1 -0
  532. package/dist/tests/shell/credential-hooks.test.js +36 -0
  533. package/dist/tests/shell/credential-hooks.test.js.map +1 -0
  534. package/dist/tests/shell/credential-registry.test.js +165 -0
  535. package/dist/tests/shell/credential-registry.test.js.map +1 -0
  536. package/dist/tests/shell/credential-substrate.test.js +179 -0
  537. package/dist/tests/shell/credential-substrate.test.js.map +1 -0
  538. package/dist/tests/shell/dockerfile-mise-pin.test.js +51 -0
  539. package/dist/tests/shell/dockerfile-mise-pin.test.js.map +1 -0
  540. package/dist/tests/shell/doctor.test.js +101 -0
  541. package/dist/tests/shell/doctor.test.js.map +1 -0
  542. package/dist/tests/shell/effect-vm-create.test.js +52 -0
  543. package/dist/tests/shell/effect-vm-create.test.js.map +1 -0
  544. package/dist/tests/shell/gh-port.test.js +63 -0
  545. package/dist/tests/shell/gh-port.test.js.map +1 -0
  546. package/dist/tests/shell/gondolin-dispatch-guard.test.js +144 -0
  547. package/dist/tests/shell/gondolin-dispatch-guard.test.js.map +1 -0
  548. package/dist/tests/shell/gondolin-dispatch-shquote.test.js +168 -0
  549. package/dist/tests/shell/gondolin-dispatch-shquote.test.js.map +1 -0
  550. package/dist/tests/shell/gondolin-image-converter.test.js +208 -0
  551. package/dist/tests/shell/gondolin-image-converter.test.js.map +1 -0
  552. package/dist/tests/shell/gondolin-image-fetch.test.js +93 -0
  553. package/dist/tests/shell/gondolin-image-fetch.test.js.map +1 -0
  554. package/dist/tests/shell/http-handler.test.js +608 -0
  555. package/dist/tests/shell/http-handler.test.js.map +1 -0
  556. package/dist/tests/shell/http-server.test.js +53 -0
  557. package/dist/tests/shell/http-server.test.js.map +1 -0
  558. package/dist/tests/shell/mcp-runtime.test.js +366 -0
  559. package/dist/tests/shell/mcp-runtime.test.js.map +1 -0
  560. package/dist/tests/shell/mise-config-asset.test.js +87 -0
  561. package/dist/tests/shell/mise-config-asset.test.js.map +1 -0
  562. package/dist/tests/shell/orchestrator-loop.test.js +583 -0
  563. package/dist/tests/shell/orchestrator-loop.test.js.map +1 -0
  564. package/dist/tests/shell/reconciler-passes.test.js +314 -0
  565. package/dist/tests/shell/reconciler-passes.test.js.map +1 -0
  566. package/dist/tests/shell/runner-loop-turn.test.js +97 -0
  567. package/dist/tests/shell/runner-loop-turn.test.js.map +1 -0
  568. package/dist/tests/shell/runner-slice.test.js +536 -0
  569. package/dist/tests/shell/runner-slice.test.js.map +1 -0
  570. package/dist/tests/shell/scaffold.test.js +65 -0
  571. package/dist/tests/shell/scaffold.test.js.map +1 -0
  572. package/dist/tests/shell/tick-config.test.js +83 -0
  573. package/dist/tests/shell/tick-config.test.js.map +1 -0
  574. package/dist/tests/shell/tracker-parse-dates.test.js +44 -0
  575. package/dist/tests/shell/tracker-parse-dates.test.js.map +1 -0
  576. package/dist/tests/shell/tracker-write-issue.test.js +154 -0
  577. package/dist/tests/shell/tracker-write-issue.test.js.map +1 -0
  578. package/dist/tests/shell/workflow-prompt-split.test.js +208 -0
  579. package/dist/tests/shell/workflow-prompt-split.test.js.map +1 -0
  580. package/dist/tests/shell/workspace-live-config.test.js +140 -0
  581. package/dist/tests/shell/workspace-live-config.test.js.map +1 -0
  582. package/package.json +21 -9
  583. package/patches/@earendil-works+gondolin+0.12.0.patch +173 -0
  584. package/prompts/Reflect.md +91 -0
  585. package/prompts/Review.md +97 -0
  586. package/prompts/Todo.md +96 -0
  587. package/prompts/_footer.md +41 -0
  588. package/prompts/_preamble.md +42 -0
  589. package/prompts-minimal/Todo.md +26 -0
  590. package/scripts/postinstall.mjs +63 -0
  591. package/scripts/vm-agent.mjs +312 -90
  592. package/WORKFLOW.md +0 -744
  593. package/dist/acp-bridge.js +0 -324
  594. package/dist/acp-bridge.js.map +0 -1
  595. package/dist/actions/cache.js +0 -191
  596. package/dist/actions/cache.js.map +0 -1
  597. package/dist/actions/effects.js +0 -41
  598. package/dist/actions/effects.js.map +0 -1
  599. package/dist/actions/executor.js +0 -570
  600. package/dist/actions/executor.js.map +0 -1
  601. package/dist/actions/index.js +0 -13
  602. package/dist/actions/index.js.map +0 -1
  603. package/dist/actions/parsing.js.map +0 -1
  604. package/dist/actions/predicate-env.js +0 -27
  605. package/dist/actions/predicate-env.js.map +0 -1
  606. package/dist/actions/predicates.js +0 -49
  607. package/dist/actions/predicates.js.map +0 -1
  608. package/dist/actions/templating.js +0 -66
  609. package/dist/actions/templating.js.map +0 -1
  610. package/dist/actions/types.js +0 -15
  611. package/dist/actions/types.js.map +0 -1
  612. package/dist/agent/acp.js +0 -473
  613. package/dist/agent/acp.js.map +0 -1
  614. package/dist/agent/adapter-names.js +0 -159
  615. package/dist/agent/adapter-names.js.map +0 -1
  616. package/dist/agent/adapters.js +0 -511
  617. package/dist/agent/adapters.js.map +0 -1
  618. package/dist/agent/credential-extractors.js +0 -342
  619. package/dist/agent/credential-extractors.js.map +0 -1
  620. package/dist/agent/credential-secrets.js +0 -628
  621. package/dist/agent/credential-secrets.js.map +0 -1
  622. package/dist/agent/credential-ticker.js +0 -57
  623. package/dist/agent/credential-ticker.js.map +0 -1
  624. package/dist/agent/gondolin-creds-staging.js +0 -356
  625. package/dist/agent/gondolin-creds-staging.js.map +0 -1
  626. package/dist/agent/gondolin-dispatch.js +0 -375
  627. package/dist/agent/gondolin-dispatch.js.map +0 -1
  628. package/dist/agent/gondolin.js +0 -124
  629. package/dist/agent/gondolin.js.map +0 -1
  630. package/dist/agent/runner-decisions.js +0 -134
  631. package/dist/agent/runner-decisions.js.map +0 -1
  632. package/dist/agent/runner.js +0 -1456
  633. package/dist/agent/runner.js.map +0 -1
  634. package/dist/agent/tool-call-summary.js +0 -102
  635. package/dist/agent/tool-call-summary.js.map +0 -1
  636. package/dist/agent/vm-acp-mapping.js +0 -73
  637. package/dist/agent/vm-acp-mapping.js.map +0 -1
  638. package/dist/agent/vm-guards.js +0 -262
  639. package/dist/agent/vm-guards.js.map +0 -1
  640. package/dist/agent/vm-port.js +0 -22
  641. package/dist/agent/vm-port.js.map +0 -1
  642. package/dist/agent/vm-process-registry.js +0 -79
  643. package/dist/agent/vm-process-registry.js.map +0 -1
  644. package/dist/bin/cli-args.js +0 -105
  645. package/dist/bin/cli-args.js.map +0 -1
  646. package/dist/bin/symphony.js +0 -794
  647. package/dist/bin/symphony.js.map +0 -1
  648. package/dist/errors.js +0 -15
  649. package/dist/errors.js.map +0 -1
  650. package/dist/http-disk.js +0 -135
  651. package/dist/http-disk.js.map +0 -1
  652. package/dist/http-handlers.js.map +0 -1
  653. package/dist/http.js.map +0 -1
  654. package/dist/issues.js +0 -178
  655. package/dist/issues.js.map +0 -1
  656. package/dist/logging.js +0 -203
  657. package/dist/logging.js.map +0 -1
  658. package/dist/mcp.js +0 -706
  659. package/dist/mcp.js.map +0 -1
  660. package/dist/memory.js +0 -85
  661. package/dist/memory.js.map +0 -1
  662. package/dist/orchestrator-decisions.js +0 -331
  663. package/dist/orchestrator-decisions.js.map +0 -1
  664. package/dist/orchestrator.js +0 -1569
  665. package/dist/orchestrator.js.map +0 -1
  666. package/dist/prompt.js +0 -65
  667. package/dist/prompt.js.map +0 -1
  668. package/dist/reconciler/cache.js +0 -65
  669. package/dist/reconciler/cache.js.map +0 -1
  670. package/dist/reconciler/index.js +0 -448
  671. package/dist/reconciler/index.js.map +0 -1
  672. package/dist/reconciler/ledger.js +0 -131
  673. package/dist/reconciler/ledger.js.map +0 -1
  674. package/dist/reconciler/pr-adapters.js +0 -174
  675. package/dist/reconciler/pr-adapters.js.map +0 -1
  676. package/dist/reconciler/pr-decide.js.map +0 -1
  677. package/dist/reconciler/pr.js +0 -422
  678. package/dist/reconciler/pr.js.map +0 -1
  679. package/dist/reconciler/types.js +0 -12
  680. package/dist/reconciler/types.js.map +0 -1
  681. package/dist/reconciler/vm.js +0 -243
  682. package/dist/reconciler/vm.js.map +0 -1
  683. package/dist/reconciler/workspace-defaults.js +0 -83
  684. package/dist/reconciler/workspace-defaults.js.map +0 -1
  685. package/dist/reconciler/workspace.js +0 -272
  686. package/dist/reconciler/workspace.js.map +0 -1
  687. package/dist/runlog.js +0 -403
  688. package/dist/runlog.js.map +0 -1
  689. package/dist/scaffold.js +0 -165
  690. package/dist/scaffold.js.map +0 -1
  691. package/dist/trackers/local.js +0 -445
  692. package/dist/trackers/local.js.map +0 -1
  693. package/dist/trackers/types.js +0 -10
  694. package/dist/trackers/types.js.map +0 -1
  695. package/dist/types.js +0 -3
  696. package/dist/types.js.map +0 -1
  697. package/dist/util/clock.js +0 -12
  698. package/dist/util/clock.js.map +0 -1
  699. package/dist/util/crypto.js +0 -25
  700. package/dist/util/crypto.js.map +0 -1
  701. package/dist/util/frontmatter.js +0 -70
  702. package/dist/util/frontmatter.js.map +0 -1
  703. package/dist/util/fs-issues.js +0 -22
  704. package/dist/util/fs-issues.js.map +0 -1
  705. package/dist/util/process.js +0 -152
  706. package/dist/util/process.js.map +0 -1
  707. package/dist/util/workspace-key.js +0 -10
  708. package/dist/util/workspace-key.js.map +0 -1
  709. package/dist/workflow-loader.js +0 -147
  710. package/dist/workflow-loader.js.map +0 -1
  711. package/dist/workflow.js +0 -822
  712. package/dist/workflow.js.map +0 -1
  713. package/dist/workspace-types.js +0 -8
  714. package/dist/workspace-types.js.map +0 -1
  715. package/dist/workspace.js +0 -443
  716. package/dist/workspace.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- // Shared shell-out IO/capture shapes for the run log. Lives in the foundation
2
- // layer so domain modules (e.g. actions/executor) and the workspace adapter
3
- // share a single shape without crossing the adapters↛inward boundary. The
4
- // `Hook*` names are a holdover from the retired workflow-hook surface; today
5
- // the only consumers are the typed `actions:` executor and the per-issue run
6
- // log (whose `channel: "hook"` stream carries action stdout/stderr).
7
- export {};
8
- //# sourceMappingURL=workspace-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-types.js","sourceRoot":"","sources":["../src/workspace-types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,qEAAqE"}
package/dist/workspace.js DELETED
@@ -1,443 +0,0 @@
1
- // Workspace manager (SPEC §5). Per-issue workspace dirs under workspace.root.
2
- //
3
- // Safety invariants enforced:
4
- // 1. Workspace path is rooted at workspace.root (containment check).
5
- // 2. Workspace key is sanitized — only [A-Za-z0-9._-] allowed.
6
- // 3. Agent cwd MUST equal the workspace path (enforced by callers via runWithCwd).
7
- import { mkdir, rm, lstat, stat } from 'node:fs/promises';
8
- import path from 'node:path';
9
- import { runProcess } from './util/process.js';
10
- import { sanitizeWorkspaceKey } from './util/workspace-key.js';
11
- // Re-exported so existing shell/entry importers (agent/runner.ts, tests) keep their
12
- // `from '../workspace.js'` import path. The canonical definitions live in the
13
- // foundation layer (util/workspace-key, workspace-types) so domain modules can
14
- // import them directly without crossing the adapters↛inward boundary. The
15
- // `HookCapture`/`HookResult` shapes are the shared run-log/shell-out capture
16
- // types the actions executor and the per-issue run log key off of.
17
- export { sanitizeWorkspaceKey };
18
- export class WorkspaceError extends Error {
19
- code;
20
- constructor(code, message) {
21
- super(message);
22
- this.code = code;
23
- this.name = 'WorkspaceError';
24
- }
25
- }
26
- // §5.5 Invariant 2: workspace path MUST be contained within workspace root.
27
- //
28
- // We deliberately check for a `..` path component rather than a `..` prefix on the
29
- // relative path: an identifier like `..fix` sanitizes to a perfectly contained child
30
- // directory whose relative path begins with the two-character substring `..` but does
31
- // not actually escape the root.
32
- export function assertContained(workspaceRoot, candidate) {
33
- const rootAbs = path.resolve(workspaceRoot);
34
- const candAbs = path.resolve(candidate);
35
- if (candAbs === rootAbs) {
36
- throw new WorkspaceError('invalid_workspace_path', `workspace path must not equal workspace root (${rootAbs})`);
37
- }
38
- const rel = path.relative(rootAbs, candAbs);
39
- if (rel === '' || path.isAbsolute(rel)) {
40
- throw new WorkspaceError('invalid_workspace_path', `workspace path ${candAbs} is not contained within ${rootAbs}`);
41
- }
42
- const parts = rel.split(path.sep);
43
- if (parts.some((p) => p === '..')) {
44
- throw new WorkspaceError('invalid_workspace_path', `workspace path ${candAbs} is not contained within ${rootAbs}`);
45
- }
46
- }
47
- // `runGit` / `runGitExpect` are thin specializations over the unified
48
- // `runProcess` in util/process.ts: WorkspaceError wrapping is the reason they
49
- // exist as named locals (the spawn quirks live in the util).
50
- async function runGit(args, cwd) {
51
- return runProcess('git', args, { cwd });
52
- }
53
- async function runGitExpect(args, cwd) {
54
- const r = await runGit(args, cwd);
55
- if (r.exit_code !== 0) {
56
- throw new WorkspaceError('workspace_setup_git_failed', `git ${args.join(' ')} exited ${r.exit_code}: ${r.stderr.trim() || r.stdout.trim()}`);
57
- }
58
- return r;
59
- }
60
- /**
61
- * Canonical per-issue clone+branch+remote setup (issue 34). Performs the work
62
- * a repo-local `after_create` shell once did, but in TypeScript so:
63
- *
64
- * 1. The setup is unit-testable independent of any workflow-defined glue.
65
- * 2. The reconciler's `workspace` resource owns it as a typed `create_workspace`
66
- * action instead of an opaque shell blob.
67
- * 3. State-machine behavior (origin restoration, identity pinning) is owned by
68
- * the orchestrator, not a shell script.
69
- *
70
- * Behavior (mirroring the shell version's invariants minus the origin-fetch
71
- * reset — see "Base ref source-of-truth" below):
72
- *
73
- * - `git clone --local --no-tags --branch <base> <source> .` into `workspacePath`,
74
- * hardlinking objects when possible (fast + disk-cheap).
75
- * - Strip every remote the clone left behind so any in-VM `git push`/`git fetch`
76
- * fails closed (no network targets reachable from inside the dispatched agent).
77
- * - Unset any inherited `credential.helper` for the same reason.
78
- * - When `originRepo` is set, restore an `origin` pointing at the canonical
79
- * HTTPS URL (no token; auth comes from the host's `gh` and never enters the
80
- * VM). `gh auth setup-git` runs best-effort so a later host-side `git push`
81
- * from the Done-state `push_branch` action can authenticate.
82
- * - Pin `user.name`/`user.email` to the symphony-agent identity.
83
- * - `git checkout -b <branch>` to cut the per-issue branch.
84
- *
85
- * Base ref source-of-truth: the source repo's local `<base>` is the canonical
86
- * reference. The previous shell version also fetched `origin/<base>` when
87
- * `originRepo` was set and reset the workspace's base to that live remote tip,
88
- * but that created two divergent sources of truth — `Orchestrator.currentBaseRef`
89
- * resolves `<base>` in the source repo, and a fetch-and-reset workspace would
90
- * be based on a ref the reconciler can't see. The drift detector caught the
91
- * resulting "freshly cloned workspace is already stale" false positives, so
92
- * the fetch+reset step is gone. To pick up a new base, the operator updates
93
- * the source repo (`git pull` / `git fetch`) and the next workspace clones
94
- * from the updated source.
95
- *
96
- * `workspacePath` must exist and be empty. Caller is responsible for the mkdir
97
- * and for unwinding the directory on failure.
98
- */
99
- export async function setupWorkspaceDir(opts) {
100
- const { workspacePath, sourceRepo, baseBranch, branch, originRepo, originUrl, gitIdentity } = opts;
101
- // 1. Source repo must look like a git repo. Same check the shell ran, lifted
102
- // into TypeScript so the error surfaces as a typed WorkspaceError rather
103
- // than a shell exit code the runner has to decode.
104
- try {
105
- const gitDir = path.join(sourceRepo, '.git');
106
- const st = await stat(gitDir);
107
- if (!st.isDirectory() && !st.isFile()) {
108
- throw new WorkspaceError('workspace_setup_no_source_repo', `source repo ${sourceRepo} is not a git repository`);
109
- }
110
- }
111
- catch (err) {
112
- if (err instanceof WorkspaceError)
113
- throw err;
114
- throw new WorkspaceError('workspace_setup_no_source_repo', `source repo ${sourceRepo} is not a git repository: ${err.message}`);
115
- }
116
- // 2. Clone hardlinked, narrow refspec, land on base. `.` is the cwd so the
117
- // objects/refs go directly into `workspacePath`.
118
- await runGitExpect(['clone', '--local', '--no-tags', '--branch', baseBranch, sourceRepo, '.'], workspacePath);
119
- // 3. Strip all remotes the clone copied over (typically just `origin`
120
- // pointing at SOURCE_REPO). Network targets stay zero by default.
121
- const remotes = await runGitExpect(['remote'], workspacePath);
122
- for (const remote of remotes.stdout.split(/\r?\n/).map((r) => r.trim()).filter((r) => r.length > 0)) {
123
- await runGitExpect(['remote', 'remove', remote], workspacePath);
124
- }
125
- // Unset credential.helper if the clone inherited one. Best-effort: an empty
126
- // local config returns exit 5 which is fine.
127
- await runGit(['config', '--local', '--unset', 'credential.helper'], workspacePath);
128
- // 4. Conditional origin restore. SYMPHONY_REPO is the documented "I want
129
- // the Done-state push to reach a remote" opt-in; without it the workspace
130
- // stays purely local and no origin is configured. The remote URL is the
131
- // canonical HTTPS form (no token); auth comes from the host's `gh`,
132
- // which never enters the VM. Unlike the prior shell version, we do
133
- // NOT fetch `origin/<base>` and reset — see the function comment for
134
- // why; the source repo's local `<base>` is the canonical base ref.
135
- if (originRepo && originRepo.length > 0) {
136
- await runGitExpect(['remote', 'add', 'origin', originUrl ?? `https://github.com/${originRepo}.git`], workspacePath);
137
- // `gh auth setup-git` is best-effort: a host without gh installed should
138
- // still get a working workspace with an origin pointing at the HTTPS URL,
139
- // even if a later push fails for lack of credentials.
140
- await runProcess('gh', ['auth', 'setup-git'], { cwd: workspacePath });
141
- }
142
- // 5. Pin commit identity. Local-only so this never leaks into ~/.gitconfig.
143
- await runGitExpect(['config', '--local', 'user.name', gitIdentity.name], workspacePath);
144
- await runGitExpect(['config', '--local', 'user.email', gitIdentity.email], workspacePath);
145
- // 6. Land HEAD on the per-issue branch. When the branch already exists on
146
- // `origin` (a re-dispatch after the PR autopilot routes a conflicting issue
147
- // back to the implementing state, or any prior push), restore it so the
148
- // agent's already-pushed work is carried forward and rebased onto the fresh
149
- // base — rather than cutting a new branch off base and orphaning that work.
150
- // Only the issue's first dispatch (no remote branch yet) takes the
151
- // fresh-cut path. See `restorePushedBranch` for the loop this closes.
152
- if (await restorePushedBranch(workspacePath, branch))
153
- return;
154
- await runGitExpect(['checkout', '-b', branch], workspacePath);
155
- }
156
- /**
157
- * Restore an already-pushed per-issue branch into a freshly-cloned workspace, so
158
- * a re-dispatch continues from the work that was pushed instead of discarding it.
159
- * Returns true when `origin/<branch>` existed and HEAD now sits on a local
160
- * `<branch>` at the fetched remote tip; false when there is no `origin`
161
- * (local-only mode) or no such remote branch yet (the issue's first dispatch), in
162
- * which case the caller cuts a fresh branch off base.
163
- *
164
- * The dispatched agent rebases this restored branch onto the freshly-fetched base
165
- * (`fetchBaseInWorkspace` + the Todo prompt's `git rebase origin/<base>`), so a
166
- * stale-based restored branch is carried forward and any conflicts resolved as
167
- * part of the normal flow. Without this restore, every re-dispatch cut a
168
- * brand-new branch off base and orphaned the pushed `agent/<id>` commits: a
169
- * bounced issue redid all its work from scratch and its remote branch never
170
- * advanced past the first push, so the PR stayed CONFLICTING and the autopilot
171
- * re-routed it forever — a non-converging Done→conflict→reroute→redo loop.
172
- *
173
- * Fails closed on a transport/auth error rather than cutting fresh: only an
174
- * `ls-remote --exit-code` "no matching refs" (exit 2) means the branch truly
175
- * doesn't exist yet. An unreachable/unauthenticated origin (exit 128, …) is
176
- * indistinguishable from "branch present but unobservable", so falling back to a
177
- * fresh cut there would risk the next push force-with-lease'ing over already-
178
- * pushed work once the origin recovers (`runCanonicalSetup` won't re-run on the
179
- * existing dir). Throwing makes `runCanonicalSetup` unwind the dir so a later
180
- * tick retries the restore. Network calls run with `GIT_TERMINAL_PROMPT=0` so
181
- * they fail fast instead of blocking on a credential prompt.
182
- */
183
- export async function restorePushedBranch(workspacePath, branch) {
184
- const noPrompt = { cwd: workspacePath, env: { GIT_TERMINAL_PROMPT: '0' } };
185
- const remoteCheck = await runProcess('git', ['remote', 'get-url', 'origin'], {
186
- cwd: workspacePath,
187
- });
188
- if (remoteCheck.exit_code !== 0)
189
- return false;
190
- // Probe the EXACT head ref. `ls-remote … <branch>` does suffix matching, so a
191
- // colliding ref like `refs/heads/archive/<branch>` would exit 0 (false positive)
192
- // for a `<branch>` that doesn't exist; the exact `fetch` below would then fail
193
- // and a first dispatch would unwind forever. `refs/heads/<branch>` matches only
194
- // the exact ref.
195
- const exists = await runProcess('git', ['ls-remote', '--exit-code', 'origin', `refs/heads/${branch}`], noPrompt);
196
- // exit 2 = reached the remote, no such ref → genuine first dispatch, cut fresh.
197
- if (exists.exit_code === 2)
198
- return false;
199
- // Any other non-zero (128, …) is a transport/auth failure — fail closed.
200
- if (exists.exit_code !== 0) {
201
- throw new WorkspaceError('workspace_setup_origin_unreachable', `git ls-remote origin ${branch} failed (exit ${exists.exit_code}): ${(exists.stderr || exists.stdout).trim()}`);
202
- }
203
- // Fetch the exact head ref (matching the probe): an unqualified `<branch>`
204
- // refspec would resolve a same-named tag (refs/tags/<branch>) into FETCH_HEAD
205
- // even with --no-tags, and checkout would then restore the tag's commit.
206
- const fetched = await runProcess('git', ['fetch', '--no-tags', 'origin', `refs/heads/${branch}`], noPrompt);
207
- if (fetched.exit_code !== 0) {
208
- throw new WorkspaceError('workspace_setup_branch_fetch_failed', `git fetch origin ${branch} failed (exit ${fetched.exit_code}): ${(fetched.stderr || fetched.stdout).trim()}`);
209
- }
210
- await runGitExpect(['checkout', '-b', branch, 'FETCH_HEAD'], workspacePath);
211
- return true;
212
- }
213
- /**
214
- * Per-dispatch fetch of the workspace's base ref. Runs `git fetch --no-tags
215
- * origin <base>` so `origin/<base>` is current in the workspace before the
216
- * dispatched agent runs `git rebase origin/<base>` as the first step of its
217
- * Todo flow (issue 101). The host runs this because the in-VM agent has no
218
- * network credentials; `gh auth setup-git` on the host makes the fetch work
219
- * with the canonical HTTPS `origin` symphony configures in PR mode.
220
- *
221
- * A fresh `origin/<base>` is a dispatch precondition: when an `origin` is
222
- * configured and the fetch fails (auth, network, missing ref), this returns
223
- * `ok: false` with a diagnostic and the caller must abort the attempt — not
224
- * launch the agent against a stale ref, which would reproduce the stale-base
225
- * behavior issue 101 eliminates.
226
- *
227
- * No-op (returns `ok: true, skipped: true`) when the workspace has no
228
- * `origin` remote — that's the local-only mode where there is no network
229
- * source for the base ref, and the source repo's local `<base>` is the
230
- * only truth.
231
- */
232
- export async function fetchBaseInWorkspace(workspacePath, baseBranch) {
233
- const remoteCheck = await runProcess('git', ['remote', 'get-url', 'origin'], {
234
- cwd: workspacePath,
235
- });
236
- if (remoteCheck.exit_code !== 0) {
237
- return { ok: true, skipped: true, diagnostic: null };
238
- }
239
- const fetch = await runProcess('git', ['fetch', '--no-tags', 'origin', baseBranch], { cwd: workspacePath });
240
- if (fetch.exit_code !== 0) {
241
- return {
242
- ok: false,
243
- skipped: false,
244
- diagnostic: (fetch.stderr || fetch.stdout).trim(),
245
- };
246
- }
247
- return { ok: true, skipped: false, diagnostic: null };
248
- }
249
- /**
250
- * Resolve the effective GitHub `owner/repo` slug (PR/push target) from the
251
- * `SYMPHONY_REPO` env var and the parsed `workspace.github_repo` config value.
252
- * Env wins when set non-empty so an existing export keeps overriding the file;
253
- * otherwise the config value is used. Both unset → null (local-only). Shared by
254
- * workspace setup, the action-context `$repo`, and the PR autopilot so all three
255
- * agree on the same target.
256
- */
257
- export function resolveGithubRepo(configRepo) {
258
- const env = process.env.SYMPHONY_REPO;
259
- if (env && env.length > 0)
260
- return env;
261
- return configRepo;
262
- }
263
- /**
264
- * Resolve the effective base branch from the `SYMPHONY_BASE_BRANCH` env var and
265
- * the parsed `workspace.base_branch` config value (env wins; config defaults to
266
- * `main`). Idempotent: passing an already-resolved value back in returns it
267
- * unchanged when the env is unset, so it is safe to feed a dispatch-time pin
268
- * through this again at setup time.
269
- */
270
- export function resolveBaseBranch(configBaseBranch) {
271
- const env = process.env.SYMPHONY_BASE_BRANCH;
272
- if (env && env.length > 0)
273
- return env;
274
- return configBaseBranch;
275
- }
276
- /**
277
- * Resolve the env-driven SetupWorkspaceDirOptions for an issue at dispatch
278
- * time. Centralized so the runner/manager and tests can share the same
279
- * mapping:
280
- *
281
- * - SYMPHONY_SOURCE_REPO override else fall back to `workflowDir`
282
- * (the directory containing WORKFLOW.md, which in the canonical
283
- * project layout is the repo root).
284
- * - SYMPHONY_BASE_BRANCH env (if set) else `workspace.base_branch` config
285
- * (default 'main').
286
- * - SYMPHONY_REPO env (if set) else `workspace.github_repo` config selects PR
287
- * mode (origin restored) vs local-only.
288
- */
289
- export function resolveSetupOptions(args) {
290
- const sourceRepo = process.env.SYMPHONY_SOURCE_REPO && process.env.SYMPHONY_SOURCE_REPO.length > 0
291
- ? process.env.SYMPHONY_SOURCE_REPO
292
- : args.workflowDir;
293
- const baseBranch = resolveBaseBranch(args.configBaseBranch ?? 'main');
294
- const originRepo = resolveGithubRepo(args.configRepo ?? null);
295
- return {
296
- workspacePath: args.workspacePath,
297
- sourceRepo,
298
- baseBranch,
299
- branch: `agent/${args.identifier}`,
300
- originRepo,
301
- gitIdentity: { name: 'symphony-agent', email: 'agent@symphony.local' },
302
- };
303
- }
304
- // Resolve the workspace dir, creating it if missing. Returns true when this call
305
- // performed the mkdir (so the caller can gate one-time setup like the canonical
306
- // clone on first-mkdir). Rejects symlinks (containment risk) and non-directory
307
- // entries.
308
- async function ensureWorkspaceDirExists(wsPath) {
309
- try {
310
- // lstat (not stat) so a symlink at the workspace path is rejected: a symlink
311
- // could redirect the canonical setup and the returned cwd outside the workspace
312
- // root, which violates the §5.5 containment invariant.
313
- const st = await lstat(wsPath);
314
- if (st.isSymbolicLink()) {
315
- throw new WorkspaceError('workspace_path_is_symlink', `workspace path ${wsPath} is a symlink; refusing to use`);
316
- }
317
- if (!st.isDirectory()) {
318
- throw new WorkspaceError('workspace_path_not_directory', `expected directory at ${wsPath}, found a non-directory`);
319
- }
320
- return false;
321
- }
322
- catch (err) {
323
- if (err.code === 'ENOENT') {
324
- await mkdir(wsPath, { recursive: true });
325
- return true;
326
- }
327
- throw err;
328
- }
329
- }
330
- // Best-effort removal of a partially prepared workspace dir so the next dispatch
331
- // tick can retry cleanly. Errors are swallowed (cleanup is non-fatal).
332
- async function unwindWorkspaceDir(wsPath) {
333
- try {
334
- await rm(wsPath, { recursive: true, force: true });
335
- }
336
- catch {
337
- // Best-effort cleanup.
338
- }
339
- }
340
- // Run the canonical TypeScript clone+branch+remote setup on a freshly created
341
- // workspace dir. On failure, unwinds the dir before rethrowing.
342
- async function runCanonicalSetup(identifier, wsPath, workflowDir, configRepo, configBaseBranch) {
343
- try {
344
- await setupWorkspaceDir(resolveSetupOptions({
345
- identifier,
346
- workspacePath: wsPath,
347
- workflowDir,
348
- configRepo,
349
- configBaseBranch,
350
- }));
351
- }
352
- catch (err) {
353
- await unwindWorkspaceDir(wsPath);
354
- throw err;
355
- }
356
- }
357
- export class WorkspaceManager {
358
- cfg;
359
- // Per-identifier in-flight promise map. Coalesces concurrent ensureFor
360
- // calls for the same identifier into a single setup pass so the dispatch
361
- // path (runner.ts) and the reconciler's create_workspace pass don't race
362
- // on `git clone --local` into the same dir. The promise is removed in a
363
- // finally block so the next pass (e.g. a re-dispatch after the workspace
364
- // was removed) re-enters cleanly. Keyed by sanitized workspace key for
365
- // identity with `workspacePathFor`.
366
- ensureInFlight = new Map();
367
- constructor(cfg) {
368
- this.cfg = cfg;
369
- }
370
- updateConfig(cfg) {
371
- this.cfg = cfg;
372
- }
373
- workspacePathFor(identifier) {
374
- const key = sanitizeWorkspaceKey(identifier);
375
- if (key.length === 0) {
376
- throw new WorkspaceError('invalid_workspace_key', `cannot sanitize identifier: ${identifier}`);
377
- }
378
- return path.join(this.cfg.workspace.root, key);
379
- }
380
- // Ensure the per-issue workspace directory exists. On first creation, runs
381
- // the canonical TypeScript `create_workspace` action (clone + branch +
382
- // optional origin/identity setup). The canonical clone+branch+remote work is
383
- // owned by `setupWorkspaceDir` and unit-tested independently; additional
384
- // per-VM tooling lives in the agent image, not in a workspace-setup shell.
385
- //
386
- // Concurrent callers for the same identifier (dispatch runner + reconciler
387
- // eager-create) coalesce via `ensureInFlight`: the second caller awaits
388
- // the first's result and observes `created_now: false` from the cached
389
- // workspace shape (since the first's promise already resolved with the
390
- // created-now=true outcome). Callers must NOT rely on `created_now`
391
- // distinguishing "I created it" from "someone else did, just before me";
392
- // the lock guarantees the canonical setup runs exactly once.
393
- async ensureFor(identifier, setup) {
394
- const key = sanitizeWorkspaceKey(identifier);
395
- const existing = this.ensureInFlight.get(key);
396
- if (existing)
397
- return existing;
398
- const p = this.doEnsureFor(identifier, setup);
399
- this.ensureInFlight.set(key, p);
400
- try {
401
- return await p;
402
- }
403
- finally {
404
- this.ensureInFlight.delete(key);
405
- }
406
- }
407
- async doEnsureFor(identifier, setup) {
408
- const workspaceRoot = this.cfg.workspace.root;
409
- await mkdir(workspaceRoot, { recursive: true });
410
- const wsPath = this.workspacePathFor(identifier);
411
- assertContained(workspaceRoot, wsPath);
412
- const createdNow = await ensureWorkspaceDirExists(wsPath);
413
- if (createdNow) {
414
- // Prefer the caller's dispatch-time snapshot (the runner pins it on the
415
- // RunningEntry) over live config so a WORKFLOW.md reload between dispatch
416
- // and this setup can't clone against a different base / restore a
417
- // different origin than the Done action context will use. The eager
418
- // reconciler create passes no snapshot and uses live config.
419
- await runCanonicalSetup(identifier, wsPath, this.cfg.workflow_dir, setup?.githubRepo !== undefined ? setup.githubRepo : this.cfg.workspace.github_repo, setup?.baseBranch ?? this.cfg.workspace.base_branch);
420
- }
421
- return {
422
- path: wsPath,
423
- workspace_key: sanitizeWorkspaceKey(identifier),
424
- created_now: createdNow,
425
- };
426
- }
427
- // Best-effort filesystem removal of the per-issue workspace dir. A symlink or
428
- // non-directory at the path is a no-op (containment safety).
429
- async remove(identifier) {
430
- const wsPath = this.workspacePathFor(identifier);
431
- assertContained(this.cfg.workspace.root, wsPath);
432
- try {
433
- const st = await lstat(wsPath);
434
- if (st.isSymbolicLink() || !st.isDirectory())
435
- return;
436
- }
437
- catch {
438
- return;
439
- }
440
- await rm(wsPath, { recursive: true, force: true });
441
- }
442
- }
443
- //# sourceMappingURL=workspace.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}