@posthog/wizard 2.78.0 → 2.79.1

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 (163) hide show
  1. package/README.md +20 -11
  2. package/dist/PickerMenu-dG5DQCZA.js +758 -0
  3. package/dist/PickerMenu-dG5DQCZA.js.map +1 -0
  4. package/dist/{add-mcp-server-to-clients-JMv8LP-O.js → add-mcp-server-to-clients-DIaTRWMY.js} +7 -18
  5. package/dist/{add-mcp-server-to-clients-JMv8LP-O.js.map → add-mcp-server-to-clients-DIaTRWMY.js.map} +1 -1
  6. package/dist/add-mcp-server-to-clients-artmN7mz.js +2 -0
  7. package/dist/agent-BEjARD2a.js +6 -0
  8. package/dist/{agent-bCZ3i3fh.js → agent-BWFhuLgo.js} +131 -38
  9. package/dist/agent-BWFhuLgo.js.map +1 -0
  10. package/dist/{agent-interface-BAOIHuXS.js → agent-interface-FkbaBJwz.js} +66 -28
  11. package/dist/agent-interface-FkbaBJwz.js.map +1 -0
  12. package/dist/{agent-prompt-loader-7Pd4CfZO.js → agent-prompt-loader-D0weQ-7k.js} +5 -5
  13. package/dist/{agent-prompt-loader-7Pd4CfZO.js.map → agent-prompt-loader-D0weQ-7k.js.map} +1 -1
  14. package/dist/analytics-DFtbRjYh.js +2 -0
  15. package/dist/{analytics-CHCZ_qUR.js → analytics-DXK1gc12.js} +4 -4
  16. package/dist/{analytics-CHCZ_qUR.js.map → analytics-DXK1gc12.js.map} +1 -1
  17. package/dist/api-Cm9UtKZh.js +2 -0
  18. package/dist/{api-Diy_2fp8.js → api-CrbCIQOz.js} +4 -16
  19. package/dist/{api-Diy_2fp8.js.map → api-CrbCIQOz.js.map} +1 -1
  20. package/dist/bin.js +5 -2957
  21. package/dist/bin.js.map +1 -1
  22. package/dist/{bounded-fs-Bx9zTe6m.js → bounded-fs-vAq-T-K7.js} +3 -3
  23. package/dist/{bounded-fs-Bx9zTe6m.js.map → bounded-fs-vAq-T-K7.js.map} +1 -1
  24. package/dist/{ci-install-CDdQYsPe.js → ci-install-COcV8SY2.js} +8 -7
  25. package/dist/ci-install-COcV8SY2.js.map +1 -0
  26. package/dist/{constants-jFI2SaE1.js → constants-DHCBSfnx.js} +3 -3
  27. package/dist/{constants-jFI2SaE1.js.map → constants-DHCBSfnx.js.map} +1 -1
  28. package/dist/{debug-M2gV2iDq.js → debug-BuYHGr6_.js} +1 -1
  29. package/dist/{debug-Ch4BDOtD.js → debug-kAHwWGg7.js} +2 -2
  30. package/dist/{debug-Ch4BDOtD.js.map → debug-kAHwWGg7.js.map} +1 -1
  31. package/dist/{defaults-C6J7yL4O.js → defaults-a9TelDhJ.js} +1 -1
  32. package/dist/{defaults-C6J7yL4O.js.map → defaults-a9TelDhJ.js.map} +1 -1
  33. package/dist/emit-BSetXzDV.js +69 -0
  34. package/dist/emit-BSetXzDV.js.map +1 -0
  35. package/dist/{endpoints-DCVbM06L.js → endpoints-BVMYm9F4.js} +3 -3
  36. package/dist/{endpoints-DCVbM06L.js.map → endpoints-BVMYm9F4.js.map} +1 -1
  37. package/dist/{env-api-key-Qx8NnYHm.js → env-api-key-BP-NFFXt.js} +3 -5
  38. package/dist/{env-api-key-Qx8NnYHm.js.map → env-api-key-BP-NFFXt.js.map} +1 -1
  39. package/dist/env-api-key-CaWEDj_9.js +2 -0
  40. package/dist/{environment-B07Bmxae.js → environment-BATlQxcQ.js} +5 -10
  41. package/dist/{environment-B07Bmxae.js.map → environment-BATlQxcQ.js.map} +1 -1
  42. package/dist/environment-CwD8OPYj.js +2 -0
  43. package/dist/errors-C2domSkK.js +79 -0
  44. package/dist/errors-C2domSkK.js.map +1 -0
  45. package/dist/file-C5JMsyR1.js +2 -0
  46. package/dist/{file-BcLTjU16.js → file-DcRKycV8.js} +4 -4
  47. package/dist/file-DcRKycV8.js.map +1 -0
  48. package/dist/{file-watcher-DWc_bTs6.js → file-watcher-Brq2nnHV.js} +2 -2
  49. package/dist/{file-watcher-DWc_bTs6.js.map → file-watcher-Brq2nnHV.js.map} +1 -1
  50. package/dist/{gateway-CjoShdLa.js → gateway-C9-GlLO9.js} +39 -8
  51. package/dist/gateway-C9-GlLO9.js.map +1 -0
  52. package/dist/{headless-ui-BFFmYC4v.js → headless-ui-CqI2gXlD.js} +2 -2
  53. package/dist/{headless-ui-BFFmYC4v.js.map → headless-ui-CqI2gXlD.js.map} +1 -1
  54. package/dist/{interactive-D6zV7brJ.js → interactive-B_Ti_CsS.js} +3 -3
  55. package/dist/interactive-B_Ti_CsS.js.map +1 -0
  56. package/dist/{logging-ui-_TwoMNbG.js → logging-ui-Dza4D0MK.js} +5 -5
  57. package/dist/{logging-ui-_TwoMNbG.js.map → logging-ui-Dza4D0MK.js.map} +1 -1
  58. package/dist/main-CgKxbwMP.js +1396 -0
  59. package/dist/main-CgKxbwMP.js.map +1 -0
  60. package/dist/{mcp-DAgaoGk5.js → mcp-DnAyW0-w.js} +4 -4
  61. package/dist/{mcp-DAgaoGk5.js.map → mcp-DnAyW0-w.js.map} +1 -1
  62. package/dist/{mcp-prompt-streaming-I2U_X7BC.js → mcp-prompt-streaming-DDWQ-FCA.js} +6 -6
  63. package/dist/mcp-prompt-streaming-DDWQ-FCA.js.map +1 -0
  64. package/dist/{mint-failure-D4nd2XmZ.js → mint-failure-u8xQKNOn.js} +689 -126
  65. package/dist/mint-failure-u8xQKNOn.js.map +1 -0
  66. package/dist/{models-DDdBJKwT.js → models-WcwUnSKb.js} +2 -2
  67. package/dist/{models-DDdBJKwT.js.map → models-WcwUnSKb.js.map} +1 -1
  68. package/dist/{non-interactive-Dzow7YKY.js → non-interactive-DyVC1AGc.js} +4 -3
  69. package/dist/{non-interactive-Dzow7YKY.js.map → non-interactive-DyVC1AGc.js.map} +1 -1
  70. package/dist/{oauth-session-DJ8h6GFa.js → oauth-session-DYM2Hrl2.js} +2 -2
  71. package/dist/{oauth-session-DJ8h6GFa.js.map → oauth-session-DYM2Hrl2.js.map} +1 -1
  72. package/dist/{orchestrator-tools-szcdscwn.js → orchestrator-tools-DbgNBFGA.js} +3 -3
  73. package/dist/{orchestrator-tools-szcdscwn.js.map → orchestrator-tools-DbgNBFGA.js.map} +1 -1
  74. package/dist/{package-json-DY70kkNp.js → package-json-Atg34fa4.js} +2 -8
  75. package/dist/{package-json-DY70kkNp.js.map → package-json-Atg34fa4.js.map} +1 -1
  76. package/dist/package-json-D8Ga03tK.js +2 -0
  77. package/dist/{pi-D3h5Ok0i.js → pi-8KsYsPmM.js} +145 -45
  78. package/dist/pi-8KsYsPmM.js.map +1 -0
  79. package/dist/{playground-5AB4WgNF.js → playground-BlYRBMj7.js} +11 -11
  80. package/dist/playground-BlYRBMj7.js.map +1 -0
  81. package/dist/{posthog-DNn574nW.js → posthog-Bt0Aplb8.js} +4 -9
  82. package/dist/posthog-Bt0Aplb8.js.map +1 -0
  83. package/dist/posthog-CUgCEhH0.js +2 -0
  84. package/dist/{provisioning-B8uSqRZk.js → provisioning-Bo2NRxFz.js} +5 -11
  85. package/dist/{provisioning-B8uSqRZk.js.map → provisioning-Bo2NRxFz.js.map} +1 -1
  86. package/dist/provisioning-OGFGlzf7.js +2 -0
  87. package/dist/{queue-tools-9OOVx5TE.js → queue-tools-C8mXOh7e.js} +3 -3
  88. package/dist/{queue-tools-9OOVx5TE.js.map → queue-tools-C8mXOh7e.js.map} +1 -1
  89. package/dist/registry-C06e_x-p.js +2 -0
  90. package/dist/{registry-8YG-kuXk.js → registry-CD5RQt38.js} +51 -53
  91. package/dist/registry-CD5RQt38.js.map +1 -0
  92. package/dist/run-agent-legacy-ChacZImU.js +2 -0
  93. package/dist/{run-agent-legacy-d7rWlzQR.js → run-agent-legacy-DOlM6DQu.js} +823 -1022
  94. package/dist/run-agent-legacy-DOlM6DQu.js.map +1 -0
  95. package/dist/runners-ov3EXF1n.js +834 -0
  96. package/dist/runners-ov3EXF1n.js.map +1 -0
  97. package/dist/{security-Cg_4a7vB.js → security-C71pkwqH.js} +16 -6
  98. package/dist/security-C71pkwqH.js.map +1 -0
  99. package/dist/{setup-utils-CmTCTPkX.js → setup-utils-B26Lf2yF.js} +12 -22
  100. package/dist/setup-utils-B26Lf2yF.js.map +1 -0
  101. package/dist/setup-utils-CVS86NYR.js +2 -0
  102. package/dist/{start-tui-CB2PZs1x.js → start-tui-Bo2L0bar.js} +30 -28
  103. package/dist/start-tui-Bo2L0bar.js.map +1 -0
  104. package/dist/{steps-BZcXRJNY.js → steps-BPcg3_3Q.js} +7 -7
  105. package/dist/{steps-BZcXRJNY.js.map → steps-BPcg3_3Q.js.map} +1 -1
  106. package/dist/{store-UN7c-ASf.js → store-BTzcvRGT.js} +12 -18
  107. package/dist/store-BTzcvRGT.js.map +1 -0
  108. package/dist/store-BpqySPXm.js +5 -0
  109. package/dist/{subagent-BofIDK-O.js → subagent-D1TrTchE.js} +3 -3
  110. package/dist/{subagent-BofIDK-O.js.map → subagent-D1TrTchE.js.map} +1 -1
  111. package/dist/{task-r9t1UhQP.js → task-DqRlQBfs.js} +18 -16
  112. package/dist/task-DqRlQBfs.js.map +1 -0
  113. package/dist/{task-stream-CMUilu54.js → task-stream-Bw6JaLCX.js} +10 -10
  114. package/dist/task-stream-Bw6JaLCX.js.map +1 -0
  115. package/dist/{tasks-Bbv_lOBG.js → tasks-ChWufsdO.js} +1 -1
  116. package/dist/{tasks-Bbv_lOBG.js.map → tasks-ChWufsdO.js.map} +1 -1
  117. package/dist/{telemetry-D6ruCtnv.js → telemetry-B7zJdRmA.js} +3 -3
  118. package/dist/{telemetry-D6ruCtnv.js.map → telemetry-B7zJdRmA.js.map} +1 -1
  119. package/dist/{terminal-DrGyci_a.js → terminal-zgkEfoCL.js} +17 -17
  120. package/dist/terminal-zgkEfoCL.js.map +1 -0
  121. package/dist/{tools-Dyfh9aCD.js → tools-CkJ2y9Wt.js} +9 -9
  122. package/dist/tools-CkJ2y9Wt.js.map +1 -0
  123. package/dist/{ui-BBVuTM1v.js → ui-Q6-RvERF.js} +3 -3
  124. package/dist/{ui-BBVuTM1v.js.map → ui-Q6-RvERF.js.map} +1 -1
  125. package/dist/{version-aXxpgRKx.js → version-CHhJjz_H.js} +2 -2
  126. package/dist/{version-aXxpgRKx.js.map → version-CHhJjz_H.js.map} +1 -1
  127. package/dist/{wizard-abort-BBkiUxfS.js → wizard-abort-BPdv07np.js} +7 -6
  128. package/dist/{wizard-abort-BBkiUxfS.js.map → wizard-abort-BPdv07np.js.map} +1 -1
  129. package/dist/wizard-abort-Br1qMDNa.js +3 -0
  130. package/dist/wizard-session-2w4Ru-Wz.js.map +1 -1
  131. package/dist/{wizard-ui-DoyOZxK8.js → wizard-ui-DVqrYaOM.js} +1 -1
  132. package/dist/{wizard-ui-DoyOZxK8.js.map → wizard-ui-DVqrYaOM.js.map} +1 -1
  133. package/dist/{yara-hooks-DCeMDd1o.js → yara-hooks-BnxejtXK.js} +5 -5
  134. package/dist/{yara-hooks-DCeMDd1o.js.map → yara-hooks-BnxejtXK.js.map} +1 -1
  135. package/dist/yara-hooks-DSuExwb4.js +2 -0
  136. package/package.json +2 -1
  137. package/dist/agent-bCZ3i3fh.js.map +0 -1
  138. package/dist/agent-interface-BAOIHuXS.js.map +0 -1
  139. package/dist/analytics-BcV-WCM4.js +0 -2
  140. package/dist/ci-install-CDdQYsPe.js.map +0 -1
  141. package/dist/errors-CQ9kttJD.js +0 -185
  142. package/dist/errors-CQ9kttJD.js.map +0 -1
  143. package/dist/file-BcLTjU16.js.map +0 -1
  144. package/dist/gateway-CjoShdLa.js.map +0 -1
  145. package/dist/interactive-D6zV7brJ.js.map +0 -1
  146. package/dist/mcp-prompt-streaming-I2U_X7BC.js.map +0 -1
  147. package/dist/mint-failure-D4nd2XmZ.js.map +0 -1
  148. package/dist/pi-D3h5Ok0i.js.map +0 -1
  149. package/dist/playground-5AB4WgNF.js.map +0 -1
  150. package/dist/posthog-DNn574nW.js.map +0 -1
  151. package/dist/registry-8YG-kuXk.js.map +0 -1
  152. package/dist/rolldown-runtime-B_-DWIq7.js +0 -15
  153. package/dist/run-agent-legacy-d7rWlzQR.js.map +0 -1
  154. package/dist/security-Cg_4a7vB.js.map +0 -1
  155. package/dist/setup-utils-CmTCTPkX.js.map +0 -1
  156. package/dist/start-tui-CB2PZs1x.js.map +0 -1
  157. package/dist/store-UN7c-ASf.js.map +0 -1
  158. package/dist/task-r9t1UhQP.js.map +0 -1
  159. package/dist/task-stream-CMUilu54.js.map +0 -1
  160. package/dist/terminal-DrGyci_a.js.map +0 -1
  161. package/dist/tools-Dyfh9aCD.js.map +0 -1
  162. package/dist/wizard-abort-BU4aLyvh.js +0 -3
  163. package/dist/yara-hooks-DSGuCU9A.js +0 -2
