pi-subagents 0.70.0 → 0.71.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 (279) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +4 -2
  3. package/agents/claude-code-writer.md +1 -0
  4. package/agents/codex-exec-writer.md +1 -0
  5. package/agents/cursor-agent-writer.md +1 -0
  6. package/agents/worker.md +3 -2
  7. package/docs/agents.md +7 -8
  8. package/docs/configuration.md +17 -1
  9. package/docs/extension-api.md +5 -1
  10. package/docs/models.md +1 -1
  11. package/docs/observability.md +17 -13
  12. package/docs/standalone-background.md +4 -4
  13. package/docs/tool-reference.md +9 -11
  14. package/docs/workflows.md +1 -1
  15. package/inspector-runner.mjs +1 -1
  16. package/package.json +2 -2
  17. package/skills/pi-subagents/SKILL.md +1 -0
  18. package/skills/pi-subagents/references/constraints-and-recipes.md +5 -2
  19. package/skills/pi-subagents/references/execution-controls.md +2 -2
  20. package/skills/pi-subagents/references/management-authoring-rpc.md +3 -3
  21. package/skills/pi-subagents/references/multi-lane-orchestration.md +8 -0
  22. package/skills/pi-subagents/references/prompting-and-roles.md +14 -13
  23. package/src/agents/agent-management.d.ts.map +1 -1
  24. package/src/agents/agent-management.js +11 -25
  25. package/src/agents/agent-management.js.map +1 -1
  26. package/src/agents/agent-serializer.d.ts.map +1 -1
  27. package/src/agents/agent-serializer.js +0 -4
  28. package/src/agents/agent-serializer.js.map +1 -1
  29. package/src/agents/agents.d.ts +17 -4
  30. package/src/agents/agents.d.ts.map +1 -1
  31. package/src/agents/agents.js +39 -22
  32. package/src/agents/agents.js.map +1 -1
  33. package/src/agents/proactive-skills.d.ts +1 -0
  34. package/src/agents/proactive-skills.d.ts.map +1 -1
  35. package/src/agents/proactive-skills.js +3 -1
  36. package/src/agents/proactive-skills.js.map +1 -1
  37. package/src/agents/runtime-agent-registry.d.ts +8 -3
  38. package/src/agents/runtime-agent-registry.d.ts.map +1 -1
  39. package/src/agents/runtime-agent-registry.js +14 -9
  40. package/src/agents/runtime-agent-registry.js.map +1 -1
  41. package/src/agents/skills.d.ts +2 -0
  42. package/src/agents/skills.d.ts.map +1 -1
  43. package/src/agents/skills.js +41 -8
  44. package/src/agents/skills.js.map +1 -1
  45. package/src/api/delegation.d.ts +14 -0
  46. package/src/api/delegation.d.ts.map +1 -1
  47. package/src/extension/index.d.ts.map +1 -1
  48. package/src/extension/index.js +5 -1
  49. package/src/extension/index.js.map +1 -1
  50. package/src/extension/rpc.d.ts +1 -1
  51. package/src/extension/rpc.d.ts.map +1 -1
  52. package/src/extension/rpc.js +11 -1
  53. package/src/extension/rpc.js.map +1 -1
  54. package/src/extension/tool-activation.d.ts +9 -0
  55. package/src/extension/tool-activation.d.ts.map +1 -0
  56. package/src/extension/tool-activation.js +172 -0
  57. package/src/extension/tool-activation.js.map +1 -0
  58. package/src/extension/tool-description.d.ts +4 -4
  59. package/src/extension/tool-description.d.ts.map +1 -1
  60. package/src/extension/tool-description.js +1 -1
  61. package/src/intercom/intercom-bridge.d.ts.map +1 -1
  62. package/src/intercom/intercom-bridge.js +2 -0
  63. package/src/intercom/intercom-bridge.js.map +1 -1
  64. package/src/runs/background/active-async-capacity.d.ts.map +1 -1
  65. package/src/runs/background/active-async-capacity.js +4 -33
  66. package/src/runs/background/active-async-capacity.js.map +1 -1
  67. package/src/runs/background/async-execution.d.ts.map +1 -1
  68. package/src/runs/background/async-execution.js +5 -67
  69. package/src/runs/background/async-execution.js.map +1 -1
  70. package/src/runs/background/async-job-tracker.d.ts.map +1 -1
  71. package/src/runs/background/async-job-tracker.js +25 -19
  72. package/src/runs/background/async-job-tracker.js.map +1 -1
  73. package/src/runs/background/async-resume.d.ts +1 -1
  74. package/src/runs/background/async-resume.d.ts.map +1 -1
  75. package/src/runs/background/async-resume.js +8 -6
  76. package/src/runs/background/async-resume.js.map +1 -1
  77. package/src/runs/background/async-status.d.ts +1 -0
  78. package/src/runs/background/async-status.d.ts.map +1 -1
  79. package/src/runs/background/async-status.js +1 -0
  80. package/src/runs/background/async-status.js.map +1 -1
  81. package/src/runs/background/binary-bootstrap.d.ts.map +1 -1
  82. package/src/runs/background/binary-bootstrap.js +28 -6
  83. package/src/runs/background/binary-bootstrap.js.map +1 -1
  84. package/src/runs/background/fleet-view.d.ts.map +1 -1
  85. package/src/runs/background/fleet-view.js +26 -7
  86. package/src/runs/background/fleet-view.js.map +1 -1
  87. package/src/runs/background/notify.d.ts +11 -0
  88. package/src/runs/background/notify.d.ts.map +1 -1
  89. package/src/runs/background/notify.js +71 -3
  90. package/src/runs/background/notify.js.map +1 -1
  91. package/src/runs/background/process-terminal-candidate.d.ts +18 -0
  92. package/src/runs/background/process-terminal-candidate.d.ts.map +1 -0
  93. package/src/runs/background/process-terminal-candidate.js +97 -0
  94. package/src/runs/background/process-terminal-candidate.js.map +1 -0
  95. package/src/runs/background/process-terminal.d.ts +3 -15
  96. package/src/runs/background/process-terminal.d.ts.map +1 -1
  97. package/src/runs/background/process-terminal.js +19 -96
  98. package/src/runs/background/process-terminal.js.map +1 -1
  99. package/src/runs/background/retained-children.d.ts.map +1 -1
  100. package/src/runs/background/retained-children.js +3 -2
  101. package/src/runs/background/retained-children.js.map +1 -1
  102. package/src/runs/background/run-child-session.d.ts +1 -0
  103. package/src/runs/background/run-child-session.d.ts.map +1 -1
  104. package/src/runs/background/run-child-session.js.map +1 -1
  105. package/src/runs/background/run-status.d.ts.map +1 -1
  106. package/src/runs/background/run-status.js +11 -5
  107. package/src/runs/background/run-status.js.map +1 -1
  108. package/src/runs/background/runner-aliases.d.ts.map +1 -1
  109. package/src/runs/background/runner-aliases.js +28 -16
  110. package/src/runs/background/runner-aliases.js.map +1 -1
  111. package/src/runs/background/runner-startup-failure.d.ts +14 -0
  112. package/src/runs/background/runner-startup-failure.d.ts.map +1 -0
  113. package/src/runs/background/runner-startup-failure.js +47 -0
  114. package/src/runs/background/runner-startup-failure.js.map +1 -0
  115. package/src/runs/background/stale-run-reconciler.d.ts.map +1 -1
  116. package/src/runs/background/stale-run-reconciler.js +9 -1
  117. package/src/runs/background/stale-run-reconciler.js.map +1 -1
  118. package/src/runs/background/subagent-runner-bootstrap.d.ts +14 -0
  119. package/src/runs/background/subagent-runner-bootstrap.d.ts.map +1 -0
  120. package/src/runs/background/subagent-runner-bootstrap.js +277 -0
  121. package/src/runs/background/subagent-runner-bootstrap.js.map +1 -0
  122. package/src/runs/background/subagent-runner.d.ts +5 -7
  123. package/src/runs/background/subagent-runner.d.ts.map +1 -1
  124. package/src/runs/background/subagent-runner.js +67 -274
  125. package/src/runs/background/subagent-runner.js.map +1 -1
  126. package/src/runs/background/workflow-terminal-proof.d.ts +18 -0
  127. package/src/runs/background/workflow-terminal-proof.d.ts.map +1 -0
  128. package/src/runs/background/workflow-terminal-proof.js +68 -0
  129. package/src/runs/background/workflow-terminal-proof.js.map +1 -0
  130. package/src/runs/foreground/execution.d.ts.map +1 -1
  131. package/src/runs/foreground/execution.js +43 -111
  132. package/src/runs/foreground/execution.js.map +1 -1
  133. package/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  134. package/src/runs/foreground/subagent-executor.js +108 -17
  135. package/src/runs/foreground/subagent-executor.js.map +1 -1
  136. package/src/runs/shared/acceptance.d.ts.map +1 -1
  137. package/src/runs/shared/acceptance.js +7 -40
  138. package/src/runs/shared/acceptance.js.map +1 -1
  139. package/src/runs/shared/child-hooks.d.ts +1 -3
  140. package/src/runs/shared/child-hooks.d.ts.map +1 -1
  141. package/src/runs/shared/child-hooks.js +1 -16
  142. package/src/runs/shared/child-hooks.js.map +1 -1
  143. package/src/runs/shared/child-launch.d.ts +0 -2
  144. package/src/runs/shared/child-launch.d.ts.map +1 -1
  145. package/src/runs/shared/child-launch.js +4 -2
  146. package/src/runs/shared/child-launch.js.map +1 -1
  147. package/src/runs/shared/child-runtime-config.d.ts +4 -0
  148. package/src/runs/shared/child-runtime-config.d.ts.map +1 -1
  149. package/src/runs/shared/child-runtime-config.js.map +1 -1
  150. package/src/runs/shared/child-session.d.ts +8 -9
  151. package/src/runs/shared/child-session.d.ts.map +1 -1
  152. package/src/runs/shared/child-session.js +67 -2
  153. package/src/runs/shared/child-session.js.map +1 -1
  154. package/src/runs/shared/dynamic-fanout.js +1 -1
  155. package/src/runs/shared/dynamic-fanout.js.map +1 -1
  156. package/src/runs/shared/external-cli-runner.d.ts.map +1 -1
  157. package/src/runs/shared/external-cli-runner.js +3 -1
  158. package/src/runs/shared/external-cli-runner.js.map +1 -1
  159. package/src/runs/shared/git-environment.d.ts +3 -0
  160. package/src/runs/shared/git-environment.d.ts.map +1 -0
  161. package/src/runs/shared/git-environment.js +28 -0
  162. package/src/runs/shared/git-environment.js.map +1 -0
  163. package/src/runs/shared/mcp-config-sources.d.ts +3 -0
  164. package/src/runs/shared/mcp-config-sources.d.ts.map +1 -1
  165. package/src/runs/shared/mcp-config-sources.js.map +1 -1
  166. package/src/runs/shared/mcp-direct-tool-allowlist.js +1 -1
  167. package/src/runs/shared/mcp-direct-tool-allowlist.js.map +1 -1
  168. package/src/runs/shared/mcp-direct-tool-grant.d.ts +3 -1
  169. package/src/runs/shared/mcp-direct-tool-grant.d.ts.map +1 -1
  170. package/src/runs/shared/mcp-direct-tool-grant.js +19 -5
  171. package/src/runs/shared/mcp-direct-tool-grant.js.map +1 -1
  172. package/src/runs/shared/parallel-utils.d.ts +0 -1
  173. package/src/runs/shared/parallel-utils.d.ts.map +1 -1
  174. package/src/runs/shared/parallel-utils.js.map +1 -1
  175. package/src/runs/shared/pi-spawn.d.ts +10 -1
  176. package/src/runs/shared/pi-spawn.d.ts.map +1 -1
  177. package/src/runs/shared/pi-spawn.js +86 -7
  178. package/src/runs/shared/pi-spawn.js.map +1 -1
  179. package/src/runs/shared/single-output.d.ts.map +1 -1
  180. package/src/runs/shared/single-output.js +10 -2
  181. package/src/runs/shared/single-output.js.map +1 -1
  182. package/src/runs/shared/structured-output.d.ts +7 -0
  183. package/src/runs/shared/structured-output.d.ts.map +1 -1
  184. package/src/runs/shared/structured-output.js +74 -0
  185. package/src/runs/shared/structured-output.js.map +1 -1
  186. package/src/runs/shared/subagent-control.d.ts.map +1 -1
  187. package/src/runs/shared/subagent-control.js +6 -19
  188. package/src/runs/shared/subagent-control.js.map +1 -1
  189. package/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  190. package/src/runs/shared/subagent-prompt-runtime.js +23 -7
  191. package/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  192. package/src/runs/shared/tool-availability.js +1 -1
  193. package/src/runs/shared/tool-availability.js.map +1 -1
  194. package/src/shared/child-session-name.d.ts.map +1 -1
  195. package/src/shared/child-session-name.js +4 -2
  196. package/src/shared/child-session-name.js.map +1 -1
  197. package/src/shared/fork-context.d.ts +4 -0
  198. package/src/shared/fork-context.d.ts.map +1 -1
  199. package/src/shared/fork-context.js +9 -4
  200. package/src/shared/fork-context.js.map +1 -1
  201. package/src/shared/launch-contract.d.ts.map +1 -1
  202. package/src/shared/launch-contract.js +0 -1
  203. package/src/shared/launch-contract.js.map +1 -1
  204. package/src/shared/pruned-fork.d.ts +1 -1
  205. package/src/shared/pruned-fork.d.ts.map +1 -1
  206. package/src/shared/pruned-fork.js +70 -65
  207. package/src/shared/pruned-fork.js.map +1 -1
  208. package/src/shared/types.d.ts +32 -13
  209. package/src/shared/types.d.ts.map +1 -1
  210. package/src/shared/types.js +2 -0
  211. package/src/shared/types.js.map +1 -1
  212. package/src/slash/delegation-adapters.d.ts +7 -1
  213. package/src/slash/delegation-adapters.d.ts.map +1 -1
  214. package/src/slash/delegation-adapters.js +17 -0
  215. package/src/slash/delegation-adapters.js.map +1 -1
  216. package/src/slash/prompt-template-bridge.d.ts.map +1 -1
  217. package/src/slash/prompt-template-bridge.js +14 -1
  218. package/src/slash/prompt-template-bridge.js.map +1 -1
  219. package/src/slash/prompt-workflows.d.ts.map +1 -1
  220. package/src/slash/prompt-workflows.js +16 -2
  221. package/src/slash/prompt-workflows.js.map +1 -1
  222. package/src/slash/slash-commands.d.ts.map +1 -1
  223. package/src/slash/slash-commands.js +5 -251
  224. package/src/slash/slash-commands.js.map +1 -1
  225. package/src/slash/subagent-cost.d.ts +29 -0
  226. package/src/slash/subagent-cost.d.ts.map +1 -0
  227. package/src/slash/subagent-cost.js +271 -0
  228. package/src/slash/subagent-cost.js.map +1 -0
  229. package/src/slash/subagents-admin.d.ts.map +1 -1
  230. package/src/slash/subagents-admin.js +4 -5
  231. package/src/slash/subagents-admin.js.map +1 -1
  232. package/src/tui/fleet.d.ts.map +1 -1
  233. package/src/tui/fleet.js +4 -0
  234. package/src/tui/fleet.js.map +1 -1
  235. package/src/tui/render.d.ts.map +1 -1
  236. package/src/tui/render.js +16 -11
  237. package/src/tui/render.js.map +1 -1
  238. package/src/watchdog/diff-tool.d.ts +2 -1
  239. package/src/watchdog/diff-tool.d.ts.map +1 -1
  240. package/src/watchdog/diff-tool.js +9 -3
  241. package/src/watchdog/diff-tool.js.map +1 -1
  242. package/src/watchdog/permission-arbiter.d.ts.map +1 -1
  243. package/src/watchdog/permission-arbiter.js +12 -8
  244. package/src/watchdog/permission-arbiter.js.map +1 -1
  245. package/src/watchdog/register-child.d.ts +3 -1
  246. package/src/watchdog/register-child.d.ts.map +1 -1
  247. package/src/watchdog/register-child.js +12 -3
  248. package/src/watchdog/register-child.js.map +1 -1
  249. package/src/watchdog/review.d.ts +1 -0
  250. package/src/watchdog/review.d.ts.map +1 -1
  251. package/src/watchdog/review.js +12 -6
  252. package/src/watchdog/review.js.map +1 -1
  253. package/src/watchdog/runtime.d.ts +1 -1
  254. package/src/watchdog/runtime.d.ts.map +1 -1
  255. package/src/watchdog/runtime.js +2 -1
  256. package/src/watchdog/runtime.js.map +1 -1
  257. package/src/watchdog/turn-delta.d.ts +5 -1
  258. package/src/watchdog/turn-delta.d.ts.map +1 -1
  259. package/src/watchdog/turn-delta.js +9 -5
  260. package/src/watchdog/turn-delta.js.map +1 -1
  261. package/src/workflows/scripted-workflow.d.ts.map +1 -1
  262. package/src/workflows/scripted-workflow.js +1 -3
  263. package/src/workflows/scripted-workflow.js.map +1 -1
  264. package/src/runs/shared/completion-evidence.d.ts +0 -31
  265. package/src/runs/shared/completion-evidence.d.ts.map +0 -1
  266. package/src/runs/shared/completion-evidence.js +0 -54
  267. package/src/runs/shared/completion-evidence.js.map +0 -1
  268. package/src/runs/shared/completion-guard.d.ts +0 -35
  269. package/src/runs/shared/completion-guard.d.ts.map +0 -1
  270. package/src/runs/shared/completion-guard.js +0 -214
  271. package/src/runs/shared/completion-guard.js.map +0 -1
  272. package/src/runs/shared/llm-intent-arbiter.d.ts +0 -48
  273. package/src/runs/shared/llm-intent-arbiter.d.ts.map +0 -1
  274. package/src/runs/shared/llm-intent-arbiter.js +0 -235
  275. package/src/runs/shared/llm-intent-arbiter.js.map +0 -1
  276. package/src/runs/shared/task-intent.d.ts +0 -38
  277. package/src/runs/shared/task-intent.d.ts.map +0 -1
  278. package/src/runs/shared/task-intent.js +0 -213
  279. package/src/runs/shared/task-intent.js.map +0 -1
