smol-symphony 0.3.0 → 0.3.2

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 (773) hide show
  1. package/dist/bin/symphony.js.map +1 -0
  2. package/dist/core/actions/context.js.map +1 -0
  3. package/dist/core/actions/parse.js.map +1 -0
  4. package/dist/core/actions/plan.js.map +1 -0
  5. package/dist/core/actions/predicates.js.map +1 -0
  6. package/dist/core/actions/run-fold.js.map +1 -0
  7. package/dist/core/actions/template.js.map +1 -0
  8. package/dist/core/cli/args.js.map +1 -0
  9. package/dist/core/coerce.js.map +1 -0
  10. package/dist/core/credential/account-id.js.map +1 -0
  11. package/dist/core/credential/adapter-config.js.map +1 -0
  12. package/dist/core/credential/availability.js.map +1 -0
  13. package/dist/core/credential/extract.js.map +1 -0
  14. package/dist/core/credential/fake-creds.js.map +1 -0
  15. package/dist/core/credential/identity.js.map +1 -0
  16. package/dist/core/credential/shape.js.map +1 -0
  17. package/dist/core/credential/strings.js.map +1 -0
  18. package/dist/core/doctor/checks.js.map +1 -0
  19. package/dist/core/git/result.js.map +1 -0
  20. package/dist/core/http/decisions.js.map +1 -0
  21. package/dist/core/http/render.js.map +1 -0
  22. package/dist/core/http/routes.js.map +1 -0
  23. package/dist/core/http/views.js.map +1 -0
  24. package/dist/core/image/managed-image.js.map +1 -0
  25. package/dist/core/issue/file.js.map +1 -0
  26. package/dist/core/issue/parse.js.map +1 -0
  27. package/dist/core/mcp/dispatch.js.map +1 -0
  28. package/dist/core/mcp/post-move.js.map +1 -0
  29. package/dist/core/mcp/protocol.js.map +1 -0
  30. package/dist/core/mcp/url.js.map +1 -0
  31. package/dist/core/path.js.map +1 -0
  32. package/dist/core/reconcile/image-decide.js.map +1 -0
  33. package/dist/core/reconcile/ledger.js.map +1 -0
  34. package/dist/core/reconcile/pr-classify.js.map +1 -0
  35. package/dist/core/reconcile/pr-decide.js.map +1 -0
  36. package/dist/core/reconcile/pr-loop.js.map +1 -0
  37. package/dist/core/reconcile/pr-notes.js.map +1 -0
  38. package/dist/core/reconcile/vm-decide.js.map +1 -0
  39. package/dist/core/reconcile/vm-reap.js.map +1 -0
  40. package/dist/core/reconcile/workspace-decide.js.map +1 -0
  41. package/dist/core/runlog/summary.js.map +1 -0
  42. package/dist/core/runner/dispatch-config.js.map +1 -0
  43. package/dist/core/runner/injection.js.map +1 -0
  44. package/dist/core/runner/mise.js.map +1 -0
  45. package/dist/core/runner/prompt.js.map +1 -0
  46. package/dist/core/runner/turn.js.map +1 -0
  47. package/dist/core/runner/vm-plan.js.map +1 -0
  48. package/dist/core/schedule/admission.js.map +1 -0
  49. package/dist/core/schedule/circuit-breaker.js.map +1 -0
  50. package/dist/core/schedule/eligibility.js.map +1 -0
  51. package/dist/core/schedule/reconcile-issue.js.map +1 -0
  52. package/dist/core/schedule/retry.js.map +1 -0
  53. package/dist/core/schedule/sleep-cycle.js.map +1 -0
  54. package/dist/core/schedule/slots.js.map +1 -0
  55. package/dist/core/schedule/tick.js.map +1 -0
  56. package/dist/core/schedule/token-fold.js.map +1 -0
  57. package/dist/core/state-resolve.js.map +1 -0
  58. package/dist/core/vm-guards.js.map +1 -0
  59. package/dist/core/workflow/derive.js.map +1 -0
  60. package/dist/core/workflow/parse.js.map +1 -0
  61. package/dist/core/workflow/prompt-probe.js.map +1 -0
  62. package/dist/core/workflow/validate.js.map +1 -0
  63. package/dist/core/workspace-key.js.map +1 -0
  64. package/dist/shell/actions-runner.js.map +1 -0
  65. package/dist/shell/adapter/adapter-registry.js.map +1 -0
  66. package/dist/shell/adapter/clock-random.js.map +1 -0
  67. package/dist/shell/adapter/gondolin-dispatch-helpers.js.map +1 -0
  68. package/dist/shell/adapter/gondolin-dispatch.js.map +1 -0
  69. package/dist/shell/adapter/gondolin-image-converter.js.map +1 -0
  70. package/dist/shell/adapter/gondolin-image-fetch.js.map +1 -0
  71. package/dist/shell/adapter/launcher-asset.js.map +1 -0
  72. package/dist/shell/adapter/mise-config-asset.js.map +1 -0
  73. package/dist/shell/adapter/workflow-loader.js.map +1 -0
  74. package/dist/shell/cli/doctor.js.map +1 -0
  75. package/dist/shell/effect-interpreter-families.js.map +1 -0
  76. package/dist/shell/effect-interpreter.js.map +1 -0
  77. package/dist/shell/interp/acp-frame.js.map +1 -0
  78. package/dist/shell/interp/acp-ws-conn.js.map +1 -0
  79. package/dist/shell/interp/acp-ws-frames.js.map +1 -0
  80. package/dist/shell/interp/acp-ws.js.map +1 -0
  81. package/dist/shell/interp/acp.js.map +1 -0
  82. package/dist/shell/interp/credential-defaults.js.map +1 -0
  83. package/dist/shell/interp/credential-hooks.js.map +1 -0
  84. package/dist/shell/interp/credential-registry.js.map +1 -0
  85. package/dist/shell/interp/credential.js.map +1 -0
  86. package/dist/shell/interp/gh.js.map +1 -0
  87. package/dist/shell/interp/git.js.map +1 -0
  88. package/dist/shell/interp/log.js.map +1 -0
  89. package/dist/shell/interp/process.js.map +1 -0
  90. package/dist/shell/interp/runlog.js.map +1 -0
  91. package/dist/shell/interp/timer.js.map +1 -0
  92. package/dist/shell/interp/tracker-disk.js.map +1 -0
  93. package/dist/shell/interp/tracker-parse.js.map +1 -0
  94. package/dist/shell/interp/tracker-scan.js.map +1 -0
  95. package/dist/shell/interp/tracker-write.js.map +1 -0
  96. package/dist/shell/interp/tracker.js.map +1 -0
  97. package/dist/shell/interp/tty.js.map +1 -0
  98. package/dist/shell/interp/vm.js.map +1 -0
  99. package/dist/shell/interp/workspace.js.map +1 -0
  100. package/dist/shell/main-acp.js.map +1 -0
  101. package/dist/shell/main-adapters.js.map +1 -0
  102. package/dist/shell/main-credential.js.map +1 -0
  103. package/dist/shell/main-doctor.js.map +1 -0
  104. package/dist/shell/main-entry.js.map +1 -0
  105. package/dist/shell/main-http-csrf.js.map +1 -0
  106. package/dist/shell/main-http-handler.js.map +1 -0
  107. package/dist/shell/main-http-mcp.js.map +1 -0
  108. package/dist/shell/main-http-views.js.map +1 -0
  109. package/dist/shell/main-http.js.map +1 -0
  110. package/dist/shell/main-loops.js.map +1 -0
  111. package/dist/shell/main-mcp.js.map +1 -0
  112. package/dist/shell/main-orchestrator.js.map +1 -0
  113. package/dist/shell/main-preflight.js.map +1 -0
  114. package/dist/shell/main-reconcilers-helpers.js.map +1 -0
  115. package/dist/shell/main-reconcilers-pr.js.map +1 -0
  116. package/dist/shell/main-reconcilers.js.map +1 -0
  117. package/dist/shell/main-runner.js.map +1 -0
  118. package/dist/shell/main-scaffold.js.map +1 -0
  119. package/dist/shell/main-shutdown.js.map +1 -0
  120. package/dist/shell/main-startup.js.map +1 -0
  121. package/dist/shell/main-substrates.js.map +1 -0
  122. package/dist/shell/main.js.map +1 -0
  123. package/dist/shell/orchestrator-feedback.js.map +1 -0
  124. package/dist/shell/orchestrator-image.js.map +1 -0
  125. package/dist/shell/orchestrator-loop.js.map +1 -0
  126. package/dist/shell/orchestrator-reconcile.js.map +1 -0
  127. package/dist/shell/reconciler-loop.js.map +1 -0
  128. package/dist/shell/runner-loop-turn.js.map +1 -0
  129. package/dist/shell/runner-loop.js.map +1 -0
  130. package/dist/shell/server/http.js.map +1 -0
  131. package/dist/shell/server/mcp-runtime-effects.js.map +1 -0
  132. package/dist/shell/server/mcp-runtime.js.map +1 -0
  133. package/dist/shell/workspace-key.js.map +1 -0
  134. package/dist/types/acp.js.map +1 -0
  135. package/dist/types/actions/plan.js.map +1 -0
  136. package/dist/types/actions/predicates.js.map +1 -0
  137. package/dist/types/actions/run-fold.js.map +1 -0
  138. package/dist/types/actions.js.map +1 -0
  139. package/dist/types/adapter/clock-random.js.map +1 -0
  140. package/dist/types/adapter/gondolin-image-converter.js.map +1 -0
  141. package/dist/types/adapter/gondolin-image-fetch.js.map +1 -0
  142. package/dist/types/adapter/workflow-loader.js.map +1 -0
  143. package/dist/types/cli/args.js.map +1 -0
  144. package/dist/types/config.js.map +1 -0
  145. package/dist/types/credential-interp.js.map +1 -0
  146. package/dist/types/credentials.js.map +1 -0
  147. package/dist/types/doctor.js.map +1 -0
  148. package/dist/types/domain.js.map +1 -0
  149. package/dist/types/effect.js.map +1 -0
  150. package/dist/types/errors.js.map +1 -0
  151. package/dist/types/http/decisions.js.map +1 -0
  152. package/dist/types/http/render.js.map +1 -0
  153. package/dist/types/http/views.js.map +1 -0
  154. package/dist/types/http.js.map +1 -0
  155. package/dist/types/image/managed-image.js.map +1 -0
  156. package/dist/types/interp/effect-interpreter.js.map +1 -0
  157. package/dist/types/interp/tracker.js.map +1 -0
  158. package/dist/types/issue/file.js.map +1 -0
  159. package/dist/types/issue/parse.js.map +1 -0
  160. package/dist/types/main-acp.js.map +1 -0
  161. package/dist/types/main-adapters.js.map +1 -0
  162. package/dist/types/main-credential.js.map +1 -0
  163. package/dist/types/main-doctor.js.map +1 -0
  164. package/dist/types/main-http-handler.js.map +1 -0
  165. package/dist/types/main-http.js.map +1 -0
  166. package/dist/types/main-loops.js.map +1 -0
  167. package/dist/types/main-mcp.js.map +1 -0
  168. package/dist/types/main-orchestrator.js.map +1 -0
  169. package/dist/types/main-reconcilers.js.map +1 -0
  170. package/dist/types/main-runner.js.map +1 -0
  171. package/dist/types/main-startup.js.map +1 -0
  172. package/dist/types/main-substrates.js.map +1 -0
  173. package/dist/types/mcp/dispatch.js.map +1 -0
  174. package/dist/types/mcp/post-move.js.map +1 -0
  175. package/dist/types/mcp.js.map +1 -0
  176. package/dist/types/ports.js.map +1 -0
  177. package/dist/types/reconcile/image-decide.js.map +1 -0
  178. package/dist/types/reconcile/ledger.js.map +1 -0
  179. package/dist/types/reconcile/pr-loop.js.map +1 -0
  180. package/dist/types/reconcile/vm-reap.js.map +1 -0
  181. package/dist/types/reconcile/workspace-decide.js.map +1 -0
  182. package/dist/types/reconcile.js.map +1 -0
  183. package/dist/types/runlog.js.map +1 -0
  184. package/dist/types/runner/actions-runner.js.map +1 -0
  185. package/dist/types/runner/gondolin-dispatch.js.map +1 -0
  186. package/dist/types/runner/injection.js.map +1 -0
  187. package/dist/types/runner/runner-loop.js.map +1 -0
  188. package/dist/types/runner/turn.js.map +1 -0
  189. package/dist/types/runner/vm-plan.js.map +1 -0
  190. package/dist/types/runtime.js.map +1 -0
  191. package/dist/types/schedule/admission.js.map +1 -0
  192. package/dist/types/schedule/circuit-breaker.js.map +1 -0
  193. package/dist/types/schedule/eligibility.js.map +1 -0
  194. package/dist/types/schedule/orchestrator-loop.js.map +1 -0
  195. package/dist/types/schedule/sleep-cycle.js.map +1 -0
  196. package/dist/types/schedule/slots.js.map +1 -0
  197. package/dist/types/schedule/tick.js.map +1 -0
  198. package/dist/types/server/mcp-runtime.js.map +1 -0
  199. package/dist/types/workflow/parse.js.map +1 -0
  200. package/package.json +3 -3
  201. package/scripts/postinstall.mjs +24 -1
  202. package/dist/src/bin/symphony.js.map +0 -1
  203. package/dist/src/core/actions/context.js.map +0 -1
  204. package/dist/src/core/actions/parse.js.map +0 -1
  205. package/dist/src/core/actions/plan.js.map +0 -1
  206. package/dist/src/core/actions/predicates.js.map +0 -1
  207. package/dist/src/core/actions/run-fold.js.map +0 -1
  208. package/dist/src/core/actions/template.js.map +0 -1
  209. package/dist/src/core/cli/args.js.map +0 -1
  210. package/dist/src/core/coerce.js.map +0 -1
  211. package/dist/src/core/credential/account-id.js.map +0 -1
  212. package/dist/src/core/credential/adapter-config.js.map +0 -1
  213. package/dist/src/core/credential/availability.js.map +0 -1
  214. package/dist/src/core/credential/extract.js.map +0 -1
  215. package/dist/src/core/credential/fake-creds.js.map +0 -1
  216. package/dist/src/core/credential/identity.js.map +0 -1
  217. package/dist/src/core/credential/shape.js.map +0 -1
  218. package/dist/src/core/credential/strings.js.map +0 -1
  219. package/dist/src/core/doctor/checks.js.map +0 -1
  220. package/dist/src/core/git/result.js.map +0 -1
  221. package/dist/src/core/http/decisions.js.map +0 -1
  222. package/dist/src/core/http/render.js.map +0 -1
  223. package/dist/src/core/http/routes.js.map +0 -1
  224. package/dist/src/core/http/views.js.map +0 -1
  225. package/dist/src/core/image/managed-image.js.map +0 -1
  226. package/dist/src/core/issue/file.js.map +0 -1
  227. package/dist/src/core/issue/parse.js.map +0 -1
  228. package/dist/src/core/mcp/dispatch.js.map +0 -1
  229. package/dist/src/core/mcp/post-move.js.map +0 -1
  230. package/dist/src/core/mcp/protocol.js.map +0 -1
  231. package/dist/src/core/mcp/url.js.map +0 -1
  232. package/dist/src/core/path.js.map +0 -1
  233. package/dist/src/core/reconcile/image-decide.js.map +0 -1
  234. package/dist/src/core/reconcile/ledger.js.map +0 -1
  235. package/dist/src/core/reconcile/pr-classify.js.map +0 -1
  236. package/dist/src/core/reconcile/pr-decide.js.map +0 -1
  237. package/dist/src/core/reconcile/pr-loop.js.map +0 -1
  238. package/dist/src/core/reconcile/pr-notes.js.map +0 -1
  239. package/dist/src/core/reconcile/vm-decide.js.map +0 -1
  240. package/dist/src/core/reconcile/vm-reap.js.map +0 -1
  241. package/dist/src/core/reconcile/workspace-decide.js.map +0 -1
  242. package/dist/src/core/runlog/summary.js.map +0 -1
  243. package/dist/src/core/runner/dispatch-config.js.map +0 -1
  244. package/dist/src/core/runner/injection.js.map +0 -1
  245. package/dist/src/core/runner/mise.js.map +0 -1
  246. package/dist/src/core/runner/prompt.js.map +0 -1
  247. package/dist/src/core/runner/turn.js.map +0 -1
  248. package/dist/src/core/runner/vm-plan.js.map +0 -1
  249. package/dist/src/core/schedule/admission.js.map +0 -1
  250. package/dist/src/core/schedule/circuit-breaker.js.map +0 -1
  251. package/dist/src/core/schedule/eligibility.js.map +0 -1
  252. package/dist/src/core/schedule/reconcile-issue.js.map +0 -1
  253. package/dist/src/core/schedule/retry.js.map +0 -1
  254. package/dist/src/core/schedule/sleep-cycle.js.map +0 -1
  255. package/dist/src/core/schedule/slots.js.map +0 -1
  256. package/dist/src/core/schedule/tick.js.map +0 -1
  257. package/dist/src/core/schedule/token-fold.js.map +0 -1
  258. package/dist/src/core/state-resolve.js.map +0 -1
  259. package/dist/src/core/vm-guards.js.map +0 -1
  260. package/dist/src/core/workflow/derive.js.map +0 -1
  261. package/dist/src/core/workflow/parse.js.map +0 -1
  262. package/dist/src/core/workflow/prompt-probe.js.map +0 -1
  263. package/dist/src/core/workflow/validate.js.map +0 -1
  264. package/dist/src/core/workspace-key.js.map +0 -1
  265. package/dist/src/shell/actions-runner.js.map +0 -1
  266. package/dist/src/shell/adapter/adapter-registry.js.map +0 -1
  267. package/dist/src/shell/adapter/clock-random.js.map +0 -1
  268. package/dist/src/shell/adapter/gondolin-dispatch-helpers.js.map +0 -1
  269. package/dist/src/shell/adapter/gondolin-dispatch.js.map +0 -1
  270. package/dist/src/shell/adapter/gondolin-image-converter.js.map +0 -1
  271. package/dist/src/shell/adapter/gondolin-image-fetch.js.map +0 -1
  272. package/dist/src/shell/adapter/launcher-asset.js.map +0 -1
  273. package/dist/src/shell/adapter/mise-config-asset.js.map +0 -1
  274. package/dist/src/shell/adapter/workflow-loader.js.map +0 -1
  275. package/dist/src/shell/cli/doctor.js.map +0 -1
  276. package/dist/src/shell/effect-interpreter-families.js.map +0 -1
  277. package/dist/src/shell/effect-interpreter.js.map +0 -1
  278. package/dist/src/shell/interp/acp-frame.js.map +0 -1
  279. package/dist/src/shell/interp/acp-ws-conn.js.map +0 -1
  280. package/dist/src/shell/interp/acp-ws-frames.js.map +0 -1
  281. package/dist/src/shell/interp/acp-ws.js.map +0 -1
  282. package/dist/src/shell/interp/acp.js.map +0 -1
  283. package/dist/src/shell/interp/credential-defaults.js.map +0 -1
  284. package/dist/src/shell/interp/credential-hooks.js.map +0 -1
  285. package/dist/src/shell/interp/credential-registry.js.map +0 -1
  286. package/dist/src/shell/interp/credential.js.map +0 -1
  287. package/dist/src/shell/interp/gh.js.map +0 -1
  288. package/dist/src/shell/interp/git.js.map +0 -1
  289. package/dist/src/shell/interp/log.js.map +0 -1
  290. package/dist/src/shell/interp/process.js.map +0 -1
  291. package/dist/src/shell/interp/runlog.js.map +0 -1
  292. package/dist/src/shell/interp/timer.js.map +0 -1
  293. package/dist/src/shell/interp/tracker-disk.js.map +0 -1
  294. package/dist/src/shell/interp/tracker-parse.js.map +0 -1
  295. package/dist/src/shell/interp/tracker-scan.js.map +0 -1
  296. package/dist/src/shell/interp/tracker-write.js.map +0 -1
  297. package/dist/src/shell/interp/tracker.js.map +0 -1
  298. package/dist/src/shell/interp/tty.js.map +0 -1
  299. package/dist/src/shell/interp/vm.js.map +0 -1
  300. package/dist/src/shell/interp/workspace.js.map +0 -1
  301. package/dist/src/shell/main-acp.js.map +0 -1
  302. package/dist/src/shell/main-adapters.js.map +0 -1
  303. package/dist/src/shell/main-credential.js.map +0 -1
  304. package/dist/src/shell/main-doctor.js.map +0 -1
  305. package/dist/src/shell/main-entry.js.map +0 -1
  306. package/dist/src/shell/main-http-csrf.js.map +0 -1
  307. package/dist/src/shell/main-http-handler.js.map +0 -1
  308. package/dist/src/shell/main-http-mcp.js.map +0 -1
  309. package/dist/src/shell/main-http-views.js.map +0 -1
  310. package/dist/src/shell/main-http.js.map +0 -1
  311. package/dist/src/shell/main-loops.js.map +0 -1
  312. package/dist/src/shell/main-mcp.js.map +0 -1
  313. package/dist/src/shell/main-orchestrator.js.map +0 -1
  314. package/dist/src/shell/main-preflight.js.map +0 -1
  315. package/dist/src/shell/main-reconcilers-helpers.js.map +0 -1
  316. package/dist/src/shell/main-reconcilers-pr.js.map +0 -1
  317. package/dist/src/shell/main-reconcilers.js.map +0 -1
  318. package/dist/src/shell/main-runner.js.map +0 -1
  319. package/dist/src/shell/main-scaffold.js.map +0 -1
  320. package/dist/src/shell/main-shutdown.js.map +0 -1
  321. package/dist/src/shell/main-startup.js.map +0 -1
  322. package/dist/src/shell/main-substrates.js.map +0 -1
  323. package/dist/src/shell/main.js.map +0 -1
  324. package/dist/src/shell/orchestrator-feedback.js.map +0 -1
  325. package/dist/src/shell/orchestrator-image.js.map +0 -1
  326. package/dist/src/shell/orchestrator-loop.js.map +0 -1
  327. package/dist/src/shell/orchestrator-reconcile.js.map +0 -1
  328. package/dist/src/shell/reconciler-loop.js.map +0 -1
  329. package/dist/src/shell/runner-loop-turn.js.map +0 -1
  330. package/dist/src/shell/runner-loop.js.map +0 -1
  331. package/dist/src/shell/server/http.js.map +0 -1
  332. package/dist/src/shell/server/mcp-runtime-effects.js.map +0 -1
  333. package/dist/src/shell/server/mcp-runtime.js.map +0 -1
  334. package/dist/src/shell/workspace-key.js.map +0 -1
  335. package/dist/src/types/acp.js.map +0 -1
  336. package/dist/src/types/actions/plan.js.map +0 -1
  337. package/dist/src/types/actions/predicates.js.map +0 -1
  338. package/dist/src/types/actions/run-fold.js.map +0 -1
  339. package/dist/src/types/actions.js.map +0 -1
  340. package/dist/src/types/adapter/clock-random.js.map +0 -1
  341. package/dist/src/types/adapter/gondolin-image-converter.js.map +0 -1
  342. package/dist/src/types/adapter/gondolin-image-fetch.js.map +0 -1
  343. package/dist/src/types/adapter/workflow-loader.js.map +0 -1
  344. package/dist/src/types/cli/args.js.map +0 -1
  345. package/dist/src/types/config.js.map +0 -1
  346. package/dist/src/types/credential-interp.js.map +0 -1
  347. package/dist/src/types/credentials.js.map +0 -1
  348. package/dist/src/types/doctor.js.map +0 -1
  349. package/dist/src/types/domain.js.map +0 -1
  350. package/dist/src/types/effect.js.map +0 -1
  351. package/dist/src/types/errors.js.map +0 -1
  352. package/dist/src/types/http/decisions.js.map +0 -1
  353. package/dist/src/types/http/render.js.map +0 -1
  354. package/dist/src/types/http/views.js.map +0 -1
  355. package/dist/src/types/http.js.map +0 -1
  356. package/dist/src/types/image/managed-image.js.map +0 -1
  357. package/dist/src/types/interp/effect-interpreter.js.map +0 -1
  358. package/dist/src/types/interp/tracker.js.map +0 -1
  359. package/dist/src/types/issue/file.js.map +0 -1
  360. package/dist/src/types/issue/parse.js.map +0 -1
  361. package/dist/src/types/main-acp.js.map +0 -1
  362. package/dist/src/types/main-adapters.js.map +0 -1
  363. package/dist/src/types/main-credential.js.map +0 -1
  364. package/dist/src/types/main-doctor.js.map +0 -1
  365. package/dist/src/types/main-http-handler.js.map +0 -1
  366. package/dist/src/types/main-http.js.map +0 -1
  367. package/dist/src/types/main-loops.js.map +0 -1
  368. package/dist/src/types/main-mcp.js.map +0 -1
  369. package/dist/src/types/main-orchestrator.js.map +0 -1
  370. package/dist/src/types/main-reconcilers.js.map +0 -1
  371. package/dist/src/types/main-runner.js.map +0 -1
  372. package/dist/src/types/main-startup.js.map +0 -1
  373. package/dist/src/types/main-substrates.js.map +0 -1
  374. package/dist/src/types/mcp/dispatch.js.map +0 -1
  375. package/dist/src/types/mcp/post-move.js.map +0 -1
  376. package/dist/src/types/mcp.js.map +0 -1
  377. package/dist/src/types/ports.js.map +0 -1
  378. package/dist/src/types/reconcile/image-decide.js.map +0 -1
  379. package/dist/src/types/reconcile/ledger.js.map +0 -1
  380. package/dist/src/types/reconcile/pr-loop.js.map +0 -1
  381. package/dist/src/types/reconcile/vm-reap.js.map +0 -1
  382. package/dist/src/types/reconcile/workspace-decide.js.map +0 -1
  383. package/dist/src/types/reconcile.js.map +0 -1
  384. package/dist/src/types/runlog.js.map +0 -1
  385. package/dist/src/types/runner/actions-runner.js.map +0 -1
  386. package/dist/src/types/runner/gondolin-dispatch.js.map +0 -1
  387. package/dist/src/types/runner/injection.js.map +0 -1
  388. package/dist/src/types/runner/runner-loop.js.map +0 -1
  389. package/dist/src/types/runner/turn.js.map +0 -1
  390. package/dist/src/types/runner/vm-plan.js.map +0 -1
  391. package/dist/src/types/runtime.js.map +0 -1
  392. package/dist/src/types/schedule/admission.js.map +0 -1
  393. package/dist/src/types/schedule/circuit-breaker.js.map +0 -1
  394. package/dist/src/types/schedule/eligibility.js.map +0 -1
  395. package/dist/src/types/schedule/orchestrator-loop.js.map +0 -1
  396. package/dist/src/types/schedule/sleep-cycle.js.map +0 -1
  397. package/dist/src/types/schedule/slots.js.map +0 -1
  398. package/dist/src/types/schedule/tick.js.map +0 -1
  399. package/dist/src/types/server/mcp-runtime.js.map +0 -1
  400. package/dist/src/types/workflow/parse.js.map +0 -1
  401. package/dist/tests/core/account-id.test.js +0 -35
  402. package/dist/tests/core/account-id.test.js.map +0 -1
  403. package/dist/tests/core/actions-parse.test.js +0 -176
  404. package/dist/tests/core/actions-parse.test.js.map +0 -1
  405. package/dist/tests/core/adapter-config.test.js +0 -133
  406. package/dist/tests/core/adapter-config.test.js.map +0 -1
  407. package/dist/tests/core/admission.test.js +0 -215
  408. package/dist/tests/core/admission.test.js.map +0 -1
  409. package/dist/tests/core/args.test.js +0 -132
  410. package/dist/tests/core/args.test.js.map +0 -1
  411. package/dist/tests/core/availability.test.js +0 -62
  412. package/dist/tests/core/availability.test.js.map +0 -1
  413. package/dist/tests/core/checks.test.js +0 -395
  414. package/dist/tests/core/checks.test.js.map +0 -1
  415. package/dist/tests/core/circuit-breaker.test.js +0 -172
  416. package/dist/tests/core/circuit-breaker.test.js.map +0 -1
  417. package/dist/tests/core/coerce.test.js +0 -87
  418. package/dist/tests/core/coerce.test.js.map +0 -1
  419. package/dist/tests/core/context.test.js +0 -228
  420. package/dist/tests/core/context.test.js.map +0 -1
  421. package/dist/tests/core/decisions.test.js +0 -310
  422. package/dist/tests/core/decisions.test.js.map +0 -1
  423. package/dist/tests/core/derive.test.js +0 -205
  424. package/dist/tests/core/derive.test.js.map +0 -1
  425. package/dist/tests/core/dispatch-config.test.js +0 -164
  426. package/dist/tests/core/dispatch-config.test.js.map +0 -1
  427. package/dist/tests/core/dispatch.test.js +0 -302
  428. package/dist/tests/core/dispatch.test.js.map +0 -1
  429. package/dist/tests/core/eligibility.test.js +0 -163
  430. package/dist/tests/core/eligibility.test.js.map +0 -1
  431. package/dist/tests/core/extract.test.js +0 -139
  432. package/dist/tests/core/extract.test.js.map +0 -1
  433. package/dist/tests/core/fake-creds.test.js +0 -134
  434. package/dist/tests/core/fake-creds.test.js.map +0 -1
  435. package/dist/tests/core/file.test.js +0 -197
  436. package/dist/tests/core/file.test.js.map +0 -1
  437. package/dist/tests/core/git-result.test.js +0 -113
  438. package/dist/tests/core/git-result.test.js.map +0 -1
  439. package/dist/tests/core/identity.test.js +0 -180
  440. package/dist/tests/core/identity.test.js.map +0 -1
  441. package/dist/tests/core/image-decide.test.js +0 -59
  442. package/dist/tests/core/image-decide.test.js.map +0 -1
  443. package/dist/tests/core/injection.test.js +0 -163
  444. package/dist/tests/core/injection.test.js.map +0 -1
  445. package/dist/tests/core/ledger.test.js +0 -218
  446. package/dist/tests/core/ledger.test.js.map +0 -1
  447. package/dist/tests/core/managed-image.test.js +0 -68
  448. package/dist/tests/core/managed-image.test.js.map +0 -1
  449. package/dist/tests/core/mise.test.js +0 -138
  450. package/dist/tests/core/mise.test.js.map +0 -1
  451. package/dist/tests/core/parse.test.js +0 -174
  452. package/dist/tests/core/parse.test.js.map +0 -1
  453. package/dist/tests/core/path.test.js +0 -50
  454. package/dist/tests/core/path.test.js.map +0 -1
  455. package/dist/tests/core/plan.test.js +0 -218
  456. package/dist/tests/core/plan.test.js.map +0 -1
  457. package/dist/tests/core/post-move.test.js +0 -162
  458. package/dist/tests/core/post-move.test.js.map +0 -1
  459. package/dist/tests/core/pr-classify.test.js +0 -117
  460. package/dist/tests/core/pr-classify.test.js.map +0 -1
  461. package/dist/tests/core/pr-decide.test.js +0 -298
  462. package/dist/tests/core/pr-decide.test.js.map +0 -1
  463. package/dist/tests/core/pr-loop.test.js +0 -301
  464. package/dist/tests/core/pr-loop.test.js.map +0 -1
  465. package/dist/tests/core/pr-notes.test.js +0 -165
  466. package/dist/tests/core/pr-notes.test.js.map +0 -1
  467. package/dist/tests/core/predicates.test.js +0 -154
  468. package/dist/tests/core/predicates.test.js.map +0 -1
  469. package/dist/tests/core/prompt.test.js +0 -189
  470. package/dist/tests/core/prompt.test.js.map +0 -1
  471. package/dist/tests/core/protocol.test.js +0 -195
  472. package/dist/tests/core/protocol.test.js.map +0 -1
  473. package/dist/tests/core/reconcile-issue.test.js +0 -116
  474. package/dist/tests/core/reconcile-issue.test.js.map +0 -1
  475. package/dist/tests/core/render.test.js +0 -549
  476. package/dist/tests/core/render.test.js.map +0 -1
  477. package/dist/tests/core/retry.test.js +0 -186
  478. package/dist/tests/core/retry.test.js.map +0 -1
  479. package/dist/tests/core/routes.test.js +0 -247
  480. package/dist/tests/core/routes.test.js.map +0 -1
  481. package/dist/tests/core/run-fold.test.js +0 -299
  482. package/dist/tests/core/run-fold.test.js.map +0 -1
  483. package/dist/tests/core/shape.test.js +0 -185
  484. package/dist/tests/core/shape.test.js.map +0 -1
  485. package/dist/tests/core/sleep-cycle.test.js +0 -150
  486. package/dist/tests/core/sleep-cycle.test.js.map +0 -1
  487. package/dist/tests/core/slots.test.js +0 -201
  488. package/dist/tests/core/slots.test.js.map +0 -1
  489. package/dist/tests/core/state-resolve.test.js +0 -80
  490. package/dist/tests/core/state-resolve.test.js.map +0 -1
  491. package/dist/tests/core/summary.test.js +0 -200
  492. package/dist/tests/core/summary.test.js.map +0 -1
  493. package/dist/tests/core/template.test.js +0 -116
  494. package/dist/tests/core/template.test.js.map +0 -1
  495. package/dist/tests/core/tick.test.js +0 -558
  496. package/dist/tests/core/tick.test.js.map +0 -1
  497. package/dist/tests/core/token-fold.test.js +0 -176
  498. package/dist/tests/core/token-fold.test.js.map +0 -1
  499. package/dist/tests/core/turn.test.js +0 -388
  500. package/dist/tests/core/turn.test.js.map +0 -1
  501. package/dist/tests/core/url.test.js +0 -118
  502. package/dist/tests/core/url.test.js.map +0 -1
  503. package/dist/tests/core/validate.test.js +0 -247
  504. package/dist/tests/core/validate.test.js.map +0 -1
  505. package/dist/tests/core/views.test.js +0 -252
  506. package/dist/tests/core/views.test.js.map +0 -1
  507. package/dist/tests/core/vm-decide.test.js +0 -110
  508. package/dist/tests/core/vm-decide.test.js.map +0 -1
  509. package/dist/tests/core/vm-guards.test.js +0 -153
  510. package/dist/tests/core/vm-guards.test.js.map +0 -1
  511. package/dist/tests/core/vm-plan.test.js +0 -332
  512. package/dist/tests/core/vm-plan.test.js.map +0 -1
  513. package/dist/tests/core/vm-reap.test.js +0 -196
  514. package/dist/tests/core/vm-reap.test.js.map +0 -1
  515. package/dist/tests/core/workflow-parse.test.js +0 -493
  516. package/dist/tests/core/workflow-parse.test.js.map +0 -1
  517. package/dist/tests/core/workspace-decide.test.js +0 -236
  518. package/dist/tests/core/workspace-decide.test.js.map +0 -1
  519. package/dist/tests/helpers/fixtures.js +0 -167
  520. package/dist/tests/helpers/fixtures.js.map +0 -1
  521. package/dist/tests/shell/acp-substrate.test.js +0 -101
  522. package/dist/tests/shell/acp-substrate.test.js.map +0 -1
  523. package/dist/tests/shell/actions-runner-push.test.js +0 -203
  524. package/dist/tests/shell/actions-runner-push.test.js.map +0 -1
  525. package/dist/tests/shell/credential-hooks.test.js +0 -36
  526. package/dist/tests/shell/credential-hooks.test.js.map +0 -1
  527. package/dist/tests/shell/credential-registry.test.js +0 -165
  528. package/dist/tests/shell/credential-registry.test.js.map +0 -1
  529. package/dist/tests/shell/credential-substrate.test.js +0 -179
  530. package/dist/tests/shell/credential-substrate.test.js.map +0 -1
  531. package/dist/tests/shell/dockerfile-mise-pin.test.js +0 -51
  532. package/dist/tests/shell/dockerfile-mise-pin.test.js.map +0 -1
  533. package/dist/tests/shell/doctor.test.js +0 -101
  534. package/dist/tests/shell/doctor.test.js.map +0 -1
  535. package/dist/tests/shell/effect-vm-create.test.js +0 -52
  536. package/dist/tests/shell/effect-vm-create.test.js.map +0 -1
  537. package/dist/tests/shell/gh-port.test.js +0 -63
  538. package/dist/tests/shell/gh-port.test.js.map +0 -1
  539. package/dist/tests/shell/gondolin-dispatch-guard.test.js +0 -144
  540. package/dist/tests/shell/gondolin-dispatch-guard.test.js.map +0 -1
  541. package/dist/tests/shell/gondolin-dispatch-shquote.test.js +0 -168
  542. package/dist/tests/shell/gondolin-dispatch-shquote.test.js.map +0 -1
  543. package/dist/tests/shell/gondolin-image-converter.test.js +0 -208
  544. package/dist/tests/shell/gondolin-image-converter.test.js.map +0 -1
  545. package/dist/tests/shell/gondolin-image-fetch.test.js +0 -93
  546. package/dist/tests/shell/gondolin-image-fetch.test.js.map +0 -1
  547. package/dist/tests/shell/http-handler.test.js +0 -608
  548. package/dist/tests/shell/http-handler.test.js.map +0 -1
  549. package/dist/tests/shell/http-server.test.js +0 -53
  550. package/dist/tests/shell/http-server.test.js.map +0 -1
  551. package/dist/tests/shell/mcp-runtime.test.js +0 -366
  552. package/dist/tests/shell/mcp-runtime.test.js.map +0 -1
  553. package/dist/tests/shell/mise-config-asset.test.js +0 -87
  554. package/dist/tests/shell/mise-config-asset.test.js.map +0 -1
  555. package/dist/tests/shell/orchestrator-loop.test.js +0 -583
  556. package/dist/tests/shell/orchestrator-loop.test.js.map +0 -1
  557. package/dist/tests/shell/reconciler-passes.test.js +0 -314
  558. package/dist/tests/shell/reconciler-passes.test.js.map +0 -1
  559. package/dist/tests/shell/runner-loop-turn.test.js +0 -97
  560. package/dist/tests/shell/runner-loop-turn.test.js.map +0 -1
  561. package/dist/tests/shell/runner-slice.test.js +0 -536
  562. package/dist/tests/shell/runner-slice.test.js.map +0 -1
  563. package/dist/tests/shell/scaffold.test.js +0 -65
  564. package/dist/tests/shell/scaffold.test.js.map +0 -1
  565. package/dist/tests/shell/tick-config.test.js +0 -83
  566. package/dist/tests/shell/tick-config.test.js.map +0 -1
  567. package/dist/tests/shell/tracker-parse-dates.test.js +0 -44
  568. package/dist/tests/shell/tracker-parse-dates.test.js.map +0 -1
  569. package/dist/tests/shell/tracker-write-issue.test.js +0 -154
  570. package/dist/tests/shell/tracker-write-issue.test.js.map +0 -1
  571. package/dist/tests/shell/workflow-prompt-split.test.js +0 -208
  572. package/dist/tests/shell/workflow-prompt-split.test.js.map +0 -1
  573. package/dist/tests/shell/workspace-live-config.test.js +0 -140
  574. package/dist/tests/shell/workspace-live-config.test.js.map +0 -1
  575. /package/dist/{src/bin → bin}/symphony.js +0 -0
  576. /package/dist/{src/core → core}/actions/context.js +0 -0
  577. /package/dist/{src/core → core}/actions/parse.js +0 -0
  578. /package/dist/{src/core → core}/actions/plan.js +0 -0
  579. /package/dist/{src/core → core}/actions/predicates.js +0 -0
  580. /package/dist/{src/core → core}/actions/run-fold.js +0 -0
  581. /package/dist/{src/core → core}/actions/template.js +0 -0
  582. /package/dist/{src/core → core}/cli/args.js +0 -0
  583. /package/dist/{src/core → core}/coerce.js +0 -0
  584. /package/dist/{src/core → core}/credential/account-id.js +0 -0
  585. /package/dist/{src/core → core}/credential/adapter-config.js +0 -0
  586. /package/dist/{src/core → core}/credential/availability.js +0 -0
  587. /package/dist/{src/core → core}/credential/extract.js +0 -0
  588. /package/dist/{src/core → core}/credential/fake-creds.js +0 -0
  589. /package/dist/{src/core → core}/credential/identity.js +0 -0
  590. /package/dist/{src/core → core}/credential/shape.js +0 -0
  591. /package/dist/{src/core → core}/credential/strings.js +0 -0
  592. /package/dist/{src/core → core}/doctor/checks.js +0 -0
  593. /package/dist/{src/core → core}/git/result.js +0 -0
  594. /package/dist/{src/core → core}/http/decisions.js +0 -0
  595. /package/dist/{src/core → core}/http/render.js +0 -0
  596. /package/dist/{src/core → core}/http/routes.js +0 -0
  597. /package/dist/{src/core → core}/http/views.js +0 -0
  598. /package/dist/{src/core → core}/image/managed-image.js +0 -0
  599. /package/dist/{src/core → core}/issue/file.js +0 -0
  600. /package/dist/{src/core → core}/issue/parse.js +0 -0
  601. /package/dist/{src/core → core}/mcp/dispatch.js +0 -0
  602. /package/dist/{src/core → core}/mcp/post-move.js +0 -0
  603. /package/dist/{src/core → core}/mcp/protocol.js +0 -0
  604. /package/dist/{src/core → core}/mcp/url.js +0 -0
  605. /package/dist/{src/core → core}/path.js +0 -0
  606. /package/dist/{src/core → core}/reconcile/image-decide.js +0 -0
  607. /package/dist/{src/core → core}/reconcile/ledger.js +0 -0
  608. /package/dist/{src/core → core}/reconcile/pr-classify.js +0 -0
  609. /package/dist/{src/core → core}/reconcile/pr-decide.js +0 -0
  610. /package/dist/{src/core → core}/reconcile/pr-loop.js +0 -0
  611. /package/dist/{src/core → core}/reconcile/pr-notes.js +0 -0
  612. /package/dist/{src/core → core}/reconcile/vm-decide.js +0 -0
  613. /package/dist/{src/core → core}/reconcile/vm-reap.js +0 -0
  614. /package/dist/{src/core → core}/reconcile/workspace-decide.js +0 -0
  615. /package/dist/{src/core → core}/runlog/summary.js +0 -0
  616. /package/dist/{src/core → core}/runner/dispatch-config.js +0 -0
  617. /package/dist/{src/core → core}/runner/injection.js +0 -0
  618. /package/dist/{src/core → core}/runner/mise.js +0 -0
  619. /package/dist/{src/core → core}/runner/prompt.js +0 -0
  620. /package/dist/{src/core → core}/runner/turn.js +0 -0
  621. /package/dist/{src/core → core}/runner/vm-plan.js +0 -0
  622. /package/dist/{src/core → core}/schedule/admission.js +0 -0
  623. /package/dist/{src/core → core}/schedule/circuit-breaker.js +0 -0
  624. /package/dist/{src/core → core}/schedule/eligibility.js +0 -0
  625. /package/dist/{src/core → core}/schedule/reconcile-issue.js +0 -0
  626. /package/dist/{src/core → core}/schedule/retry.js +0 -0
  627. /package/dist/{src/core → core}/schedule/sleep-cycle.js +0 -0
  628. /package/dist/{src/core → core}/schedule/slots.js +0 -0
  629. /package/dist/{src/core → core}/schedule/tick.js +0 -0
  630. /package/dist/{src/core → core}/schedule/token-fold.js +0 -0
  631. /package/dist/{src/core → core}/state-resolve.js +0 -0
  632. /package/dist/{src/core → core}/vm-guards.js +0 -0
  633. /package/dist/{src/core → core}/workflow/derive.js +0 -0
  634. /package/dist/{src/core → core}/workflow/parse.js +0 -0
  635. /package/dist/{src/core → core}/workflow/prompt-probe.js +0 -0
  636. /package/dist/{src/core → core}/workflow/validate.js +0 -0
  637. /package/dist/{src/core → core}/workspace-key.js +0 -0
  638. /package/dist/{src/shell → shell}/actions-runner.js +0 -0
  639. /package/dist/{src/shell → shell}/adapter/adapter-registry.js +0 -0
  640. /package/dist/{src/shell → shell}/adapter/clock-random.js +0 -0
  641. /package/dist/{src/shell → shell}/adapter/gondolin-dispatch-helpers.js +0 -0
  642. /package/dist/{src/shell → shell}/adapter/gondolin-dispatch.js +0 -0
  643. /package/dist/{src/shell → shell}/adapter/gondolin-image-converter.js +0 -0
  644. /package/dist/{src/shell → shell}/adapter/gondolin-image-fetch.js +0 -0
  645. /package/dist/{src/shell → shell}/adapter/launcher-asset.js +0 -0
  646. /package/dist/{src/shell → shell}/adapter/mise-config-asset.js +0 -0
  647. /package/dist/{src/shell → shell}/adapter/workflow-loader.js +0 -0
  648. /package/dist/{src/shell → shell}/cli/doctor.js +0 -0
  649. /package/dist/{src/shell → shell}/effect-interpreter-families.js +0 -0
  650. /package/dist/{src/shell → shell}/effect-interpreter.js +0 -0
  651. /package/dist/{src/shell → shell}/interp/acp-frame.js +0 -0
  652. /package/dist/{src/shell → shell}/interp/acp-ws-conn.js +0 -0
  653. /package/dist/{src/shell → shell}/interp/acp-ws-frames.js +0 -0
  654. /package/dist/{src/shell → shell}/interp/acp-ws.js +0 -0
  655. /package/dist/{src/shell → shell}/interp/acp.js +0 -0
  656. /package/dist/{src/shell → shell}/interp/credential-defaults.js +0 -0
  657. /package/dist/{src/shell → shell}/interp/credential-hooks.js +0 -0
  658. /package/dist/{src/shell → shell}/interp/credential-registry.js +0 -0
  659. /package/dist/{src/shell → shell}/interp/credential.js +0 -0
  660. /package/dist/{src/shell → shell}/interp/gh.js +0 -0
  661. /package/dist/{src/shell → shell}/interp/git.js +0 -0
  662. /package/dist/{src/shell → shell}/interp/log.js +0 -0
  663. /package/dist/{src/shell → shell}/interp/process.js +0 -0
  664. /package/dist/{src/shell → shell}/interp/runlog.js +0 -0
  665. /package/dist/{src/shell → shell}/interp/timer.js +0 -0
  666. /package/dist/{src/shell → shell}/interp/tracker-disk.js +0 -0
  667. /package/dist/{src/shell → shell}/interp/tracker-parse.js +0 -0
  668. /package/dist/{src/shell → shell}/interp/tracker-scan.js +0 -0
  669. /package/dist/{src/shell → shell}/interp/tracker-write.js +0 -0
  670. /package/dist/{src/shell → shell}/interp/tracker.js +0 -0
  671. /package/dist/{src/shell → shell}/interp/tty.js +0 -0
  672. /package/dist/{src/shell → shell}/interp/vm.js +0 -0
  673. /package/dist/{src/shell → shell}/interp/workspace.js +0 -0
  674. /package/dist/{src/shell → shell}/main-acp.js +0 -0
  675. /package/dist/{src/shell → shell}/main-adapters.js +0 -0
  676. /package/dist/{src/shell → shell}/main-credential.js +0 -0
  677. /package/dist/{src/shell → shell}/main-doctor.js +0 -0
  678. /package/dist/{src/shell → shell}/main-entry.js +0 -0
  679. /package/dist/{src/shell → shell}/main-http-csrf.js +0 -0
  680. /package/dist/{src/shell → shell}/main-http-handler.js +0 -0
  681. /package/dist/{src/shell → shell}/main-http-mcp.js +0 -0
  682. /package/dist/{src/shell → shell}/main-http-views.js +0 -0
  683. /package/dist/{src/shell → shell}/main-http.js +0 -0
  684. /package/dist/{src/shell → shell}/main-loops.js +0 -0
  685. /package/dist/{src/shell → shell}/main-mcp.js +0 -0
  686. /package/dist/{src/shell → shell}/main-orchestrator.js +0 -0
  687. /package/dist/{src/shell → shell}/main-preflight.js +0 -0
  688. /package/dist/{src/shell → shell}/main-reconcilers-helpers.js +0 -0
  689. /package/dist/{src/shell → shell}/main-reconcilers-pr.js +0 -0
  690. /package/dist/{src/shell → shell}/main-reconcilers.js +0 -0
  691. /package/dist/{src/shell → shell}/main-runner.js +0 -0
  692. /package/dist/{src/shell → shell}/main-scaffold.js +0 -0
  693. /package/dist/{src/shell → shell}/main-shutdown.js +0 -0
  694. /package/dist/{src/shell → shell}/main-startup.js +0 -0
  695. /package/dist/{src/shell → shell}/main-substrates.js +0 -0
  696. /package/dist/{src/shell → shell}/main.js +0 -0
  697. /package/dist/{src/shell → shell}/orchestrator-feedback.js +0 -0
  698. /package/dist/{src/shell → shell}/orchestrator-image.js +0 -0
  699. /package/dist/{src/shell → shell}/orchestrator-loop.js +0 -0
  700. /package/dist/{src/shell → shell}/orchestrator-reconcile.js +0 -0
  701. /package/dist/{src/shell → shell}/reconciler-loop.js +0 -0
  702. /package/dist/{src/shell → shell}/runner-loop-turn.js +0 -0
  703. /package/dist/{src/shell → shell}/runner-loop.js +0 -0
  704. /package/dist/{src/shell → shell}/server/http.js +0 -0
  705. /package/dist/{src/shell → shell}/server/mcp-runtime-effects.js +0 -0
  706. /package/dist/{src/shell → shell}/server/mcp-runtime.js +0 -0
  707. /package/dist/{src/shell → shell}/workspace-key.js +0 -0
  708. /package/dist/{src/types → types}/acp.js +0 -0
  709. /package/dist/{src/types → types}/actions/plan.js +0 -0
  710. /package/dist/{src/types → types}/actions/predicates.js +0 -0
  711. /package/dist/{src/types → types}/actions/run-fold.js +0 -0
  712. /package/dist/{src/types → types}/actions.js +0 -0
  713. /package/dist/{src/types → types}/adapter/clock-random.js +0 -0
  714. /package/dist/{src/types → types}/adapter/gondolin-image-converter.js +0 -0
  715. /package/dist/{src/types → types}/adapter/gondolin-image-fetch.js +0 -0
  716. /package/dist/{src/types → types}/adapter/workflow-loader.js +0 -0
  717. /package/dist/{src/types → types}/cli/args.js +0 -0
  718. /package/dist/{src/types → types}/config.js +0 -0
  719. /package/dist/{src/types → types}/credential-interp.js +0 -0
  720. /package/dist/{src/types → types}/credentials.js +0 -0
  721. /package/dist/{src/types → types}/doctor.js +0 -0
  722. /package/dist/{src/types → types}/domain.js +0 -0
  723. /package/dist/{src/types → types}/effect.js +0 -0
  724. /package/dist/{src/types → types}/errors.js +0 -0
  725. /package/dist/{src/types → types}/http/decisions.js +0 -0
  726. /package/dist/{src/types → types}/http/render.js +0 -0
  727. /package/dist/{src/types → types}/http/views.js +0 -0
  728. /package/dist/{src/types → types}/http.js +0 -0
  729. /package/dist/{src/types → types}/image/managed-image.js +0 -0
  730. /package/dist/{src/types → types}/interp/effect-interpreter.js +0 -0
  731. /package/dist/{src/types → types}/interp/tracker.js +0 -0
  732. /package/dist/{src/types → types}/issue/file.js +0 -0
  733. /package/dist/{src/types → types}/issue/parse.js +0 -0
  734. /package/dist/{src/types → types}/main-acp.js +0 -0
  735. /package/dist/{src/types → types}/main-adapters.js +0 -0
  736. /package/dist/{src/types → types}/main-credential.js +0 -0
  737. /package/dist/{src/types → types}/main-doctor.js +0 -0
  738. /package/dist/{src/types → types}/main-http-handler.js +0 -0
  739. /package/dist/{src/types → types}/main-http.js +0 -0
  740. /package/dist/{src/types → types}/main-loops.js +0 -0
  741. /package/dist/{src/types → types}/main-mcp.js +0 -0
  742. /package/dist/{src/types → types}/main-orchestrator.js +0 -0
  743. /package/dist/{src/types → types}/main-reconcilers.js +0 -0
  744. /package/dist/{src/types → types}/main-runner.js +0 -0
  745. /package/dist/{src/types → types}/main-startup.js +0 -0
  746. /package/dist/{src/types → types}/main-substrates.js +0 -0
  747. /package/dist/{src/types → types}/mcp/dispatch.js +0 -0
  748. /package/dist/{src/types → types}/mcp/post-move.js +0 -0
  749. /package/dist/{src/types → types}/mcp.js +0 -0
  750. /package/dist/{src/types → types}/ports.js +0 -0
  751. /package/dist/{src/types → types}/reconcile/image-decide.js +0 -0
  752. /package/dist/{src/types → types}/reconcile/ledger.js +0 -0
  753. /package/dist/{src/types → types}/reconcile/pr-loop.js +0 -0
  754. /package/dist/{src/types → types}/reconcile/vm-reap.js +0 -0
  755. /package/dist/{src/types → types}/reconcile/workspace-decide.js +0 -0
  756. /package/dist/{src/types → types}/reconcile.js +0 -0
  757. /package/dist/{src/types → types}/runlog.js +0 -0
  758. /package/dist/{src/types → types}/runner/actions-runner.js +0 -0
  759. /package/dist/{src/types → types}/runner/gondolin-dispatch.js +0 -0
  760. /package/dist/{src/types → types}/runner/injection.js +0 -0
  761. /package/dist/{src/types → types}/runner/runner-loop.js +0 -0
  762. /package/dist/{src/types → types}/runner/turn.js +0 -0
  763. /package/dist/{src/types → types}/runner/vm-plan.js +0 -0
  764. /package/dist/{src/types → types}/runtime.js +0 -0
  765. /package/dist/{src/types → types}/schedule/admission.js +0 -0
  766. /package/dist/{src/types → types}/schedule/circuit-breaker.js +0 -0
  767. /package/dist/{src/types → types}/schedule/eligibility.js +0 -0
  768. /package/dist/{src/types → types}/schedule/orchestrator-loop.js +0 -0
  769. /package/dist/{src/types → types}/schedule/sleep-cycle.js +0 -0
  770. /package/dist/{src/types → types}/schedule/slots.js +0 -0
  771. /package/dist/{src/types → types}/schedule/tick.js +0 -0
  772. /package/dist/{src/types → types}/server/mcp-runtime.js +0 -0
  773. /package/dist/{src/types → types}/workflow/parse.js +0 -0