@@ -1,19 +1,19 @@
1
- import { t as __exportAll } from "./rolldown-runtime-B_-DWIq7.js";
2
- import { a as AgentSignals, d as ErrorCodes, i as AGENT_ERROR_CODE, l as WizardError, r as skillErrorCode, t as classifyRunFailure } from "./errors-CQ9kttJD.js";
3
- import { a as getLogFilePath, h as RUN_SURFACE, l as WIZARD_BENCHMARK_FILE, s as logToFile, t as configureLogFile, u as WIZARD_LOG_FILE, v as runtimeEnv } from "./debug-Ch4BDOtD.js";
4
- import { t as VERSION } from "./version-aXxpgRKx.js";
5
- import { B as WIZARD_CONTACT_EMAIL, G as WIZARD_ORCHESTRATOR_FLAG_KEY, J as WIZARD_PROVISIONING_SCOPES, K as WIZARD_ORCHESTRATOR_OVERRIDE_FLAG_KEY, L as SONNET_5_MODEL, R as Sequence, S as Harness, W as WIZARD_OAUTH_SCOPES, Z as WIZARD_SELF_DRIVING_USE_PI_HARNESS_FLAG_KEY, _ as GPT5_6_LUNA_MODEL, b as HAIKU_MODEL, l as DEFAULT_AGENT_MODEL, q as WIZARD_ORCHESTRATOR_SEEDED_TASKS_FLAG_KEY, v as GPT5_6_SOL_MODEL, y as GPT5_6_TERRA_MODEL } from "./constants-jFI2SaE1.js";
1
+ import { U as installSkillById, et as fetchSkillMenu, i as runAgent$1, lt as createTriageLLMProvider, nt as LONGER_ASK_TIMEOUT_MS, r as initializeAgent, rt as createWizardAskBridge } from "./agent-interface-FkbaBJwz.js";
2
+ import { n as ErrorCodes } from "./emit-BSetXzDV.js";
3
+ import { a as getLogFilePath, h as RUN_SURFACE, l as WIZARD_BENCHMARK_FILE, s as logToFile, t as configureLogFile, u as WIZARD_LOG_FILE, v as runtimeEnv } from "./debug-kAHwWGg7.js";
4
+ import { t as VERSION } from "./version-CHhJjz_H.js";
5
+ import { B as WIZARD_CONTACT_EMAIL, G as WIZARD_ORCHESTRATOR_FLAG_KEY, J as WIZARD_PROVISIONING_SCOPES, K as WIZARD_ORCHESTRATOR_OVERRIDE_FLAG_KEY, L as SONNET_5_MODEL, R as Sequence, S as Harness, W as WIZARD_OAUTH_SCOPES, Z as WIZARD_SELF_DRIVING_USE_PI_HARNESS_FLAG_KEY, _ as GPT5_6_LUNA_MODEL, b as HAIKU_MODEL, l as DEFAULT_AGENT_MODEL, q as WIZARD_ORCHESTRATOR_SEEDED_TASKS_FLAG_KEY, v as GPT5_6_SOL_MODEL, y as GPT5_6_TERRA_MODEL } from "./constants-DHCBSfnx.js";
6
6
  import "./wizard-session-2w4Ru-Wz.js";
