poly-weaver 0.12.4 → 0.13.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 (246) hide show
  1. package/dist/agents/implementors/adapter.d.ts +1 -0
  2. package/dist/agents/implementors/adapter.d.ts.map +1 -1
  3. package/dist/agents/implementors/adapter.js +4 -4
  4. package/dist/agents/implementors/adapter.js.map +1 -1
  5. package/dist/agents/implementors/handler.d.ts.map +1 -1
  6. package/dist/agents/implementors/handler.js +4 -0
  7. package/dist/agents/implementors/handler.js.map +1 -1
  8. package/dist/agents/implementors/prompts.d.ts +4 -4
  9. package/dist/agents/implementors/prompts.d.ts.map +1 -1
  10. package/dist/agents/implementors/prompts.js +25 -20
  11. package/dist/agents/implementors/prompts.js.map +1 -1
  12. package/dist/agents/implementors/types.d.ts +5 -4
  13. package/dist/agents/implementors/types.d.ts.map +1 -1
  14. package/dist/agents/interviewers/adapter.d.ts +0 -2
  15. package/dist/agents/interviewers/adapter.d.ts.map +1 -1
  16. package/dist/agents/interviewers/adapter.js +0 -15
  17. package/dist/agents/interviewers/adapter.js.map +1 -1
  18. package/dist/agents/interviewers/handler.d.ts.map +1 -1
  19. package/dist/agents/interviewers/handler.js +1 -18
  20. package/dist/agents/interviewers/handler.js.map +1 -1
  21. package/dist/agents/reviewers/adapter.d.ts.map +1 -1
  22. package/dist/agents/reviewers/adapter.js +18 -3
  23. package/dist/agents/reviewers/adapter.js.map +1 -1
  24. package/dist/agents/reviewers/dsl.d.ts +1 -0
  25. package/dist/agents/reviewers/dsl.d.ts.map +1 -1
  26. package/dist/agents/reviewers/dsl.js.map +1 -1
  27. package/dist/agents/reviewers/handler.d.ts.map +1 -1
  28. package/dist/agents/reviewers/handler.js +5 -3
  29. package/dist/agents/reviewers/handler.js.map +1 -1
  30. package/dist/agents/reviewers/index.d.ts +1 -1
  31. package/dist/agents/reviewers/index.d.ts.map +1 -1
  32. package/dist/agents/reviewers/index.js +8 -1
  33. package/dist/agents/reviewers/index.js.map +1 -1
  34. package/dist/agents/reviewers/prompts.d.ts +8 -5
  35. package/dist/agents/reviewers/prompts.d.ts.map +1 -1
  36. package/dist/agents/reviewers/prompts.js +50 -27
  37. package/dist/agents/reviewers/prompts.js.map +1 -1
  38. package/dist/agents/reviewers/types.d.ts +16 -2
  39. package/dist/agents/reviewers/types.d.ts.map +1 -1
  40. package/dist/agents/reviewers/types.js.map +1 -1
  41. package/dist/agents/runner.d.ts +4 -0
  42. package/dist/agents/runner.d.ts.map +1 -1
  43. package/dist/agents/runner.js +25 -0
  44. package/dist/agents/runner.js.map +1 -1
  45. package/dist/agents/session-resume.d.ts +10 -2
  46. package/dist/agents/session-resume.d.ts.map +1 -1
  47. package/dist/agents/session-resume.js +28 -4
  48. package/dist/agents/session-resume.js.map +1 -1
  49. package/dist/agents/simplifiers/adapter.d.ts +2 -5
  50. package/dist/agents/simplifiers/adapter.d.ts.map +1 -1
  51. package/dist/agents/simplifiers/adapter.js +17 -7
  52. package/dist/agents/simplifiers/adapter.js.map +1 -1
  53. package/dist/agents/simplifiers/dsl.d.ts +13 -0
  54. package/dist/agents/simplifiers/dsl.d.ts.map +1 -1
  55. package/dist/agents/simplifiers/dsl.js +8 -1
  56. package/dist/agents/simplifiers/dsl.js.map +1 -1
  57. package/dist/agents/simplifiers/handler.d.ts +3 -0
  58. package/dist/agents/simplifiers/handler.d.ts.map +1 -1
  59. package/dist/agents/simplifiers/handler.js +130 -12
  60. package/dist/agents/simplifiers/handler.js.map +1 -1
  61. package/dist/agents/simplifiers/index.d.ts +1 -0
  62. package/dist/agents/simplifiers/index.d.ts.map +1 -1
  63. package/dist/agents/simplifiers/index.js +2 -5
  64. package/dist/agents/simplifiers/index.js.map +1 -1
  65. package/dist/agents/simplifiers/plan.d.ts +52 -0
  66. package/dist/agents/simplifiers/plan.d.ts.map +1 -0
  67. package/dist/agents/simplifiers/plan.js +176 -0
  68. package/dist/agents/simplifiers/plan.js.map +1 -0
  69. package/dist/agents/simplifiers/prompts.d.ts +5 -10
  70. package/dist/agents/simplifiers/prompts.d.ts.map +1 -1
  71. package/dist/agents/simplifiers/prompts.js +81 -15
  72. package/dist/agents/simplifiers/prompts.js.map +1 -1
  73. package/dist/agents/simplifiers/types.d.ts +22 -5
  74. package/dist/agents/simplifiers/types.d.ts.map +1 -1
  75. package/dist/ansi.d.ts +1 -0
  76. package/dist/ansi.d.ts.map +1 -1
  77. package/dist/ansi.js +1 -0
  78. package/dist/ansi.js.map +1 -1
  79. package/dist/auto-update/check-agent-updates.d.ts +1 -0
  80. package/dist/auto-update/check-agent-updates.d.ts.map +1 -1
  81. package/dist/auto-update/check-agent-updates.js +80 -8
  82. package/dist/auto-update/check-agent-updates.js.map +1 -1
  83. package/dist/auto-update/detect-agents.d.ts +1 -0
  84. package/dist/auto-update/detect-agents.d.ts.map +1 -1
  85. package/dist/auto-update/detect-agents.js +1 -1
  86. package/dist/auto-update/detect-agents.js.map +1 -1
  87. package/dist/auto-update/install-agents.js +4 -1
  88. package/dist/auto-update/install-agents.js.map +1 -1
  89. package/dist/cli.js +25 -11
  90. package/dist/cli.js.map +1 -1
  91. package/dist/config.d.ts +16 -2
  92. package/dist/config.d.ts.map +1 -1
  93. package/dist/config.js +34 -0
  94. package/dist/config.js.map +1 -1
  95. package/dist/dsl.d.ts +1 -1
  96. package/dist/dsl.d.ts.map +1 -1
  97. package/dist/flow/built-in/default-factory.js +1 -1
  98. package/dist/flow/built-in/default-factory.js.map +1 -1
  99. package/dist/flow/built-in/simplify-factory.d.ts +23 -0
  100. package/dist/flow/built-in/simplify-factory.d.ts.map +1 -0
  101. package/dist/flow/built-in/simplify-factory.js +183 -0
  102. package/dist/flow/built-in/simplify-factory.js.map +1 -0
  103. package/dist/flow/built-in/simplify.d.ts +16 -0
  104. package/dist/flow/built-in/simplify.d.ts.map +1 -0
  105. package/dist/flow/built-in/simplify.js +18 -0
  106. package/dist/flow/built-in/simplify.js.map +1 -0
  107. package/dist/flow/custom/load.d.ts.map +1 -1
  108. package/dist/flow/custom/load.js +1 -0
  109. package/dist/flow/custom/load.js.map +1 -1
  110. package/dist/flow/dsl.d.ts +4 -0
  111. package/dist/flow/dsl.d.ts.map +1 -1
  112. package/dist/flow/dsl.js +4 -0
  113. package/dist/flow/dsl.js.map +1 -1
  114. package/dist/flow/executor.js +1 -1
  115. package/dist/flow/executor.js.map +1 -1
  116. package/dist/flow/params.d.ts.map +1 -1
  117. package/dist/flow/params.js +25 -5
  118. package/dist/flow/params.js.map +1 -1
  119. package/dist/flow/types.d.ts +22 -1
  120. package/dist/flow/types.d.ts.map +1 -1
  121. package/dist/flow/types.js.map +1 -1
  122. package/dist/git-info.d.ts +17 -0
  123. package/dist/git-info.d.ts.map +1 -1
  124. package/dist/git-info.js +117 -1
  125. package/dist/git-info.js.map +1 -1
  126. package/dist/markdown.js +28 -8
  127. package/dist/markdown.js.map +1 -1
  128. package/dist/offscreen/agent-viewer.d.ts.map +1 -1
  129. package/dist/offscreen/agent-viewer.js +11 -3
  130. package/dist/offscreen/agent-viewer.js.map +1 -1
  131. package/dist/offscreen/artifact-pane.d.ts +8 -2
  132. package/dist/offscreen/artifact-pane.d.ts.map +1 -1
  133. package/dist/offscreen/artifact-pane.js +32 -3
  134. package/dist/offscreen/artifact-pane.js.map +1 -1
  135. package/dist/offscreen/controller.d.ts +3 -0
  136. package/dist/offscreen/controller.d.ts.map +1 -1
  137. package/dist/offscreen/controller.js +30 -8
  138. package/dist/offscreen/controller.js.map +1 -1
  139. package/dist/offscreen/fork-busy.d.ts +3 -20
  140. package/dist/offscreen/fork-busy.d.ts.map +1 -1
  141. package/dist/offscreen/fork-busy.js +7 -76
  142. package/dist/offscreen/fork-busy.js.map +1 -1
  143. package/dist/offscreen/fork-launch.d.ts +3 -34
  144. package/dist/offscreen/fork-launch.d.ts.map +1 -1
  145. package/dist/offscreen/fork-launch.js +4 -102
  146. package/dist/offscreen/fork-launch.js.map +1 -1
  147. package/dist/offscreen/panes.d.ts +1 -0
  148. package/dist/offscreen/panes.d.ts.map +1 -1
  149. package/dist/offscreen/resolve.d.ts.map +1 -1
  150. package/dist/offscreen/resolve.js +16 -0
  151. package/dist/offscreen/resolve.js.map +1 -1
  152. package/dist/offscreen/split-inquiry.d.ts +2 -0
  153. package/dist/offscreen/split-inquiry.d.ts.map +1 -1
  154. package/dist/offscreen/split-inquiry.js +9 -0
  155. package/dist/offscreen/split-inquiry.js.map +1 -1
  156. package/dist/orchestrator.d.ts +14 -1
  157. package/dist/orchestrator.d.ts.map +1 -1
  158. package/dist/orchestrator.js +70 -0
  159. package/dist/orchestrator.js.map +1 -1
  160. package/dist/preview-panel.d.ts +7 -1
  161. package/dist/preview-panel.d.ts.map +1 -1
  162. package/dist/preview-panel.js +93 -32
  163. package/dist/preview-panel.js.map +1 -1
  164. package/dist/providers/claude/strategy.d.ts +12 -1
  165. package/dist/providers/claude/strategy.d.ts.map +1 -1
  166. package/dist/providers/claude/strategy.js +135 -2
  167. package/dist/providers/claude/strategy.js.map +1 -1
  168. package/dist/providers/claude/trust.d.ts +2 -0
  169. package/dist/providers/claude/trust.d.ts.map +1 -0
  170. package/dist/providers/claude/trust.js +22 -0
  171. package/dist/providers/claude/trust.js.map +1 -0
  172. package/dist/providers/codex/config.js +1 -1
  173. package/dist/providers/codex/config.js.map +1 -1
  174. package/dist/providers/codex/strategy.d.ts +12 -1
  175. package/dist/providers/codex/strategy.d.ts.map +1 -1
  176. package/dist/providers/codex/strategy.js +126 -2
  177. package/dist/providers/codex/strategy.js.map +1 -1
  178. package/dist/providers/codex/trust.d.ts +2 -0
  179. package/dist/providers/codex/trust.d.ts.map +1 -0
  180. package/dist/providers/codex/trust.js +92 -0
  181. package/dist/providers/codex/trust.js.map +1 -0
  182. package/dist/providers/copilot/completion.d.ts +5 -3
  183. package/dist/providers/copilot/completion.d.ts.map +1 -1
  184. package/dist/providers/copilot/completion.js +188 -16
  185. package/dist/providers/copilot/completion.js.map +1 -1
  186. package/dist/providers/copilot/strategy.d.ts +13 -1
  187. package/dist/providers/copilot/strategy.d.ts.map +1 -1
  188. package/dist/providers/copilot/strategy.js +189 -2
  189. package/dist/providers/copilot/strategy.js.map +1 -1
  190. package/dist/providers/copilot/trust.d.ts +2 -0
  191. package/dist/providers/copilot/trust.d.ts.map +1 -0
  192. package/dist/providers/copilot/trust.js +45 -0
  193. package/dist/providers/copilot/trust.js.map +1 -0
  194. package/dist/providers/fork.d.ts +64 -0
  195. package/dist/providers/fork.d.ts.map +1 -0
  196. package/dist/providers/fork.js +2 -0
  197. package/dist/providers/fork.js.map +1 -0
  198. package/dist/providers/index.d.ts +2 -1
  199. package/dist/providers/index.d.ts.map +1 -1
  200. package/dist/providers/option-catalog.d.ts +3 -0
  201. package/dist/providers/option-catalog.d.ts.map +1 -1
  202. package/dist/providers/option-catalog.js +30 -128
  203. package/dist/providers/option-catalog.js.map +1 -1
  204. package/dist/providers/trust-utils.d.ts +7 -0
  205. package/dist/providers/trust-utils.d.ts.map +1 -0
  206. package/dist/providers/trust-utils.js +49 -0
  207. package/dist/providers/trust-utils.js.map +1 -0
  208. package/dist/providers/trust.d.ts +1 -4
  209. package/dist/providers/trust.d.ts.map +1 -1
  210. package/dist/providers/trust.js +3 -204
  211. package/dist/providers/trust.js.map +1 -1
  212. package/dist/providers/types.d.ts +46 -0
  213. package/dist/providers/types.d.ts.map +1 -1
  214. package/dist/providers/types.js.map +1 -1
  215. package/dist/simplify-scope-gate.d.ts +10 -0
  216. package/dist/simplify-scope-gate.d.ts.map +1 -0
  217. package/dist/simplify-scope-gate.js +60 -0
  218. package/dist/simplify-scope-gate.js.map +1 -0
  219. package/dist/startup-tui.d.ts +10 -1
  220. package/dist/startup-tui.d.ts.map +1 -1
  221. package/dist/startup-tui.js +131 -35
  222. package/dist/startup-tui.js.map +1 -1
  223. package/dist/user/candidate-pushback-handler.d.ts +13 -0
  224. package/dist/user/candidate-pushback-handler.d.ts.map +1 -0
  225. package/dist/user/candidate-pushback-handler.js +183 -0
  226. package/dist/user/candidate-pushback-handler.js.map +1 -0
  227. package/dist/user/curate-prompt.d.ts +29 -1
  228. package/dist/user/curate-prompt.d.ts.map +1 -1
  229. package/dist/user/curate-prompt.js +32 -5
  230. package/dist/user/curate-prompt.js.map +1 -1
  231. package/dist/user/handler.d.ts.map +1 -1
  232. package/dist/user/handler.js +23 -0
  233. package/dist/user/handler.js.map +1 -1
  234. package/dist/user/host-curate-prompt.d.ts +5 -5
  235. package/dist/user/host-curate-prompt.d.ts.map +1 -1
  236. package/dist/user/host-curate-prompt.js +204 -91
  237. package/dist/user/host-curate-prompt.js.map +1 -1
  238. package/dist/user/issue-inquiry.d.ts +2 -0
  239. package/dist/user/issue-inquiry.d.ts.map +1 -1
  240. package/dist/user/issue-inquiry.js +6 -0
  241. package/dist/user/issue-inquiry.js.map +1 -1
  242. package/dist/user/plan-pane.d.ts +3 -0
  243. package/dist/user/plan-pane.d.ts.map +1 -1
  244. package/dist/user/plan-pane.js +29 -16
  245. package/dist/user/plan-pane.js.map +1 -1
  246. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/providers/codex/strategy.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAI,EAAE,6BAA6B,CAAU,CAAC;AAC1F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,IAAI,EAAE,mCAAmC,CAAU,CAAC;AAE9F,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,OAAO,CAAC;IACf,WAAW,GAAG,WAAW,CAAC;IAC1B,OAAO,GAAG,OAAO,CAAC;IAClB,UAAU,GAAG,MAAM,CAAC;IACpB,OAAO,GAAmB,IAAI,mBAAmB,EAAE,CAAC;IAC7D,OAAO,GAAuB,SAAS,CAAC;IAC/B,QAAQ,GAAmB;QAClC,YAAY,EAAE,cAAc;QAC5B,cAAc,EAAE,IAAI;KACrB,CAAC;IACO,iBAAiB,GAAsB,IAAI,sBAAsB,EAAE,CAAC;IAE7E,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAmB;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,4CAA4C,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM;YAC5B,CAAC,CAAC,CAAC,IAAI,EAAE,2BAA2B,IAAI,CAAC,MAAM,GAAG,CAAC;YACnD,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,WAAW,GAAG;YAClB,GAAG,QAAQ;YACX,GAAG,2BAA2B;YAC9B,GAAG,yBAAyB;YAC5B,GAAG,SAAS;YACZ,GAAG,UAAU;SACd,CAAC;QAEF,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,oEAAoE;YACpE,qEAAqE;YACrE,oEAAoE;YACpE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,CAAC,GAAG,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAClE,CAAC;QAED,kEAAkE;QAClE,4DAA4D;QAC5D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,cAAc,CAAC,IAAgC;QAC7C,OAAO,IAAI,uBAAuB,CAChC,GAAG,EACH,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,YAAY,EAC1B,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,YAAY,CACnB,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/providers/codex/strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function ensureCodexTrust(workdir: string): Promise<void>;
