poly-weaver 0.14.7 → 0.15.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 (183) hide show
  1. package/README.md +24 -1
  2. package/dist/agents/implementors/adapter.d.ts +4 -0
  3. package/dist/agents/implementors/adapter.d.ts.map +1 -1
  4. package/dist/agents/implementors/adapter.js +4 -4
  5. package/dist/agents/implementors/adapter.js.map +1 -1
  6. package/dist/agents/implementors/dsl.d.ts +2 -0
  7. package/dist/agents/implementors/dsl.d.ts.map +1 -1
  8. package/dist/agents/implementors/dsl.js.map +1 -1
  9. package/dist/agents/implementors/handler.d.ts.map +1 -1
  10. package/dist/agents/implementors/handler.js +10 -0
  11. package/dist/agents/implementors/handler.js.map +1 -1
  12. package/dist/agents/implementors/prompts.d.ts +5 -4
  13. package/dist/agents/implementors/prompts.d.ts.map +1 -1
  14. package/dist/agents/implementors/prompts.js +44 -7
  15. package/dist/agents/implementors/prompts.js.map +1 -1
  16. package/dist/agents/implementors/types.d.ts +8 -4
  17. package/dist/agents/implementors/types.d.ts.map +1 -1
  18. package/dist/agents/interviewers/adapter.d.ts +2 -0
  19. package/dist/agents/interviewers/adapter.d.ts.map +1 -1
  20. package/dist/agents/interviewers/adapter.js +39 -6
  21. package/dist/agents/interviewers/adapter.js.map +1 -1
  22. package/dist/agents/interviewers/dsl.d.ts +1 -0
  23. package/dist/agents/interviewers/dsl.d.ts.map +1 -1
  24. package/dist/agents/interviewers/dsl.js.map +1 -1
  25. package/dist/agents/interviewers/handler.d.ts +2 -1
  26. package/dist/agents/interviewers/handler.d.ts.map +1 -1
  27. package/dist/agents/interviewers/handler.js +106 -9
  28. package/dist/agents/interviewers/handler.js.map +1 -1
  29. package/dist/agents/interviewers/index.js +1 -1
  30. package/dist/agents/interviewers/index.js.map +1 -1
  31. package/dist/agents/interviewers/prompts.d.ts.map +1 -1
  32. package/dist/agents/interviewers/prompts.js +150 -0
  33. package/dist/agents/interviewers/prompts.js.map +1 -1
  34. package/dist/agents/interviewers/types.d.ts +9 -1
  35. package/dist/agents/interviewers/types.d.ts.map +1 -1
  36. package/dist/agents/planners/adapter.d.ts +2 -0
  37. package/dist/agents/planners/adapter.d.ts.map +1 -1
  38. package/dist/agents/planners/adapter.js +3 -3
  39. package/dist/agents/planners/adapter.js.map +1 -1
  40. package/dist/agents/planners/dsl.d.ts +1 -0
  41. package/dist/agents/planners/dsl.d.ts.map +1 -1
  42. package/dist/agents/planners/dsl.js.map +1 -1
  43. package/dist/agents/planners/handler.d.ts.map +1 -1
  44. package/dist/agents/planners/handler.js +6 -1
  45. package/dist/agents/planners/handler.js.map +1 -1
  46. package/dist/agents/planners/prompts.d.ts +3 -3
  47. package/dist/agents/planners/prompts.d.ts.map +1 -1
  48. package/dist/agents/planners/prompts.js +76 -4
  49. package/dist/agents/planners/prompts.js.map +1 -1
  50. package/dist/agents/planners/types.d.ts +5 -3
  51. package/dist/agents/planners/types.d.ts.map +1 -1
  52. package/dist/agents/registry.d.ts +1 -1
  53. package/dist/agents/registry.d.ts.map +1 -1
  54. package/dist/agents/registry.js +2 -2
  55. package/dist/agents/registry.js.map +1 -1
  56. package/dist/agents/reviewers/adapter.d.ts.map +1 -1
  57. package/dist/agents/reviewers/adapter.js +5 -1
  58. package/dist/agents/reviewers/adapter.js.map +1 -1
  59. package/dist/agents/reviewers/dsl.d.ts +4 -0
  60. package/dist/agents/reviewers/dsl.d.ts.map +1 -1
  61. package/dist/agents/reviewers/dsl.js.map +1 -1
  62. package/dist/agents/reviewers/handler.d.ts.map +1 -1
  63. package/dist/agents/reviewers/handler.js +15 -1
  64. package/dist/agents/reviewers/handler.js.map +1 -1
  65. package/dist/agents/reviewers/prompts.d.ts +7 -7
  66. package/dist/agents/reviewers/prompts.d.ts.map +1 -1
  67. package/dist/agents/reviewers/prompts.js +196 -19
  68. package/dist/agents/reviewers/prompts.js.map +1 -1
  69. package/dist/agents/reviewers/types.d.ts +10 -0
  70. package/dist/agents/reviewers/types.d.ts.map +1 -1
  71. package/dist/agents/reviewers/types.js.map +1 -1
  72. package/dist/agents/runner.d.ts +4 -2
  73. package/dist/agents/runner.d.ts.map +1 -1
  74. package/dist/agents/runner.js +1 -1
  75. package/dist/agents/runner.js.map +1 -1
  76. package/dist/agents/simplifiers/adapter.d.ts.map +1 -1
  77. package/dist/agents/simplifiers/adapter.js +1 -0
  78. package/dist/agents/simplifiers/adapter.js.map +1 -1
  79. package/dist/agents/simplifiers/dsl.d.ts +1 -0
  80. package/dist/agents/simplifiers/dsl.d.ts.map +1 -1
  81. package/dist/agents/simplifiers/dsl.js +1 -0
  82. package/dist/agents/simplifiers/dsl.js.map +1 -1
  83. package/dist/agents/simplifiers/handler.d.ts.map +1 -1
  84. package/dist/agents/simplifiers/handler.js +2 -0
  85. package/dist/agents/simplifiers/handler.js.map +1 -1
  86. package/dist/agents/simplifiers/prompts.js +29 -2
  87. package/dist/agents/simplifiers/prompts.js.map +1 -1
  88. package/dist/agents/simplifiers/types.d.ts +2 -0
  89. package/dist/agents/simplifiers/types.d.ts.map +1 -1
  90. package/dist/agents/simplify-protection.d.ts +6 -0
  91. package/dist/agents/simplify-protection.d.ts.map +1 -0
  92. package/dist/agents/simplify-protection.js +12 -0
  93. package/dist/agents/simplify-protection.js.map +1 -0
  94. package/dist/cli.js +3 -3
  95. package/dist/cli.js.map +1 -1
  96. package/dist/dsl.d.ts +2 -0
  97. package/dist/dsl.d.ts.map +1 -1
  98. package/dist/dsl.js +2 -2
  99. package/dist/dsl.js.map +1 -1
  100. package/dist/flow/built-in/default-factory.d.ts.map +1 -1
  101. package/dist/flow/built-in/default-factory.js +55 -11
  102. package/dist/flow/built-in/default-factory.js.map +1 -1
  103. package/dist/flow/built-in/default.d.ts +1 -0
  104. package/dist/flow/built-in/default.d.ts.map +1 -1
  105. package/dist/flow/built-in/default.js +1 -0
  106. package/dist/flow/built-in/default.js.map +1 -1
  107. package/dist/flow/built-in/default.ts +2 -0
  108. package/dist/flow/built-in/simplify-factory.d.ts.map +1 -1
  109. package/dist/flow/built-in/simplify-factory.js +4 -0
  110. package/dist/flow/built-in/simplify-factory.js.map +1 -1
  111. package/dist/flow/custom/AUTHORING.md +8 -88
  112. package/dist/flow/dsl.d.ts +2 -0
  113. package/dist/flow/dsl.d.ts.map +1 -1
  114. package/dist/flow/dsl.js +2 -0
  115. package/dist/flow/dsl.js.map +1 -1
  116. package/dist/flow/params.d.ts +2 -1
  117. package/dist/flow/params.d.ts.map +1 -1
  118. package/dist/flow/params.js +8 -2
  119. package/dist/flow/params.js.map +1 -1
  120. package/dist/flow/types.d.ts +25 -0
  121. package/dist/flow/types.d.ts.map +1 -1
  122. package/dist/flow/types.js +11 -0
  123. package/dist/flow/types.js.map +1 -1
  124. package/dist/managed-spec.d.ts +32 -0
  125. package/dist/managed-spec.d.ts.map +1 -0
  126. package/dist/managed-spec.js +258 -0
  127. package/dist/managed-spec.js.map +1 -0
  128. package/dist/offscreen/agent-viewer.d.ts +2 -1
  129. package/dist/offscreen/agent-viewer.d.ts.map +1 -1
  130. package/dist/offscreen/agent-viewer.js +63 -19
  131. package/dist/offscreen/agent-viewer.js.map +1 -1
  132. package/dist/offscreen/controller.d.ts +14 -3
  133. package/dist/offscreen/controller.d.ts.map +1 -1
  134. package/dist/offscreen/controller.js +82 -17
  135. package/dist/offscreen/controller.js.map +1 -1
  136. package/dist/offscreen/resolve.d.ts.map +1 -1
  137. package/dist/offscreen/resolve.js +14 -3
  138. package/dist/offscreen/resolve.js.map +1 -1
  139. package/dist/offscreen/split-inquiry.d.ts +10 -1
  140. package/dist/offscreen/split-inquiry.d.ts.map +1 -1
  141. package/dist/offscreen/split-inquiry.js +156 -12
  142. package/dist/offscreen/split-inquiry.js.map +1 -1
  143. package/dist/orchestrator.d.ts +5 -0
  144. package/dist/orchestrator.d.ts.map +1 -1
  145. package/dist/orchestrator.js +85 -5
  146. package/dist/orchestrator.js.map +1 -1
  147. package/dist/providers/types.d.ts +2 -0
  148. package/dist/providers/types.d.ts.map +1 -1
  149. package/dist/providers/types.js.map +1 -1
  150. package/dist/session/manifest.d.ts +9 -0
  151. package/dist/session/manifest.d.ts.map +1 -1
  152. package/dist/session/session-store.d.ts +2 -1
  153. package/dist/session/session-store.d.ts.map +1 -1
  154. package/dist/session/session-store.js +49 -3
  155. package/dist/session/session-store.js.map +1 -1
  156. package/dist/startup-tui.d.ts +1 -0
  157. package/dist/startup-tui.d.ts.map +1 -1
  158. package/dist/startup-tui.js +6 -2
  159. package/dist/startup-tui.js.map +1 -1
  160. package/dist/terminal/host.d.ts +1 -0
  161. package/dist/terminal/host.d.ts.map +1 -1
  162. package/dist/terminal/host.js +3 -0
  163. package/dist/terminal/host.js.map +1 -1
  164. package/dist/user/dsl.d.ts +1 -0
  165. package/dist/user/dsl.d.ts.map +1 -1
  166. package/dist/user/dsl.js +1 -0
  167. package/dist/user/dsl.js.map +1 -1
  168. package/dist/user/handler.d.ts.map +1 -1
  169. package/dist/user/handler.js +15 -0
  170. package/dist/user/handler.js.map +1 -1
  171. package/dist/user/host-curate-prompt.d.ts.map +1 -1
  172. package/dist/user/host-curate-prompt.js +2 -0
  173. package/dist/user/host-curate-prompt.js.map +1 -1
  174. package/dist/user/host-prompt.d.ts.map +1 -1
  175. package/dist/user/host-prompt.js +264 -13
  176. package/dist/user/host-prompt.js.map +1 -1
  177. package/dist/user/plan-pane.d.ts +1 -1
  178. package/dist/user/plan-pane.d.ts.map +1 -1
  179. package/dist/user/plan-pane.js +7 -1
  180. package/dist/user/plan-pane.js.map +1 -1
  181. package/dist/user/prompt.d.ts +9 -0
  182. package/dist/user/prompt.d.ts.map +1 -1
  183. package/package.json +1 -1