7
- import { a as ciExcludedTaskTypes, n as analytics } from "./analytics-CHCZ_qUR.js";
8
- import { d as mcpUrlFor, p as detectNodePackageManagers } from "./setup-utils-CmTCTPkX.js";
9
- import { n as currentAccessToken } from "./oauth-session-DJ8h6GFa.js";
10
- import { c as configureGatewayFromCIEnvironment, l as gatewayAuth } from "./gateway-CjoShdLa.js";
11
- import { a as requireKnownModel, r as isValidModel } from "./models-DDdBJKwT.js";
12
- import { U as installSkillById, et as fetchSkillMenu, i as runAgent$1, lt as createTriageLLMProvider, nt as LONGER_ASK_TIMEOUT_MS, r as initializeAgent, rt as createWizardAskBridge } from "./agent-interface-BAOIHuXS.js";
13
- import { a as piBackend, d as createEmitSpinner, f as createProgressCollector, l as createAioCapture, u as createEmitLog } from "./pi-D3h5Ok0i.js";
14
- import { a as flushScanReport, s as formatYaraAbortMessage } from "./yara-hooks-DCeMDd1o.js";
15
- import { _ as TaskStatus, d as uncoveredBySink, h as SkipReason, m as QueueStore, p as QUEUE_DIR_NAME, u as dependencyClosure } from "./queue-tools-9OOVx5TE.js";
16
- import { a as assembleTaskPrompt, d as taskModelSpec, i as assembleSeedPrompt, n as agentRunTools, o as loadAgentRegistry, s as promptModelFor, t as ASK_TOOL, u as resolveTask } from "./agent-prompt-loader-7Pd4CfZO.js";
7
+ import { a as ciExcludedTaskTypes, n as analytics } from "./analytics-DXK1gc12.js";
8
+ import { a as WizardError, r as skillErrorCode, t as classifyRunFailure } from "./errors-C2domSkK.js";
9
+ import { g as detectNodePackageManagers, m as mcpUrlFor } from "./setup-utils-B26Lf2yF.js";
10
+ import { n as currentAccessToken } from "./oauth-session-DYM2Hrl2.js";
11
+ import { f as gatewayAuth, s as AgentSignals } from "./gateway-C9-GlLO9.js";
12
+ import { a as requireKnownModel, o as triageModelFor, r as isValidModel } from "./models-WcwUnSKb.js";
13
+ import { a as piBackend, d as createEmitSpinner, f as createProgressCollector, l as createAioCapture, u as createEmitLog } from "./pi-8KsYsPmM.js";
14
+ import { a as flushScanReport, s as formatYaraAbortMessage } from "./yara-hooks-BnxejtXK.js";
15
+ import { _ as TaskStatus, d as uncoveredBySink, h as SkipReason, m as QueueStore, p as QUEUE_DIR_NAME, u as dependencyClosure } from "./queue-tools-C8mXOh7e.js";
16
+ import { a as assembleTaskPrompt, d as taskModelSpec, i as assembleSeedPrompt, n as agentRunTools, o as loadAgentRegistry, s as promptModelFor, t as ASK_TOOL, u as resolveTask } from "./agent-prompt-loader-D0weQ-7k.js";
17
17
  import fs, { cpSync, existsSync, mkdirSync, readdirSync, rmSync, writeFileSync } from "fs";