2
+ //# sourceMappingURL=trust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/trust.ts"],"names":[],"mappings":"AAUA,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBrE"}
@@ -0,0 +1,92 @@
1
+ import { mkdir, writeFile } from "node:fs/promises";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { parse as parseToml } from "smol-toml";
5
+ import { isRecord, readTextIfExists, tomlBasicString, } from "../trust-utils.js";
6
+ export async function ensureCodexTrust(workdir) {
7
+ const configDir = join(homedir(), ".codex");
8
+ const configPath = join(configDir, "config.toml");
9
+ const projectPath = normalizeCodexProjectPath(workdir);
10
+ await mkdir(configDir, { recursive: true });
11
+ const content = await readTextIfExists(configPath) ?? "";
12
+ if (content.length > 0) {
13
+ const parsed = parseToml(content);
14
+ if (codexProjectIsTrusted(parsed, projectPath))
15
+ return;
16
+ }
17
+ const updated = updateCodexTrust(content, projectPath);
18
+ const updatedParsed = parseToml(updated);
19
+ if (!codexProjectIsTrusted(updatedParsed, projectPath)) {
20
+ throw new Error(`Codex trust entry was not written for ${projectPath}`);
21
+ }
22
+ if (updated !== content) {
23
+ await writeFile(configPath, updated, "utf8");
24
+ }
25
+ }
26
+ function updateCodexTrust(content, projectPath) {
27
+ const eol = content.includes("\r\n") ? "\r\n" : "\n";
28
+ const lines = content === "" ? [] : content.split(/\r?\n/);
29
+ const start = lines.findIndex((line) => isTargetCodexProjectHeader(line, projectPath));
30
+ if (start === -1) {
31
+ const header = codexProjectHeaders(projectPath)[0];
32
+ const prefix = content === "" ? "" : content.endsWith("\n") ? content : `${content}${eol}`;
33
+ const separator = prefix === "" || prefix.endsWith(`${eol}${eol}`) ? "" : eol;
34
+ return `${prefix}${separator}${header}${eol}trust_level = "trusted"${eol}`;
35
+ }
36
+ let end = lines.length;
37
+ for (let index = start + 1; index < lines.length; index++) {
38
+ if (/^\s*\[[^\]]+\]\s*(?:#.*)?$/.test(lines[index])) {
39
+ end = index;
40
+ break;
41
+ }
42
+ }
43
+ for (let index = start + 1; index < end; index++) {
44
+ if (/^\s*trust_level\s*=/.test(lines[index])) {
45
+ if (lines[index].trim() === 'trust_level = "trusted"')
46
+ return content;
47
+ lines[index] = 'trust_level = "trusted"';
48
+ return lines.join(eol);
49
+ }
50
+ }
51
+ lines.splice(start + 1, 0, 'trust_level = "trusted"');
52
+ return lines.join(eol);
53
+ }
54
+ function isTargetCodexProjectHeader(line, projectPath) {
55
+ if (!/^\s*\[/.test(line))
56
+ return false;
57
+ try {
58
+ const parsed = parseToml(`${line}\n__poly_weaver_marker = true\n`);
59
+ const projects = isRecord(parsed.projects) ? parsed.projects : undefined;
60
+ const project = projects && isRecord(projects[projectPath])
61
+ ? projects[projectPath]
62
+ : undefined;
63
+ return project?.__poly_weaver_marker === true;
64
+ }
65
+ catch {
66
+ return false;
67
+ }
68
+ }
69
+ function codexProjectHeaders(projectPath) {
70
+ const literal = tomlLiteralString(projectPath);
71
+ const headers = literal ? [`[projects.${literal}]`] : [];
72
+ headers.push(`[projects.${tomlBasicString(projectPath)}]`);
73
+ return headers;
74
+ }
75
+ function tomlLiteralString(value) {
76
+ if (value.includes("'") || /[\u0000-\u001f\u007f]/.test(value))
77
+ return undefined;
78
+ return `'${value}'`;
79
+ }
80
+ function normalizeCodexProjectPath(value) {
81
+ return value.replace(/\//g, "\\").replace(/\\+$/g, "").toLowerCase();
82
+ }
83
+ function codexProjectIsTrusted(parsed, projectPath) {
84
+ if (!isRecord(parsed))
85
+ return false;
86
+ const projects = parsed.projects;
87
+ if (!isRecord(projects))
88
+ return false;
89
+ const project = projects[projectPath];
90
+ return isRecord(project) && project.trust_level === "trusted";
91
+ }
92
+ //# sourceMappingURL=trust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.js","sourceRoot":"","sources":["../../../src/providers/codex/trust.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAEvD,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC;YAAE,OAAO;IACzD,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,yCAAyC,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,WAAmB;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CACrC,0BAA0B,CAAC,IAAI,EAAE,WAAW,CAAC,CAC9C,CAAC;IAEF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;QAC3F,MAAM,SAAS,GAAG,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9E,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,GAAG,0BAA0B,GAAG,EAAE,CAAC;IAC7E,CAAC;IAED,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1D,IAAI,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,GAAG,KAAK,CAAC;YACZ,MAAM;QACR,CAAC;IACH,CAAC;IAED,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,yBAAyB;gBAAE,OAAO,OAAO,CAAC;YACtE,KAAK,CAAC,KAAK,CAAC,GAAG,yBAAyB,CAAC;YACzC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,yBAAyB,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAY,EAAE,WAAmB;IACnE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI,iCAAiC,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,MAAM,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACzD,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;YACvB,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,OAAO,CAAC,IAAI,CAAC,aAAa,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACjF,OAAO,IAAI,KAAK,GAAG,CAAC;AACtB,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAa;IAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAe,EAAE,WAAmB;IACjE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC;AAChE,CAAC"}
@@ -1,18 +1,20 @@
1
1
  import { type SessionLine } from "../../session/reader.js";
2
2
  import { AbstractCompletionDetector } from "../base-completion.js";
3
3
  export declare function isCopilotTurnComplete(lines: SessionLine[]): boolean;
4
+ export declare function isCopilotTurnSettled(lines: SessionLine[]): boolean;
5
+ export declare function outstandingBackgroundWork(lines: SessionLine[], endIdx?: number): Set<string>;
4
6
  export declare function latestCopilotSubmitIndex(lines: SessionLine[]): number;
5
7
  export declare function countCopilotSubmits(lines: SessionLine[]): number;
6
8
  /**
7
9
  * Copilot completion detection.
8
10
  *
9
- * Primary signal: latest assistant turn has ended (`turn_end` occurs after
10
- * the latest `turn_start`) in the JSONL session file.
11
+ * Primary signal: latest assistant turn has ended and every background item
12
+ * launched at or before that `turn_end` has completed by then.
11
13
  * Secondary signal: quiet debounce (no new data for `quietMs`).
12
14
  */
13
15
  export declare class CopilotCompletionDetector extends AbstractCompletionDetector {
14
16
  private readonly exitToolName?;
15
- private latestTurnComplete;
17
+ private primaryFired;
16
18
  private exitToolCalled;
17
19
  constructor(pollMs?: number, quietMs?: number, exitToolName?: string | undefined, markerFile?: string, onActivation?: () => void);
18
20
  protected analyzeLines(lines: SessionLine[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../src/providers/copilot/completion.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAcnE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAErE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAEhE;AAED;;;;;;GAMG;AACH,qBAAa,yBAA0B,SAAQ,0BAA0B;IAOrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IANhC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,cAAc,CAAS;gBAG7B,MAAM,SAAM,EACZ,OAAO,SAAM,EACI,YAAY,CAAC,EAAE,MAAM,YAAA,EACtC,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,IAAI;IAK3B,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI;IAwBlD,SAAS,CAAC,oBAAoB,IAAI,OAAO;IAIzC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM;cAIpC,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO;cAIlD,2BAA2B,IAAI,OAAO;CAG1D"}
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../src/providers/copilot/completion.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAYnE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAGnE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAOlE;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,WAAW,EAAE,EACpB,MAAM,SAAe,GACpB,GAAG,CAAC,MAAM,CAAC,CAuBb;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAErE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAEhE;AAED;;;;;;GAMG;AACH,qBAAa,yBAA0B,SAAQ,0BAA0B;IAOrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IANhC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAS;gBAG7B,MAAM,SAAM,EACZ,OAAO,SAAM,EACI,YAAY,CAAC,EAAE,MAAM,YAAA,EACtC,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,IAAI;IAK3B,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI;IAwBlD,SAAS,CAAC,oBAAoB,IAAI,OAAO;IAIzC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM;cAIpC,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO;cAIlD,2BAA2B,IAAI,OAAO;CAG1D"}
@@ -1,19 +1,47 @@
1
1
  import { countLines, latestLineIndex } from "../../session/reader.js";
2
2
  import { extractCopilotResponse } from "./session.js";
3
3
  import { AbstractCompletionDetector } from "../base-completion.js";
4
+ import { isRecord } from "../trust-utils.js";
5
+ const BACKGROUND_AGENT_LAUNCH_TOOLS = new Set(["task"]);
6
+ const BACKGROUND_AGENT_READ_TOOLS = new Set(["read_agent"]);
7
+ const BACKGROUND_SHELL_SIGNAL_TOOLS = new Set([
8
+ "powershell",
9
+ "bash",
10
+ "read_powershell",
11
+ "read_bash",
12
+ ]);
4
13
  export function isCopilotTurnComplete(lines) {
5
- let lastTurnStart = -1;
6
- let lastTurnEnd = -1;
7
- for (let i = 0; i < lines.length; i++) {
14
+ const { lastTurnStart, lastTurnEnd } = latestCopilotTurnBoundary(lines);
15
+ return lastTurnStart !== -1 && lastTurnEnd > lastTurnStart;
16
+ }
17
+ export function isCopilotTurnSettled(lines) {
18
+ const turn = latestCopilotTurnBoundary(lines);
19
+ if (turn.lastTurnStart === -1 || turn.lastTurnEnd <= turn.lastTurnStart) {
20
+ return false;
21
+ }
22
+ return outstandingBackgroundWork(lines, turn.lastTurnEnd).size === 0;
23
+ }
24
+ export function outstandingBackgroundWork(lines, endIdx = lines.length) {
25
+ const launched = new Set();
26
+ const completed = new Set();
27
+ const lastIdx = Math.min(endIdx, lines.length - 1);
28
+ const toolNamesByCallId = toolNamesByCallIdUpTo(lines, lastIdx);
29
+ for (let i = 0; i <= lastIdx; i++) {
8
30
  const line = lines[i];
9
- if (line.type === "assistant.turn_start") {
10
- lastTurnStart = i;
11
- }
12
- else if (line.type === "assistant.turn_end") {
13
- lastTurnEnd = i;
14
- }
31
+ const producingToolName = producingToolNameForCompletion(line, toolNamesByCallId);
32
+ const launchKey = backgroundLaunchKey(line, producingToolName);
33
+ if (launchKey)
34
+ launched.add(launchKey);
35
+ const completionKey = backgroundCompletionKey(line) ??
36
+ backgroundReadCompletionKey(line, producingToolName) ??
37
+ backgroundTerminationKey(line);
38
+ if (completionKey)
39
+ completed.add(completionKey);
15
40
  }
16
- return lastTurnStart !== -1 && lastTurnEnd > lastTurnStart;
41
+ for (const key of completed) {
42
+ launched.delete(key);
43
+ }
44
+ return launched;
17
45
  }
18
46
  export function latestCopilotSubmitIndex(lines) {
19
47
  return latestLineIndex(lines, isCopilotTurnInitiatingUserLine);
@@ -24,20 +52,20 @@ export function countCopilotSubmits(lines) {
24
52
  /**
25
53
  * Copilot completion detection.
26
54
  *
27
- * Primary signal: latest assistant turn has ended (`turn_end` occurs after
28
- * the latest `turn_start`) in the JSONL session file.
55
+ * Primary signal: latest assistant turn has ended and every background item
56
+ * launched at or before that `turn_end` has completed by then.
29
57
  * Secondary signal: quiet debounce (no new data for `quietMs`).
30
58
  */
31
59
  export class CopilotCompletionDetector extends AbstractCompletionDetector {
32
60
  exitToolName;
33
- latestTurnComplete = false;
61
+ primaryFired = false;
34
62
  exitToolCalled = false;
35
63
  constructor(pollMs = 500, quietMs = 500, exitToolName, markerFile, onActivation) {
36
64
  super(pollMs, quietMs, Infinity, markerFile, onActivation);
37
65
  this.exitToolName = exitToolName;
38
66
  }
39
67
  analyzeLines(lines) {
40
- this.latestTurnComplete = isCopilotTurnComplete(lines);
68
+ this.primaryFired = isCopilotTurnSettled(lines);
41
69
  this.exitToolCalled = false;
42
70
  if (this.exitToolName) {
43
71
  for (const line of lines) {
@@ -57,7 +85,7 @@ export class CopilotCompletionDetector extends AbstractCompletionDetector {
57
85
  }
58
86
  }
59
87
  isPrimarySignalFired() {
60
- return this.latestTurnComplete || this.exitToolCalled;
88
+ return this.primaryFired || this.exitToolCalled;
61
89
  }
62
90
  extractResponse(lines) {
63
91
  return extractCopilotResponse(lines);
@@ -66,10 +94,154 @@ export class CopilotCompletionDetector extends AbstractCompletionDetector {
66
94
  return this.exitToolCalled;
67
95
  }
68
96
  shouldSuppressPtyTimerReset() {
69
- return this.latestTurnComplete || this.exitToolCalled;
97
+ return this.primaryFired || this.exitToolCalled;
70
98
  }
71
99
  }
72
100
  function isCopilotTurnInitiatingUserLine(line) {
73
101
  return line.type === "user.message";
74
102
  }
103
+ function latestCopilotTurnBoundary(lines) {
104
+ let lastTurnStart = -1;
105
+ let lastTurnEnd = -1;
106
+ for (let i = 0; i < lines.length; i++) {
107
+ const line = lines[i];
108
+ if (line.type === "assistant.turn_start") {
109
+ lastTurnStart = i;
110
+ }
111
+ else if (line.type === "assistant.turn_end") {
112
+ lastTurnEnd = i;
113
+ }
114
+ }
115
+ return { lastTurnStart, lastTurnEnd };
116
+ }
117
+ function backgroundLaunchKey(line, producingToolName) {
118
+ if (line.type !== "tool.execution_complete")
119
+ return undefined;
120
+ const data = recordProp(line, "data");
121
+ if (data?.success !== true)
122
+ return undefined;
123
+ return (backgroundAgentLaunchKey(data, producingToolName) ??
124
+ backgroundShellLaunchKey(data, producingToolName));
125
+ }
126
+ function backgroundAgentLaunchKey(data, producingToolName) {
127
+ if (!isAllowedProducingTool(producingToolName, BACKGROUND_AGENT_LAUNCH_TOOLS)) {
128
+ return undefined;
129
+ }
130
+ const telemetry = recordProp(data, "toolTelemetry");
131
+ const properties = recordProp(telemetry, "properties");
132
+ if (properties?.execution_mode !== "background")
133
+ return undefined;
134
+ const restrictedProperties = recordProp(telemetry, "restrictedProperties");
135
+ const agentId = stringProp(restrictedProperties, "agent_id");
136
+ return agentId ? `agent:${agentId}` : undefined;
137
+ }
138
+ function backgroundShellLaunchKey(data, producingToolName) {
139
+ if (!isAllowedProducingTool(producingToolName, BACKGROUND_SHELL_SIGNAL_TOOLS)) {
140
+ return undefined;
141
+ }
142
+ const result = recordProp(data, "result");
143
+ const content = stringProp(result, "content");
144
+ const envelope = trailingRuntimeEnvelope(content);
145
+ if (!envelope || /\bstarted in background\b/i.test(envelope)) {
146
+ return undefined;
147
+ }
148
+ const match = /\bshellId:\s*([^\s,]+)\s+is still running\b/.exec(envelope);
149
+ return match?.[1] ? `shell:${match[1]}` : undefined;
150
+ }
151
+ function backgroundCompletionKey(line) {
152
+ if (line.type !== "system.notification")
153
+ return undefined;
154
+ const data = recordProp(line, "data");
155
+ const kind = recordProp(data, "kind");
156
+ if (kind?.type === "agent_completed") {
157
+ const agentId = stringProp(kind, "agentId");
158
+ return agentId ? `agent:${agentId}` : undefined;
159
+ }
160
+ if (kind?.type === "shell_completed") {
161
+ const shellId = stringProp(kind, "shellId");
162
+ return shellId ? `shell:${shellId}` : undefined;
163
+ }
164
+ return undefined;
165
+ }
166
+ function backgroundReadCompletionKey(line, producingToolName) {
167
+ if (line.type !== "tool.execution_complete")
168
+ return undefined;
169
+ const data = recordProp(line, "data");
170
+ if (data?.success !== true)
171
+ return undefined;
172
+ return (backgroundAgentReadCompletionKey(data, producingToolName) ??
173
+ backgroundShellReadCompletionKey(data, producingToolName));
174
+ }
175
+ function backgroundAgentReadCompletionKey(data, producingToolName) {
176
+ if (!isAllowedProducingTool(producingToolName, BACKGROUND_AGENT_READ_TOOLS)) {
177
+ return undefined;
178
+ }
179
+ const telemetry = recordProp(data, "toolTelemetry");
180
+ const properties = recordProp(telemetry, "properties");
181
+ const status = stringProp(properties, "status");
182
+ if (status !== "completed" && status !== "failed" && status !== "cancelled") {
183
+ return undefined;
184
+ }
185
+ const agentId = stringProp(properties, "agent_id");
186
+ return agentId ? `agent:${agentId}` : undefined;
187
+ }
188
+ function backgroundShellReadCompletionKey(data, producingToolName) {
189
+ if (!isAllowedProducingTool(producingToolName, BACKGROUND_SHELL_SIGNAL_TOOLS)) {
190
+ return undefined;
191
+ }
192
+ const result = recordProp(data, "result");
193
+ const content = stringProp(result, "content");
194
+ const envelope = trailingRuntimeEnvelope(content);
195
+ const match = /\bshellId:\s*([^\s,]+)\s+completed with exit code\b/.exec(envelope ?? "");
196
+ return match?.[1] ? `shell:${match[1]}` : undefined;
197
+ }
198
+ function backgroundTerminationKey(line) {
199
+ if (line.type !== "tool.execution_start")
200
+ return undefined;
201
+ const data = recordProp(line, "data");
202
+ const toolName = stringProp(data, "toolName");
203
+ if (toolName !== "stop_powershell" && toolName !== "stop_bash") {
204
+ return undefined;
205
+ }
206
+ const args = recordProp(data, "arguments");
207
+ const shellId = stringProp(args, "shellId");
208
+ return shellId ? `shell:${shellId}` : undefined;
209
+ }
210
+ function toolNamesByCallIdUpTo(lines, lastIdx) {
211
+ const toolNamesByCallId = new Map();
212
+ for (let i = 0; i <= lastIdx; i++) {
213
+ const line = lines[i];
214
+ if (line.type !== "tool.execution_start")
215
+ continue;
216
+ const data = recordProp(line, "data");
217
+ const toolCallId = stringProp(data, "toolCallId");
218
+ const toolName = stringProp(data, "toolName");
219
+ if (toolCallId && toolName) {
220
+ toolNamesByCallId.set(toolCallId, toolName);
221
+ }
222
+ }
223
+ return toolNamesByCallId;
224
+ }
225
+ function producingToolNameForCompletion(line, toolNamesByCallId) {
226
+ if (line.type !== "tool.execution_complete")
227
+ return undefined;
228
+ const data = recordProp(line, "data");
229
+ const toolCallId = stringProp(data, "toolCallId");
230
+ return toolCallId ? toolNamesByCallId.get(toolCallId) : undefined;
231
+ }
232
+ function isAllowedProducingTool(toolName, allowedTools) {
233
+ return toolName !== undefined && allowedTools.has(toolName);
234
+ }
235
+ function trailingRuntimeEnvelope(content) {
236
+ const match = /<([^<>]*)>$/.exec(content?.trimEnd() ?? "");
237
+ return match?.[1]?.trim();
238
+ }
239
+ function recordProp(record, key) {
240
+ const value = record?.[key];
241
+ return isRecord(value) ? value : undefined;
242
+ }
243
+ function stringProp(record, key) {
244
+ const value = record?.[key];
245
+ return typeof value === "string" && value.length > 0 ? value : undefined;
246
+ }
75
247
  //# sourceMappingURL=completion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/providers/copilot/completion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/providers/copilot/completion.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { PlanModeConfig, ProviderStrategy, SessionHandler, BuildArgsOpts } from "../types.js";
1
+ import type { ForkHandler } from "../fork.js";
2
+ import type { PlanModeConfig, ProviderStrategy, SessionHandler, BuildArgsOpts, ForkSubmitFloorPolicy, OptionCatalog, SimplifierPromptOptions, SubagentOptionCatalog } from "../types.js";
2
3
  import type { CompletionDetectorOptions } from "../types.js";
3
4
  import { CopilotCompletionDetector } from "./completion.js";
4
5
  export declare class CopilotStrategy implements ProviderStrategy {
@@ -7,9 +8,20 @@ export declare class CopilotStrategy implements ProviderStrategy {
7
8
  readonly command = "copilot";
8
9
  readonly exitSignal = "\u0003";
9
10
  readonly session: SessionHandler;
11
+ readonly fork: ForkHandler;
12
+ readonly forkSubmitFloor: ForkSubmitFloorPolicy;
13
+ readonly simplifierSubagentType = "explore";
10
14
  version: string | undefined;
11
15
  readonly planMode: PlanModeConfig;
16
+ readonly options: OptionCatalog;
17
+ readonly subagentOptions: SubagentOptionCatalog;
12
18
  buildArgs(prompt: string, opts: BuildArgsOpts): Promise<string[]>;
19
+ ensureTrust(workdir: string): Promise<void>;
20
+ simplifierPrompt(opts: SimplifierPromptOptions): string;
13
21
  createDetector(opts?: CompletionDetectorOptions): CopilotCompletionDetector;
22
+ private copilotModels;
23
+ private copilotSubagentModels;
24
+ private copilotSupportsMaxEffort;
25
+ private copilotSupportsGpt56;
14
26
  }
15
27
  //# sourceMappingURL=strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/providers/copilot/strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEnG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAG5D,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,wBAAwB;IAC5C,QAAQ,CAAC,OAAO,aAAa;IAC7B,QAAQ,CAAC,UAAU,YAAU;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAA+B;IAC/D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IACxC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAI/B;IAEI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmCvE,cAAc,CAAC,IAAI,CAAC,EAAE,yBAAyB,GAAG,yBAAyB;CAS5E"}
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/providers/copilot/strategy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,WAAW,EAKZ,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAOrB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAIL,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAwCzB,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,wBAAwB;IAC5C,QAAQ,CAAC,OAAO,aAAa;IAC7B,QAAQ,CAAC,UAAU,YAAU;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAA+B;IAC/D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAA4B;IACtD,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAsB;IACrE,QAAQ,CAAC,sBAAsB,aAAa;IAC5C,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IACxC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAI/B;IACF,QAAQ,CAAC,OAAO,EAAE,aAAa,CAiB7B;IACF,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAM7C;IAEI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmCjE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM;IAOvD,cAAc,CAAC,IAAI,CAAC,EAAE,yBAAyB,GAAG,yBAAyB;IAU3E,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,oBAAoB;CAG7B"}