poly-weaver 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) 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/adapter.d.ts +1 -1
  7. package/dist/agents/implementors/adapter.d.ts.map +1 -1
  8. package/dist/agents/implementors/adapter.js +2 -2
  9. package/dist/agents/implementors/adapter.js.map +1 -1
  10. package/dist/agents/implementors/handler.d.ts.map +1 -1
  11. package/dist/agents/implementors/handler.js +2 -1
  12. package/dist/agents/implementors/handler.js.map +1 -1
  13. package/dist/agents/implementors/index.d.ts.map +1 -1
  14. package/dist/agents/implementors/index.js +3 -9
  15. package/dist/agents/implementors/index.js.map +1 -1
  16. package/dist/agents/implementors/prompts.d.ts +4 -9
  17. package/dist/agents/implementors/prompts.d.ts.map +1 -1
  18. package/dist/agents/implementors/prompts.js +10 -16
  19. package/dist/agents/implementors/prompts.js.map +1 -1
  20. package/dist/agents/index.d.ts +2 -0
  21. package/dist/agents/index.d.ts.map +1 -1
  22. package/dist/agents/index.js +4 -0
  23. package/dist/agents/index.js.map +1 -1
  24. package/dist/agents/interviewers/adapter.d.ts +17 -0
  25. package/dist/agents/interviewers/adapter.d.ts.map +1 -0
  26. package/dist/agents/interviewers/adapter.js +111 -0
  27. package/dist/agents/interviewers/adapter.js.map +1 -0
  28. package/dist/agents/interviewers/dsl.d.ts +13 -0
  29. package/dist/agents/interviewers/dsl.d.ts.map +1 -0
  30. package/dist/agents/interviewers/dsl.js +14 -0
  31. package/dist/agents/interviewers/dsl.js.map +1 -0
  32. package/dist/agents/interviewers/handler.d.ts +21 -0
  33. package/dist/agents/interviewers/handler.d.ts.map +1 -0
  34. package/dist/agents/interviewers/handler.js +217 -0
  35. package/dist/agents/interviewers/handler.js.map +1 -0
  36. package/dist/agents/interviewers/index.d.ts +11 -0
  37. package/dist/agents/interviewers/index.d.ts.map +1 -0
  38. package/dist/agents/interviewers/index.js +16 -0
  39. package/dist/agents/interviewers/index.js.map +1 -0
  40. package/dist/agents/interviewers/prompts.d.ts +3 -0
  41. package/dist/agents/interviewers/prompts.d.ts.map +1 -0
  42. package/dist/agents/interviewers/prompts.js +73 -0
  43. package/dist/agents/interviewers/prompts.js.map +1 -0
  44. package/dist/agents/interviewers/types.d.ts +53 -0
  45. package/dist/agents/interviewers/types.d.ts.map +1 -0
  46. package/dist/agents/interviewers/types.js +2 -0
  47. package/dist/agents/interviewers/types.js.map +1 -0
  48. package/dist/agents/planners/adapter.d.ts +1 -1
  49. package/dist/agents/planners/adapter.d.ts.map +1 -1
  50. package/dist/agents/planners/adapter.js +2 -2
  51. package/dist/agents/planners/adapter.js.map +1 -1
  52. package/dist/agents/planners/dsl.d.ts +5 -1
  53. package/dist/agents/planners/dsl.d.ts.map +1 -1
  54. package/dist/agents/planners/handler.d.ts.map +1 -1
  55. package/dist/agents/planners/handler.js +44 -25
  56. package/dist/agents/planners/handler.js.map +1 -1
  57. package/dist/agents/planners/index.d.ts.map +1 -1
  58. package/dist/agents/planners/index.js +3 -9
  59. package/dist/agents/planners/index.js.map +1 -1
  60. package/dist/agents/planners/prompts.d.ts +5 -11
  61. package/dist/agents/planners/prompts.d.ts.map +1 -1
  62. package/dist/agents/planners/prompts.js +15 -22
  63. package/dist/agents/planners/prompts.js.map +1 -1
  64. package/dist/agents/registry.d.ts +2 -1
  65. package/dist/agents/registry.d.ts.map +1 -1
  66. package/dist/agents/registry.js.map +1 -1
  67. package/dist/agents/reviewers/adapter.d.ts +2 -2
  68. package/dist/agents/reviewers/adapter.d.ts.map +1 -1
  69. package/dist/agents/reviewers/adapter.js +4 -4
  70. package/dist/agents/reviewers/adapter.js.map +1 -1
  71. package/dist/agents/reviewers/dsl.d.ts +6 -1
  72. package/dist/agents/reviewers/dsl.d.ts.map +1 -1
  73. package/dist/agents/reviewers/dsl.js.map +1 -1
  74. package/dist/agents/reviewers/handler.d.ts.map +1 -1
  75. package/dist/agents/reviewers/handler.js +24 -6
  76. package/dist/agents/reviewers/handler.js.map +1 -1
  77. package/dist/agents/reviewers/index.d.ts.map +1 -1
  78. package/dist/agents/reviewers/index.js +7 -9
  79. package/dist/agents/reviewers/index.js.map +1 -1
  80. package/dist/agents/reviewers/prompts.d.ts +5 -11
  81. package/dist/agents/reviewers/prompts.d.ts.map +1 -1
  82. package/dist/agents/reviewers/prompts.js +22 -21
  83. package/dist/agents/reviewers/prompts.js.map +1 -1
  84. package/dist/agents/reviewers/types.d.ts +5 -2
  85. package/dist/agents/reviewers/types.d.ts.map +1 -1
  86. package/dist/agents/reviewers/types.js.map +1 -1
  87. package/dist/agents/runner.d.ts +28 -1
  88. package/dist/agents/runner.d.ts.map +1 -1
  89. package/dist/agents/runner.js +140 -22
  90. package/dist/agents/runner.js.map +1 -1
  91. package/dist/agents/simplifiers/adapter.d.ts +1 -1
  92. package/dist/agents/simplifiers/adapter.d.ts.map +1 -1
  93. package/dist/agents/simplifiers/adapter.js +2 -2
  94. package/dist/agents/simplifiers/adapter.js.map +1 -1
  95. package/dist/agents/simplifiers/handler.d.ts.map +1 -1
  96. package/dist/agents/simplifiers/handler.js +2 -1
  97. package/dist/agents/simplifiers/handler.js.map +1 -1
  98. package/dist/agents/simplifiers/index.d.ts.map +1 -1
  99. package/dist/agents/simplifiers/index.js +1 -1
  100. package/dist/agents/simplifiers/index.js.map +1 -1
  101. package/dist/ansi.d.ts.map +1 -1
  102. package/dist/ansi.js +2 -3
  103. package/dist/ansi.js.map +1 -1
  104. package/dist/cli.js +84 -187
  105. package/dist/cli.js.map +1 -1
  106. package/dist/config.d.ts +14 -9
  107. package/dist/config.d.ts.map +1 -1
  108. package/dist/config.js +24 -5
  109. package/dist/config.js.map +1 -1
  110. package/dist/dsl.d.ts +4 -1
  111. package/dist/dsl.d.ts.map +1 -1
  112. package/dist/dsl.js +4 -3
  113. package/dist/dsl.js.map +1 -1
  114. package/dist/dump/collector.d.ts.map +1 -1
  115. package/dist/dump/collector.js +22 -1
  116. package/dist/dump/collector.js.map +1 -1
  117. package/dist/dump/service.d.ts.map +1 -1
  118. package/dist/dump/service.js +1 -0
  119. package/dist/dump/service.js.map +1 -1
  120. package/dist/dump/types.d.ts +38 -0
  121. package/dist/dump/types.d.ts.map +1 -1
  122. package/dist/dump/types.js.map +1 -1
  123. package/dist/flow/built-in/default-factory.d.ts.map +1 -1
  124. package/dist/flow/built-in/default-factory.js +70 -66
  125. package/dist/flow/built-in/default-factory.js.map +1 -1
  126. package/dist/flow/built-in/default.d.ts +1 -1
  127. package/dist/flow/built-in/default.d.ts.map +1 -1
  128. package/dist/flow/built-in/default.js +3 -3
  129. package/dist/flow/built-in/default.js.map +1 -1
  130. package/dist/flow/built-in/default.ts +4 -4
  131. package/dist/flow/custom/AUTHORING.md +54 -54
  132. package/dist/flow/custom/load.d.ts.map +1 -1
  133. package/dist/flow/custom/load.js +0 -1
  134. package/dist/flow/custom/load.js.map +1 -1
  135. package/dist/flow/dsl.d.ts +2 -0
  136. package/dist/flow/dsl.d.ts.map +1 -1
  137. package/dist/flow/dsl.js +2 -0
  138. package/dist/flow/dsl.js.map +1 -1
  139. package/dist/flow/executor.d.ts +2 -1
  140. package/dist/flow/executor.d.ts.map +1 -1
  141. package/dist/flow/executor.js +31 -14
  142. package/dist/flow/executor.js.map +1 -1
  143. package/dist/flow/index.d.ts +1 -2
  144. package/dist/flow/index.d.ts.map +1 -1
  145. package/dist/flow/index.js +1 -2
  146. package/dist/flow/index.js.map +1 -1
  147. package/dist/flow/params.d.ts +19 -2
  148. package/dist/flow/params.d.ts.map +1 -1
  149. package/dist/flow/params.js +70 -1
  150. package/dist/flow/params.js.map +1 -1
  151. package/dist/flow/types.d.ts +33 -3
  152. package/dist/flow/types.d.ts.map +1 -1
  153. package/dist/flow/types.js +6 -0
  154. package/dist/flow/types.js.map +1 -1
  155. package/dist/flow-editor/tui.d.ts.map +1 -1
  156. package/dist/flow-editor/tui.js +10 -8
  157. package/dist/flow-editor/tui.js.map +1 -1
  158. package/dist/flow-editor/validate.d.ts.map +1 -1
  159. package/dist/flow-editor/validate.js +2 -1
  160. package/dist/flow-editor/validate.js.map +1 -1
  161. package/dist/markdown.d.ts +5 -0
  162. package/dist/markdown.d.ts.map +1 -1
  163. package/dist/markdown.js +48 -1
  164. package/dist/markdown.js.map +1 -1
  165. package/dist/orchestrator.d.ts +16 -5
  166. package/dist/orchestrator.d.ts.map +1 -1
  167. package/dist/orchestrator.js +106 -25
  168. package/dist/orchestrator.js.map +1 -1
  169. package/dist/preflight.d.ts +11 -0
  170. package/dist/preflight.d.ts.map +1 -1
  171. package/dist/preflight.js +49 -16
  172. package/dist/preflight.js.map +1 -1
  173. package/dist/preview-panel.d.ts +30 -5
  174. package/dist/preview-panel.d.ts.map +1 -1
  175. package/dist/preview-panel.js +332 -15
  176. package/dist/preview-panel.js.map +1 -1
  177. package/dist/providers/base-completion.d.ts +5 -1
  178. package/dist/providers/base-completion.d.ts.map +1 -1
  179. package/dist/providers/base-completion.js +65 -5
  180. package/dist/providers/base-completion.js.map +1 -1
  181. package/dist/providers/claude/completion-plan-mode.d.ts +1 -1
  182. package/dist/providers/claude/completion-plan-mode.d.ts.map +1 -1
  183. package/dist/providers/claude/completion-plan-mode.js +2 -2
  184. package/dist/providers/claude/completion-plan-mode.js.map +1 -1
  185. package/dist/providers/claude/completion.d.ts +1 -1
  186. package/dist/providers/claude/completion.d.ts.map +1 -1
  187. package/dist/providers/claude/completion.js +2 -2
  188. package/dist/providers/claude/completion.js.map +1 -1
  189. package/dist/providers/claude/strategy.d.ts +2 -4
  190. package/dist/providers/claude/strategy.d.ts.map +1 -1
  191. package/dist/providers/claude/strategy.js +6 -2
  192. package/dist/providers/claude/strategy.js.map +1 -1
  193. package/dist/providers/codex/completion.d.ts +1 -1
  194. package/dist/providers/codex/completion.d.ts.map +1 -1
  195. package/dist/providers/codex/completion.js +2 -2
  196. package/dist/providers/codex/completion.js.map +1 -1
  197. package/dist/providers/codex/strategy.d.ts +2 -4
  198. package/dist/providers/codex/strategy.d.ts.map +1 -1
  199. package/dist/providers/codex/strategy.js +11 -6
  200. package/dist/providers/codex/strategy.js.map +1 -1
  201. package/dist/providers/copilot/completion.d.ts +1 -1
  202. package/dist/providers/copilot/completion.d.ts.map +1 -1
  203. package/dist/providers/copilot/completion.js +2 -2
  204. package/dist/providers/copilot/completion.js.map +1 -1
  205. package/dist/providers/copilot/strategy.d.ts +2 -3
  206. package/dist/providers/copilot/strategy.d.ts.map +1 -1
  207. package/dist/providers/copilot/strategy.js +13 -6
  208. package/dist/providers/copilot/strategy.js.map +1 -1
  209. package/dist/providers/option-catalog.d.ts +8 -0
  210. package/dist/providers/option-catalog.d.ts.map +1 -0
  211. package/dist/providers/option-catalog.js +33 -0
  212. package/dist/providers/option-catalog.js.map +1 -0
  213. package/dist/providers/types.d.ts +8 -3
  214. package/dist/providers/types.d.ts.map +1 -1
  215. package/dist/providers/types.js.map +1 -1
  216. package/dist/providers/version.d.ts.map +1 -1
  217. package/dist/providers/version.js +6 -2
  218. package/dist/providers/version.js.map +1 -1
  219. package/dist/pty/exit.js +1 -1
  220. package/dist/pty/exit.js.map +1 -1
  221. package/dist/pty/spawn.d.ts +1 -0
  222. package/dist/pty/spawn.d.ts.map +1 -1
  223. package/dist/pty/spawn.js +13 -9
  224. package/dist/pty/spawn.js.map +1 -1
  225. package/dist/pty/types.d.ts +5 -1
  226. package/dist/pty/types.d.ts.map +1 -1
  227. package/dist/resume-tui.d.ts +6 -0
  228. package/dist/resume-tui.d.ts.map +1 -1
  229. package/dist/resume-tui.js +27 -12
  230. package/dist/resume-tui.js.map +1 -1
  231. package/dist/session/manifest.d.ts +12 -5
  232. package/dist/session/manifest.d.ts.map +1 -1
  233. package/dist/session/resume.d.ts.map +1 -1
  234. package/dist/session/resume.js +4 -2
  235. package/dist/session/resume.js.map +1 -1
  236. package/dist/startup-tui.d.ts +19 -5
  237. package/dist/startup-tui.d.ts.map +1 -1
  238. package/dist/startup-tui.js +134 -46
  239. package/dist/startup-tui.js.map +1 -1
  240. package/dist/terminal/win32-key-translator.d.ts.map +1 -1
  241. package/dist/terminal/win32-key-translator.js +5 -2
  242. package/dist/terminal/win32-key-translator.js.map +1 -1
  243. package/dist/terminal-input.d.ts.map +1 -1
  244. package/dist/terminal-input.js +9 -6
  245. package/dist/terminal-input.js.map +1 -1
  246. package/dist/user/curate-handler.d.ts.map +1 -1
  247. package/dist/user/curate-handler.js +25 -32
  248. package/dist/user/curate-handler.js.map +1 -1
  249. package/dist/user/curate-prompt.d.ts +1 -1
  250. package/dist/user/dsl.d.ts +1 -0
  251. package/dist/user/dsl.d.ts.map +1 -1
  252. package/dist/user/dsl.js +1 -0
  253. package/dist/user/dsl.js.map +1 -1
  254. package/dist/user/handler.d.ts.map +1 -1
  255. package/dist/user/handler.js +2 -1
  256. package/dist/user/handler.js.map +1 -1
  257. package/dist/user/host-curate-prompt.d.ts.map +1 -1
  258. package/dist/user/host-curate-prompt.js +105 -15
  259. package/dist/user/host-curate-prompt.js.map +1 -1
  260. package/dist/user/host-prompt.d.ts.map +1 -1
  261. package/dist/user/host-prompt.js +13 -5
  262. package/dist/user/host-prompt.js.map +1 -1
  263. package/dist/user/index.d.ts +1 -2
  264. package/dist/user/index.d.ts.map +1 -1
  265. package/dist/user/index.js +1 -2
  266. package/dist/user/index.js.map +1 -1
  267. package/dist/user/plan-pane.d.ts +32 -1
  268. package/dist/user/plan-pane.d.ts.map +1 -1
  269. package/dist/user/plan-pane.js +158 -5
  270. package/dist/user/plan-pane.js.map +1 -1
  271. package/dist/user/prompt.d.ts +9 -6
  272. package/dist/user/prompt.d.ts.map +1 -1
  273. package/dist/user/prompt.js +3 -8
  274. package/dist/user/prompt.js.map +1 -1
  275. package/package.json +1 -1
  276. package/schemas/review-verdict.json +13 -0
  277. package/dist/flow/built-in/why-so-serious-factory.d.ts +0 -16
  278. package/dist/flow/built-in/why-so-serious-factory.d.ts.map +0 -1
  279. package/dist/flow/built-in/why-so-serious-factory.js +0 -187
  280. package/dist/flow/built-in/why-so-serious-factory.js.map +0 -1
  281. package/dist/flow/built-in/why-so-serious.d.ts +0 -17
  282. package/dist/flow/built-in/why-so-serious.d.ts.map +0 -1
  283. package/dist/flow/built-in/why-so-serious.js +0 -23
  284. package/dist/flow/built-in/why-so-serious.js.map +0 -1
  285. package/dist/user/auto-curate-prompt.d.ts +0 -17
  286. package/dist/user/auto-curate-prompt.d.ts.map +0 -1
  287. package/dist/user/auto-curate-prompt.js +0 -22
  288. package/dist/user/auto-curate-prompt.js.map +0 -1