18
18
  import * as path$1 from "path";
19
19
  import path from "path";
@@ -96,12 +96,63 @@ async function prepareRun(config, input) {
96
96
  }, config.binding.harness)
97
97
  };
98
98
  }
99
+ const ACTIVITY_LINE_CHARS = 100;
100
+ function createTranscriptTail(emit) {
101
+ const collected = [];
102
+ let collectedChars = 0;
103
+ let resultText = "";
104
+ const collect = (text) => {
105
+ collected.push(text);
106
+ collectedChars += text.length;
107
+ while (collectedChars > 262144 && collected.length > 1) collectedChars -= collected.shift()?.length ?? 0;
108
+ };
109
+ const activity = (line) => emit({
110
+ kind: "activity",
111
+ line
112
+ });
113
+ return {
114
+ onMessage(message) {
115
+ if (message?.type === "assistant") {
116
+ const content = message.message?.content;
117
+ if (!Array.isArray(content)) return;
118
+ for (const block of content) if (block?.type === "text" && typeof block.text === "string") {
119
+ collect(block.text);
120
+ const line = block.text.trim();
121
+ if (line) activity(line.length > ACTIVITY_LINE_CHARS ? `${line.slice(0, ACTIVITY_LINE_CHARS)}…` : line);
122
+ } else if (block?.type === "tool_use") activity(formatToolUse(block));
123
+ } else if (message?.type === "result" && typeof message.result === "string") resultText = message.result;
124
+ },
125
+ finalize: () => void 0,
126
+ text: () => `${collected.join("\n")}\n${resultText}`
127
+ };
128
+ }
129
+ /** Put the tail in front of any other middleware, so both see every message. */
130
+ function withTranscript(middleware, transcript) {
131
+ if (!transcript) return middleware;
132
+ if (!middleware) return transcript;
133
+ return {
134
+ onMessage(message) {
135
+ transcript.onMessage(message);
136
+ middleware.onMessage(message);
137
+ },
138
+ finalize(resultMessage, totalDurationMs) {
139
+ transcript.finalize(resultMessage, totalDurationMs);
140
+ return middleware.finalize(resultMessage, totalDurationMs);
141
+ }
142
+ };
143
+ }
144
+ function formatToolUse(block) {
145
+ const name = typeof block?.name === "string" ? block.name : "tool";
146
+ const input = block?.input ?? {};
147
+ const detail = input.file_path || input.pattern || input.path || "";
148
+ return detail ? `${name} ${detail}` : name;
149
+ }
99
150
  //#endregion