package/README.md CHANGED
@@ -62,7 +62,30 @@ poly-weaver --config <path-to-config.json>
62
62
  | `-h, --help` | Show help | |
63
63
  | `-V, --version` | Show version | |
64
64
 
65
- Workflow is selected with **Shift+Tab** in the TUI. Built-in workflows: `default`. Custom flows are also available.
65
+ Workflow is selected with **Shift+Tab** in the TUI. Built-in workflows are
66
+ `default`, `simplify`, and `crosscheck`. Custom flows remain available as
67
+ deprecated compatibility behavior.
68
+
69
+ ### Managed poly-spec mode
70
+
71
+ The built-in `default` workflow has an optional **Manage Spec with poly-weaver**
72
+ toggle. On a fresh run it defaults on when the working directory contains
73
+ `.poly-spec/`, and defaults off otherwise. When enabled, the interviewer owns a
74
+ repository-managed **Iteration Spec** under `.poly-spec/iterations/pending/`
75
+ plus a session-local **Iteration Rationale**. The Iteration Spec is the
76
+ authoritative requirements source for planning, review, and implementation; the
77
+ Iteration Rationale is supporting context.
78
+
79
+ Plan Only sessions stop after the accepted plan and are terminal. In managed
80
+ mode they leave the Iteration Spec pending; later work may continue it, but must
81
+ start a new workflow and approve a new plan.
82
+
83
+ Managed sessions resume only interrupted active work. Resume re-reads the
84
+ current worktree Iteration Spec path recorded in the session manifest, so
85
+ repository edits to `.poly-spec/iterations/pending/*.md` remain authoritative.
86
+ At terminal completion of a non-Plan-Only managed run, the Iteration Spec moves
87
+ to `.poly-spec/iterations/applied/` as immutable history; applied placement does
88
+ not imply implementation-review approval.
66
89
 