@@ -1,5 +1,6 @@
1
1
  import type { TuiInputEvent, TaskEditor } from "./startup-tui.js";
2
- import type { FlowParamValues, FlowStep, FlowTemplate } from "./flow/types.js";
2
+ import type { DriverMemory } from "./config.js";
3
+ import type { BuiltinRole, FlowParam, FlowParamValues, FlowStep, FlowTemplate } from "./flow/types.js";
3
4
  export type SelectField = {
4
5
  kind: "select";
5
6
  label: string;
@@ -8,6 +9,7 @@ export type SelectField = {
8
9
  value: string;
9
10
  expanded: boolean;
10
11
  expandedIndex: number;
12
+ hidden?: boolean;
11
13
  };
12
14
  export type NumberField = {
13
15
  kind: "number";
@@ -18,23 +20,46 @@ export type NumberField = {
18
20
  max: number;
19
21
  editing: boolean;
20
22
  editBuffer: string;
23
+ hidden?: boolean;
21
24
  };
22
25
  export type ToggleField = {
23
26
  kind: "toggle";
24
27
  label: string;
25
28
  key: string;
26
29
  value: boolean;
30
+ hidden?: boolean;
27
31
  };
28
- export type ConfigField = SelectField | NumberField | ToggleField;
32
+ export type RoleGroupField = {
33
+ kind: "group";
34
+ key: string;
35
+ value: string;
36
+ role: BuiltinRole;
37
+ label: string;
38
+ providerKey: string;
39
+ modelKey: string;
40
+ effortKey: string;
41
+ children: [SelectField, SelectField, SelectField];
42
+ groupExpanded: boolean;
43
+ focusedChild: number;
44
+ hidden?: boolean;
45
+ };
46
+ export type ConfigField = SelectField | NumberField | ToggleField | RoleGroupField;
29
47
  export declare const LABEL_WIDTH = 28;
30
48
  export declare const FLOW_LABEL_ROWS = 1;
31
49
  export declare const DIAGRAM_PADDING = 4;
32
50
  /**
33
51
  * Build ConfigField[] from template params. Does NOT include
34
- * orthogonal toggles (yolo, opinionless) — callers
35
- * append those separately if needed.
52
+ * orthogonal toggles (yolo) — callers append those separately if needed.
36
53
  */
37
54
  export declare function buildFieldsForTemplate(template: FlowTemplate, defaults: Record<string, unknown>, existingFields?: ConfigField[]): ConfigField[];
55
+ export declare function findFieldByKey(fields: readonly ConfigField[], key: string): SelectField | NumberField | ToggleField | undefined;
56
+ export declare function reconcileModelEffortForGroup(group: RoleGroupField, driverMemory?: DriverMemory): void;
57
+ /**
58
+ * Mutate `field.hidden` in place based on each template param's
59
+ * `visibleWhen` predicate. Fields without a matching param (e.g.
60
+ * orthogonal toggles like `yolo`) are left untouched.
61
+ */
62
+ export declare function recomputeHiddenFlags(fields: ConfigField[], params: readonly FlowParam[]): void;
38
63
  export declare function configRowCount(fields: ConfigField[]): number;
39
64
  export declare function extractFlowValues(fields: ConfigField[], template: FlowTemplate): FlowParamValues;
40
65
  export declare function diagramWidth(flow: {
@@ -48,7 +73,7 @@ export declare function commitNumberEdit(field: NumberField): void;
48
73
  * Navigation (up/down/tab/escape) is NOT handled here — left
49
74
  * to the calling TUI.
50
75
  */
51
- export declare function handleFieldEvent(fields: ConfigField[], index: number, event: TuiInputEvent): boolean;
76
+ export declare function handleFieldEvent(fields: ConfigField[], index: number, event: TuiInputEvent, driverMemory?: DriverMemory): boolean;
52
77
  /**
53
78
  * Handle a text-editor event (insert, backspace, cursor movement).
54
79
  * Returns `true` if the event was consumed by the editor.
@@ -1 +1 @@
1
- {"version":3,"file":"preview-panel.d.ts","sourceRoot":"","sources":["../src/preview-panel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview-panel.d.ts","sourceRoot":"","sources":["../src/preview-panel.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { availableDriversForRole } from "./agents/registry.js";
2
2
  import { diagramHeight, renderFlowDiagram, computeMinWidth, detailedDiagramHeight, renderDetailedFlowDiagram, computeDetailedMinWidth } from "./flow/diagram.js";
3
+ import { getProviderForRole, getRoleModelEffortKeys } from "./flow/params.js";
4
+ import { defaultEffort, defaultModel, isKnownEffort, isKnownModel, providerEfforts, providerModels, } from "./providers/option-catalog.js";
3
5
  import { visibleLength, padToWidth, dim, bold, reset, green, invert } from "./ansi.js";
4
6
  // ─── Constants ───────────────────────────────────────────────────────────
5
7
  export const LABEL_WIDTH = 28;
@@ -8,13 +10,39 @@ export const DIAGRAM_PADDING = 4;
8
10
  // ─── Field Building ──────────────────────────────────────────────────────
9
11
  /**
10
12
  * Build ConfigField[] from template params. Does NOT include
11
- * orthogonal toggles (yolo, opinionless) — callers
12
- * append those separately if needed.
13
+ * orthogonal toggles (yolo) — callers append those separately if needed.
13
14
  */
14
15
  export function buildFieldsForTemplate(template, defaults, existingFields) {
15
16
  const fields = [];
17
+ const roleBuckets = new Map();
16
18
  for (const param of template.params) {
17
- const existing = existingFields?.find((f) => f.key === param.key);
19
+ if (param.type !== "driver" && param.type !== "model" && param.type !== "effort") {
20
+ continue;
21
+ }
22
+ const bucket = roleBuckets.get(param.role) ?? {};
23
+ if (param.type === "driver")
24
+ bucket.driver = param;
25
+ if (param.type === "model")
26
+ bucket.model = param;
27
+ if (param.type === "effort")
28
+ bucket.effort = param;
29
+ roleBuckets.set(param.role, bucket);
30
+ }
31
+ const groupedRoles = new Set([...roleBuckets.entries()]
32
+ .filter(([, b]) => b.driver && b.model && b.effort)
33
+ .map(([role]) => role));
34
+ const emittedGroups = new Set();
35
+ for (const param of template.params) {
36
+ if ((param.type === "driver" || param.type === "model" || param.type === "effort") &&
37
+ groupedRoles.has(param.role)) {
38
+ if (emittedGroups.has(param.role))
39
+ continue;
40
+ const bucket = roleBuckets.get(param.role);
41
+ fields.push(buildRoleGroupField(param.role, bucket.driver, bucket.model, bucket.effort, template, defaults, existingFields));
42
+ emittedGroups.add(param.role);
43
+ continue;
44
+ }
45
+ const existing = existingFields ? findFieldByKey(existingFields, param.key) : undefined;
18
46
  const defaultVal = existing ? existing.value : defaults[param.key];
19
47
  switch (param.type) {
20
48
  case "driver": {
@@ -31,6 +59,34 @@ export function buildFieldsForTemplate(template, defaults, existingFields) {
31
59
  });
32
60
  break;
33
61
  }
62
+ case "model": {
63
+ const mp = param;
64
+ const provider = getProviderForRole(mp.role, template.params, valuesForTemplate(template, defaults, existingFields));
65
+ fields.push({
66
+ kind: "select",
67
+ label: mp.label,
68
+ key: mp.key,
69
+ options: [...providerModels(provider)],
70
+ value: defaultVal ?? defaultModel(provider),
71
+ expanded: false,
72
+ expandedIndex: 0,
73
+ });
74
+ break;
75
+ }
76
+ case "effort": {
77
+ const ep = param;
78
+ const provider = getProviderForRole(ep.role, template.params, valuesForTemplate(template, defaults, existingFields));
79
+ fields.push({
80
+ kind: "select",
81
+ label: ep.label,
82
+ key: ep.key,
83
+ options: [...providerEfforts(provider)],
84
+ value: defaultVal ?? defaultEffort(provider),
85
+ expanded: false,
86
+ expandedIndex: 0,
87
+ });
88
+ break;
89
+ }
34
90
  case "number": {
35
91
  const np = param;
36
92
  fields.push({
@@ -59,22 +115,191 @@ export function buildFieldsForTemplate(template, defaults, existingFields) {
59
115
  }
60
116
  return fields;
61
117
  }
118
+ function buildRoleGroupField(role, driverParam, modelParam, effortParam, template, defaults, existingFields) {
119
+ const existingProvider = existingFields ? findFieldByKey(existingFields, driverParam.key) : undefined;
120
+ const previous = existingFields?.find((f) => f.kind === "group" && f.providerKey === driverParam.key);
121
+ const provider = (previous?.value ??
122
+ existingProvider?.value ??
123
+ defaults[driverParam.key] ??
124
+ driverParam.default);
125
+ const existingModel = existingFields ? findFieldByKey(existingFields, modelParam.key) : undefined;
126
+ const existingEffort = existingFields ? findFieldByKey(existingFields, effortParam.key) : undefined;
127
+ const model = (existingModel?.value ?? defaults[modelParam.key] ?? defaultModel(provider));
128
+ const effort = (existingEffort?.value ?? defaults[effortParam.key] ?? defaultEffort(provider));
129
+ const group = {
130
+ kind: "group",
131
+ key: driverParam.key,
132
+ value: provider,
133
+ role,
134
+ label: driverParam.label,
135
+ providerKey: driverParam.key,
136
+ ...getRoleModelEffortKeys(role, template.params),
137
+ modelKey: modelParam.key,
138
+ effortKey: effortParam.key,
139
+ children: [
140
+ {
141
+ kind: "select",
142
+ label: "Provider",
143
+ key: driverParam.key,
144
+ options: availableDriversForRole(role),
145
+ value: provider,
146
+ expanded: false,
147
+ expandedIndex: 0,
148
+ },
149
+ {
150
+ kind: "select",
151
+ label: "Model",
152
+ key: modelParam.key,
153
+ options: [...providerModels(provider)],
154
+ value: model,
155
+ expanded: false,
156
+ expandedIndex: 0,
157
+ },
158
+ {
159
+ kind: "select",
160
+ label: "Effort",
161
+ key: effortParam.key,
162
+ options: [...providerEfforts(provider)],
163
+ value: effort,
164
+ expanded: false,
165
+ expandedIndex: 0,
166
+ },
167
+ ],
168
+ groupExpanded: previous?.groupExpanded ?? false,
169
+ focusedChild: previous?.focusedChild ?? 0,
170
+ };
171
+ reconcileModelEffortForGroup(group);
172
+ return group;
173
+ }
62
174
  // ─── Field Utilities ─────────────────────────────────────────────────────
175
+ export function findFieldByKey(fields, key) {
176
+ for (const field of fields) {
177
+ if (field.kind === "group") {
178
+ const child = field.children.find((c) => c.key === key);
179
+ if (child)
180
+ return child;
181
+ }
182
+ else if (field.key === key) {
183
+ return field;
184
+ }
185
+ }
186
+ return undefined;
187
+ }
188
+ function findFieldOwnerByKey(fields, key) {
189
+ for (const owner of fields) {
190
+ if (owner.kind === "group") {
191
+ const field = owner.children.find((c) => c.key === key);
192
+ if (field)
193
+ return { field, owner };
194
+ }
195
+ else if (owner.key === key) {
196
+ return { field: owner, owner };
197
+ }
198
+ }
199
+ return undefined;
200
+ }
201
+ function valuesForTemplate(template, defaults, existingFields) {
202
+ const values = {};
203
+ for (const param of template.params) {
204
+ const existing = existingFields ? findFieldByKey(existingFields, param.key) : undefined;
205
+ const value = existing?.value ?? defaults[param.key] ?? defaultParamValue(param);
206
+ if (value !== undefined)
207
+ values[param.key] = value;
208
+ }
209
+ return values;
210
+ }
211
+ function defaultParamValue(param) {
212
+ switch (param.type) {
213
+ case "driver":
214
+ case "number":
215
+ case "boolean":
216
+ return param.default;
217
+ case "model":
218
+ case "effort":
219
+ return undefined;
220
+ }
221
+ }
222
+ export function reconcileModelEffortForGroup(group, driverMemory) {
223
+ const provider = group.children[0].value;
224
+ group.value = provider;
225
+ const model = group.children[1];
226
+ const effort = group.children[2];
227
+ model.options = [...providerModels(provider)];
228
+ effort.options = [...providerEfforts(provider)];
229
+ const memory = driverMemory?.[group.role]?.[provider];
230
+ if (memory?.model && isKnownModel(provider, memory.model)) {
231
+ model.value = memory.model;
232
+ }
233
+ else if (!isKnownModel(provider, model.value)) {
234
+ model.value = defaultModel(provider);
235
+ }
236
+ if (memory?.effort && isKnownEffort(provider, memory.effort)) {
237
+ effort.value = memory.effort;
238
+ }
239
+ else if (!isKnownEffort(provider, effort.value)) {
240
+ effort.value = defaultEffort(provider);
241
+ }
242
+ model.expandedIndex = Math.max(0, model.options.indexOf(model.value));
243
+ effort.expandedIndex = Math.max(0, effort.options.indexOf(effort.value));
244
+ }
245
+ /**
246
+ * Mutate `field.hidden` in place based on each template param's
247
+ * `visibleWhen` predicate. Fields without a matching param (e.g.
248
+ * orthogonal toggles like `yolo`) are left untouched.
249
+ */
250
+ export function recomputeHiddenFlags(fields, params) {
251
+ const snapshot = {};
252
+ for (const param of params) {
253
+ const field = findFieldByKey(fields, param.key);
254
+ const value = field?.value ?? defaultParamValue(param);
255
+ if (value !== undefined)
256
+ snapshot[param.key] = value;
257
+ }
258
+ const groupedVisibility = new Map();
259
+ for (const param of params) {
260
+ if (!param.visibleWhen)
261
+ continue;
262
+ const match = findFieldOwnerByKey(fields, param.key);
263
+ if (!match)
264
+ continue;
265
+ const hidden = !param.visibleWhen(snapshot);
266
+ match.field.hidden = hidden;
267
+ if (match.owner.kind === "group") {
268
+ groupedVisibility.set(match.owner, (groupedVisibility.get(match.owner) ?? false) || hidden);
269
+ }
270
+ else {
271
+ match.owner.hidden = hidden;
272
+ }
273
+ }
274
+ for (const [group, hidden] of groupedVisibility) {
275
+ group.hidden = hidden;
276
+ }
277
+ }
63
278
  export function configRowCount(fields) {
64
279
  let rows = 0;
65
280
  for (const f of fields) {
281
+ if (f.hidden)
282
+ continue;
66
283
  rows += 1;
67
284
  if (f.kind === "select" && f.expanded) {
68
285
  rows += f.options.length;
69
286
  }
287
+ else if (f.kind === "group" && f.groupExpanded) {
288
+ rows += f.children.length;
289
+ const expandedChild = f.children.find((c) => c.expanded);
290
+ if (expandedChild)
291
+ rows += expandedChild.options.length;
292
+ }
70
293
  }
71
294
  return rows;
72
295
  }
73
296
  export function extractFlowValues(fields, template) {
74
297
  const values = {};
75
298
  for (const param of template.params) {
76
- const field = fields.find((f) => f.key === param.key);
77
- values[param.key] = field?.value ?? param.default;
299
+ const field = findFieldByKey(fields, param.key);
300
+ const value = field?.value ?? defaultParamValue(param);
301
+ if (value !== undefined)
302
+ values[param.key] = value;
78
303
  }
79
304
  return values;
80
305
  }
@@ -83,11 +308,12 @@ export function diagramWidth(flow, termCols, detailed) {
83
308
  return Math.min(minW + DIAGRAM_PADDING, termCols - 4);
84
309
  }
85
310
  export function cycleSelectValue(field, dir) {
311
+ if (field.options.length === 0)
312
+ return;
86
313
  const idx = field.options.indexOf(field.value);
87
- const next = idx + dir;
88
- if (next >= 0 && next < field.options.length) {
89
- field.value = field.options[next];
90
- }
314
+ const start = idx >= 0 ? idx : 0;
315
+ const next = ((start + dir) % field.options.length + field.options.length) % field.options.length;
316
+ field.value = field.options[next];
91
317
  }
92
318
  export function commitNumberEdit(field) {
93
319
  const parsed = parseInt(field.editBuffer, 10);
@@ -104,8 +330,11 @@ export function commitNumberEdit(field) {
104
330
  * Navigation (up/down/tab/escape) is NOT handled here — left
105
331
  * to the calling TUI.
106
332
  */
107
- export function handleFieldEvent(fields, index, event) {
333
+ export function handleFieldEvent(fields, index, event, driverMemory) {
108
334
  const field = fields[index];
335
+ if (field.kind === "group") {
336
+ return handleGroupFieldEvent(field, event, driverMemory);
337
+ }
109
338
  // 1. Expanded select takes precedence
110
339
  if (field.kind === "select" && field.expanded) {
111
340
  return handleExpandedSelectEvent(field, event);
@@ -151,12 +380,15 @@ export function handleFieldEvent(fields, index, event) {
151
380
  function handleExpandedSelectEvent(field, event) {
152
381
  switch (event.type) {
153
382
  case "up":
154
- if (field.expandedIndex > 0)
155
- field.expandedIndex--;
383
+ if (field.options.length > 0) {
384
+ field.expandedIndex =
385
+ (field.expandedIndex - 1 + field.options.length) % field.options.length;
386
+ }
156
387
  return true;
157
388
  case "down":
158
- if (field.expandedIndex < field.options.length - 1)
159
- field.expandedIndex++;
389
+ if (field.options.length > 0) {
390
+ field.expandedIndex = (field.expandedIndex + 1) % field.options.length;
391
+ }
160
392
  return true;
161
393
  case "submit":
162
394
  field.value = field.options[field.expandedIndex];
@@ -169,6 +401,64 @@ function handleExpandedSelectEvent(field, event) {
169
401
  return true; // consume all events while expanded
170
402
  }
171
403
  }
404
+ function handleGroupFieldEvent(group, event, driverMemory) {
405
+ const beforeProvider = group.children[0].value;
406
+ let consumed = false;
407
+ if (!group.groupExpanded) {
408
+ if (event.type === "submit") {
409
+ group.groupExpanded = true;
410
+ group.focusedChild = 0;
411
+ consumed = true;
412
+ }
413
+ else if (event.type === "left" || event.type === "right") {
414
+ cycleSelectValue(group.children[0], event.type === "left" ? -1 : 1);
415
+ consumed = true;
416
+ }
417
+ }
418
+ else {
419
+ const child = group.children[group.focusedChild];
420
+ if (child.expanded) {
421
+ consumed = handleExpandedSelectEvent(child, event);
422
+ }
423
+ else {
424
+ switch (event.type) {
425
+ case "up":
426
+ group.focusedChild = (group.focusedChild + group.children.length - 1) %
427
+ group.children.length;
428
+ consumed = true;
429
+ break;
430
+ case "down":
431
+ group.focusedChild = (group.focusedChild + 1) % group.children.length;
432
+ consumed = true;
433
+ break;
434
+ case "left":
435
+ case "right":
436
+ cycleSelectValue(child, event.type === "left" ? -1 : 1);
437
+ consumed = true;
438
+ break;
439
+ case "submit":
440
+ child.expanded = true;
441
+ child.expandedIndex = Math.max(0, child.options.indexOf(child.value));
442
+ consumed = true;
443
+ break;
444
+ case "escape":
445
+ group.groupExpanded = false;
446
+ for (const c of group.children)
447
+ c.expanded = false;
448
+ consumed = true;
449
+ break;
450
+ case "tab":
451
+ consumed = true;
452
+ break;
453
+ }
454
+ }
455
+ }
456
+ if (group.children[0].value !== beforeProvider) {
457
+ reconcileModelEffortForGroup(group, driverMemory);
458
+ }
459
+ group.value = group.children[0].value;
460
+ return consumed;
461
+ }
172
462
  function handleNumberEditingEvent(field, event) {
173
463
  switch (event.type) {
174
464
  case "insert":
@@ -287,6 +577,8 @@ export function renderConfigFields(fields, focusedIndex, isConfigFocused, cols)
287
577
  const configDim = !isConfigFocused;
288
578
  for (let i = 0; i < fields.length; i++) {
289
579
  const field = fields[i];
580
+ if (field.hidden)
581
+ continue;
290
582
  const focused = isConfigFocused && focusedIndex === i;
291
583
  const indicator = focused ? `${bold}▸${reset}` : `${dim}·${reset}`;
292
584
  const labelStr = field.label.padEnd(LABEL_WIDTH);
@@ -309,11 +601,16 @@ export function renderConfigFields(fields, focusedIndex, isConfigFocused, cols)
309
601
  valueStr = `${dim}◀${reset} ${field.value} ${dim}▶${reset}`;
310
602
  }
311
603
  }
312
- else {
604
+ else if (field.kind === "toggle") {
313
605
  valueStr = field.value
314
606
  ? `${green}on${reset}`
315
607
  : `${dim}off${reset}`;
316
608
  }
609
+ else {
610
+ const [provider, model, effort] = field.children;
611
+ const marker = field.groupExpanded ? `${bold}▴${reset}` : `${dim}▾${reset}`;
612
+ valueStr = `${provider.value} ${dim}/${reset} ${model.value} ${dim}/${reset} ${effort.value} ${marker}`;
613
+ }
317
614
  lines.push(padToWidth(` ${indicator} ${dimWrap}${labelStr}${dimEnd}${valueStr}`, cols));
318
615
  // Expanded dropdown options
319
616
  if (field.kind === "select" && field.expanded) {
@@ -324,6 +621,26 @@ export function renderConfigFields(fields, focusedIndex, isConfigFocused, cols)
324
621
  lines.push(padToWidth(`${"".padEnd(LABEL_WIDTH + 6)}${optIndicator} ${highlight}${opt}${reset}`, cols));
325
622
  }
326
623
  }
624
+ else if (field.kind === "group" && field.groupExpanded) {
625
+ for (let childIdx = 0; childIdx < field.children.length; childIdx++) {
626
+ const child = field.children[childIdx];
627
+ const childFocused = focused && field.focusedChild === childIdx;
628
+ const childIndicator = childFocused ? `${bold}▸${reset}` : " ";
629
+ const childLabel = child.label.padEnd(LABEL_WIDTH - 2);
630
+ const childValue = child.expanded
631
+ ? `${child.value} ${bold}▴${reset}`
632
+ : `${child.value} ${dim}▾${reset}`;
633
+ lines.push(padToWidth(` ${childIndicator} ${dimWrap}${childLabel}${dimEnd}${childValue}`, cols));
634
+ if (child.expanded) {
635
+ for (let j = 0; j < child.options.length; j++) {
636
+ const opt = child.options[j];
637
+ const optIndicator = j === child.expandedIndex ? `${bold}▸${reset}` : " ";
638
+ const highlight = j === child.expandedIndex ? bold : dim;
639
+ lines.push(padToWidth(`${"".padEnd(LABEL_WIDTH + 6)}${optIndicator} ${highlight}${opt}${reset}`, cols));
640
+ }
641
+ }
642
+ }
643
+ }
327
644
  }
328
645
  return lines;
329
646
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preview-panel.js","sourceRoot":"","sources":["../src/preview-panel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview-panel.js","sourceRoot":"","sources":["../src/preview-panel.ts"],"names":[],"mappings":"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"}