100
151
  //#region src/agent/runner/harness/anthropic/index.ts
101
152
  const anthropicBackend = {
102
153
  name: "anthropic",
103
154
  async run(inputs) {
104
- const { config: runConfig, input, boot, emit, prompt, spinner, askBridge, middleware, model } = inputs;
155
+ const { config: runConfig, input, boot, emit, prompt, spinner, askBridge, middleware, model, structured } = inputs;
105
156
  const config = runConfig.run;
106
157
  const { skillsBaseUrl, credentials, wizardFlags, wizardMetadata } = boot;
107
158
  const { accessToken, host, projectApiKey } = credentials;
@@ -112,7 +163,7 @@ const anthropicBackend = {
112
163
  apiHost: host.apiHost,
113
164
  runTags: wizardMetadata
114
165
  });
115
- log.step("Initializing Claude agent...");
166
+ if (!structured) log.step("Initializing Claude agent...");
116
167
  const agent = await initializeAgent({
117
168
  workingDirectory: input.installDir,
118
169
  posthogMcpUrl: host.mcpUrl,
@@ -129,19 +180,27 @@ const anthropicBackend = {
129
180
  askBridge,
130
181
  getPendingQuestion: askBridge?.getPendingQuestion,
131
182
  askMaxQuestions: config.maxQuestions,
183
+ readOnly: config.readOnly,
132
184
  allowedTools: runConfig.allowedTools,
133
185
  disallowedTools: runConfig.disallowedTools,
134
186
  modelOverride: model,
187
+ outputFormat: structured && {
188
+ type: "json_schema",
189
+ schema: structured.schema
190
+ },
135
191
  capture,
136
192
  emit
137
193
  }, runOptions(input));
138
- log.step(`Verbose logs: ${getLogFilePath()}`);
139
- log.success("Agent initialized. Let's get cooking!");
194
+ if (!structured) {
195
+ log.step(`Verbose logs: ${getLogFilePath()}`);
196
+ log.success("Agent initialized. Let's get cooking!");
197
+ }
140
198
  logToFile("[agent-runner] agent initialized");
141
199
  return runAgent$1({
142
200
  ...agent,
143
201
  signal: inputs.signal
144
202
  }, prompt, runOptions(input), spinner, {
203
+ timeoutMs: structured?.timeoutMs,
145
204
  estimatedDurationMinutes: config.estimatedDurationMinutes,
146
205
  spinnerMessage: config.spinnerMessage,
147
206
  successMessage: config.successMessage,
@@ -149,6 +208,7 @@ const anthropicBackend = {
149
208
  abortCases: config.abortCases,
150
209
  emitStepEvents: config.trackStepProgress ?? false,
151
210
  resolveStepKey: config.resolveStepKey,
211
+ requestRemark: structured ? false : config.requestRemark,
152
212
  triageProvider: boot.triageProvider
153
213
  }, middleware);
154
214
  },
@@ -1380,6 +1440,20 @@ function createBenchmarkPipeline(emit, spinner, options, configOverride) {
1380
1440
  });
1381
1441
  }