@@ -1,213 +0,0 @@
1
- /**
2
- * Shared task mutation-intent classifier.
3
- *
4
- * Single authority for reading a task's wording, answering two different
5
- * questions from one prohibition analysis:
6
- *
7
- * - `classifyTaskMutationIntent` / `expectsImplementationMutation`: does the
8
- * task REQUIRE file changes? Consumed by the completion mutation guard,
9
- * which blocks completion, so its vocabulary is deliberately narrow.
10
- * Verbs inside filenames and path-like tokens do not count.
11
- * - `taskMayMutate`: COULD the task plausibly change files? Consumed by
12
- * acceptance level inference, which only raises evidence gates, so its
13
- * vocabulary is deliberately broad (any bare write verb).
14
- *
15
- * Explicit read-only wording ("do not modify", "review only") is a task-level
16
- * intent only when no write imperative survives outside those phrases. A task
17
- * like "Do not modify tests; implement the fix" is an implementation task with
18
- * a scoped constraint, not a read-only task.
19
- */
20
- const REVIEW_ONLY_PATTERNS = [
21
- /\b(?:review|read)[- ]only\b/i,
22
- /\bno\s+(?:source\s+)?edits?\b/i,
23
- /\bwithout\s+edits?\b/i,
24
- /\bsuggest fixes only\b/i,
25
- /\bonly return findings\b/i,
26
- /\breturn findings only\b/i,
27
- ];
28
- const NO_EDIT_BOUNDARY_ASSERTION_PATTERN = /\bno\s+(?:source\s+)?edits?\s*,\s*(?:commits?|pushes?|merges?|installs?|changes?|writes?)\b/i;
29
- const REVIEWER_REQUIRED_EDIT_PATTERNS = [
30
- /\bmust\s+(?:edit|modify|change|fix|patch|apply|implement)\b/i,
31
- /\brequired\s+to\s+(?:edit|modify|change|fix|patch|apply|implement)\b/i,
32
- /(?:^|[.!?:;,\n]\s*)implement\s+(?:the\s+)?(?:approved|requested|specified|file|code|source|fix(?:es)?|changes?)\b/i,
33
- /\bregardless\s+of\s+findings\b/i,
34
- /\balways\s+(?:edit|modify|change|fix|patch|apply|implement)\b/i,
35
- /\bapply\s+(?:the\s+)?fix(?:es)?\s+directly\b/i,
36
- /\bmake\s+(?:the\s+)?code\s+changes\b/i,
37
- ];
38
- // The prohibition's object ends at punctuation, a serialized line separator,
39
- // or a coordinating word (but/and/then), so a follow-on clause like "but
40
- // implement the fix" stays in the text for write-intent testing instead of
41
- // being swallowed as the object.
42
- // Accept serialized line separators too: workflow prompts can carry literal
43
- // `\\n`/`\\r\\n` between clauses instead of decoded newlines.
44
- const NO_EDIT_PROHIBITION_PATTERN = /(?:\b|\\(?:r\\n|n))(?:do not|don't|must not)\s+(?:edit|modify|write(?:\s+to)?|touch|change|implement)\b((?:(?!\b(?:but|and|then)\b|\\(?:r\\n|n))[^.;,:!?\n–—-])*)/gi;
45
- const COORDINATED_NO_EDIT_PROHIBITION_PATTERN = /(?:\b|\\(?:r\\n|n))(?:do not|don't|must not)\s+((?=(?:(?!\\(?:r\\n|n))[^.;:!?\n–—-])*\b(?:and|or)\s+(?:edit|modify|write(?:\s+to)?|touch|change)\b)(?:(?!\\(?:r\\n|n))[^.;:!?\n–—-])*?\b(?:and|or)\s+(?:edit|modify|write(?:\s+to)?|touch|change)\b(?:(?!\b(?:but|and|then)\b|\\(?:r\\n|n))[^.;,:!?\n–—-])*)/gi;
46
- /** Objects of a no-edit prohibition that mean "the codebase in general" rather than a named scope. */
47
- const GENERIC_PROHIBITION_OBJECT = /^\s*(?:(?:any|all|the|these|those|your|our|existing|project|product|source|sources|config|configs|repo|repository)[\s/,-]*)*(?:files?|code|codebase|sources?|anything|repo(?:sitory)?)?\s*$/i;
48
- const SCOPED_PROHIBITION_CONTINUATION = /^(?:\\(?:r\\n|n)|\r?\n)\s*(?:in|inside|under|within|outside|except|other\s+than|besides)\b/i;
49
- const OUTPUT_INSTRUCTION_CONTINUATION = /^(?:\\(?:r\\n|n)|\r?\n)\s*(?:in|inside|within)\s+(?:(?:(?:your|the)\s+)(?:final\s+)?|final\s+)(?:output|response|report|answer|reply|message|summary|findings?|analysis|recommendations?)(?:\s*\/\s*(?:output|response|report|answer|reply|message|summary|findings?|analysis|recommendations?))*\b(?![\\/])/i;
50
- function hasScopedProhibitionContinuation(text) {
51
- return SCOPED_PROHIBITION_CONTINUATION.test(text) && !OUTPUT_INSTRUCTION_CONTINUATION.test(text);
52
- }
53
- const SCOPED_NO_EDIT_CONSTRAINT_PATTERNS = [
54
- /\bdo not edit files?\s+outside\b/i,
55
- /\bdo not edit\s+outside\b/i,
56
- /\bdo not edit\s+unrelated files?\b/i,
57
- /\bdo not change\s+unrelated files?\b/i,
58
- /\bdo not modify\s+unrelated files?\b/i,
59
- ];
60
- const NO_TOOL_INTENT_PATTERNS = [
61
- /\bno tools? needed\b/i,
62
- /\bno tools? required\b/i,
63
- /\bwithout using tools\b/i,
64
- /\bdo not use tools\b/i,
65
- /\bdon't use tools\b/i,
66
- ];
67
- const READ_ONLY_DELIVERABLE_PATTERNS = [
68
- /\b(?:draft|write|compose|prepare|produce)\s+(?:(?:a|an|the)\s+)?(?:github\s+)?(?:issue|bug report|issue draft|issue body|proposal|plan|report|summary|findings?|analysis|recommendations?)\b/i,
69
- /\b(?:issue|bug report)\s+(?:draft|body|template)\b/i,
70
- /\b(?:return|provide|produce)\s+(?:text|markdown|answer|findings?|recommendations?)\s+only\b/i,
71
- ];
72
- const RESEARCH_AGENT_PATTERNS = [
73
- /\binvestigate\b/i,
74
- /\bscout\b/i,
75
- /\bresearch(?:er)?\b/i,
76
- ];
77
- // Review/severity vocabulary like "must-fix items" or "should-fix tests" is not
78
- // the verb. Rather than dash-guarding every pattern (which would also suppress
79
- // CLI flags like "--fix" and genuine clause-level dashes like "branch—fix it"),
80
- // strip the known severity compounds (must|should|needs + dash + verb) from the
81
- // task text before matching. Dash coverage: ASCII hyphen + U+2010..U+2015.
82
- const SEVERITY_COMPOUND_PATTERN = /\b(?:must|should|needs)[-\u2010-\u2015](?:fix|edit|update|add|remove|replace|create|apply|make|do|implement|modify|delete|patch)\b/gi;
83
- function stripSeverityCompounds(task) {
84
- return task.replace(SEVERITY_COMPOUND_PATTERN, " ");
85
- }
86
- export { stripSeverityCompounds };
87
- // Quoted categories in a finding-classification request describe fixes, not
88
- // instructions to perform them. Strip only that request, leaving sibling
89
- // imperatives (including another "must fix") subject to the normal guards.
90
- const FINDING_CLASSIFICATION_PATTERN = /\b(?:classify|categorize|weigh)\s+(?:(?:the|remaining)\s+)*(?:findings?|items?|issues?)\s+as\s+["“]must\s+fix\s+before\s+[^"”\n]+["”]\s+(?:vs\.?|versus)\s+["“]must\s+fix\s+before\s+[^"”\n]+["”]/gi;
91
- const PATH_LIKE_TOKEN_PATTERN = /[^\s]+[/\\][^\s]+|[^\s/\\]+\.[A-Za-z][A-Za-z0-9]{0,9}\b/g;
92
- const PATH_INTERNAL_IMPLEMENTATION_VERB = /\b(?:implement|edit|modify|refactor|delete|update|add|remove|replace|create)\b/i;
93
- function stripPathLikeTokens(task) {
94
- return task.replace(PATH_LIKE_TOKEN_PATTERN, (token) => (PATH_INTERNAL_IMPLEMENTATION_VERB.test(token) ? " " : token));
95
- }
96
- const FIX_OR_PATCH_IMPLEMENTATION_PATTERN = /\b(?:fix|patch)\s+(?:(?:it|this|that|them|each|any|all|these|those)\b|(?:(?:a|an|the|any|all)\s+)?(?:(?:failing|failed|broken|flaky|red|cold|start|current|existing|reported|approved|known|regression|unit|integration|e2e|source|typescript|type-?script|ts|type-?check|compiler)\s+)*(?:bug|defect|issues?|problems?|failures?|regressions?|tests?|errors?|items?|typos?|code|source|implementation|component|function|module|class|method|logic|file|files|readme|docs?|changelog|package\.json|config|manifest|extension|prompt|command|lint(?:ing)?|build|ci|type-?check|type\s+checking)\b)/i;
97
- const WORKER_IMPLEMENTATION_PATTERNS = [
98
- /\b(?:implement|edit|modify|refactor|delete)\b/i,
99
- FIX_OR_PATCH_IMPLEMENTATION_PATTERN,
100
- /\b(?:update|add|remove|replace|create)\b(?!\s+(?:(?:a|an|the)\s+)?(?:report|summary|findings?)(?:\b|$))/i,
101
- /\bapply\s+(?:the\s+)?(?:(?:suggested|proposed|recommended)\s+)?(?:changes?|fix(?:es)?|patch)\b/i,
102
- /\bmake\s+(?:the\s+)?changes\b/i,
103
- /\bdo those fixes\b/i,
104
- ];
105
- const FOLLOW_ON_IMPLEMENTATION_PATTERN = /(?:^|[.!?:;,\n])\s*(?:fix|patch|update|add|remove|replace|create|delete)\s+(?:(?:the|a|an|this|that|these|those|requested|specified|current|existing|approved|your|our)\s+)(?!(?:report|summary|findings?|analysis|recommendations?|answer|response|proposal|plan|issue|bug report)\b)[a-z][\w./-]*/i;
106
- const ADVISORY_INFINITIVE_PATTERN = /\b(?:explain|recommend|describe)\s+how\s+to\s+(?:fix|patch|update|add|remove|replace|create|delete|implement|edit|modify|refactor)\b/i;
107
- const EXPLICIT_IMPLEMENTATION_PATTERNS = [
108
- /\b(?:implement|edit|modify|refactor)\b/i,
109
- /\bapply\s+(?:the\s+)?(?:(?:suggested|proposed|recommended)\s+)?(?:changes?|fix(?:es)?|patch)\b/i,
110
- /\bmake\s+(?:the\s+)?changes\b/i,
111
- /\bdo those fixes\b/i,
112
- ];
113
- const GENERAL_IMPLEMENTATION_PATTERNS = [
114
- ...EXPLICIT_IMPLEMENTATION_PATTERNS,
115
- FIX_OR_PATCH_IMPLEMENTATION_PATTERN,
116
- /\b(?:update|add|remove|replace|delete|create)\s+(?:the\s+)?(?:file|files|code|source|implementation|test|tests|component|function|module|class|method|logic|import|imports|readme|docs?|changelog|package\.json|config|manifest|extension|prompt|command)\b/i,
117
- ];
118
- function stripFrameworkInstructions(task) {
119
- return task
120
- .split("\n")
121
- .filter((line) => !/^\s*\[(?:Write to|Read from):/i.test(line))
122
- .filter((line) => !/^\s*(?:Create and maintain progress at:|Update progress at:|\*\*Output:\*\*|Write your findings to(?: exactly this path)?:|Return the complete artifact in your final response\.|The runtime will persist it to exactly this path:|Do not call contact_supervisor merely because no write-capable tool is available\.|This path is authoritative for this run\.|Ignore any other output filename or output path mentioned elsewhere)/i.test(line))
123
- .join("\n");
124
- }
125
- function stripPatterns(task, patterns) {
126
- let stripped = task;
127
- for (const pattern of patterns) {
128
- const flags = pattern.flags.includes("g") ? pattern.flags : `${pattern.flags}g`;
129
- stripped = stripped.replace(new RegExp(pattern.source, flags), " ");
130
- }
131
- return stripped;
132
- }
133
- function analyzeNoEditProhibitions(taskText) {
134
- const readOnlyBoundary = NO_EDIT_BOUNDARY_ASSERTION_PATTERN.test(taskText);
135
- let present = REVIEW_ONLY_PATTERNS.some((pattern) => pattern.test(taskText))
136
- || NO_TOOL_INTENT_PATTERNS.some((pattern) => pattern.test(taskText))
137
- || readOnlyBoundary;
138
- let blanket = false;
139
- let strippedText = stripPatterns(taskText, [...REVIEW_ONLY_PATTERNS, ...NO_TOOL_INTENT_PATTERNS, ADVISORY_INFINITIVE_PATTERN]);
140
- if (readOnlyBoundary)
141
- strippedText = stripPatterns(strippedText, [NO_EDIT_BOUNDARY_ASSERTION_PATTERN]);
142
- const stripNoEditProhibition = (match, object, offset, source) => {
143
- present = true;
144
- if (GENERIC_PROHIBITION_OBJECT.test(object) && !hasScopedProhibitionContinuation(source.slice(offset + match.length)))
145
- blanket = true;
146
- return " ";
147
- };
148
- strippedText = strippedText.replace(new RegExp(COORDINATED_NO_EDIT_PROHIBITION_PATTERN.source, COORDINATED_NO_EDIT_PROHIBITION_PATTERN.flags), stripNoEditProhibition);
149
- strippedText = strippedText.replace(new RegExp(NO_EDIT_PROHIBITION_PATTERN.source, NO_EDIT_PROHIBITION_PATTERN.flags), stripNoEditProhibition);
150
- // Restore boundaries after stripping a prohibition from serialized prompts.
151
- strippedText = strippedText.replace(/\\(?:r\\n|n)/g, "\n");
152
- return { present, blanket, strippedText };
153
- }
154
- function taskHasReadOnlyDeliverable(taskText) {
155
- return READ_ONLY_DELIVERABLE_PATTERNS.some((pattern) => pattern.test(taskText));
156
- }
157
- function isReviewerStyleAgent(agent) {
158
- return /\b(?:advisor|reviewer|oracle)\b/i.test(agent);
159
- }
160
- function hasImplementationIntent(agent, taskText) {
161
- if (isReviewerStyleAgent(agent))
162
- return REVIEWER_REQUIRED_EDIT_PATTERNS.some((pattern) => pattern.test(taskText));
163
- if (agent === "worker")
164
- return WORKER_IMPLEMENTATION_PATTERNS.some((pattern) => pattern.test(taskText));
165
- return GENERAL_IMPLEMENTATION_PATTERNS.some((pattern) => pattern.test(taskText));
166
- }
167
- export function classifyTaskMutationIntent(agent, task) {
168
- const taskText = stripPatterns(stripSeverityCompounds(stripFrameworkInstructions(task)), [FINDING_CLASSIFICATION_PATTERN]);
169
- const taskTextWithoutScopedConstraints = stripPatterns(taskText, SCOPED_NO_EDIT_CONSTRAINT_PATTERNS);
170
- const prohibitions = analyzeNoEditProhibitions(taskTextWithoutScopedConstraints);
171
- if (prohibitions.present) {
172
- if (prohibitions.blanket)
173
- return { kind: "read-only" };
174
- const remaining = stripPathLikeTokens(prohibitions.strippedText);
175
- if (isReviewerStyleAgent(agent)) {
176
- return hasImplementationIntent(agent, remaining) ? { kind: "implementation" } : { kind: "read-only" };
177
- }
178
- return EXPLICIT_IMPLEMENTATION_PATTERNS.some((pattern) => pattern.test(remaining))
179
- || FOLLOW_ON_IMPLEMENTATION_PATTERN.test(remaining)
180
- ? { kind: "implementation" }
181
- : { kind: "read-only" };
182
- }
183
- if (RESEARCH_AGENT_PATTERNS.some((pattern) => pattern.test(agent)))
184
- return { kind: "read-only" };
185
- if (hasImplementationIntent(agent, stripPathLikeTokens(taskText)))
186
- return { kind: "implementation" };
187
- if (isReviewerStyleAgent(agent))
188
- return { kind: "read-only" };
189
- return taskHasReadOnlyDeliverable(taskTextWithoutScopedConstraints) ? { kind: "read-only" } : { kind: "unknown" };
190
- }
191
- export function expectsImplementationMutation(agent, task) {
192
- return classifyTaskMutationIntent(agent, task).kind === "implementation";
193
- }
194
- /** Bare write verbs that make a task write-capable for acceptance inference.
195
- * Severity compounds ("must-fix items") are stripped before matching, so they
196
- * are not write imperatives, while CLI flags ("--fix", "-w"), clause-level
197
- * dashes ("branch—fix it"), and hyphenated imperatives ("hot-fix the bug")
198
- * all stay write-capable. */
199
- const MAY_MUTATE_VERB_PATTERN = /\b(?:fix|implement|update|write|edit|modify|migrate|delete|remove|refactor|commit)\b/i;
200
- /**
201
- * Whether the task could plausibly change files. Blanket prohibitions win;
202
- * write verbs inside a scoped prohibition's object or a read-only deliverable
203
- * phrase ("write a summary report") do not count; any other bare write verb
204
- * does.
205
- */
206
- export function taskMayMutate(task) {
207
- const taskText = stripPatterns(stripSeverityCompounds(stripFrameworkInstructions(task)), [FINDING_CLASSIFICATION_PATTERN, ...SCOPED_NO_EDIT_CONSTRAINT_PATTERNS]);
208
- const prohibitions = analyzeNoEditProhibitions(taskText);
209
- if (prohibitions.blanket)
210
- return false;
211
- return MAY_MUTATE_VERB_PATTERN.test(stripPatterns(prohibitions.strippedText, READ_ONLY_DELIVERABLE_PATTERNS));
212
- }
213
- //# sourceMappingURL=task-intent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-intent.js","sourceRoot":"","sources":["../../../../src/runs/shared/task-intent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,oBAAoB,GAAG;IAC5B,8BAA8B;IAC9B,gCAAgC;IAChC,uBAAuB;IACvB,yBAAyB;IACzB,2BAA2B;IAC3B,2BAA2B;CAC3B,CAAC;AAEF,MAAM,kCAAkC,GAAG,8FAA8F,CAAC;AAE1I,MAAM,+BAA+B,GAAG;IACvC,8DAA8D;IAC9D,uEAAuE;IACvE,oHAAoH;IACpH,iCAAiC;IACjC,gEAAgE;IAChE,+CAA+C;IAC/C,uCAAuC;CACvC,CAAC;AAEF,6EAA6E;AAC7E,yEAAyE;AACzE,2EAA2E;AAC3E,iCAAiC;AACjC,4EAA4E;AAC5E,8DAA8D;AAC9D,MAAM,2BAA2B,GAAG,qKAAqK,CAAC;AAC1M,MAAM,uCAAuC,GAAG,gTAAgT,CAAC;AAEjW,sGAAsG;AACtG,MAAM,0BAA0B,GAAG,8LAA8L,CAAC;AAClO,MAAM,+BAA+B,GAAG,6FAA6F,CAAC;AACtI,MAAM,+BAA+B,GAAG,+SAA+S,CAAC;AAExV,SAAS,gCAAgC,CAAC,IAAY;IACrD,OAAO,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,kCAAkC,GAAG;IAC1C,mCAAmC;IACnC,4BAA4B;IAC5B,qCAAqC;IACrC,uCAAuC;IACvC,uCAAuC;CACvC,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC/B,uBAAuB;IACvB,yBAAyB;IACzB,0BAA0B;IAC1B,uBAAuB;IACvB,sBAAsB;CACtB,CAAC;AAEF,MAAM,8BAA8B,GAAG;IACtC,+LAA+L;IAC/L,qDAAqD;IACrD,8FAA8F;CAC9F,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC/B,kBAAkB;IAClB,YAAY;IACZ,sBAAsB;CACtB,CAAC;AAEF,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,gFAAgF;AAChF,2EAA2E;AAC3E,MAAM,yBAAyB,GAAG,sIAAsI,CAAC;AAEzK,SAAS,sBAAsB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AACD,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC,4EAA4E;AAC5E,yEAAyE;AACzE,2EAA2E;AAC3E,MAAM,8BAA8B,GAAG,qMAAqM,CAAC;AAE7O,MAAM,uBAAuB,GAAG,0DAA0D,CAAC;AAC3F,MAAM,iCAAiC,GAAG,iFAAiF,CAAC;AAE5H,SAAS,mBAAmB,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACxH,CAAC;AAED,MAAM,mCAAmC,GAAG,qkBAAqkB,CAAC;AAElnB,MAAM,8BAA8B,GAAG;IACtC,gDAAgD;IAChD,mCAAmC;IACnC,0GAA0G;IAC1G,iGAAiG;IACjG,gCAAgC;IAChC,qBAAqB;CACrB,CAAC;AAEF,MAAM,gCAAgC,GAAG,sSAAsS,CAAC;AAChV,MAAM,2BAA2B,GAAG,uIAAuI,CAAC;AAC5K,MAAM,gCAAgC,GAAG;IACxC,yCAAyC;IACzC,iGAAiG;IACjG,gCAAgC;IAChC,qBAAqB;CACrB,CAAC;AAEF,MAAM,+BAA+B,GAAG;IACvC,GAAG,gCAAgC;IACnC,mCAAmC;IACnC,8PAA8P;CAC9P,CAAC;AAIF,SAAS,0BAA0B,CAAC,IAAY;IAC/C,OAAO,IAAI;SACT,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,uaAAua,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrc,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,QAAkB;IACtD,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC;QAChF,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAWD,SAAS,yBAAyB,CAAC,QAAgB;IAClD,MAAM,gBAAgB,GAAG,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3E,IAAI,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;WACxE,uBAAuB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;WACjE,gBAAgB,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,YAAY,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,GAAG,oBAAoB,EAAE,GAAG,uBAAuB,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC/H,IAAI,gBAAgB;QAAE,YAAY,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC,kCAAkC,CAAC,CAAC,CAAC;IACvG,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc,EAAU,EAAE;QACxG,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC;QACtI,OAAO,GAAG,CAAC;IACZ,CAAC,CAAC;IACF,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,uCAAuC,CAAC,MAAM,EAAE,uCAAuC,CAAC,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;IACvK,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,2BAA2B,CAAC,MAAM,EAAE,2BAA2B,CAAC,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAC/I,4EAA4E;IAC5E,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAgB;IACnD,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IAC1C,OAAO,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa,EAAE,QAAgB;IAC/D,IAAI,oBAAoB,CAAC,KAAK,CAAC;QAAE,OAAO,+BAA+B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClH,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxG,OAAO,+BAA+B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa,EAAE,IAAY;IACrE,MAAM,QAAQ,GAAG,aAAa,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC3H,MAAM,gCAAgC,GAAG,aAAa,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;IACrG,MAAM,YAAY,GAAG,yBAAyB,CAAC,gCAAgC,CAAC,CAAC;IACjF,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,YAAY,CAAC,OAAO;YAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,mBAAmB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACjE,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,uBAAuB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QACvG,CAAC;QACD,OAAO,gCAAgC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;eAC9E,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC;YACnD,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE;YAC5B,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACjG,IAAI,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACrG,IAAI,oBAAoB,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC9D,OAAO,0BAA0B,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACnH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAa,EAAE,IAAY;IACxE,OAAO,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC;AAC1E,CAAC;AAED;;;;6BAI6B;AAC7B,MAAM,uBAAuB,GAAG,uFAAuF,CAAC;AAExH;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,MAAM,QAAQ,GAAG,aAAa,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,8BAA8B,EAAE,GAAG,kCAAkC,CAAC,CAAC,CAAC;IAClK,MAAM,YAAY,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,YAAY,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE,8BAA8B,CAAC,CAAC,CAAC;AAC/G,CAAC"}