@@ -1,186 +0,0 @@
1
- // Pure unit tests for the retry/continuation scheduling core. No mocks — the
2
- // functions are total and side-effect free, so we feed plain data and assert on
3
- // the returned plan / decision / Effect.
4
- import { test } from 'node:test';
5
- import assert from 'node:assert/strict';
6
- import { backoffDelayMs, decideExitRetry, decideRetryAfterIneligible, scheduleRetryEffect, NO_SLOT_REASON, } from '../../src/core/schedule/retry.js';
7
- import { FAILURE_BASE_MS } from '../../src/core/schedule/tick.js';
8
- // ─── backoffDelayMs ──────────────────────────────────────────────────────────
9
- test('backoffDelayMs: attempt 1 is the base, then doubles', () => {
10
- assert.equal(backoffDelayMs(1, 1000, 60_000), 1000);
11
- assert.equal(backoffDelayMs(2, 1000, 60_000), 2000);
12
- assert.equal(backoffDelayMs(3, 1000, 60_000), 4000);
13
- assert.equal(backoffDelayMs(4, 1000, 60_000), 8000);
14
- });
15
- test('backoffDelayMs: caps at maxBackoffMs', () => {
16
- assert.equal(backoffDelayMs(10, 1000, 30_000), 30_000);
17
- // The cap is the min, so a huge attempt never exceeds it.
18
- assert.equal(backoffDelayMs(100, 5000, 12_000), 12_000);
19
- });
20
- // ─── §4a: orchestrator re-poll-failed backoff converges on the core policy ────
21
- // The orchestrator loop's re-poll-failed path (onRetryTimer) USED to fork the
22
- // policy inline as `Math.min(10_000 * 2^entry.attempt, max)`; it now injects core
23
- // `backoffDelayMs(entry.attempt + 1, FAILURE_BASE_MS, max)`. Pin that the injected
24
- // seam reproduces the retired inline formula EXACTLY so the poll-failure backoff
25
- // can never diverge from the normal-failure backoff for the same attempt.
26
- test('§4a: injected re-poll backoff equals the retired inline 10_000 * 2^attempt', () => {
27
- const maxBackoffMs = 5 * 60_000;
28
- // Old inline policy (the exact arithmetic deleted from orchestrator-loop.ts).
29
- const retiredInline = (priorAttempt) => Math.min(10_000 * Math.pow(2, priorAttempt), maxBackoffMs);
30
- // The injected seam the loop now calls: backoff(entry.attempt + 1, max).
31
- const injectedSeam = (priorAttempt) => backoffDelayMs(priorAttempt + 1, FAILURE_BASE_MS, maxBackoffMs);
32
- for (let priorAttempt = 0; priorAttempt <= 8; priorAttempt++) {
33
- assert.equal(injectedSeam(priorAttempt), retiredInline(priorAttempt), `attempt ${priorAttempt} backoff diverged`);
34
- }
35
- // The base the seam is pinned at is the same one core schedules normal failures
36
- // from, so the two failure paths share one policy.
37
- assert.equal(FAILURE_BASE_MS, 10_000);
38
- });
39
- // ─── decideExitRetry: clean exit → continuation ──────────────────────────────
40
- test('decideExitRetry: normal exit yields a slot-holding continuation', () => {
41
- const plan = decideExitRetry({
42
- normal: true,
43
- reason: 'ignored when normal',
44
- priorAttempt: 7, // ignored on the continuation branch
45
- targetState: 'Todo',
46
- continuationDelayMs: 1000,
47
- failureBaseMs: 5000,
48
- maxBackoffMs: 60_000,
49
- });
50
- assert.deepEqual(plan, {
51
- attempt: 1,
52
- delayMs: 1000,
53
- error: null,
54
- kind: 'continuation',
55
- target_state: 'Todo',
56
- });
57
- });
58
- // ─── decideExitRetry: abnormal exit → failure backoff ────────────────────────
59
- test('decideExitRetry: abnormal exit with no prior attempt starts at attempt 1', () => {
60
- const plan = decideExitRetry({
61
- normal: false,
62
- reason: 'agent turn transport_error',
63
- priorAttempt: null,
64
- targetState: 'Doing',
65
- continuationDelayMs: 1000,
66
- failureBaseMs: 2000,
67
- maxBackoffMs: 60_000,
68
- });
69
- assert.deepEqual(plan, {
70
- attempt: 1,
71
- delayMs: 2000, // base * 2^0
72
- error: 'agent turn transport_error',
73
- kind: 'failure',
74
- target_state: 'Doing',
75
- });
76
- });
77
- test('decideExitRetry: undefined priorAttempt is treated as no prior attempt', () => {
78
- const plan = decideExitRetry({
79
- normal: false,
80
- reason: 'boom',
81
- priorAttempt: undefined,
82
- targetState: 'Doing',
83
- continuationDelayMs: 1000,
84
- failureBaseMs: 2000,
85
- maxBackoffMs: 60_000,
86
- });
87
- assert.equal(plan.attempt, 1);
88
- assert.equal(plan.delayMs, 2000);
89
- });
90
- test('decideExitRetry: abnormal exit increments the prior attempt and backs off', () => {
91
- const plan = decideExitRetry({
92
- normal: false,
93
- reason: 'ECONNRESET',
94
- priorAttempt: 2,
95
- targetState: 'Doing',
96
- continuationDelayMs: 1000,
97
- failureBaseMs: 1000,
98
- maxBackoffMs: 60_000,
99
- });
100
- // nextAttempt = 3 → base * 2^(3-1) = 4000
101
- assert.deepEqual(plan, {
102
- attempt: 3,
103
- delayMs: 4000,
104
- error: 'ECONNRESET',
105
- kind: 'failure',
106
- target_state: 'Doing',
107
- });
108
- });
109
- test('decideExitRetry: failure backoff respects the cap', () => {
110
- const plan = decideExitRetry({
111
- normal: false,
112
- reason: 'boom',
113
- priorAttempt: 20,
114
- targetState: 'Doing',
115
- continuationDelayMs: 1000,
116
- failureBaseMs: 1000,
117
- maxBackoffMs: 30_000,
118
- });
119
- assert.equal(plan.attempt, 21);
120
- assert.equal(plan.delayMs, 30_000);
121
- });
122
- // ─── decideRetryAfterIneligible: release vs reschedule ───────────────────────
123
- test('decideRetryAfterIneligible: non-slot reason releases the claim', () => {
124
- for (const reason of ['state not active', 'already running', 'has non-terminal blocker', '']) {
125
- const decision = decideRetryAfterIneligible({
126
- reason,
127
- priorAttempt: 3,
128
- targetState: 'Todo',
129
- failureBaseMs: 1000,
130
- maxBackoffMs: 60_000,
131
- });
132
- assert.deepEqual(decision, { kind: 'release' }, `reason="${reason}" should release`);
133
- }
134
- });
135
- test('decideRetryAfterIneligible: no-slot reason reschedules with backoff', () => {
136
- const decision = decideRetryAfterIneligible({
137
- reason: NO_SLOT_REASON,
138
- priorAttempt: 2,
139
- targetState: 'Review',
140
- failureBaseMs: 1000,
141
- maxBackoffMs: 60_000,
142
- });
143
- assert.equal(decision.kind, 'reschedule');
144
- assert.ok(decision.kind === 'reschedule');
145
- // nextAttempt = priorAttempt + 1 = 3 → delay = base * 2^(3-1) = 4000
146
- assert.deepEqual(decision.plan, {
147
- attempt: 3,
148
- delayMs: 4000,
149
- error: 'no available orchestrator slots',
150
- kind: 'failure',
151
- target_state: 'Review',
152
- });
153
- });
154
- test('decideRetryAfterIneligible: reschedule delay honors the cap', () => {
155
- const decision = decideRetryAfterIneligible({
156
- reason: NO_SLOT_REASON,
157
- priorAttempt: 15,
158
- targetState: 'Review',
159
- failureBaseMs: 1000,
160
- maxBackoffMs: 30_000,
161
- });
162
- assert.ok(decision.kind === 'reschedule');
163
- assert.equal(decision.plan.attempt, 16);
164
- assert.equal(decision.plan.delayMs, 30_000);
165
- });
166
- // ─── scheduleRetryEffect: fold into a timer.schedule_retry Effect ────────────
167
- test('scheduleRetryEffect: folds a plan into a timer.schedule_retry Effect', () => {
168
- const plan = decideExitRetry({
169
- normal: true,
170
- reason: '',
171
- priorAttempt: null,
172
- targetState: 'Todo',
173
- continuationDelayMs: 1000,
174
- failureBaseMs: 5000,
175
- maxBackoffMs: 60_000,
176
- });
177
- const eff = scheduleRetryEffect('issue-1', 'SYM-42', plan);
178
- assert.deepEqual(eff, {
179
- family: 'timer',
180
- kind: 'schedule_retry',
181
- issueId: 'issue-1',
182
- identifier: 'SYM-42',
183
- plan,
184
- });
185
- });
186
- //# sourceMappingURL=retry.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry.test.js","sourceRoot":"","sources":["../../../tests/core/retry.test.ts"],"names":[],"mappings":"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"}
@@ -1,247 +0,0 @@
1
- // Pure unit tests for src/core/http/routes.ts. Every function under test is a
2
- // pure (data) -> data parser, so the tests need no mocks — they feed inputs and
3
- // assert on the returned decision/data. Branches covered: matchRoute (each kind
4
- // incl. preview + the not_found fallback + ordering + URI-decoding),
5
- // resolvePartialName, extractBearerToken, classifyContentType, the two CSRF
6
- // gates, and extractFormText / extractJsonText.
7
- import { describe, it } from 'node:test';
8
- import assert from 'node:assert/strict';
9
- import { matchRoute, resolvePartialName, extractBearerToken, classifyContentType, checkSteeringCsrf, checkTriageCsrf, extractFormText, extractJsonText, } from '../../src/core/http/routes.js';
10
- describe('matchRoute', () => {
11
- it('matches / as dashboard', () => {
12
- assert.deepEqual(matchRoute('/'), { kind: 'dashboard' });
13
- });
14
- it('matches /preview and /preview/ as preview', () => {
15
- assert.deepEqual(matchRoute('/preview'), { kind: 'preview' });
16
- assert.deepEqual(matchRoute('/preview/'), { kind: 'preview' });
17
- });
18
- it('matches /api/v1/partials/<slug> with the raw slug', () => {
19
- assert.deepEqual(matchRoute('/api/v1/partials/header'), { kind: 'partial', slug: 'header' });
20
- // Unknown slugs still route to partial — resolvePartialName gates them later.
21
- assert.deepEqual(matchRoute('/api/v1/partials/unknown'), { kind: 'partial', slug: 'unknown' });
22
- });
23
- it('matches well-known top-level endpoints', () => {
24
- assert.deepEqual(matchRoute('/api/v1/state'), { kind: 'state' });
25
- assert.deepEqual(matchRoute('/api/v1/refresh'), { kind: 'refresh' });
26
- assert.deepEqual(matchRoute('/api/v1/issues'), { kind: 'issues' });
27
- });
28
- it('matches the mcp endpoint and decodes its identifier', () => {
29
- assert.deepEqual(matchRoute('/api/v1/issues/foo-1/mcp'), { kind: 'mcp', identifier: 'foo-1' });
30
- assert.deepEqual(matchRoute('/api/v1/issues/space%20id/mcp'), {
31
- kind: 'mcp',
32
- identifier: 'space id',
33
- });
34
- });
35
- it('matches the steering-reply endpoint', () => {
36
- assert.deepEqual(matchRoute('/api/v1/issues/x/steering-reply'), {
37
- kind: 'steering',
38
- identifier: 'x',
39
- });
40
- });
41
- it('matches the operator move endpoint and decodes its identifier', () => {
42
- assert.deepEqual(matchRoute('/api/v1/issues/abc/move'), { kind: 'move', identifier: 'abc' });
43
- assert.deepEqual(matchRoute('/api/v1/issues/space%20id/move'), {
44
- kind: 'move',
45
- identifier: 'space id',
46
- });
47
- // The retired approve/discard verbs no longer match (subsumed by /move).
48
- assert.equal(matchRoute('/api/v1/issues/abc/approve').kind, 'not_found');
49
- assert.equal(matchRoute('/api/v1/issues/abc/discard').kind, 'not_found');
50
- });
51
- it('matches the detail HTML page with and without trailing slash', () => {
52
- assert.deepEqual(matchRoute('/issues/abc'), { kind: 'detail_html', identifier: 'abc' });
53
- assert.deepEqual(matchRoute('/issues/abc/'), { kind: 'detail_html', identifier: 'abc' });
54
- });
55
- it('matches the detail JSON catch-all on /api/v1/<id> only for single-segment IDs', () => {
56
- assert.deepEqual(matchRoute('/api/v1/abc'), { kind: 'detail_json', identifier: 'abc' });
57
- // Multi-segment paths under /api/v1 must not collapse into detail_json.
58
- assert.equal(matchRoute('/api/v1/issues/abc/other').kind, 'not_found');
59
- });
60
- it('does not let /api/v1/state, refresh, or issues fall through to detail_json', () => {
61
- // Literal matches are checked before the single-segment catch-all.
62
- assert.equal(matchRoute('/api/v1/state').kind, 'state');
63
- assert.equal(matchRoute('/api/v1/refresh').kind, 'refresh');
64
- assert.equal(matchRoute('/api/v1/issues').kind, 'issues');
65
- });
66
- it('returns not_found for unknown paths (the client-error fallback)', () => {
67
- assert.deepEqual(matchRoute('/nope'), { kind: 'not_found' });
68
- assert.deepEqual(matchRoute('/api/v2/whatever'), { kind: 'not_found' });
69
- assert.deepEqual(matchRoute(''), { kind: 'not_found' });
70
- });
71
- it('produces every declared Route kind from a representative path', () => {
72
- const samples = {
73
- dashboard: '/',
74
- preview: '/preview',
75
- partial: '/api/v1/partials/header',
76
- state: '/api/v1/state',
77
- refresh: '/api/v1/refresh',
78
- issues: '/api/v1/issues',
79
- mcp: '/api/v1/issues/x/mcp',
80
- steering: '/api/v1/issues/x/steering-reply',
81
- move: '/api/v1/issues/x/move',
82
- detail_html: '/issues/x',
83
- detail_json: '/api/v1/x',
84
- not_found: '/nope',
85
- };
86
- for (const [expectedKind, pathname] of Object.entries(samples)) {
87
- assert.equal(matchRoute(pathname).kind, expectedKind, `pathname ${pathname}`);
88
- }
89
- });
90
- });
91
- describe('resolvePartialName', () => {
92
- it('accepts the five known partial slugs', () => {
93
- assert.equal(resolvePartialName('header'), 'header');
94
- assert.equal(resolvePartialName('attention'), 'attention');
95
- assert.equal(resolvePartialName('board'), 'board');
96
- assert.equal(resolvePartialName('totals'), 'totals');
97
- assert.equal(resolvePartialName('health'), 'health');
98
- });
99
- it('rejects unknown / empty / wrong-case slugs', () => {
100
- assert.equal(resolvePartialName('unknown'), null);
101
- assert.equal(resolvePartialName(''), null);
102
- assert.equal(resolvePartialName('HEADER'), null);
103
- });
104
- });
105
- describe('extractBearerToken', () => {
106
- it('extracts and trims the token after "Bearer "', () => {
107
- assert.equal(extractBearerToken('Bearer abc123'), 'abc123');
108
- assert.equal(extractBearerToken('Bearer abc123 '), 'abc123');
109
- });
110
- it('returns empty string for missing or malformed headers', () => {
111
- assert.equal(extractBearerToken(undefined), '');
112
- assert.equal(extractBearerToken(''), '');
113
- assert.equal(extractBearerToken('Basic abc'), '');
114
- assert.equal(extractBearerToken('bearer abc'), ''); // prefix is case-sensitive
115
- });
116
- });
117
- describe('classifyContentType', () => {
118
- it('classifies form, json, empty, and other types', () => {
119
- assert.deepEqual(classifyContentType('application/x-www-form-urlencoded'), {
120
- isFormBody: true,
121
- isJsonBody: false,
122
- isEmptyCtype: false,
123
- });
124
- assert.deepEqual(classifyContentType('application/json'), {
125
- isFormBody: false,
126
- isJsonBody: true,
127
- isEmptyCtype: false,
128
- });
129
- assert.deepEqual(classifyContentType(undefined), {
130
- isFormBody: false,
131
- isJsonBody: false,
132
- isEmptyCtype: true,
133
- });
134
- assert.deepEqual(classifyContentType('text/plain'), {
135
- isFormBody: false,
136
- isJsonBody: false,
137
- isEmptyCtype: false,
138
- });
139
- });
140
- it('strips parameters and lowercases', () => {
141
- assert.deepEqual(classifyContentType('application/json; charset=utf-8'), {
142
- isFormBody: false,
143
- isJsonBody: true,
144
- isEmptyCtype: false,
145
- });
146
- assert.deepEqual(classifyContentType('application/x-www-form-urlencoded;charset=UTF-8'), {
147
- isFormBody: true,
148
- isJsonBody: false,
149
- isEmptyCtype: false,
150
- });
151
- assert.deepEqual(classifyContentType('APPLICATION/JSON'), {
152
- isFormBody: false,
153
- isJsonBody: true,
154
- isEmptyCtype: false,
155
- });
156
- });
157
- });
158
- const form = { isFormBody: true, isJsonBody: false, isEmptyCtype: false };
159
- const json = { isFormBody: false, isJsonBody: true, isEmptyCtype: false };
160
- const empty = { isFormBody: false, isJsonBody: false, isEmptyCtype: true };
161
- const other = { isFormBody: false, isJsonBody: false, isEmptyCtype: false };
162
- describe('checkSteeringCsrf', () => {
163
- it('accepts form bodies only with HX-Request + same-origin', () => {
164
- assert.deepEqual(checkSteeringCsrf(form, true, true), { ok: true });
165
- });
166
- it('rejects form bodies missing HX-Request or cross-origin with 403', () => {
167
- const noHtmx = checkSteeringCsrf(form, false, true);
168
- assert.equal(noHtmx.ok, false);
169
- if (!noHtmx.ok) {
170
- assert.equal(noHtmx.status, 403);
171
- assert.equal(noHtmx.code, 'forbidden');
172
- }
173
- const crossOrigin = checkSteeringCsrf(form, true, false);
174
- assert.equal(crossOrigin.ok, false);
175
- if (!crossOrigin.ok)
176
- assert.equal(crossOrigin.status, 403);
177
- });
178
- it('accepts JSON unconditionally (preflight gates it)', () => {
179
- assert.deepEqual(checkSteeringCsrf(json, false, false), { ok: true });
180
- });
181
- it('rejects empty and other Content-Type with 415 (no bodyless form here)', () => {
182
- const e = checkSteeringCsrf(empty, true, true);
183
- assert.equal(e.ok, false);
184
- if (!e.ok)
185
- assert.equal(e.status, 415);
186
- const o = checkSteeringCsrf(other, true, true);
187
- assert.equal(o.ok, false);
188
- if (!o.ok)
189
- assert.equal(o.status, 415);
190
- });
191
- });
192
- describe('checkTriageCsrf', () => {
193
- it('accepts form and empty Content-Type with HX-Request + same-origin', () => {
194
- assert.deepEqual(checkTriageCsrf(form, true, true), { ok: true });
195
- assert.deepEqual(checkTriageCsrf(empty, true, true), { ok: true });
196
- });
197
- it('rejects empty Content-Type missing HX-Request or cross-origin with 403', () => {
198
- const noHtmx = checkTriageCsrf(empty, false, true);
199
- assert.equal(noHtmx.ok, false);
200
- if (!noHtmx.ok)
201
- assert.equal(noHtmx.status, 403);
202
- const crossOrigin = checkTriageCsrf(empty, true, false);
203
- assert.equal(crossOrigin.ok, false);
204
- if (!crossOrigin.ok)
205
- assert.equal(crossOrigin.status, 403);
206
- });
207
- it('accepts JSON unconditionally', () => {
208
- assert.deepEqual(checkTriageCsrf(json, false, false), { ok: true });
209
- });
210
- it('rejects other Content-Type with 415', () => {
211
- const r = checkTriageCsrf(other, true, true);
212
- assert.equal(r.ok, false);
213
- if (!r.ok)
214
- assert.equal(r.status, 415);
215
- });
216
- });
217
- describe('extractFormText', () => {
218
- it('extracts and trims the `text` field', () => {
219
- assert.equal(extractFormText('text=hello'), 'hello');
220
- assert.equal(extractFormText('text=%20%20padded%20%20'), 'padded');
221
- assert.equal(extractFormText('text=hello&other=world'), 'hello');
222
- });
223
- it('returns empty string when text is missing or blank', () => {
224
- assert.equal(extractFormText(''), '');
225
- assert.equal(extractFormText('other=value'), '');
226
- assert.equal(extractFormText('text='), '');
227
- assert.equal(extractFormText('text= '), '');
228
- });
229
- });
230
- describe('extractJsonText', () => {
231
- it('extracts and trims `text` from a JSON object', () => {
232
- assert.equal(extractJsonText({ text: 'hello' }), 'hello');
233
- assert.equal(extractJsonText({ text: ' padded ' }), 'padded');
234
- });
235
- it('returns empty string for non-string text', () => {
236
- assert.equal(extractJsonText({ text: 42 }), '');
237
- assert.equal(extractJsonText({ text: null }), '');
238
- assert.equal(extractJsonText({}), '');
239
- });
240
- it('returns empty string for non-object / array / null bodies', () => {
241
- assert.equal(extractJsonText(null), '');
242
- assert.equal(extractJsonText('hello'), '');
243
- assert.equal(extractJsonText([{ text: 'hello' }]), '');
244
- assert.equal(extractJsonText(undefined), '');
245
- });
246
- });
247
- //# sourceMappingURL=routes.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.test.js","sourceRoot":"","sources":["../../../tests/core/routes.test.ts"],"names":[],"mappings":"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"}