1382
1442
  //#endregion
1443
+ //#region src/agent/error-map.ts
1444
+ const AGENT_ERROR_CODE = {
1445
+ ["WIZARD_AGENTIC_DETECTION_TIMEOUT"]: ErrorCodes.AgenticDetectionTimeout,
1446
+ ["WIZARD_MCP_MISSING"]: ErrorCodes.AgentMcpMissing,
1447
+ ["WIZARD_RESOURCE_MISSING"]: ErrorCodes.AgentResourceMissing,
1448
+ ["WIZARD_RATE_LIMIT"]: ErrorCodes.AgentRateLimit,
1449
+ ["WIZARD_API_ERROR"]: ErrorCodes.AgentApiError,
1450
+ ["WIZARD_YARA_VIOLATION"]: ErrorCodes.AgentYaraViolation,
1451
+ ["WIZARD_ABORT"]: ErrorCodes.AgentAbort,
1452
+ ["WIZARD_NO_PROGRESS"]: ErrorCodes.AgentNoProgress,
1453
+ ["WIZARD_INVALID_STRUCTURED_OUTPUT"]: ErrorCodes.AgentInvalidStructuredOutput,
1454
+ ["WIZARD_INCOMPLETE_TASKS"]: ErrorCodes.AgentIncompleteTasks
1455
+ };
1456
+ //#endregion
1383
1457
  //#region src/agent/agent-prompt.ts
