poly-weaver 0.8.1 → 0.8.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 (243) hide show
  1. package/README.md +7 -64
  2. package/dist/agents/errors.d.ts +20 -0
  3. package/dist/agents/errors.d.ts.map +1 -0
  4. package/dist/agents/errors.js +26 -0
  5. package/dist/agents/errors.js.map +1 -0
  6. package/dist/agents/implementors/handler.d.ts.map +1 -1
  7. package/dist/agents/implementors/handler.js +2 -1
  8. package/dist/agents/implementors/handler.js.map +1 -1
  9. package/dist/agents/implementors/index.d.ts.map +1 -1
  10. package/dist/agents/implementors/index.js +3 -9
  11. package/dist/agents/implementors/index.js.map +1 -1
  12. package/dist/agents/implementors/prompts.d.ts +4 -9
  13. package/dist/agents/implementors/prompts.d.ts.map +1 -1
  14. package/dist/agents/implementors/prompts.js +10 -16
  15. package/dist/agents/implementors/prompts.js.map +1 -1
  16. package/dist/agents/index.d.ts +2 -0
  17. package/dist/agents/index.d.ts.map +1 -1
  18. package/dist/agents/index.js +4 -0
  19. package/dist/agents/index.js.map +1 -1
  20. package/dist/agents/interviewers/adapter.d.ts +17 -0
  21. package/dist/agents/interviewers/adapter.d.ts.map +1 -0
  22. package/dist/agents/interviewers/adapter.js +111 -0
  23. package/dist/agents/interviewers/adapter.js.map +1 -0
  24. package/dist/agents/interviewers/dsl.d.ts +13 -0
  25. package/dist/agents/interviewers/dsl.d.ts.map +1 -0
  26. package/dist/agents/interviewers/dsl.js +14 -0
  27. package/dist/agents/interviewers/dsl.js.map +1 -0
  28. package/dist/agents/interviewers/handler.d.ts +21 -0
  29. package/dist/agents/interviewers/handler.d.ts.map +1 -0
  30. package/dist/agents/interviewers/handler.js +217 -0
  31. package/dist/agents/interviewers/handler.js.map +1 -0
  32. package/dist/agents/interviewers/index.d.ts +11 -0
  33. package/dist/agents/interviewers/index.d.ts.map +1 -0
  34. package/dist/agents/interviewers/index.js +16 -0
  35. package/dist/agents/interviewers/index.js.map +1 -0
  36. package/dist/agents/interviewers/prompts.d.ts +3 -0
  37. package/dist/agents/interviewers/prompts.d.ts.map +1 -0
  38. package/dist/agents/interviewers/prompts.js +73 -0
  39. package/dist/agents/interviewers/prompts.js.map +1 -0
  40. package/dist/agents/interviewers/types.d.ts +53 -0
  41. package/dist/agents/interviewers/types.d.ts.map +1 -0
  42. package/dist/agents/interviewers/types.js +2 -0
  43. package/dist/agents/interviewers/types.js.map +1 -0
  44. package/dist/agents/planners/dsl.d.ts +5 -1
  45. package/dist/agents/planners/dsl.d.ts.map +1 -1
  46. package/dist/agents/planners/handler.d.ts.map +1 -1
  47. package/dist/agents/planners/handler.js +44 -25
  48. package/dist/agents/planners/handler.js.map +1 -1
  49. package/dist/agents/planners/index.d.ts.map +1 -1
  50. package/dist/agents/planners/index.js +3 -9
  51. package/dist/agents/planners/index.js.map +1 -1
  52. package/dist/agents/planners/prompts.d.ts +5 -11
  53. package/dist/agents/planners/prompts.d.ts.map +1 -1
  54. package/dist/agents/planners/prompts.js +15 -22
  55. package/dist/agents/planners/prompts.js.map +1 -1
  56. package/dist/agents/registry.d.ts +0 -1
  57. package/dist/agents/registry.d.ts.map +1 -1
  58. package/dist/agents/registry.js.map +1 -1
  59. package/dist/agents/reviewers/adapter.d.ts +1 -1
  60. package/dist/agents/reviewers/adapter.d.ts.map +1 -1
  61. package/dist/agents/reviewers/adapter.js +2 -2
  62. package/dist/agents/reviewers/adapter.js.map +1 -1
  63. package/dist/agents/reviewers/dsl.d.ts +6 -1
  64. package/dist/agents/reviewers/dsl.d.ts.map +1 -1
  65. package/dist/agents/reviewers/dsl.js.map +1 -1
  66. package/dist/agents/reviewers/handler.d.ts.map +1 -1
  67. package/dist/agents/reviewers/handler.js +21 -5
  68. package/dist/agents/reviewers/handler.js.map +1 -1
  69. package/dist/agents/reviewers/index.d.ts.map +1 -1
  70. package/dist/agents/reviewers/index.js +6 -8
  71. package/dist/agents/reviewers/index.js.map +1 -1
  72. package/dist/agents/reviewers/prompts.d.ts +5 -11
  73. package/dist/agents/reviewers/prompts.d.ts.map +1 -1
  74. package/dist/agents/reviewers/prompts.js +13 -19
  75. package/dist/agents/reviewers/prompts.js.map +1 -1
  76. package/dist/agents/reviewers/types.d.ts +4 -2
  77. package/dist/agents/reviewers/types.d.ts.map +1 -1
  78. package/dist/agents/reviewers/types.js.map +1 -1
  79. package/dist/agents/runner.d.ts +21 -0
  80. package/dist/agents/runner.d.ts.map +1 -1
  81. package/dist/agents/runner.js +130 -20
  82. package/dist/agents/runner.js.map +1 -1
  83. package/dist/agents/simplifiers/handler.d.ts.map +1 -1
  84. package/dist/agents/simplifiers/handler.js +2 -1
  85. package/dist/agents/simplifiers/handler.js.map +1 -1
  86. package/dist/cli.js +85 -186
  87. package/dist/cli.js.map +1 -1
  88. package/dist/config.d.ts +3 -6
  89. package/dist/config.d.ts.map +1 -1
  90. package/dist/config.js +3 -5
  91. package/dist/config.js.map +1 -1
  92. package/dist/dsl.d.ts +3 -0
  93. package/dist/dsl.d.ts.map +1 -1
  94. package/dist/dsl.js +4 -3
  95. package/dist/dsl.js.map +1 -1
  96. package/dist/dump/collector.d.ts.map +1 -1
  97. package/dist/dump/collector.js +22 -1
  98. package/dist/dump/collector.js.map +1 -1
  99. package/dist/dump/service.d.ts.map +1 -1
  100. package/dist/dump/service.js +1 -0
  101. package/dist/dump/service.js.map +1 -1
  102. package/dist/dump/types.d.ts +38 -0
  103. package/dist/dump/types.d.ts.map +1 -1
  104. package/dist/dump/types.js.map +1 -1
  105. package/dist/flow/built-in/default-factory.d.ts.map +1 -1
  106. package/dist/flow/built-in/default-factory.js +60 -64
  107. package/dist/flow/built-in/default-factory.js.map +1 -1
  108. package/dist/flow/built-in/default.d.ts +1 -1
  109. package/dist/flow/built-in/default.d.ts.map +1 -1
  110. package/dist/flow/built-in/default.js +1 -1
  111. package/dist/flow/built-in/default.js.map +1 -1
  112. package/dist/flow/built-in/default.ts +2 -2
  113. package/dist/flow/custom/AUTHORING.md +54 -54
  114. package/dist/flow/custom/load.d.ts.map +1 -1
  115. package/dist/flow/custom/load.js +0 -1
  116. package/dist/flow/custom/load.js.map +1 -1
  117. package/dist/flow/dsl.d.ts +2 -0
  118. package/dist/flow/dsl.d.ts.map +1 -1
  119. package/dist/flow/dsl.js +2 -0
  120. package/dist/flow/dsl.js.map +1 -1
  121. package/dist/flow/executor.d.ts +2 -1
  122. package/dist/flow/executor.d.ts.map +1 -1
  123. package/dist/flow/executor.js +31 -14
  124. package/dist/flow/executor.js.map +1 -1
  125. package/dist/flow/index.d.ts +1 -2
  126. package/dist/flow/index.d.ts.map +1 -1
  127. package/dist/flow/index.js +1 -2
  128. package/dist/flow/index.js.map +1 -1
  129. package/dist/flow/types.d.ts +24 -2
  130. package/dist/flow/types.d.ts.map +1 -1
  131. package/dist/flow/types.js +6 -0
  132. package/dist/flow/types.js.map +1 -1
  133. package/dist/markdown.d.ts +5 -0
  134. package/dist/markdown.d.ts.map +1 -1
  135. package/dist/markdown.js +48 -1
  136. package/dist/markdown.js.map +1 -1
  137. package/dist/orchestrator.d.ts +15 -4
  138. package/dist/orchestrator.d.ts.map +1 -1
  139. package/dist/orchestrator.js +82 -23
  140. package/dist/orchestrator.js.map +1 -1
  141. package/dist/preflight.d.ts +11 -0
  142. package/dist/preflight.d.ts.map +1 -1
  143. package/dist/preflight.js +49 -16
  144. package/dist/preflight.js.map +1 -1
  145. package/dist/preview-panel.d.ts +11 -3
  146. package/dist/preview-panel.d.ts.map +1 -1
  147. package/dist/preview-panel.js +26 -2
  148. package/dist/preview-panel.js.map +1 -1
  149. package/dist/providers/base-completion.d.ts +5 -1
  150. package/dist/providers/base-completion.d.ts.map +1 -1
  151. package/dist/providers/base-completion.js +65 -5
  152. package/dist/providers/base-completion.js.map +1 -1
  153. package/dist/providers/claude/completion-plan-mode.d.ts +1 -1
  154. package/dist/providers/claude/completion-plan-mode.d.ts.map +1 -1
  155. package/dist/providers/claude/completion-plan-mode.js +2 -2
  156. package/dist/providers/claude/completion-plan-mode.js.map +1 -1
  157. package/dist/providers/claude/completion.d.ts +1 -1
  158. package/dist/providers/claude/completion.d.ts.map +1 -1
  159. package/dist/providers/claude/completion.js +2 -2
  160. package/dist/providers/claude/completion.js.map +1 -1
  161. package/dist/providers/claude/strategy.d.ts +2 -4
  162. package/dist/providers/claude/strategy.d.ts.map +1 -1
  163. package/dist/providers/claude/strategy.js +2 -2
  164. package/dist/providers/claude/strategy.js.map +1 -1
  165. package/dist/providers/codex/completion.d.ts +1 -1
  166. package/dist/providers/codex/completion.d.ts.map +1 -1
  167. package/dist/providers/codex/completion.js +2 -2
  168. package/dist/providers/codex/completion.js.map +1 -1
  169. package/dist/providers/codex/strategy.d.ts +2 -4
  170. package/dist/providers/codex/strategy.d.ts.map +1 -1
  171. package/dist/providers/codex/strategy.js +2 -2
  172. package/dist/providers/codex/strategy.js.map +1 -1
  173. package/dist/providers/copilot/completion.d.ts +1 -1
  174. package/dist/providers/copilot/completion.d.ts.map +1 -1
  175. package/dist/providers/copilot/completion.js +2 -2
  176. package/dist/providers/copilot/completion.js.map +1 -1
  177. package/dist/providers/copilot/strategy.d.ts +2 -3
  178. package/dist/providers/copilot/strategy.d.ts.map +1 -1
  179. package/dist/providers/copilot/strategy.js +7 -3
  180. package/dist/providers/copilot/strategy.js.map +1 -1
  181. package/dist/providers/types.d.ts +6 -3
  182. package/dist/providers/types.d.ts.map +1 -1
  183. package/dist/providers/types.js.map +1 -1
  184. package/dist/providers/version.d.ts.map +1 -1
  185. package/dist/providers/version.js +6 -2
  186. package/dist/providers/version.js.map +1 -1
  187. package/dist/pty/exit.js +1 -1
  188. package/dist/pty/exit.js.map +1 -1
  189. package/dist/pty/spawn.d.ts +1 -0
  190. package/dist/pty/spawn.d.ts.map +1 -1
  191. package/dist/pty/spawn.js +13 -9
  192. package/dist/pty/spawn.js.map +1 -1
  193. package/dist/pty/types.d.ts +5 -1
  194. package/dist/pty/types.d.ts.map +1 -1
  195. package/dist/session/manifest.d.ts +12 -5
  196. package/dist/session/manifest.d.ts.map +1 -1
  197. package/dist/session/resume.d.ts.map +1 -1
  198. package/dist/session/resume.js +4 -2
  199. package/dist/session/resume.js.map +1 -1
  200. package/dist/startup-tui.d.ts +10 -5
  201. package/dist/startup-tui.d.ts.map +1 -1
  202. package/dist/startup-tui.js +60 -27
  203. package/dist/startup-tui.js.map +1 -1
  204. package/dist/user/curate-handler.d.ts.map +1 -1
  205. package/dist/user/curate-handler.js +25 -32
  206. package/dist/user/curate-handler.js.map +1 -1
  207. package/dist/user/curate-prompt.d.ts +1 -1
  208. package/dist/user/dsl.d.ts +1 -0
  209. package/dist/user/dsl.d.ts.map +1 -1
  210. package/dist/user/dsl.js +1 -0
  211. package/dist/user/dsl.js.map +1 -1
  212. package/dist/user/handler.d.ts.map +1 -1
  213. package/dist/user/handler.js +2 -1
  214. package/dist/user/handler.js.map +1 -1
  215. package/dist/user/host-curate-prompt.js +1 -1
  216. package/dist/user/host-curate-prompt.js.map +1 -1
  217. package/dist/user/host-prompt.js +2 -2
  218. package/dist/user/host-prompt.js.map +1 -1
  219. package/dist/user/index.d.ts +1 -2
  220. package/dist/user/index.d.ts.map +1 -1
  221. package/dist/user/index.js +1 -2
  222. package/dist/user/index.js.map +1 -1
  223. package/dist/user/plan-pane.d.ts +7 -1
  224. package/dist/user/plan-pane.d.ts.map +1 -1
  225. package/dist/user/plan-pane.js +16 -4
  226. package/dist/user/plan-pane.js.map +1 -1
  227. package/dist/user/prompt.d.ts +7 -6
  228. package/dist/user/prompt.d.ts.map +1 -1
  229. package/dist/user/prompt.js +0 -8
  230. package/dist/user/prompt.js.map +1 -1
  231. package/package.json +1 -1
  232. package/dist/flow/built-in/why-so-serious-factory.d.ts +0 -16
  233. package/dist/flow/built-in/why-so-serious-factory.d.ts.map +0 -1
  234. package/dist/flow/built-in/why-so-serious-factory.js +0 -187
  235. package/dist/flow/built-in/why-so-serious-factory.js.map +0 -1
  236. package/dist/flow/built-in/why-so-serious.d.ts +0 -17
  237. package/dist/flow/built-in/why-so-serious.d.ts.map +0 -1
  238. package/dist/flow/built-in/why-so-serious.js +0 -23
  239. package/dist/flow/built-in/why-so-serious.js.map +0 -1
  240. package/dist/user/auto-curate-prompt.d.ts +0 -17
  241. package/dist/user/auto-curate-prompt.d.ts.map +0 -1
  242. package/dist/user/auto-curate-prompt.js +0 -22
  243. package/dist/user/auto-curate-prompt.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/providers/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG5D;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAWhE;AAED,gGAAgG;AAChG,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAGT"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/providers/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG5D;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAehE;AAED,gGAAgG;AAChG,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAGT"}