67
90
  ## License
68
91
 
@@ -1,4 +1,5 @@
1
1
  import type { ImplementorDriver, ImplementResult, ImplementorPromptSet } from "./types.js";
2
+ import type { SimplifyProtectionState } from "../simplify-protection.js";
2
3
  import type { ProviderStrategy } from "../../providers/types.js";
3
4
  import { BaseAdapter } from "../runner.js";
4
5
  type ImplementorRunOptions = {
@@ -6,6 +7,9 @@ type ImplementorRunOptions = {
6
7
  feedbackFile?: string;
7
8
  changePlan?: boolean;
8
9
  snapshotFile?: string;
10
+ managedSpecFile?: string;
11
+ explanationFile?: string;
12
+ simplifyProtection?: SimplifyProtectionState;
9
13
  };
10
14
  export declare function selectImplementorPrompt(planFile: string, opts: ImplementorRunOptions, prompts?: ImplementorPromptSet): string;
11
15
  export declare class ImplementorAdapter extends BaseAdapter implements ImplementorDriver {
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,KAAK,qBAAqB,GAAG;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,oBAAgD,GACxD,MAAM,CAWR;AAED,qBAAa,kBAAmB,SAAQ,WAAY,YAAW,iBAAiB;IAI5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAFzB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM,EACE,OAAO,CAAC,EAAE,oBAAoB,YAAA,EAC/C,IAAI,CAAC,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE,MAAM;IAKtB,GAAG,CACP,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,eAAe,CAAC;CAwB5B"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,KAAK,qBAAqB,GAAG;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;CAC9C,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,oBAAgD,GACxD,MAAM,CAoCR;AAED,qBAAa,kBAAmB,SAAQ,WAAY,YAAW,iBAAiB;IAI5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAFzB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM,EACE,OAAO,CAAC,EAAE,oBAAoB,YAAA,EAC/C,IAAI,CAAC,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE,MAAM;IAKtB,GAAG,CACP,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,eAAe,CAAC;CAwB5B"}
@@ -2,15 +2,15 @@ import { BaseAdapter } from "../runner.js";
2
2
  import { defaultImplementorPrompts } from "./prompts.js";
3
3
  export function selectImplementorPrompt(planFile, opts, prompts = defaultImplementorPrompts) {
4
4
  if (opts.changePlan) {
5
- return prompts.changePlan(planFile, opts.snapshotFile);
5
+ return prompts.changePlan(planFile, opts.snapshotFile, opts.managedSpecFile, opts.explanationFile, opts.simplifyProtection);
6
6
  }
7
7
  if (opts.feedbackFile) {
8
8
  if (opts.resumeSessionId) {
9
- return prompts.resumeRevision(opts.feedbackFile, opts.snapshotFile);
9
+ return prompts.resumeRevision(opts.feedbackFile, opts.snapshotFile, opts.managedSpecFile, opts.explanationFile, opts.simplifyProtection);
10
10
  }
11
- return prompts.revision(planFile, opts.feedbackFile, opts.snapshotFile);
11
+ return prompts.revision(planFile, opts.feedbackFile, opts.snapshotFile, opts.managedSpecFile, opts.explanationFile, opts.simplifyProtection);
12
12
  }
13
- return prompts.initial(planFile, opts.snapshotFile);
13
+ return prompts.initial(planFile, opts.snapshotFile, opts.managedSpecFile, opts.explanationFile, opts.simplifyProtection);
14
14
  }
15
15
  export class ImplementorAdapter extends BaseAdapter {
16
16
  prompts;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/agents/implementors/adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AASzD,MAAM,UAAU,uBAAuB,CACrC,QAAgB,EAChB,IAA2B,EAC3B,UAAgC,yBAAyB;IAEzD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAI9B;IAHnB,YACE,QAA0B,EAC1B,OAAe,EACE,OAA8B,EAC/C,IAAc,EACd,KAAc,EACd,MAAe,EACf,iBAA0B;QAE1B,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QANhD,YAAO,GAAP,OAAO,CAAuB;IAOjD,CAAC;IAED,KAAK,CAAC,GAAG,CACP,QAAgB,EAChB,OAA8B,EAAE;QAEhC,MAAM,MAAM,GAAG,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe;YAC9C,CAAC,CAAC,uBAAuB,CACrB,QAAQ,EACR,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,EACvC,IAAI,CAAC,OAAO,CACb;YACH,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;YACjC,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,mBAAmB;SACpB,CAAC,CAAC;QAEH,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,SAAS,EAAE,IAAI,CAAC,IAAI;YACpB,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/agents/implementors/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAYzD,MAAM,UAAU,uBAAuB,CACrC,QAAgB,EAChB,IAA2B,EAC3B,UAAgC,yBAAyB;IAEzD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,UAAU,CACvB,QAAQ,EACR,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,kBAAkB,CACxB,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,cAAc,CAC3B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,kBAAkB,CACxB,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CACrB,QAAQ,EACR,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,kBAAkB,CACxB,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CACpB,QAAQ,EACR,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,kBAAkB,CACxB,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAI9B;IAHnB,YACE,QAA0B,EAC1B,OAAe,EACE,OAA8B,EAC/C,IAAc,EACd,KAAc,EACd,MAAe,EACf,iBAA0B;QAE1B,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QANhD,YAAO,GAAP,OAAO,CAAuB;IAOjD,CAAC;IAED,KAAK,CAAC,GAAG,CACP,QAAgB,EAChB,OAA8B,EAAE;QAEhC,MAAM,MAAM,GAAG,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe;YAC9C,CAAC,CAAC,uBAAuB,CACrB,QAAQ,EACR,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,EACvC,IAAI,CAAC,OAAO,CACb;YACH,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;YACjC,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,mBAAmB;SACpB,CAAC,CAAC;QAEH,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,SAAS,EAAE,IAAI,CAAC,IAAI;YACpB,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;IACJ,CAAC;CACF"}
@@ -5,6 +5,8 @@ export declare function implement(opts: {
5
5
  reads: Record<string, string>;
6
6
  writes?: Record<string, string>;
7
7
  id?: string;
8
+ managedSpec?: boolean;
9
+ simplifyProtection?: boolean;
8
10
  feedbackToTask?: boolean;
9
11
  phaseLabel?: PhaseLabelSpec;
10
12
  }): AgentStep;
@@ -1 +1 @@
1
- {"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/dsl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,wBAAgB,SAAS,CAAC,IAAI,EAAE;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B,GAAG,SAAS,CAMZ"}
1
+ {"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/dsl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,wBAAgB,SAAS,CAAC,IAAI,EAAE;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B,GAAG,SAAS,CAMZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"dsl.js","sourceRoot":"","sources":["../../../src/agents/implementors/dsl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,mBAAmB,CAAC;AAGnE,MAAM,UAAU,SAAS,CAAC,IAOzB;IACC,OAAO,SAAS,CAAC,aAAa,EAAE;QAC9B,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,oBAAoB;KACjC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"dsl.js","sourceRoot":"","sources":["../../../src/agents/implementors/dsl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,mBAAmB,CAAC;AAGnE,MAAM,UAAU,SAAS,CAAC,IASzB;IACC,OAAO,SAAS,CAAC,aAAa,EAAE;QAC9B,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,oBAAoB;KACjC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAc7B,qBAAa,sBAAuB,YAAW,WAAW;IAI5C,OAAO,CAAC,MAAM;IAH1B,2EAA2E;IAC3E,OAAO,CAAC,cAAc,CAA+C;gBAEjD,MAAM,EAAE,iBAAiB;IAEvC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;CAsFvB"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAe7B,qBAAa,sBAAuB,YAAW,WAAW;IAI5C,OAAO,CAAC,MAAM;IAH1B,2EAA2E;IAC3E,OAAO,CAAC,cAAc,CAA+C;gBAEjD,MAAM,EAAE,iBAAiB;IAEvC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;CA+FvB"}
@@ -1,4 +1,5 @@
1
1
  import { bindAttemptFailureReporter, bindDriverRuntime, bindPtyBufferReporter, bindSessionReporter, flushDriverSidecar, } from "../runner.js";
2
+ import { resolveSimplifyProtectionState } from "../simplify-protection.js";
2
3
  import { bindStepLiveSidecar, cleanupStepLiveSidecar, resolveResumeSessionId, } from "../session-resume.js";
3
4
  export class ImplementorRoleHandler {
4
5
  driver;
@@ -26,6 +27,12 @@ export class ImplementorRoleHandler {
26
27
  const snapshotFile = step.reads.snapshot
27
28
  ? ctx.artifacts.getFile(step.reads.snapshot)
28
29
  : undefined;
30
+ const managedSpecFile = step.managedSpec && step.reads.spec
31
+ ? ctx.artifacts.getFile(step.reads.spec)
32
+ : undefined;
33
+ const explanationFile = step.managedSpec && step.reads.explanation
34
+ ? ctx.artifacts.getFile(step.reads.explanation)
35
+ : undefined;
29
36
  if (revisePlanFile) {
30
37
  // Pure plan follower: fresh session avoids prior-mode context contaminating the resume.
31
38
  planFile = revisePlanFile;
@@ -58,6 +65,9 @@ export class ImplementorRoleHandler {
58
65
  feedbackFile: feedbackFile ?? undefined,
59
66
  changePlan: revisePlanFile ? true : undefined,
60
67
  snapshotFile,
68
+ managedSpecFile,
69
+ explanationFile,
70
+ simplifyProtection: await resolveSimplifyProtectionState(step, ctx),
61
71
  });
62
72
  });
63
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/implementors/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/implementors/handler.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import type { ImplementorPromptSet } from "./types.js";
2
- export declare function buildImplementorPrompt(planFile: string, snapshotFile?: string): string;
3
- export declare function buildImplementorRevisionPrompt(planFile: string, feedbackFile: string, snapshotFile?: string): string;
4
- export declare function buildImplementorResumeRevisionPrompt(feedbackFile: string, _snapshotFile?: string): string;
5
- export declare function buildImplementorChangePlanPrompt(planFile: string, snapshotFile?: string): string;
2
+ import type { SimplifyProtectionState } from "../simplify-protection.js";
3
+ export declare function buildImplementorPrompt(planFile: string, snapshotFile?: string, managedSpecFile?: string, explanationFile?: string, simplifyProtection?: SimplifyProtectionState): string;
4
+ export declare function buildImplementorRevisionPrompt(planFile: string, feedbackFile: string, snapshotFile?: string, managedSpecFile?: string, explanationFile?: string, simplifyProtection?: SimplifyProtectionState): string;
5
+ export declare function buildImplementorResumeRevisionPrompt(feedbackFile: string, _snapshotFile?: string, managedSpecFile?: string, explanationFile?: string, simplifyProtection?: SimplifyProtectionState): string;
6
+ export declare function buildImplementorChangePlanPrompt(planFile: string, snapshotFile?: string, managedSpecFile?: string, explanationFile?: string, simplifyProtection?: SimplifyProtectionState): string;
6
7
  export declare const defaultImplementorPrompts: ImplementorPromptSet;
7
8
  //# sourceMappingURL=prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAYvD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAUtF;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAWR;AAED,wBAAgB,oCAAoC,CAClD,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CASR;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAUR;AAID,eAAO,MAAM,yBAAyB,EAAE,oBAKvC,CAAC"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AA+DzE,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,EACxB,kBAAkB,CAAC,EAAE,uBAAuB,GAC3C,MAAM,CAeR;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,EACxB,kBAAkB,CAAC,EAAE,uBAAuB,GAC3C,MAAM,CAsBR;AAED,wBAAgB,oCAAoC,CAClD,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,EACxB,kBAAkB,CAAC,EAAE,uBAAuB,GAC3C,MAAM,CAaR;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,EACxB,kBAAkB,CAAC,EAAE,uBAAuB,GAC3C,MAAM,CAmBR;AAID,eAAO,MAAM,yBAAyB,EAAE,oBAKvC,CAAC"}
@@ -4,36 +4,73 @@ const SNAPSHOT_GUIDANCE = "Preserve those pre-existing changes unless the approv
4
4
  function appendSnapshotContext(lines, snapshotFile) {
5
5
  appendPreSessionSnapshotReference(lines, snapshotFile, SNAPSHOT_GUIDANCE);
6
6
  }
7
- export function buildImplementorPrompt(planFile, snapshotFile) {
7
+ function appendManagedSpecContext(lines, managedSpecFile, explanationFile) {
8
+ if (!managedSpecFile)
9
+ return;
10
+ lines.push(`Read the managed Iteration Spec: ${managedSpecFile}`, ...(explanationFile ? [`Read the supporting Iteration Rationale: ${explanationFile}`] : []));
11
+ }
12
+ function appendManagedSpecObligation(lines, managedSpecFile) {
13
+ if (!managedSpecFile)
14
+ return;
15
+ lines.push("", "## Repository specification", "", "The approved plan includes implementation and repository-specification work under .poly-spec/. Complete both.", "", "## Execution requirements", "", "- Follow the approved plan, including its Iteration Spec and repository-specification application.", "- Make the planned changes in the working directory.", "- Preserve pre-existing work unless the approved plan requires modifying it.");
16
+ }
17
+ function appendSimplifyProtection(lines, simplifyProtection) {
18
+ if (!simplifyProtection)
19
+ return;
20
+ lines.push("", "## Simplify protection", "", "- Implement only changes that preserve all observable behavior.", "- Behavior changes, including changes characterized as improvements, are outside simplify scope.", "- If an approved-plan item would change observable behavior, do not implement it; surface the conflict instead.");
21
+ if (simplifyProtection.repositorySpecDetected) {
22
+ lines.push("- `.poly-spec/` exists in the selected working directory and contains repository specifications.", "- Treat current `.poly-spec` specifications as authoritative for behavior.", "- Do not edit any file under `.poly-spec/`.", "- If an approved-plan item would edit `.poly-spec/` or conflict with current repository specifications, do not implement it; surface the conflict instead.");
23
+ }
24
+ }
25
+ export function buildImplementorPrompt(planFile, snapshotFile, managedSpecFile, explanationFile, simplifyProtection) {
8
26
  const lines = [
9
27
  `Read the approved implementation plan: ${planFile}`,
10
28
  ];
29
+ appendManagedSpecContext(lines, managedSpecFile, explanationFile);
11
30
  appendSnapshotContext(lines, snapshotFile);
12
- lines.push("", "Implement the plan by making code changes in the working directory.");
31
+ lines.push("", managedSpecFile
32
+ ? "Implement the plan by making changes in the working directory."
33
+ : "Implement the plan by making code changes in the working directory.");
34
+ appendSimplifyProtection(lines, simplifyProtection);
35
+ appendManagedSpecObligation(lines, managedSpecFile);
13
36
  return lines.join("\n");
14
37
  }
15
- export function buildImplementorRevisionPrompt(planFile, feedbackFile, snapshotFile) {
38
+ export function buildImplementorRevisionPrompt(planFile, feedbackFile, snapshotFile, managedSpecFile, explanationFile, simplifyProtection) {
16
39
  const lines = [
17
40
  `Read the approved implementation plan: ${planFile}`,
18
- `Read the review feedback: ${feedbackFile}`,
19
41
  ];
42
+ appendManagedSpecContext(lines, managedSpecFile, explanationFile);
43
+ lines.push(`Read the review feedback: ${feedbackFile}`);
20
44
  appendSnapshotContext(lines, snapshotFile);
21
45
  lines.push("", "Revise your implementation to address the feedback.");
46
+ appendSimplifyProtection(lines, simplifyProtection);
47
+ if (managedSpecFile) {
48
+ lines.push("", "The approved plan and feedback cover both implementation and repository-specification work under .poly-spec/. Complete both.", "Preserve pre-existing work unless the approved plan requires modifying it.");
49
+ }
22
50
  return lines.join("\n");
23
51
  }
24
- export function buildImplementorResumeRevisionPrompt(feedbackFile, _snapshotFile) {
52
+ export function buildImplementorResumeRevisionPrompt(feedbackFile, _snapshotFile, managedSpecFile, explanationFile, simplifyProtection) {
25
53
  const lines = [
26
54
  `Read the new review feedback: ${feedbackFile}`,
27
55
  ];
28
- lines.push("", "Revise your implementation accordingly.");
56
+ appendManagedSpecContext(lines, managedSpecFile, explanationFile);
57
+ lines.push("", managedSpecFile
58
+ ? "Revise your implementation accordingly. Re-check and complete both the implementation and repository-specification application required by the approved plan."
59
+ : "Revise your implementation accordingly.");
60
+ appendSimplifyProtection(lines, simplifyProtection);
29
61
  return lines.join("\n");
30
62
  }
31
- export function buildImplementorChangePlanPrompt(planFile, snapshotFile) {
63
+ export function buildImplementorChangePlanPrompt(planFile, snapshotFile, managedSpecFile, explanationFile, simplifyProtection) {
32
64
  const lines = [
33
65
  `Read the change plan: ${planFile}`,
34
66
  ];
67
+ appendManagedSpecContext(lines, managedSpecFile, explanationFile);
35
68
  appendSnapshotContext(lines, snapshotFile);
36
69
  lines.push("", "Apply the changes to the working directory.");
70
+ appendSimplifyProtection(lines, simplifyProtection);
71
+ if (managedSpecFile) {
72
+ lines.push("", "The change plan covers both implementation and repository-specification work under .poly-spec/. Complete both.", "Preserve pre-existing work unless the approved plan requires modifying it.");
73
+ }
37
74
  return lines.join("\n");
38
75
  }
39
76
  // ─── Prompt set exports ──────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/agents/implementors/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAEvE,4BAA4B;AAE5B,MAAM,iBAAiB,GACrB,uFAAuF,CAAC;AAE1F,SAAS,qBAAqB,CAAC,KAAe,EAAE,YAAqB;IACnE,iCAAiC,CAAC,KAAK,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAgB,EAAE,YAAqB;IAC5E,MAAM,KAAK,GAAG;QACZ,0CAA0C,QAAQ,EAAE;KACrD,CAAC;IACF,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CACR,EAAE,EACF,qEAAqE,CACtE,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,QAAgB,EAChB,YAAoB,EACpB,YAAqB;IAErB,MAAM,KAAK,GAAG;QACZ,0CAA0C,QAAQ,EAAE;QACpD,6BAA6B,YAAY,EAAE;KAC5C,CAAC;IACF,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CACR,EAAE,EACF,qDAAqD,CACtD,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,YAAoB,EACpB,aAAsB;IAEtB,MAAM,KAAK,GAAG;QACZ,iCAAiC,YAAY,EAAE;KAChD,CAAC;IACF,KAAK,CAAC,IAAI,CACR,EAAE,EACF,yCAAyC,CAC1C,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,QAAgB,EAChB,YAAqB;IAErB,MAAM,KAAK,GAAG;QACZ,yBAAyB,QAAQ,EAAE;KACpC,CAAC;IACF,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CACR,EAAE,EACF,6CAA6C,CAC9C,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,4EAA4E;AAE5E,MAAM,CAAC,MAAM,yBAAyB,GAAyB;IAC7D,OAAO,EAAE,sBAAsB;IAC/B,QAAQ,EAAE,8BAA8B;IACxC,cAAc,EAAE,oCAAoC;IACpD,UAAU,EAAE,gCAAgC;CAC7C,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/agents/implementors/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAEvE,4BAA4B;AAE5B,MAAM,iBAAiB,GACrB,uFAAuF,CAAC;AAE1F,SAAS,qBAAqB,CAAC,KAAe,EAAE,YAAqB;IACnE,iCAAiC,CAAC,KAAK,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAe,EACf,eAAwB,EACxB,eAAwB;IAExB,IAAI,CAAC,eAAe;QAAE,OAAO;IAC7B,KAAK,CAAC,IAAI,CACR,oCAAoC,eAAe,EAAE,EACrD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,4CAA4C,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5F,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAe,EAAE,eAAwB;IAC5E,IAAI,CAAC,eAAe;QAAE,OAAO;IAC7B,KAAK,CAAC,IAAI,CACR,EAAE,EACF,6BAA6B,EAC7B,EAAE,EACF,+GAA+G,EAC/G,EAAE,EACF,2BAA2B,EAC3B,EAAE,EACF,oGAAoG,EACpG,sDAAsD,EACtD,8EAA8E,CAC/E,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAe,EACf,kBAA4C;IAE5C,IAAI,CAAC,kBAAkB;QAAE,OAAO;IAChC,KAAK,CAAC,IAAI,CACR,EAAE,EACF,wBAAwB,EACxB,EAAE,EACF,iEAAiE,EACjE,kGAAkG,EAClG,iHAAiH,CAClH,CAAC;IACF,IAAI,kBAAkB,CAAC,sBAAsB,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CACR,kGAAkG,EAClG,4EAA4E,EAC5E,6CAA6C,EAC7C,4JAA4J,CAC7J,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,YAAqB,EACrB,eAAwB,EACxB,eAAwB,EACxB,kBAA4C;IAE5C,MAAM,KAAK,GAAG;QACZ,0CAA0C,QAAQ,EAAE;KACrD,CAAC;IACF,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;IAClE,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CACR,EAAE,EACF,eAAe;QACb,CAAC,CAAC,gEAAgE;QAClE,CAAC,CAAC,qEAAqE,CAC1E,CAAC;IACF,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACpD,2BAA2B,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,QAAgB,EAChB,YAAoB,EACpB,YAAqB,EACrB,eAAwB,EACxB,eAAwB,EACxB,kBAA4C;IAE5C,MAAM,KAAK,GAAG;QACZ,0CAA0C,QAAQ,EAAE;KACrD,CAAC;IACF,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CACR,6BAA6B,YAAY,EAAE,CAC5C,CAAC;IACF,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CACR,EAAE,EACF,qDAAqD,CACtD,CAAC;IACF,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACpD,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CACR,EAAE,EACF,8HAA8H,EAC9H,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,YAAoB,EACpB,aAAsB,EACtB,eAAwB,EACxB,eAAwB,EACxB,kBAA4C;IAE5C,MAAM,KAAK,GAAa;QACtB,iCAAiC,YAAY,EAAE;KAChD,CAAC;IACF,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CACR,EAAE,EACF,eAAe;QACb,CAAC,CAAC,+JAA+J;QACjK,CAAC,CAAC,yCAAyC,CAC9C,CAAC;IACF,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,QAAgB,EAChB,YAAqB,EACrB,eAAwB,EACxB,eAAwB,EACxB,kBAA4C;IAE5C,MAAM,KAAK,GAAG;QACZ,yBAAyB,QAAQ,EAAE;KACpC,CAAC;IACF,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;IAClE,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CACR,EAAE,EACF,6CAA6C,CAC9C,CAAC;IACF,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACpD,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CACR,EAAE,EACF,gHAAgH,EAChH,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,4EAA4E;AAE5E,MAAM,CAAC,MAAM,yBAAyB,GAAyB;IAC7D,OAAO,EAAE,sBAAsB;IAC/B,QAAQ,EAAE,8BAA8B;IACxC,cAAc,EAAE,oCAAoC;IACpD,UAAU,EAAE,gCAAgC;CAC7C,CAAC"}
@@ -1,8 +1,9 @@
1
+ import type { SimplifyProtectionState } from "../simplify-protection.js";
1
2
  export type ImplementorPromptSet = {
2
- initial: (planFile: string, snapshotFile?: string) => string;
3
- revision: (planFile: string, feedbackFile: string, snapshotFile?: string) => string;
4
- resumeRevision: (feedbackFile: string, snapshotFile?: string) => string;
5
- changePlan: (planFile: string, snapshotFile?: string) => string;
3
+ initial: (planFile: string, snapshotFile?: string, managedSpecFile?: string, explanationFile?: string, simplifyProtection?: SimplifyProtectionState) => string;
4
+ revision: (planFile: string, feedbackFile: string, snapshotFile?: string, managedSpecFile?: string, explanationFile?: string, simplifyProtection?: SimplifyProtectionState) => string;
5
+ resumeRevision: (feedbackFile: string, snapshotFile?: string, managedSpecFile?: string, explanationFile?: string, simplifyProtection?: SimplifyProtectionState) => string;
6
+ changePlan: (planFile: string, snapshotFile?: string, managedSpecFile?: string, explanationFile?: string, simplifyProtection?: SimplifyProtectionState) => string;
6
7
  };
7
8
  export interface ImplementorDriver {
8
9
  readonly name: string;
@@ -12,6 +13,9 @@ export interface ImplementorDriver {
12
13
  feedbackFile?: string;
13
14
  changePlan?: boolean;
14
15
  snapshotFile?: string;
16
+ managedSpecFile?: string;
17
+ explanationFile?: string;
18
+ simplifyProtection?: SimplifyProtectionState;
15
19
  }): Promise<ImplementResult>;
16
20
  /** Get the session ID for resume/correlation. */
17
21
  getSessionId(): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7D,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpF,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACxE,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACjE,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,4FAA4F;IAC5F,GAAG,CACD,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;QACL,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,OAAO,CAAC,eAAe,CAAC,CAAC;IAE5B,iDAAiD;IACjD,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,CACP,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,EACxB,kBAAkB,CAAC,EAAE,uBAAuB,KACzC,MAAM,CAAC;IACZ,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,EACxB,kBAAkB,CAAC,EAAE,uBAAuB,KACzC,MAAM,CAAC;IACZ,cAAc,EAAE,CACd,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,EACxB,kBAAkB,CAAC,EAAE,uBAAuB,KACzC,MAAM,CAAC;IACZ,UAAU,EAAE,CACV,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,EACxB,kBAAkB,CAAC,EAAE,uBAAuB,KACzC,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,4FAA4F;IAC5F,GAAG,CACD,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;QACL,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;KAC9C,GACA,OAAO,CAAC,eAAe,CAAC,CAAC;IAE5B,iDAAiD;IACjD,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC"}
@@ -6,6 +6,8 @@ export declare class InterviewerAdapter extends BaseAdapter implements Interview
6
6
  constructor(strategy: ProviderStrategy, workdir: string, prompts?: InterviewerPromptSet, yolo?: boolean, model?: string, effort?: string, sessionFileWaitMs?: number);
7
7
  run(opts: InterviewerRunOpts): Promise<InterviewResult>;
8
8
  private buildPrompt;
9
+ private buildManagedPrompt;
9
10
  private buildFreshFallbackPrompt;
11
+ private managedPolySpecRoot;
10
12
  }
11
13
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/agents/interviewers/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EACV,iBAAiB,EAEjB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,qBAAa,kBAAmB,SAAQ,WAAY,YAAW,iBAAiB;IAI5E,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFxB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM,EACE,OAAO,GAAE,oBAAgD,EAC1E,IAAI,CAAC,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE,MAAM;IAKtB,GAAG,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IA0B7D,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,wBAAwB;CAWjC"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/agents/interviewers/adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EACV,iBAAiB,EAEjB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,qBAAa,kBAAmB,SAAQ,WAAY,YAAW,iBAAiB;IAI5E,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFxB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM,EACE,OAAO,GAAE,oBAAgD,EAC1E,IAAI,CAAC,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE,MAAM;IAKtB,GAAG,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IA0B7D,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,kBAAkB;IAqD1B,OAAO,CAAC,wBAAwB;IAiChC,OAAO,CAAC,mBAAmB;CAG5B"}
@@ -1,3 +1,4 @@
1
+ import { join } from "node:path";
1
2
  import { BaseAdapter } from "../runner.js";
2
3
  import { defaultInterviewerPrompts } from "./prompts.js";
3
4
  export class InterviewerAdapter extends BaseAdapter {
@@ -20,7 +21,7 @@ export class InterviewerAdapter extends BaseAdapter {
20
21
  // that point this.sessionFilePath is undefined).
21
22
  sessionFilePath: opts.resumeSessionFilePath ?? this.sessionFilePath,
22
23
  freshFallbackPrompt,
23
- completionMarkerFile: opts.markerFile,
24
+ completionSignalFile: opts.markerFile,
24
25
  });
25
26
  return {
26
27
  sessionId: result.sessionId,
@@ -30,6 +31,9 @@ export class InterviewerAdapter extends BaseAdapter {
30
31
  };
31
32
  }
32
33
  buildPrompt(mode, opts) {
34
+ if (opts.managedSpec) {
35
+ return this.buildManagedPrompt(mode, opts);
36
+ }
33
37
  switch (mode) {
34
38
  case "initial":
35
39
  return this.prompts.initial(opts.taskFile, opts.specFile, opts.markerFile);
@@ -37,6 +41,8 @@ export class InterviewerAdapter extends BaseAdapter {
37
41
  return this.prompts.continueInterview(opts.specFile, opts.markerFile);
38
42
  case "retry-missing-spec":
39
43
  return this.prompts.retryMissingSpec(opts.specFile, opts.markerFile);
44
+ case "retry-managed-output":
45
+ throw new Error("InterviewerAdapter: retry-managed-output requires managedSpec");
40
46
  case "revise":
41
47
  if (!opts.feedbackFile) {
42
48
  throw new Error("InterviewerAdapter: revise mode requires feedbackFile");
@@ -46,16 +52,43 @@ export class InterviewerAdapter extends BaseAdapter {
46
52
  return this.prompts.rehydrate(opts.taskFile, opts.specFile, opts.markerFile, opts.feedbackFile);
47
53
  }
48
54
  }
49
- // Fresh-fallback is intentionally mode-agnostic: it branches on
50
- // `feedbackFile` only. The runner replays this prompt when the resumed
51
- // session cannot be reattached — the new fresh provider conversation has
52
- // no history of the original briefing, so it must receive a self-contained
53
- // `initial` or `rehydrate` regardless of which mode the handler chose.
55
+ buildManagedPrompt(mode, opts) {
56
+ const polySpecRoot = this.managedPolySpecRoot();
57
+ switch (mode) {
58
+ case "initial":
59
+ return this.prompts.managedInitial(opts.taskFile, opts.specFile, opts.markerFile, polySpecRoot, opts.currentIterationFile);
60
+ case "continue":
61
+ return this.prompts.managedContinue(opts.specFile, opts.markerFile, polySpecRoot, opts.currentIterationFile);
62
+ case "retry-missing-spec":
63
+ case "retry-managed-output":
64
+ return this.prompts.managedRetryInvalidOutput(opts.specFile, opts.markerFile, opts.validationError ?? "managed output was invalid", polySpecRoot, opts.currentIterationFile);
65
+ case "revise":
66
+ if (!opts.feedbackFile) {
67
+ throw new Error("InterviewerAdapter: revise mode requires feedbackFile");
68
+ }
69
+ return this.prompts.managedRevise(opts.feedbackFile, opts.specFile, opts.markerFile, polySpecRoot, opts.currentIterationFile);
70
+ case "rehydrate":
71
+ return this.prompts.managedRehydrate(opts.taskFile, opts.specFile, opts.markerFile, opts.feedbackFile, polySpecRoot, opts.currentIterationFile);
72
+ }
73
+ }
74
+ // Fresh-fallback is intentionally self-contained. The runner replays this
75
+ // prompt when the resumed session cannot be reattached; managed mode uses a
76
+ // before/after-notification split so unnotified drafts are never adopted.
54
77
  buildFreshFallbackPrompt(opts) {
78
+ if (opts.managedSpec) {
79
+ const polySpecRoot = this.managedPolySpecRoot();
80
+ if (opts.feedbackFile || opts.currentIterationFile) {
81
+ return this.prompts.managedRehydrate(opts.taskFile, opts.specFile, opts.markerFile, opts.feedbackFile, polySpecRoot, opts.currentIterationFile);
82
+ }
83
+ return this.prompts.managedInitial(opts.taskFile, opts.specFile, opts.markerFile, polySpecRoot, opts.currentIterationFile, true);
84
+ }
55
85
  if (opts.feedbackFile) {
56
86
  return this.prompts.rehydrate(opts.taskFile, opts.specFile, opts.markerFile, opts.feedbackFile);
57
87
  }
58
88
  return this.prompts.initial(opts.taskFile, opts.specFile, opts.markerFile);
59
89
  }
90
+ managedPolySpecRoot() {
91
+ return join(this.workdir, ".poly-spec");
92
+ }
60
93
  }
61
94
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/agents/interviewers/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/agents/interviewers/adapter.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare function interviewer(opts: {
5
5
  reads: Record<string, string>;
6
6
  writes: Record<string, string>;
7
7
  id?: string;
8
+ managedSpec?: boolean;
8
9
  sessionShareKey?: string;
9
10
  when?: WhenCondition;
10
11
  whenLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../../src/agents/interviewers/dsl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B,GAAG,SAAS,CAeZ"}
1
+ {"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../../src/agents/interviewers/dsl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B,GAAG,SAAS,CAeZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"dsl.js","sourceRoot":"","sources":["../../../src/agents/interviewers/dsl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA2C,MAAM,mBAAmB,CAAC;AAGvF,MAAM,UAAU,WAAW,CAAC,IAS3B;IACC,OAAO,SAAS,CACd,aAAa,EACb;QACE,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,oBAAoB;KACjC,EACD;QACE,GAAG,IAAI;QACP,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,aAAa;QACtD,mBAAmB,EAAE,IAAI;QACzB,yBAAyB,EAAE,IAAI;KAChC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"dsl.js","sourceRoot":"","sources":["../../../src/agents/interviewers/dsl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA2C,MAAM,mBAAmB,CAAC;AAGvF,MAAM,UAAU,WAAW,CAAC,IAU3B;IACC,OAAO,SAAS,CACd,aAAa,EACb;QACE,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,oBAAoB;KACjC,EACD;QACE,GAAG,IAAI;QACP,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,aAAa;QACtD,mBAAmB,EAAE,IAAI;QACzB,yBAAyB,EAAE,IAAI;KAChC,CACF,CAAC;AACJ,CAAC"}
@@ -6,7 +6,8 @@ export declare class InterviewerValidationError extends Error {
6
6
  }
7
7
  export declare class InterviewerRoleHandler implements RoleHandler {
8
8
  private driver;
9
- constructor(driver: InterviewerDriver);
9
+ private readonly workdir;
10
+ constructor(driver: InterviewerDriver, workdir?: string);
10
11
  execute(step: BaseStep, ctx: StepContext, retry: RetryFn): Promise<StepSignal>;
11
12
  /**
12
13
  * If a prior interviewer session exists (sidecar > snapshot) and its
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/interviewers/handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,QAAQ,EACR,OAAO,EACP,WAAW,EACX,WAAW,EACX,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,YAAY,CAAC;AAEpB,0EAA0E;AAC1E,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAUD,qBAAa,sBAAuB,YAAW,WAAW;IAC5C,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,iBAAiB;IAEvC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;IAwHtB;;;;;;OAMG;YACW,qBAAqB;IAuDnC,OAAO,CAAC,oCAAoC;CAsB7C"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/interviewers/handler.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,QAAQ,EACR,OAAO,EACP,WAAW,EACX,WAAW,EACX,UAAU,EACX,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,YAAY,CAAC;AAEpB,0EAA0E;AAC1E,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAyBD,qBAAa,sBAAuB,YAAW,WAAW;IAEtD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADhB,MAAM,EAAE,iBAAiB,EAChB,OAAO,GAAE,MAAsB;IAG5C,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;IAiNtB;;;;;;OAMG;YACW,qBAAqB;IAuDnC,OAAO,CAAC,oCAAoC;CAsB7C"}