1384
1458
  function defaultProjectPrompt(ctx) {
1385
1459
  return `You have access to the PostHog MCP server.
@@ -1475,8 +1549,8 @@ async function runLinearProgram(context) {
1475
1549
  controller.abort();
1476
1550
  }
1477
1551
  }
1478
- /** The host's `signal` decides the outcome; `runSignal` also ends with the run. */
1479
- async function executeLinear({ config, input, boot, emit, interaction, signal }, runSignal) {
1552
+ /** The caller's `signal` decides the outcome; `runSignal` also ends with the run. */
1553
+ async function executeLinear({ config, input, boot, emit, interaction, signal, transcript }, runSignal) {
1480
1554
  const { run, composed } = config;
1481
1555
  const { skillsBaseUrl, credentials, project } = boot;
1482
1556
  const { projectApiKey, host, projectId } = credentials;
@@ -1498,18 +1572,18 @@ async function executeLinear({ config, input, boot, emit, interaction, signal },
1498
1572
  logToFile(`[agent-runner] skill installed at ${skillPath}`);
1499
1573
  }
1500
1574
  const spinner = createEmitSpinner(emit);
1501
- emit({
1575
+ if (!run.structured) emit({
1502
1576
  kind: "lifecycle",
1503
1577
  phase: "started"
1504
1578
  });
1505
- const ask = shouldDisableAsk(input.flags) && process.env.WIZARD_ASK_AUTODRIVE !== "1" ? void 0 : createAskBridge(interaction, {
1579
+ const ask = !!run.structured || shouldDisableAsk(input.flags) && process.env.WIZARD_ASK_AUTODRIVE !== "1" ? void 0 : createAskBridge(interaction, {
1506
1580
  getSource: () => input.skillId ?? run.integrationLabel,
1507
1581
  richLinks: run.richLinks ?? false,
1508
1582
  timeoutMs: run.askTimeoutMs,
1509
1583
  signal: runSignal
1510
1584
  });
1511
- const middleware = input.flags.benchmark ? createBenchmarkPipeline(emit, spinner, runOptions(input)) : void 0;
1512
- const prompt = assemblePrompt(run, {
1585
+ const middleware = withTranscript(input.flags.benchmark ? createBenchmarkPipeline(emit, spinner, runOptions(input)) : void 0, transcript);
1586
+ const promptContext = {
1513
1587
  projectId,
1514
1588
  projectApiKey,
1515
1589
  host,
@@ -1520,7 +1594,8 @@ async function executeLinear({ config, input, boot, emit, interaction, signal },
1520
1594
  exceptionAutocapture: project.autocapture_exceptions_opt_in ?? null,
1521
1595
  surveys: project.surveys_opt_in ?? null
1522
1596
  } : null
1523
- });
1597
+ };
1598
+ const prompt = run.prompt ? run.prompt(promptContext) : assemblePrompt(run, promptContext);
1524
1599
  logToFile(`[agent-runner] prompt assembled (${prompt.length} chars)`);
1525
1600
  if (signal?.aborted) return aborted();
1526
1601
  const { harness, model, thinkingLevel } = config.binding;
@@ -1536,7 +1611,8 @@ async function executeLinear({ config, input, boot, emit, interaction, signal },
1536
1611
  middleware,
1537
1612
  model,
1538
1613
  thinkingLevel,
1539
- signal: runSignal
1614
+ signal: runSignal,
1615
+ structured: run.structured
1540
1616
  });
1541
1617
  if (signal?.aborted && agentResult.kind === "success") return aborted();
1542
1618
  if (agentResult.kind === "decided_failure") return failed(agentResult.failure);
@@ -1640,6 +1716,10 @@ Please try again, or check the documentation:\n${run.docsUrl}`,
1640
1716
  message: agentResult.message ?? "Agent failed",
1641
1717
  error: agentResult.error
1642
1718
  });