@@ -9,8 +9,12 @@ export function parseVersion(raw) {
9
9
  }
10
10
  /** Compare two dot-separated numeric version strings. Returns -1, 0, or 1. */
11
11
  export function compareVersions(a, b) {
12
- const aParts = a.split(".").map(Number);
13
- const bParts = b.split(".").map(Number);
12
+ const numericPart = (part) => {
13
+ const match = part.match(/^\d+/);
14
+ return match ? Number(match[0]) : 0;
15
+ };
16
+ const aParts = a.split(".").map(numericPart);
17
+ const bParts = b.split(".").map(numericPart);
14
18
  const len = Math.max(aParts.length, bParts.length);
15
19
  for (let i = 0; i < len; i++) {
16
20
  const av = aParts[i] ?? 0;
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/providers/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,EAAE,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC,CAAC;QACvB,IAAI,EAAE,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,UAAU,CACxB,OAA2B,EAC3B,UAAkB;IAElB,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/providers/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,EAAE,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC,CAAC;QACvB,IAAI,EAAE,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,UAAU,CACxB,OAA2B,EAC3B,UAAkB;IAElB,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC"}
package/dist/pty/exit.js CHANGED
@@ -29,7 +29,7 @@ export async function sendExit(handle, exitCommand, timeoutMs = 5000) {
29
29
  clearTimeout(fallbackTimer);
30
30
  resolve(code);
31
31
  };
32
- handle.onExit((code) => finish(code));
32
+ handle.onExit(({ exitCode }) => finish(exitCode));
33
33
  // Send the exit command. Bypasses the gate via the transport's `write`.
34
34
  handle.write(exitCommand);
35
35
  fallbackTimer = setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"exit.js","sourceRoot":"","sources":["../../src/pty/exit.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAiB,EACjB,WAAmB,EACnB,SAAS,GAAG,IAAI;IAEhB,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,CAAC,cAAc,EAAE,CAAC;IAExB,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,aAAwD,CAAC;QAE7D,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;YAC9B,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,aAAa;gBAAE,YAAY,CAAC,aAAa,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtC,wEAAwE;QACxE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE1B,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,IAAI,QAAQ;gBAAE,OAAO;YACrB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,EAAE,SAAS,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"exit.js","sourceRoot":"","sources":["../../src/pty/exit.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAiB,EACjB,WAAmB,EACnB,SAAS,GAAG,IAAI;IAEhB,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,CAAC,cAAc,EAAE,CAAC;IAExB,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,aAAwD,CAAC;QAE7D,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;YAC9B,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,aAAa;gBAAE,YAAY,CAAC,aAAa,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAElD,wEAAwE;QACxE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE1B,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,IAAI,QAAQ;gBAAE,OAAO;YACrB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,EAAE,SAAS,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -30,6 +30,7 @@ export declare function resolveNpmCmdShim(shimPath: string, args: string[], deps
30
30
  * executable path, and bypass npm .cmd shims by launching node.exe directly.
31
31
  */
32
32
  export declare function resolveWindowsCommand(command: string, args: string[], deps?: WindowsCommandResolverDeps): ResolvedCommand;
33
+ export declare function resolveSpawnCommand(command: string, args: string[], platform?: NodeJS.Platform): ResolvedCommand;
33
34
  /**
34
35
  * Spawn a PTY process and return a `PtyHandle` wrapper.
35
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../src/pty/spawn.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAiDD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,0BAAuD,GAC5D,eAAe,GAAG,SAAS,CA4C7B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,0BAAuD,GAC5D,eAAe,CA6CjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAwGtD"}
1
+ {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../src/pty/spawn.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAiDD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,0BAAuD,GAC5D,eAAe,GAAG,SAAS,CA4C7B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,0BAAuD,GAC5D,eAAe,CA6CjB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,eAAe,CAIjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAsGtD"}
package/dist/pty/spawn.js CHANGED
@@ -120,6 +120,11 @@ export function resolveWindowsCommand(command, args, deps = windowsCommandResolv
120
120
  throw new Error(`Failed to resolve Windows command "${command}"`);
121
121
  }
122
122
  }
123
+ export function resolveSpawnCommand(command, args, platform = process.platform) {
124
+ return platform === "win32"
125
+ ? resolveWindowsCommand(command, args)
126
+ : { command, args };
127
+ }
123
128
  /**
124
129
  * Spawn a PTY process and return a `PtyHandle` wrapper.
125
130
  *
@@ -130,9 +135,7 @@ export function resolveWindowsCommand(command, args, deps = windowsCommandResolv
130
135
  * user keystrokes back through `handle.write()`.
131
136
  */
132
137
  export function spawnPty(opts) {
133
- const resolved = process.platform === "win32"
134
- ? resolveWindowsCommand(opts.command, opts.args)
135
- : { command: opts.command, args: opts.args };
138
+ const resolved = resolveSpawnCommand(opts.command, opts.args);
136
139
  // Strip CLAUDECODE so the spawned process doesn't think it's nested.
137
140
  const { CLAUDECODE: _, ...baseEnv } = process.env;
138
141
  const proc = pty.spawn(resolved.command, resolved.args, {
@@ -150,7 +153,7 @@ export function spawnPty(opts) {
150
153
  let gateOpen = false;
151
154
  let renderSuppressed = false;
152
155
  let exited = false;
153
- let lastExitCode = null;
156
+ let lastExitEvent;
154
157
  const dataCallbacks = [];
155
158
  const exitCallbacks = [];
156
159
  proc.onData((data) => {
@@ -158,11 +161,12 @@ export function spawnPty(opts) {
158
161
  cb(data);
159
162
  }
160
163
  });
161
- proc.onExit(({ exitCode }) => {
164
+ proc.onExit(({ exitCode, signal }) => {
162
165
  exited = true;
163
- lastExitCode = exitCode;
166
+ const event = signal ? { exitCode, signal: String(signal) } : { exitCode };
167
+ lastExitEvent = event;
164
168
  for (const cb of exitCallbacks) {
165
- cb(exitCode);
169
+ cb(event);
166
170
  }
167
171
  });
168
172
  const handle = {
@@ -181,8 +185,8 @@ export function spawnPty(opts) {
181
185
  dataCallbacks.push(callback);
182
186
  },
183
187
  onExit(callback) {
184
- if (exited && lastExitCode !== null) {
185
- callback(lastExitCode);
188
+ if (exited && lastExitEvent) {
189
+ callback(lastExitEvent);
186
190
  return;
187
191
  }
188
192
  exitCallbacks.push(callback);
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/pty/spawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/pty/spawn.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,10 @@ export type AgentEvent = {
17
17
  type: "error";
18
18
  message: string;
19
19
  };
20
+ export interface PtyExitEvent {
21
+ exitCode: number;
22
+ signal?: string;
23
+ }
20
24
  export interface PtyHandle {
21
25
  /** The underlying node-pty process. */
22
26
  readonly process: IPty;
@@ -30,7 +34,7 @@ export interface PtyHandle {
30
34
  /** Subscribe to PTY output data. */
31
35
  onData(callback: (data: string) => void): void;
32
36
  /** Subscribe to PTY exit. */
33
- onExit(callback: (exitCode: number) => void): void;
37
+ onExit(callback: (event: PtyExitEvent) => void): void;
34
38
  /** Kill the PTY process. */
35
39
  kill(signal?: string): void;
36
40
  /** Resize the PTY's reported terminal dimensions. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pty/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,oCAAoC;IACpC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/C,6BAA6B;IAC7B,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IACnD,4BAA4B;IAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qDAAqD;IACrD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,gFAAgF;IAChF,QAAQ,IAAI,IAAI,CAAC;IACjB,0DAA0D;IAC1D,SAAS,IAAI,IAAI,CAAC;IAClB,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,cAAc,IAAI,IAAI,CAAC;IACvB,wCAAwC;IACxC,YAAY,IAAI,IAAI,CAAC;IACrB,uDAAuD;IACvD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,kCAAkC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pty/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,oCAAoC;IACpC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/C,6BAA6B;IAC7B,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACtD,4BAA4B;IAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qDAAqD;IACrD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,gFAAgF;IAChF,QAAQ,IAAI,IAAI,CAAC;IACjB,0DAA0D;IAC1D,SAAS,IAAI,IAAI,CAAC;IAClB,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,cAAc,IAAI,IAAI,CAAC;IACvB,wCAAwC;IACxC,YAAY,IAAI,IAAI,CAAC;IACrB,uDAAuD;IACvD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,kCAAkC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB"}
@@ -31,10 +31,18 @@ export interface SessionStepEntry {
31
31
  nextClarificationNumber: number;
32
32
  /**
33
33
  * Provider session IDs that were live at the moment this step completed.
34
- * Informational-only: recorded for diagnostics/dumps. NOT read back at
35
- * resume time a resumed poly-weaver process always launches a fresh
36
- * provider session on its first non-fast-forwarded step, because
37
- * cross-process provider session continuity is not supported.
34
+ * Informational-only for most roles: recorded for diagnostics/dumps.
35
+ * Cross-process provider session continuity is not normally supported.
36
+ *
37
+ * Exception: the **interviewer** role reads this back at resume time. The
38
+ * interviewer's handler scans `completedSnapshots` (descending seq) for
39
+ * the most recent entry with `role === "interviewer"` and a populated
40
+ * `sessionIds[sessionShareKey]`, then attempts to resume the provider
41
+ * session — falling back to a fresh session and warning the user if the
42
+ * driver changed or the session file no longer exists. For interruptions
43
+ * mid-interview (no SessionStepEntry has been written yet), a sidecar
44
+ * file at `<persistentDir>/interviewer.live.json` carries the in-flight
45
+ * session id across the process boundary.
38
46
  */
39
47
  sessionIds: Record<string, string>;
40
48
  completedAt: string;
@@ -54,7 +62,6 @@ export interface SessionManifest {
54
62
  };
55
63
  /** Resolved orthogonal options — must round-trip on resume. */
56
64
  options: {
57
- opinionless: boolean;
58
65
  yolo: boolean;
59
66
  };
60
67
  /** -1 before the first checkpoint. */
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/session/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAEnB,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAErC;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;IAChC;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;QAC5B,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;IACF,+DAA+D;IAC/D,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,CAAC;QACrB,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,2DAA2D;IAC3D,aAAa,EAAE,OAAO,CAAC;IACvB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,IAAI,CAAC,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/session/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAEnB,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAErC;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;IAChC;;;;;;;;;;;;;;OAcG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;QAC5B,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;IACF,+DAA+D;IAC/D,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,2DAA2D;IAC3D,aAAa,EAAE,OAAO,CAAC;IACvB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,IAAI,CAAC,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/session/resume.ts"],"names":[],"mappings":"AAUA,OAAO,EAIL,KAAK,WAAW,EAEjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,eAAe,CAAC;AAEzE,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAE3C,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAyG3B"}
1
+ {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/session/resume.ts"],"names":[],"mappings":"AAUA,OAAO,EAIL,KAAK,WAAW,EAEjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,eAAe,CAAC;AAEzE,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAE3C,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CA2G3B"}
@@ -41,6 +41,9 @@ export async function runResumedSession(session, pkgVersion) {
41
41
  simplifier: manifest.flow.params.simplifier
42
42
  ? String(manifest.flow.params.simplifier)
43
43
  : undefined,
44
+ interviewer: manifest.flow.params.interviewer
45
+ ? String(manifest.flow.params.interviewer)
46
+ : undefined,
44
47
  planOnly: !!manifest.flow.params.planOnly,
45
48
  }));
46
49
  setProviderVersions(preflight.versions);
@@ -50,7 +53,7 @@ export async function runResumedSession(session, pkgVersion) {
50
53
  exitMessage: "\nPreflight checks failed on resume:\n" + preflight.errors.map(e => ` ${e}`).join("\n"),
51
54
  };
52
55
  }
53
- const hostMode = process.stdin.isTTY === true && process.stdout.isTTY === true;
56
+ const hostMode = process.stdout.isTTY === true;
54
57
  const statusBar = new StatusBar(undefined, { hostManaged: hostMode });
55
58
  statusBar.init();
56
59
  const gitInfo = await getGitInfo(manifest.workdir);
@@ -83,7 +86,6 @@ export async function runResumedSession(session, pkgVersion) {
83
86
  paramValues: manifest.flow.params,
84
87
  task: manifest.taskText,
85
88
  workdir: manifest.workdir,
86
- opinionless: manifest.options.opinionless,
87
89
  yolo: manifest.options.yolo,
88
90
  statusBar,
89
91
  dumpService,
@@ -1 +1 @@
1
- {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/session/resume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/session/resume.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { CliOptions } from "./config.js";
2
- import type { FlowTemplate } from "./flow/types.js";
1
+ import type { CliOptions, ConfigFile } from "./config.js";
2
+ import type { FlowTemplate, FlowParamValue } from "./flow/types.js";
3
3
  import type { TerminalKey } from "./terminal-input.js";
4
4
  import type { GitInfo } from "./git-info.js";
5
5
  import { type UpdateInfo } from "./update-check.js";
@@ -67,14 +67,19 @@ export interface TuiState {
67
67
  templateIndex: number;
68
68
  taskRequired: boolean;
69
69
  updateBanner: UpdateInfo | null;
70
+ paramDefaultsSources?: Array<Record<string, FlowParamValue | undefined>>;
70
71
  }
71
- export declare function buildInitialState(defaults: Partial<CliOptions>, rows: number, cols: number, gitInfo?: GitInfo | null): TuiState;
72
+ export interface StartupTuiContext {
73
+ fileConfig?: ConfigFile;
74
+ userConfig?: ConfigFile;
75
+ }
76
+ export declare function buildInitialState(defaults: Partial<CliOptions>, rows: number, cols: number, gitInfo?: GitInfo | null, ctx?: StartupTuiContext): TuiState;
72
77
  /** Compute available editor height. */
73
78
  export declare function editorHeight(state: TuiState, rowCount?: number): number;
74
79
  export declare function render(state: TuiState, out: NodeJS.WriteStream): void;
75
80
  export type HandleResult = "handled" | "start" | "cancel";
76
81
  export declare function handleEvent(state: TuiState, event: TuiInputEvent): HandleResult;
77
- export declare function buildCliOptions(state: TuiState, workdir?: string): CliOptions;
82
+ export declare function buildCliOptions(state: TuiState): CliOptions;
78
83
  /**
79
84
  * Fire-and-forget background update check. When the check resolves with
80
85
  * a newer version, it sets `state.updateBanner` and re-renders.
@@ -83,5 +88,5 @@ export declare function buildCliOptions(state: TuiState, workdir?: string): CliO
83
88
  export declare function startUpdateCheck(state: TuiState, out: NodeJS.WriteStream, checkFn?: () => Promise<UpdateInfo | null>): {
84
89
  dispose: () => void;
85
90
  };
86
- export declare function showStartupTui(defaults: Partial<CliOptions>): Promise<CliOptions | null>;
91
+ export declare function showStartupTui(defaults: Partial<CliOptions>, ctx?: StartupTuiContext): Promise<CliOptions | null>;
87
92
  //# sourceMappingURL=startup-tui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup-tui.d.ts","sourceRoot":"","sources":["../src/startup-tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup-tui.d.ts","sourceRoot":"","sources":["../src/startup-tui.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import { homedir } from "node:os";
2
2
  import { join } from "node:path";
3
3
  import { flowReadsTask } from "./flow/inspect.js";
4
+ import { resolveFlowParams } from "./flow/params.js";
4
5
  import { createKeyEventSource } from "./terminal/key-event-source.js";
5
6
  import { padToWidth, bold, dim, reset, cyan, red, yellow, HIDE_CURSOR, ALT_SCREEN_ON, ALT_SCREEN_OFF, CSI, } from "./ansi.js";
6
7
  import { getGitInfo } from "./git-info.js";
7
8
  import { checkForUpdate } from "./update-check.js";
8
9
  import { renderAppHeader, shouldShowBanner, tildeify } from "./app-header.js";
9
- import { buildFieldsForTemplate as buildFieldsForTemplateBase, configRowCount, handleFieldEvent, renderConfigFields, renderFlowSection, renderEditorLines, handleTextEditorEvent, computeFlowSectionHeight, } from "./preview-panel.js";
10
+ import { buildFieldsForTemplate as buildFieldsForTemplateBase, configRowCount, handleFieldEvent, recomputeHiddenFlags, renderConfigFields, renderFlowSection, renderEditorLines, handleTextEditorEvent, computeFlowSectionHeight, } from "./preview-panel.js";
10
11
  let flowTemplates = [];
11
12
  let flowBuiltinCount = 0;
12
13
  let flowCustomDir = join(homedir(), ".poly-weaver", "flows");
@@ -82,6 +83,14 @@ export class TuiInputParser {
82
83
  }
83
84
  }
84
85
  }
86
+ function collectParamDefaultSources(ctx) {
87
+ const sources = [];
88
+ if (ctx?.fileConfig)
89
+ sources.push(ctx.fileConfig);
90
+ if (ctx?.userConfig)
91
+ sources.push(ctx.userConfig);
92
+ return sources;
93
+ }
85
94
  // ─── Constants ───────────────────────────────────────────────────────────
86
95
  function headerRows(state, cols) {
87
96
  return shouldShowBanner(state.updateBanner, cols) ? 3 : 2;
@@ -142,28 +151,22 @@ function buildFieldsWithToggles(template, defaults, existingFields) {
142
151
  const fields = buildFieldsForTemplateBase(template, defaults, existingFields);
143
152
  // Orthogonal toggles (not in template params) — preserve existing values
144
153
  const existingYolo = existingFields?.find((f) => f.key === "yolo");
145
- const existingOpinionless = existingFields?.find((f) => f.key === "opinionless");
146
154
  fields.push({
147
155
  kind: "toggle",
148
156
  label: "YOLO",
149
157
  key: "yolo",
150
158
  value: existingYolo?.value ?? defaults.yolo ?? true,
151
159
  });
152
- fields.push({
153
- kind: "toggle",
154
- label: "Opinionless",
155
- key: "opinionless",
156
- value: existingOpinionless?.value ?? defaults.opinionless ?? false,
157
- });
158
160
  return fields;
159
161
  }
160
162
  // ─── State construction ──────────────────────────────────────────────────
161
- export function buildInitialState(defaults, rows, cols, gitInfo) {
163
+ export function buildInitialState(defaults, rows, cols, gitInfo, ctx) {
162
164
  ensureTemplates();
163
165
  // Resolve template index from defaults
164
166
  const templateIndex = flowTemplates.findIndex(t => t.name === defaults.workflow);
165
167
  const template = flowTemplates[templateIndex < 0 ? 0 : templateIndex];
166
168
  const fields = buildFieldsWithToggles(template, defaults);
169
+ recomputeHiddenFlags(fields, template.params);
167
170
  const taskLines = defaults.task ? defaults.task.split("\n") : [""];
168
171
  const state = {
169
172
  zone: "editor",
@@ -183,7 +186,9 @@ export function buildInitialState(defaults, rows, cols, gitInfo) {
183
186
  templateIndex: Math.max(0, templateIndex),
184
187
  taskRequired: true,
185
188
  updateBanner: null,
189
+ paramDefaultsSources: collectParamDefaultSources(ctx),
186
190
  };
191
+ clampConfigIndexToVisible(state);
187
192
  initFlowHeight(state);
188
193
  state.taskRequired = computeTaskRequired(state);
189
194
  if (!state.taskRequired) {
@@ -262,6 +267,33 @@ export function render(state, out) {
262
267
  out.write(output);
263
268
  }
264
269
  }
270
+ // ─── Event handling ──────────────────────────────────────────────────────
271
+ function findVisibleIndex(fields, from, dir) {
272
+ for (let i = from; i >= 0 && i < fields.length; i += dir) {
273
+ if (!fields[i].hidden)
274
+ return i;
275
+ }
276
+ return null;
277
+ }
278
+ function clampConfigIndexToVisible(state) {
279
+ const fields = state.fields;
280
+ if (fields.length === 0)
281
+ return;
282
+ const clamped = Math.max(0, Math.min(state.configIndex, fields.length - 1));
283
+ // Prefer keeping cursor close to its pre-hide position by walking back first,
284
+ // then forward — feels more stable when a field above the cursor disappears.
285
+ const next = findVisibleIndex(fields, clamped, -1) ??
286
+ findVisibleIndex(fields, clamped + 1, 1) ??
287
+ 0;
288
+ state.configIndex = next;
289
+ }
290
+ function advanceConfigIndex(state, direction) {
291
+ const next = findVisibleIndex(state.fields, state.configIndex + direction, direction);
292
+ if (next === null)
293
+ return false;
294
+ state.configIndex = next;
295
+ return true;
296
+ }
265
297
  export function handleEvent(state, event) {
266
298
  // Global shortcuts
267
299
  if (event.type === "ctrl+c")
@@ -279,10 +311,11 @@ export function handleEvent(state, event) {
279
311
  }
280
312
  if (event.type === "shift-tab") {
281
313
  state.templateIndex = (state.templateIndex + 1) % flowTemplates.length;
282
- state.fields = buildFieldsWithToggles(flowTemplates[state.templateIndex], {}, state.fields);
283
- if (state.configIndex >= state.fields.length) {
284
- state.configIndex = state.fields.length - 1;
285
- }
314
+ const newTemplate = flowTemplates[state.templateIndex];
315
+ const resolved = resolveFlowParams(newTemplate.params, ...(state.paramDefaultsSources ?? []));
316
+ state.fields = buildFieldsWithToggles(newTemplate, resolved, state.fields);
317
+ recomputeHiddenFlags(state.fields, newTemplate.params);
318
+ clampConfigIndexToVisible(state);
286
319
  refreshTaskRequired(state);
287
320
  return "handled";
288
321
  }
@@ -312,10 +345,12 @@ function handleEditorEvent(state, event) {
312
345
  // up-from-top: navigate to config zone
313
346
  state.zone = "config";
314
347
  state.configIndex = state.fields.length - 1;
348
+ clampConfigIndexToVisible(state);
315
349
  break;
316
350
  case "tab":
317
351
  state.zone = "config";
318
352
  state.configIndex = 0;
353
+ clampConfigIndexToVisible(state);
319
354
  break;
320
355
  case "escape":
321
356
  break;
@@ -343,14 +378,12 @@ function handleConfigEvent(state, event) {
343
378
  if (!consumed) {
344
379
  switch (event.type) {
345
380
  case "up":
346
- if (state.configIndex > 0)
347
- state.configIndex--;
381
+ advanceConfigIndex(state, -1);
348
382
  break;
349
383
  case "down":
350
- if (state.configIndex < state.fields.length - 1)
351
- state.configIndex++;
352
- else if (state.taskRequired)
384
+ if (!advanceConfigIndex(state, 1) && state.taskRequired) {
353
385
  state.zone = "editor";
386
+ }
354
387
  break;
355
388
  case "tab":
356
389
  case "escape":
@@ -360,12 +393,14 @@ function handleConfigEvent(state, event) {
360
393
  }
361
394
  }
362
395
  if (consumed || wasEditing) {
396
+ recomputeHiddenFlags(state.fields, getActiveTemplate(state).params);
397
+ clampConfigIndexToVisible(state);
363
398
  refreshTaskRequired(state);
364
399
  }
365
400
  return "handled";
366
401
  }
367
402
  // ─── Build final CliOptions ──────────────────────────────────────────────
368
- export function buildCliOptions(state, workdir) {
403
+ export function buildCliOptions(state) {
369
404
  const fieldVal = (key) => {
370
405
  const f = state.fields.find((field) => field.key === key);
371
406
  if (!f)
@@ -376,7 +411,6 @@ export function buildCliOptions(state, workdir) {
376
411
  const template = getActiveTemplate(state);
377
412
  const result = {
378
413
  task: state.taskRequired ? state.editor.lines.join("\n").trim() : "",
379
- workdir: workdir ?? process.cwd(),
380
414
  workflow: template.name,
381
415
  };
382
416
  for (const param of template.params) {
@@ -384,7 +418,6 @@ export function buildCliOptions(state, workdir) {
384
418
  }
385
419
  // Orthogonal options
386
420
  result.yolo = fieldVal("yolo") ?? true;
387
- result.opinionless = fieldVal("opinionless") ?? false;
388
421
  return result;
389
422
  }
390
423
  // ─── Update check integration ─────────────────────────────────────────────
@@ -407,17 +440,17 @@ export function startUpdateCheck(state, out, checkFn = checkForUpdate) {
407
440
  };
408
441
  }
409
442
  // ─── Main entry point ────────────────────────────────────────────────────
410
- export async function showStartupTui(defaults) {
443
+ export async function showStartupTui(defaults, ctx) {
411
444
  const rows = process.stdout.rows ?? 24;
412
445
  const cols = process.stdout.columns ?? 80;
413
- const gitInfo = await getGitInfo(defaults.workdir ?? process.cwd());
414
- const state = buildInitialState(defaults, rows, cols, gitInfo);
446
+ const gitInfo = await getGitInfo(process.cwd());
447
+ const state = buildInitialState(defaults, rows, cols, gitInfo, ctx);
415
448
  process.stdout.write(ALT_SCREEN_ON);
416
449
  const updateCheck = startUpdateCheck(state, process.stdout);
417
450
  try {
418
451
  lastDrawnOutput = undefined;
419
452
  render(state, process.stdout);
420
- const result = await inputLoop(state, defaults.workdir);
453
+ const result = await inputLoop(state);
421
454
  updateCheck.dispose();
422
455
  return result;
423
456
  }
@@ -426,7 +459,7 @@ export async function showStartupTui(defaults) {
426
459
  process.stdout.write(ALT_SCREEN_OFF);
427
460
  }
428
461
  }
429
- async function inputLoop(state, workdir) {
462
+ async function inputLoop(state) {
430
463
  const parser = new TuiInputParser();
431
464
  const source = createKeyEventSource();
432
465
  source.start();
@@ -436,7 +469,7 @@ async function inputLoop(state, workdir) {
436
469
  const result = handleEvent(state, event);
437
470
  if (result === "start") {
438
471
  cleanup();
439
- resolve(buildCliOptions(state, workdir));
472
+ resolve(buildCliOptions(state));
440
473
  return;
441
474
  }
442
475
  else if (result === "cancel") {