1719
+ if (run.structured) return {
1720
+ outcome: "success",
1721
+ structuredOutput: agentResult.structuredOutput
1722
+ };
1643
1723
  if (config.hooks?.postRun) {
1644
1724
  await config.hooks.postRun(credentials);
1645
1725
  if (signal?.aborted) return aborted();
@@ -2923,6 +3003,15 @@ function resolveBinding(ctx, role = "default") {
2923
3003
  thinkingLevel
2924
3004
  };
2925
3005
  }
3006
+ /** A scan's two attempts on triage models: the resolved harness, then the SDK as a second provider. */
3007
+ function resolveScanBindings(ctx) {
3008
+ const scan = (harness) => ({
3009
+ sequence: "linear",
3010
+ harness,
3011
+ model: triageModelFor(harness)
3012
+ });
3013
+ return [scan(resolveBinding(ctx).harness), scan("anthropic")];
3014
+ }
2926
3015
  //#endregion
2927
3016
  //#region src/agent/runner/index.ts
2928
3017
  /**
@@ -2934,9 +3023,16 @@ function resolveBinding(ctx, role = "default") {
2934
3023
  */
2935
3024
  async function runAgent(config, input, options = {}) {
2936
3025
  let collector;
3026
+ let transcript;
2937
3027
  const snapshot = () => {
2938
3028
  try {
2939
- if (collector) return collector.snapshot();
3029
+ if (collector) {
3030
+ const collected = collector.snapshot();
3031
+ return transcript ? {
3032
+ ...collected,
3033
+ transcriptTail: transcript.text()
3034
+ } : collected;
3035
+ }
2940
3036
  } catch {}
2941
3037
  return {
2942
3038
  tasks: [],
@@ -2950,6 +3046,7 @@ async function runAgent(config, input, options = {}) {
2950
3046
  };
2951
3047
  };
2952
3048
  const flushReport = () => {
3049
+ if (config.scanReport === "defer") return;
2953
3050
  try {
2954
3051
  const report = flushScanReport({ yaraReport: input.flags.yaraReport });
2955
3052
  if (report) collector?.emit({
@@ -2963,6 +3060,7 @@ async function runAgent(config, input, options = {}) {
2963
3060
  try {
2964
3061
  collector = createProgressCollector(options.onProgress);
2965
3062
  const { emit } = collector;
3063
+ if (config.run.collectTranscript) transcript = createTranscriptTail(emit);
2966
3064
  const log = (message) => emit({
2967
3065
  kind: "log",
2968
3066
  level: "info",
@@ -2991,7 +3089,8 @@ async function runAgent(config, input, options = {}) {
2991
3089
  boot,
2992
3090
  emit,
2993
3091
  interaction: options.interaction,
2994
- signal: options.signal
3092
+ signal: options.signal,
3093
+ transcript
2995
3094
  });
2996
3095
  result = {
2997
3096
  ...options.signal?.aborted && sequenceResult.outcome === "success" ? {
@@ -3065,21 +3164,15 @@ function safeErrorMessage(error) {
3065
3164
  }
3066
3165
  //#endregion
3067
3166
  //#region src/agent/index.ts
3068
- var agent_exports = /* @__PURE__ */ __exportAll({
3069
- LONGER_ASK_TIMEOUT_MS: () => LONGER_ASK_TIMEOUT_MS,
3070
- TASK_OUTCOMES_KEY: () => TASK_OUTCOMES_KEY,
3071
- configureGatewayFromCIEnvironment: () => configureGatewayFromCIEnvironment,
3072
- runMcpPromptViaSdk: () => runMcpPromptViaSdk
3073
- });
3074
3167
  /**
3075
3168
  * Leaves in C2. The TUI receives agent data through program state. Until
3076
3169
  * then the suggested-prompts screen streams through this wrapper, which loads
3077
3170
  * the streaming module on first call so the startup chunk does not grow.
3078
3171
  */
3079
3172
  async function* runMcpPromptViaSdk(args) {
3080
- yield* (await import("./mcp-prompt-streaming-I2U_X7BC.js")).runMcpPromptViaSdk(args);
3173
+ yield* (await import("./mcp-prompt-streaming-DDWQ-FCA.js")).runMcpPromptViaSdk(args);
3081
3174
  }
3082
3175
  //#endregion
3083
- export { formatCostUsd as a, computeTokenCostUsd as i, runAgent as n, formatTokenCount as o, resolveBinding as r, shouldDisableAsk as s, agent_exports as t };
3176
+ export { computeTokenCostUsd as a, shouldDisableAsk as c, resolveScanBindings as i, runAgent as n, formatCostUsd as o, resolveBinding as r, formatTokenCount as s, runMcpPromptViaSdk as t };
3084
3177
 
3085
- //# sourceMappingURL=agent-bCZ3i3fh.js.map
3178
+ //# sourceMappingURL=agent-BWFhuLgo.js.map