@monoes/monomindcli 2.10.10 → 2.10.14

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 (243) hide show
  1. package/.claude/commands/mastermind/brain.md +14 -14
  2. package/.claude/commands/mastermind/help.md +2 -2
  3. package/.claude/commands/mastermind/master.md +24 -19
  4. package/.claude/commands/mastermind/memory.md +8 -8
  5. package/.claude/commands/mastermind/monoswarm.md +4 -4
  6. package/.claude/commands/mastermind.md +7 -7
  7. package/.claude/commands/truth/start.md +3 -3
  8. package/.claude/helpers/handlers/gates-handler.cjs +13 -1
  9. package/.claude/skills/mastermind/SKILL.md +7 -16
  10. package/.claude/skills/mastermind-debug/SKILL.md +3 -3
  11. package/.claude/skills/mastermind-design/SKILL.md +2 -0
  12. package/.claude/skills/mastermind-execute/SKILL.md +66 -11
  13. package/.claude/skills/mastermind-idea/SKILL.md +9 -2
  14. package/.claude/skills/mastermind-intake/SKILL.md +31 -7
  15. package/.claude/skills/mastermind-issue-detail/SKILL.md +70 -16
  16. package/.claude/skills/mastermind-issues/SKILL.md +111 -16
  17. package/.claude/skills/mastermind-liveness/SKILL.md +96 -26
  18. package/.claude/skills/mastermind-my-issues/SKILL.md +40 -8
  19. package/.claude/skills/mastermind-org/SKILL.md +2 -0
  20. package/.claude/skills/mastermind-plan/SKILL.md +7 -16
  21. package/.claude/skills/mastermind-plan-to-tasks/SKILL.md +132 -24
  22. package/.claude/skills/mastermind-protocol/SKILL.md +33 -22
  23. package/.claude/skills/mastermind-runorg/SKILL.md +22 -3
  24. package/.claude/skills/mastermind-skill-builder/SKILL.md +1 -1
  25. package/.claude/skills/mastermind-tasks/SKILL.md +5 -0
  26. package/.claude/skills/mastermind-techport/SKILL.md +1 -1
  27. package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +56 -15
  28. package/.claude/skills/performance-analysis/SKILL.md +1 -1
  29. package/.claude/skills/verification-quality/SKILL.md +2 -3
  30. package/README.md +2 -2
  31. package/dist/src/commands/doc.js +2 -2
  32. package/dist/src/commands/doc.js.map +1 -1
  33. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  34. package/dist/src/commands/doctor-project-checks.js +45 -2
  35. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  36. package/dist/src/commands/memory-crud.d.ts.map +1 -1
  37. package/dist/src/commands/memory-crud.js +13 -2
  38. package/dist/src/commands/memory-crud.js.map +1 -1
  39. package/dist/src/commands/memory.js +1 -1
  40. package/dist/src/commands/memory.js.map +1 -1
  41. package/dist/src/commands/monograph.d.ts.map +1 -1
  42. package/dist/src/commands/monograph.js +11 -4
  43. package/dist/src/commands/monograph.js.map +1 -1
  44. package/dist/src/commands/org-observe.d.ts.map +1 -1
  45. package/dist/src/commands/org-observe.js +56 -6
  46. package/dist/src/commands/org-observe.js.map +1 -1
  47. package/dist/src/commands/org.d.ts +26 -0
  48. package/dist/src/commands/org.d.ts.map +1 -1
  49. package/dist/src/commands/org.js +144 -28
  50. package/dist/src/commands/org.js.map +1 -1
  51. package/dist/src/init/executor.d.ts.map +1 -1
  52. package/dist/src/init/executor.js +10 -9
  53. package/dist/src/init/executor.js.map +1 -1
  54. package/dist/src/init/settings-generator.d.ts.map +1 -1
  55. package/dist/src/init/settings-generator.js.map +1 -1
  56. package/dist/src/init/upgrade.d.ts.map +1 -1
  57. package/dist/src/init/upgrade.js +29 -0
  58. package/dist/src/init/upgrade.js.map +1 -1
  59. package/dist/src/init/write-codex.d.ts.map +1 -1
  60. package/dist/src/init/write-codex.js.map +1 -1
  61. package/dist/src/knowledge/document-pipeline.d.ts +5 -0
  62. package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
  63. package/dist/src/knowledge/document-pipeline.js +32 -16
  64. package/dist/src/knowledge/document-pipeline.js.map +1 -1
  65. package/dist/src/mcp-tools/hooks-routing.d.ts +9 -0
  66. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  67. package/dist/src/mcp-tools/hooks-routing.js +12 -1
  68. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  69. package/dist/src/mcp-tools/knowledge-tools.d.ts.map +1 -1
  70. package/dist/src/mcp-tools/knowledge-tools.js +105 -13
  71. package/dist/src/mcp-tools/knowledge-tools.js.map +1 -1
  72. package/dist/src/mcp-tools/memory-tools.d.ts +13 -0
  73. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  74. package/dist/src/mcp-tools/memory-tools.js +257 -31
  75. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  76. package/dist/src/mcp-tools/monograph/health-tools.d.ts.map +1 -1
  77. package/dist/src/mcp-tools/monograph/health-tools.js +99 -42
  78. package/dist/src/mcp-tools/monograph/health-tools.js.map +1 -1
  79. package/dist/src/mcp-tools/monograph/impact-tools.d.ts.map +1 -1
  80. package/dist/src/mcp-tools/monograph/impact-tools.js +123 -51
  81. package/dist/src/mcp-tools/monograph/impact-tools.js.map +1 -1
  82. package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -1
  83. package/dist/src/mcp-tools/monograph/query-tools.js +113 -96
  84. package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -1
  85. package/dist/src/mcp-tools/monograph/shared.d.ts +37 -4
  86. package/dist/src/mcp-tools/monograph/shared.d.ts.map +1 -1
  87. package/dist/src/mcp-tools/monograph/shared.js +75 -56
  88. package/dist/src/mcp-tools/monograph/shared.js.map +1 -1
  89. package/dist/src/memory/memory-bridge.d.ts +60 -1
  90. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  91. package/dist/src/memory/memory-bridge.js +172 -42
  92. package/dist/src/memory/memory-bridge.js.map +1 -1
  93. package/dist/src/memory/memory-kg.d.ts +495 -28
  94. package/dist/src/memory/memory-kg.d.ts.map +1 -1
  95. package/dist/src/memory/memory-kg.js +2186 -251
  96. package/dist/src/memory/memory-kg.js.map +1 -1
  97. package/dist/src/memory/query-router.d.ts +51 -0
  98. package/dist/src/memory/query-router.d.ts.map +1 -1
  99. package/dist/src/memory/query-router.js +38 -2
  100. package/dist/src/memory/query-router.js.map +1 -1
  101. package/dist/src/orgrt/agent-exec.d.ts.map +1 -1
  102. package/dist/src/orgrt/agent-exec.js +7 -0
  103. package/dist/src/orgrt/agent-exec.js.map +1 -1
  104. package/dist/src/orgrt/agent-runner.d.ts +26 -1
  105. package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
  106. package/dist/src/orgrt/agent-runner.js +73 -22
  107. package/dist/src/orgrt/agent-runner.js.map +1 -1
  108. package/dist/src/orgrt/antigravity-runner.d.ts +1 -1
  109. package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
  110. package/dist/src/orgrt/antigravity-runner.js +36 -19
  111. package/dist/src/orgrt/antigravity-runner.js.map +1 -1
  112. package/dist/src/orgrt/approvals.d.ts +26 -2
  113. package/dist/src/orgrt/approvals.d.ts.map +1 -1
  114. package/dist/src/orgrt/approvals.js +67 -7
  115. package/dist/src/orgrt/approvals.js.map +1 -1
  116. package/dist/src/orgrt/broker.d.ts +21 -2
  117. package/dist/src/orgrt/broker.d.ts.map +1 -1
  118. package/dist/src/orgrt/broker.js +56 -8
  119. package/dist/src/orgrt/broker.js.map +1 -1
  120. package/dist/src/orgrt/bus.d.ts +8 -0
  121. package/dist/src/orgrt/bus.d.ts.map +1 -1
  122. package/dist/src/orgrt/bus.js +27 -0
  123. package/dist/src/orgrt/bus.js.map +1 -1
  124. package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
  125. package/dist/src/orgrt/checkpoint-ops.js +15 -5
  126. package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
  127. package/dist/src/orgrt/checkpoint.d.ts +42 -4
  128. package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
  129. package/dist/src/orgrt/checkpoint.js +75 -4
  130. package/dist/src/orgrt/checkpoint.js.map +1 -1
  131. package/dist/src/orgrt/codex-runner.d.ts +1 -1
  132. package/dist/src/orgrt/codex-runner.d.ts.map +1 -1
  133. package/dist/src/orgrt/codex-runner.js +50 -23
  134. package/dist/src/orgrt/codex-runner.js.map +1 -1
  135. package/dist/src/orgrt/copilot-runner.d.ts +24 -2
  136. package/dist/src/orgrt/copilot-runner.d.ts.map +1 -1
  137. package/dist/src/orgrt/copilot-runner.js +257 -157
  138. package/dist/src/orgrt/copilot-runner.js.map +1 -1
  139. package/dist/src/orgrt/cross-org.d.ts +10 -3
  140. package/dist/src/orgrt/cross-org.d.ts.map +1 -1
  141. package/dist/src/orgrt/cross-org.js +225 -10
  142. package/dist/src/orgrt/cross-org.js.map +1 -1
  143. package/dist/src/orgrt/crush-runner.d.ts +22 -2
  144. package/dist/src/orgrt/crush-runner.d.ts.map +1 -1
  145. package/dist/src/orgrt/crush-runner.js +227 -120
  146. package/dist/src/orgrt/crush-runner.js.map +1 -1
  147. package/dist/src/orgrt/daemon.d.ts +77 -7
  148. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  149. package/dist/src/orgrt/daemon.js +989 -385
  150. package/dist/src/orgrt/daemon.js.map +1 -1
  151. package/dist/src/orgrt/decisions.d.ts +2 -2
  152. package/dist/src/orgrt/decisions.d.ts.map +1 -1
  153. package/dist/src/orgrt/decisions.js +90 -18
  154. package/dist/src/orgrt/decisions.js.map +1 -1
  155. package/dist/src/orgrt/grok-runner.d.ts +29 -3
  156. package/dist/src/orgrt/grok-runner.d.ts.map +1 -1
  157. package/dist/src/orgrt/grok-runner.js +286 -150
  158. package/dist/src/orgrt/grok-runner.js.map +1 -1
  159. package/dist/src/orgrt/kimicode-runner.d.ts +5 -5
  160. package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
  161. package/dist/src/orgrt/kimicode-runner.js +53 -32
  162. package/dist/src/orgrt/kimicode-runner.js.map +1 -1
  163. package/dist/src/orgrt/mailbox.d.ts +15 -0
  164. package/dist/src/orgrt/mailbox.d.ts.map +1 -1
  165. package/dist/src/orgrt/mailbox.js +29 -1
  166. package/dist/src/orgrt/mailbox.js.map +1 -1
  167. package/dist/src/orgrt/migrate.d.ts.map +1 -1
  168. package/dist/src/orgrt/migrate.js +8 -5
  169. package/dist/src/orgrt/migrate.js.map +1 -1
  170. package/dist/src/orgrt/opencode-runner.d.ts +1 -1
  171. package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
  172. package/dist/src/orgrt/opencode-runner.js +29 -3
  173. package/dist/src/orgrt/opencode-runner.js.map +1 -1
  174. package/dist/src/orgrt/org-memory.d.ts +19 -3
  175. package/dist/src/orgrt/org-memory.d.ts.map +1 -1
  176. package/dist/src/orgrt/org-memory.js +110 -38
  177. package/dist/src/orgrt/org-memory.js.map +1 -1
  178. package/dist/src/orgrt/pi-rpc-runner.d.ts +3 -1
  179. package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -1
  180. package/dist/src/orgrt/pi-rpc-runner.js +35 -3
  181. package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
  182. package/dist/src/orgrt/pi-runner.d.ts +25 -2
  183. package/dist/src/orgrt/pi-runner.d.ts.map +1 -1
  184. package/dist/src/orgrt/pi-runner.js +271 -152
  185. package/dist/src/orgrt/pi-runner.js.map +1 -1
  186. package/dist/src/orgrt/policy.d.ts +1 -0
  187. package/dist/src/orgrt/policy.d.ts.map +1 -1
  188. package/dist/src/orgrt/policy.js +199 -39
  189. package/dist/src/orgrt/policy.js.map +1 -1
  190. package/dist/src/orgrt/provider.d.ts +4 -0
  191. package/dist/src/orgrt/provider.d.ts.map +1 -1
  192. package/dist/src/orgrt/provider.js +16 -0
  193. package/dist/src/orgrt/provider.js.map +1 -1
  194. package/dist/src/orgrt/qwen-rpc-runner.d.ts +3 -1
  195. package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -1
  196. package/dist/src/orgrt/qwen-rpc-runner.js +35 -3
  197. package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -1
  198. package/dist/src/orgrt/qwen-runner.d.ts +30 -3
  199. package/dist/src/orgrt/qwen-runner.d.ts.map +1 -1
  200. package/dist/src/orgrt/qwen-runner.js +282 -142
  201. package/dist/src/orgrt/qwen-runner.js.map +1 -1
  202. package/dist/src/orgrt/role-slot.d.ts +88 -0
  203. package/dist/src/orgrt/role-slot.d.ts.map +1 -0
  204. package/dist/src/orgrt/role-slot.js +133 -0
  205. package/dist/src/orgrt/role-slot.js.map +1 -0
  206. package/dist/src/orgrt/runtime-options.d.ts +17 -0
  207. package/dist/src/orgrt/runtime-options.d.ts.map +1 -0
  208. package/dist/src/orgrt/runtime-options.js +32 -0
  209. package/dist/src/orgrt/runtime-options.js.map +1 -0
  210. package/dist/src/orgrt/scheduler-integration.d.ts +11 -0
  211. package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
  212. package/dist/src/orgrt/scheduler-integration.js +75 -17
  213. package/dist/src/orgrt/scheduler-integration.js.map +1 -1
  214. package/dist/src/orgrt/scheduler.d.ts +4 -0
  215. package/dist/src/orgrt/scheduler.d.ts.map +1 -1
  216. package/dist/src/orgrt/scheduler.js +7 -1
  217. package/dist/src/orgrt/scheduler.js.map +1 -1
  218. package/dist/src/orgrt/server.d.ts +8 -3
  219. package/dist/src/orgrt/server.d.ts.map +1 -1
  220. package/dist/src/orgrt/server.js +48 -13
  221. package/dist/src/orgrt/server.js.map +1 -1
  222. package/dist/src/orgrt/session.d.ts +26 -2
  223. package/dist/src/orgrt/session.d.ts.map +1 -1
  224. package/dist/src/orgrt/session.js +98 -4
  225. package/dist/src/orgrt/session.js.map +1 -1
  226. package/dist/src/orgrt/task-dag.d.ts +5 -0
  227. package/dist/src/orgrt/task-dag.d.ts.map +1 -1
  228. package/dist/src/orgrt/task-dag.js +41 -0
  229. package/dist/src/orgrt/task-dag.js.map +1 -1
  230. package/dist/src/orgrt/test-loop.js +2 -2
  231. package/dist/src/orgrt/test-loop.js.map +1 -1
  232. package/dist/src/orgrt/types.d.ts +14 -2
  233. package/dist/src/orgrt/types.d.ts.map +1 -1
  234. package/dist/src/orgrt/types.js +15 -1
  235. package/dist/src/orgrt/types.js.map +1 -1
  236. package/dist/src/orgrt/vercel-runner.d.ts.map +1 -1
  237. package/dist/src/orgrt/vercel-runner.js +4 -0
  238. package/dist/src/orgrt/vercel-runner.js.map +1 -1
  239. package/dist/src/ui/routes-org.mjs +27 -7
  240. package/dist/src/ui/server.mjs +82 -48
  241. package/dist/tsconfig.tsbuildinfo +1 -1
  242. package/package.json +3 -2
  243. package/dist/src/ui/data/mastermind-sessions.json +0 -1
@@ -9,6 +9,26 @@
9
9
  * Auth: pi's own provider login (per-provider API key or subscription,
10
10
  * configured via `pi` itself). No env vars set here.
11
11
  *
12
+ * Streaming / liveness — WHY INCREMENTAL (#204):
13
+ * This runner originally buffered ALL of pi's stdout until the subprocess
14
+ * exited, then parsed the whole batch. session.ts races the FIRST pull
15
+ * from this runner against a 4-minute silent-stream watchdog
16
+ * (SILENT_SESSION_MS), so any turn longer than 4 minutes yielded zero
17
+ * messages in time — abort, retry, kill, circuit breaker, stalled org.
18
+ * Same bug class the kimi/antigravity/codex runners had (#204 audit,
19
+ * fixed for codex in the commit this one mirrors). This runner now parses
20
+ * stdout LINE BY LINE as data arrives: a liveness `tool_use` message is
21
+ * yielded the moment the subprocess spawns (deterministically winning the
22
+ * first-pull race regardless of model-thinking latency), assistant text is
23
+ * yielded as each `message_end` event lands (pi sends whole messages, not
24
+ * per-token deltas — no accumulation needed, unlike agy), and pi's own
25
+ * `tool_execution_start` events are forwarded as `tool_use` liveness
26
+ * messages at their start boundary. Tool_call fences are still collected
27
+ * from the raw texts and parsed at end of turn (fence parsing needs the
28
+ * complete text). Fatal provider errors (auth/quota) are classified via
29
+ * the shared classifyStderr helper and tagged non-retryable, same as
30
+ * kimi/antigravity/codex.
31
+ *
12
32
  * Subprocess protocol — byte-verified against a running `pi` 0.73.1 binary
13
33
  * (2026-08-25, see doc/agent-exec-protocol testing).
14
34
  * - Invocation: `pi --mode json --session-dir <dir> "<prompt>"`. The
@@ -36,9 +56,12 @@
36
56
  * carries a cumulative `usage` object — kept as running totals but
37
57
  * superseded by `message_end`), `message_end` (final `content` array
38
58
  * with `{type:'text', text}` / `{type:'toolCall', ...}` items — only
39
- * `text` items are surfaced to the bus), `tool_execution_*` (ignored;
40
- * org tool calls use the shared tool-fence protocol, not pi's native
41
- * tool-call surface).
59
+ * `text` items are surfaced to the bus), `tool_execution_start` /
60
+ * `tool_execution_end` (org tool calls use the shared tool-fence
61
+ * protocol, not pi's native tool-call surface, but `tool_execution_start`
62
+ * is forwarded as `tool_use` liveness — see header note above — while
63
+ * `tool_execution_end` is still ignored to avoid a duplicate liveness
64
+ * ping per command).
42
65
  * - Usage field names differ from the other CLIs: `usage.input` /
43
66
  * `usage.output` (not `input_tokens`/`output_tokens`).
44
67
  *
@@ -46,6 +69,8 @@
46
69
  */
47
70
  import { spawn } from 'node:child_process';
48
71
  import { join } from 'node:path';
72
+ import { killOnAbort, } from './agent-runner.js';
73
+ import { classifyStderr } from './kimicode-runner.js';
49
74
  import { buildToolProtocol, executeToolCall, formatToolResults, MAX_TOOL_ROUNDS, parseToolCalls, TOOL_CALL_RE, } from './tool-fence.js';
50
75
  const TURN_TIMEOUT_MS = 2 * 60 * 60 * 1000;
51
76
  /** Distinct from TURN_TIMEOUT_MS: catches a hung first-run interactive prompt
@@ -54,6 +79,43 @@ const TURN_TIMEOUT_MS = 2 * 60 * 60 * 1000;
54
79
  * a trust prompt (see this file's --approve comment above), so this is a
55
80
  * defensive backstop rather than a known risk the way it is for copilot. */
56
81
  const STARTUP_GRACE_MS = 45_000;
82
+ /** Pure per-line parser — shared by parsePiEvents (batch, used by tests
83
+ * against fixture lines) and streamTurn (incremental, used at runtime). */
84
+ function parsePiLine(line) {
85
+ const trimmed = line.trim();
86
+ if (!trimmed?.startsWith('{'))
87
+ return null;
88
+ let ev;
89
+ try {
90
+ ev = JSON.parse(trimmed);
91
+ }
92
+ catch {
93
+ return null;
94
+ }
95
+ const result = {};
96
+ if (ev.type === 'message_end' && ev.message?.content) {
97
+ const text = ev.message.content
98
+ .filter((b) => b.type === 'text' && typeof b.text === 'string')
99
+ .map((b) => b.text)
100
+ .join('\n');
101
+ if (text)
102
+ result.assistantText = text;
103
+ }
104
+ else if (ev.type === 'tool_execution_start') {
105
+ // Liveness for pi's own tool activity — only the start event fires
106
+ // this (not tool_execution_end too) to avoid a duplicate liveness ping
107
+ // per command, mirroring codex's item.started-only forwarding.
108
+ result.toolName = typeof ev.toolName === 'string' ? ev.toolName : 'tool';
109
+ }
110
+ const usage = ev.message?.usage ?? ev.usage;
111
+ if (usage && (typeof usage.input === 'number' || typeof usage.output === 'number')) {
112
+ if (typeof usage.input === 'number')
113
+ result.inputTokens = usage.input;
114
+ if (typeof usage.output === 'number')
115
+ result.outputTokens = usage.output;
116
+ }
117
+ return Object.keys(result).length > 0 ? result : null;
118
+ }
57
119
  /** Pure JSON-event parser — exported for unit testing against fixture lines
58
120
  * (pi-runner.test.ts). */
59
121
  export function parsePiEvents(lines) {
@@ -61,29 +123,15 @@ export function parsePiEvents(lines) {
61
123
  let inputTokens = 0;
62
124
  let outputTokens = 0;
63
125
  for (const line of lines) {
64
- const trimmed = line.trim();
65
- if (!trimmed?.startsWith('{'))
66
- continue;
67
- let ev;
68
- try {
69
- ev = JSON.parse(trimmed);
70
- }
71
- catch {
126
+ const parsed = parsePiLine(line);
127
+ if (!parsed)
72
128
  continue;
73
- }
74
- if (ev.type === 'message_end' && ev.message?.content) {
75
- const text = ev.message.content
76
- .filter((b) => b.type === 'text' && typeof b.text === 'string')
77
- .map((b) => b.text)
78
- .join('\n');
79
- if (text)
80
- rawTexts.push(text);
81
- }
82
- const usage = ev.message?.usage ?? ev.usage;
83
- if (usage && (typeof usage.input === 'number' || typeof usage.output === 'number')) {
84
- inputTokens = usage.input ?? inputTokens;
85
- outputTokens = usage.output ?? outputTokens;
86
- }
129
+ if (parsed.assistantText)
130
+ rawTexts.push(parsed.assistantText);
131
+ if (typeof parsed.inputTokens === 'number')
132
+ inputTokens = parsed.inputTokens;
133
+ if (typeof parsed.outputTokens === 'number')
134
+ outputTokens = parsed.outputTokens;
87
135
  }
88
136
  const texts = rawTexts.map((t) => t.replace(TOOL_CALL_RE, '').trim());
89
137
  return { texts, rawTexts, inputTokens, outputTokens };
@@ -109,7 +157,38 @@ export class PiAgentRunner {
109
157
  let turnInputTokens = 0;
110
158
  let turnOutputTokens = 0;
111
159
  for (let round = 0; round <= MAX_TOOL_ROUNDS; round++) {
112
- const outcome = await this.runTurn(bin, nextPrompt, sessionDir, args);
160
+ // Filled in by streamTurn as the subprocess runs and when it exits.
161
+ const outcome = {
162
+ exitCode: 1,
163
+ stderrTail: '',
164
+ timedOut: false,
165
+ hangSuspected: false,
166
+ inputTokens: 0,
167
+ outputTokens: 0,
168
+ };
169
+ // Raw assistant texts (fences intact) for end-of-turn tool-call
170
+ // parsing — fence parsing needs the complete text, so fences are
171
+ // collected here while the stripped prose streams out live below.
172
+ const rawTexts = [];
173
+ for await (const ev of this.streamTurn(bin, nextPrompt, sessionDir, args, outcome)) {
174
+ if (ev.kind === 'assistant' && ev.rawText !== undefined) {
175
+ rawTexts.push(ev.rawText);
176
+ // Yield assistant prose AS IT ARRIVES (per message_end event,
177
+ // not after process exit): a pi turn can run many minutes, and
178
+ // session.ts's watchdog must see messages DURING the turn.
179
+ // Note this means partial output may already be yielded when a
180
+ // turn later exits non-zero — preferable to losing it entirely.
181
+ if (ev.text)
182
+ yield { type: 'assistant', text: ev.text };
183
+ }
184
+ else if (ev.kind === 'tool') {
185
+ // Liveness for pi's own tool activity (or the spawn-time
186
+ // yield): session.ts never renders tool_use as chat — it only
187
+ // feeds the StateDetector ('tool-call' state) and refreshes
188
+ // last-activity.
189
+ yield { type: 'tool_use', text: ev.toolName };
190
+ }
191
+ }
113
192
  if (outcome.hangSuspected) {
114
193
  throw new Error(`PiAgentRunner: pi produced no output within ${STARTUP_GRACE_MS / 1000}s and was killed. ` +
115
194
  "This usually means it is stuck on a prompt headless mode has no way to answer — pi's own " +
@@ -117,20 +196,12 @@ export class PiAgentRunner {
117
196
  `manually in a real terminal in this project to check, then retry.${outcome.stderrTail ? `\nstderr: ${outcome.stderrTail.slice(-500)}` : ''}`);
118
197
  }
119
198
  if (outcome.exitCode !== 0) {
120
- throw new Error(`PiAgentRunner: pi failed (exit ${outcome.exitCode})` +
121
- (outcome.timedOut
122
- ? ` — killed after exceeding the ${TURN_TIMEOUT_MS / 3_600_000}h turn timeout`
123
- : '') +
124
- (outcome.stderrTail ? `\nstderr: ${outcome.stderrTail.slice(-500)}` : ''));
125
- }
126
- for (const t of outcome.texts) {
127
- if (t.trim())
128
- yield { type: 'assistant', text: t };
199
+ throw turnError(outcome, round);
129
200
  }
130
201
  turnInputTokens += outcome.inputTokens;
131
202
  turnOutputTokens += outcome.outputTokens;
132
203
  const malformed = [];
133
- const calls = parseToolCalls(outcome.rawTexts, (raw, err) => malformed.push(`[monomind] ignored malformed tool_call fence (${err}): ${raw.slice(0, 200)}`));
204
+ const calls = parseToolCalls(rawTexts, (raw, err) => malformed.push(`[monomind] ignored malformed tool_call fence (${err}): ${raw.slice(0, 200)}`));
134
205
  for (const note of malformed)
135
206
  yield { type: 'assistant', text: note };
136
207
  if (calls.length === 0)
@@ -164,129 +235,177 @@ export class PiAgentRunner {
164
235
  throw err;
165
236
  }
166
237
  }
167
- runTurn(bin, prompt, sessionDir, args) {
168
- return new Promise((resolve, reject) => {
169
- // Prompt is positional (see file header) — always LAST so no later flag
170
- // is mistaken for part of it. NOTE ⓥ: `--approve` does not exist in the
171
- // installed pi CLI (0.73.1) — confirmed live via `pi --help`, which
172
- // lists no approve/trust/yolo flag at all; passing it made every turn
173
- // fail immediately with "Unknown option: --approve" before pi ever ran.
174
- // `--mode json` alone (no `--print`) was verified NOT to block on an
175
- // interactive trust prompt, matching this file's original assumption —
176
- // removing `--approve` was the only fix needed.
177
- const cliArgs = ['--mode', 'json', '--session-dir', sessionDir];
178
- if (args.model)
179
- cliArgs.push('--model', args.model);
180
- cliArgs.push(prompt);
181
- const child = spawn(bin, cliArgs, {
182
- cwd: args.cwd,
183
- // PI_TELEMETRY/PI_SKIP_VERSION_CHECK: confirmed via pi's own docs —
184
- // suppresses install/update telemetry and version-check network calls
185
- // that otherwise add latency/flakiness to every headless turn.
186
- env: { ...process.env, PI_TELEMETRY: '0', PI_SKIP_VERSION_CHECK: '1', ...args.env },
187
- stdio: ['ignore', 'pipe', 'pipe'],
188
- });
189
- let stderrTail = '';
190
- child.stderr?.on('data', (c) => {
191
- stderrTail = (stderrTail + c.toString()).slice(-4000);
192
- });
193
- let sawOutput = false;
194
- let timedOut = false;
195
- let hangSuspected = false;
196
- const KILL_GRACE_MS = 5000;
197
- let killTimer;
198
- const timer = setTimeout(() => {
199
- timedOut = true;
200
- child.kill('SIGTERM');
201
- killTimer = setTimeout(() => {
202
- try {
203
- child.kill('SIGKILL');
204
- }
205
- catch {
206
- /* already gone */
207
- }
208
- }, KILL_GRACE_MS);
209
- killTimer.unref?.();
210
- }, TURN_TIMEOUT_MS);
211
- // See STARTUP_GRACE_MS — disarmed by the first stdout chunk below.
212
- let hangTimer = setTimeout(() => {
213
- hangSuspected = true;
238
+ /**
239
+ * Run one `pi` invocation and stream its `--mode json` output
240
+ * INCREMENTALLY: each parsed event is yielded as soon as its line arrives
241
+ * on stdout (see the header's "Streaming / liveness" note for why
242
+ * buffering until process exit was a bug, #204). End-of-turn facts (exit
243
+ * code, stderr tail, usage, timeout/hang flags) are written into
244
+ * `outcome`, which the caller reads after this generator completes.
245
+ */
246
+ async *streamTurn(bin, prompt, sessionDir, args, outcome) {
247
+ // Prompt is positional (see file header) — always LAST so no later flag
248
+ // is mistaken for part of it. NOTE ⓥ: `--approve` does not exist in the
249
+ // installed pi CLI (0.73.1) — confirmed live via `pi --help`, which
250
+ // lists no approve/trust/yolo flag at all; passing it made every turn
251
+ // fail immediately with "Unknown option: --approve" before pi ever ran.
252
+ // `--mode json` alone (no `--print`) was verified NOT to block on an
253
+ // interactive trust prompt, matching this file's original assumption —
254
+ // removing `--approve` was the only fix needed.
255
+ const cliArgs = ['--mode', 'json', '--session-dir', sessionDir];
256
+ if (args.model)
257
+ cliArgs.push('--model', args.model);
258
+ cliArgs.push(prompt);
259
+ const child = spawn(bin, cliArgs, {
260
+ cwd: args.cwd,
261
+ // PI_TELEMETRY/PI_SKIP_VERSION_CHECK: confirmed via pi's own docs —
262
+ // suppresses install/update telemetry and version-check network calls
263
+ // that otherwise add latency/flakiness to every headless turn.
264
+ env: { ...process.env, PI_TELEMETRY: '0', PI_SKIP_VERSION_CHECK: '1', ...args.env },
265
+ stdio: ['ignore', 'pipe', 'pipe'],
266
+ });
267
+ let stderrTail = '';
268
+ child.stderr?.on('data', (c) => {
269
+ stderrTail = (stderrTail + c.toString()).slice(-4000);
270
+ });
271
+ // Arm the turn timeout BEFORE consuming stdout — a hung CLI must be
272
+ // killed while we're still reading, not after it finishes.
273
+ let timedOut = false;
274
+ let hangSuspected = false;
275
+ // SIGTERM→SIGKILL escalation, shared by the turn timeout, the startup
276
+ // hang check, the abort signal, and the abandoned-stream path in
277
+ // `finally` — a CLI that ignores SIGTERM must not leak a zombie per turn.
278
+ const KILL_GRACE_MS = 5000;
279
+ let killTimer;
280
+ const killChild = () => {
281
+ try {
214
282
  child.kill('SIGTERM');
215
- killTimer = setTimeout(() => {
216
- try {
217
- child.kill('SIGKILL');
218
- }
219
- catch {
220
- /* already gone */
221
- }
222
- }, KILL_GRACE_MS);
223
- killTimer.unref?.();
224
- }, STARTUP_GRACE_MS);
225
- const exitPromise = new Promise((res, rej) => {
226
- child.on('error', rej);
227
- child.on('close', (code) => res(code ?? 1));
228
- });
229
- exitPromise.catch(() => { });
230
- const readLines = (async () => {
231
- const lines = [];
232
- let buf = '';
233
- for await (const chunk of child.stdout) {
234
- if (!sawOutput) {
235
- sawOutput = true;
236
- if (hangTimer) {
237
- clearTimeout(hangTimer);
238
- hangTimer = undefined;
239
- }
240
- }
241
- buf += chunk.toString();
242
- const parts = buf.split('\n');
243
- buf = parts.pop() ?? '';
244
- lines.push(...parts);
245
- }
246
- if (buf.trim())
247
- lines.push(buf);
248
- return lines;
249
- })();
250
- // Timer cleanup lives in a top-level .finally() (not nested inside a
251
- // success-path .then()) so it runs on EITHER path — a stdout stream
252
- // error would otherwise skip straight to reject() and leave the
253
- // TURN_TIMEOUT_MS/hangTimer/killTimer timers running past the
254
- // process's actual lifetime.
255
- Promise.all([readLines, exitPromise])
256
- .then(([lines, exitCode]) => {
257
- const parsed = parsePiEvents(lines);
258
- resolve({
259
- texts: parsed.texts,
260
- rawTexts: parsed.rawTexts,
261
- exitCode,
262
- stderrTail,
263
- timedOut,
264
- hangSuspected,
265
- inputTokens: parsed.inputTokens,
266
- outputTokens: parsed.outputTokens,
267
- });
268
- }, (err) => {
269
- // A stdout stream error (the reject path) means the process is
270
- // still ALIVE and unmanaged — none of the timeout/hang timers
271
- // would have fired to kill it. Without this, that error would
272
- // orphan the child. child.kill() on an already-dead process is a
273
- // documented no-op, so this is safe on every path.
283
+ }
284
+ catch {
285
+ /* already gone */
286
+ }
287
+ killTimer = setTimeout(() => {
274
288
  try {
275
- child.kill('SIGTERM');
289
+ child.kill('SIGKILL');
276
290
  }
277
291
  catch {
278
292
  /* already gone */
279
293
  }
280
- reject(err);
281
- })
282
- .finally(() => {
283
- clearTimeout(timer);
284
- if (hangTimer)
285
- clearTimeout(hangTimer);
286
- if (killTimer)
287
- clearTimeout(killTimer);
288
- });
294
+ }, KILL_GRACE_MS);
295
+ killTimer.unref?.();
296
+ };
297
+ const timer = setTimeout(() => {
298
+ timedOut = true;
299
+ killChild();
300
+ }, TURN_TIMEOUT_MS);
301
+ // See STARTUP_GRACE_MS — disarmed by the first stdout chunk below.
302
+ let hangTimer = setTimeout(() => {
303
+ hangSuspected = true;
304
+ killChild();
305
+ }, STARTUP_GRACE_MS);
306
+ // Abort hook (see AgentRunArgs.signal): kill the child so the stdout
307
+ // loop below unblocks instead of orphaning it on iterator.return().
308
+ const unsubscribeAbort = killOnAbort(args.signal, child, KILL_GRACE_MS);
309
+ // Attach the exit promise BEFORE consuming stdout: on a spawn failure
310
+ // (ENOENT, bad binary) the 'error' event fires almost immediately —
311
+ // if no listener is attached yet it escapes as an unhandled 'error'
312
+ // event and crashes the process instead of reaching our catch block.
313
+ const exitPromise = new Promise((res, rej) => {
314
+ child.on('error', rej);
315
+ child.on('close', (code) => res(code ?? 1));
289
316
  });
317
+ // Prevent an unhandled-rejection crash if the stdout loop below throws
318
+ // before we await exitPromise (the await still sees the rejection).
319
+ exitPromise.catch(() => { });
320
+ // Emit one parsed line as a PiStreamEvent (if any) and fold its usage
321
+ // figures into `outcome` as a side effect — shared by the main stdout
322
+ // loop and the final partial-line flush below.
323
+ function* emit(line) {
324
+ const parsed = parsePiLine(line);
325
+ if (!parsed)
326
+ return;
327
+ if (typeof parsed.inputTokens === 'number')
328
+ outcome.inputTokens = parsed.inputTokens;
329
+ if (typeof parsed.outputTokens === 'number')
330
+ outcome.outputTokens = parsed.outputTokens;
331
+ if (parsed.assistantText) {
332
+ const stripped = parsed.assistantText.replace(TOOL_CALL_RE, '').trim();
333
+ yield { kind: 'assistant', rawText: parsed.assistantText, text: stripped || undefined };
334
+ }
335
+ else if (parsed.toolName) {
336
+ yield { kind: 'tool', toolName: parsed.toolName };
337
+ }
338
+ }
339
+ try {
340
+ // Immediate liveness yield: session.ts races the FIRST pull against a
341
+ // 4-minute silent-stream watchdog, and pi's first event can itself
342
+ // take minutes (long thinking chains, large file reads). Yielding at
343
+ // spawn wins that race deterministically instead of depending on
344
+ // pi's latency.
345
+ yield { kind: 'tool', toolName: 'turn started' };
346
+ let buf = '';
347
+ for await (const chunk of child.stdout) {
348
+ if (hangTimer) {
349
+ clearTimeout(hangTimer);
350
+ hangTimer = undefined;
351
+ }
352
+ buf += chunk.toString();
353
+ const parts = buf.split('\n');
354
+ buf = parts.pop() ?? '';
355
+ for (const line of parts) {
356
+ yield* emit(line);
357
+ }
358
+ }
359
+ if (buf.trim())
360
+ yield* emit(buf);
361
+ }
362
+ finally {
363
+ clearTimeout(timer);
364
+ if (hangTimer)
365
+ clearTimeout(hangTimer);
366
+ unsubscribeAbort();
367
+ if (child.exitCode === null && child.signalCode === null) {
368
+ // NOT confirmed dead. Either the consumer abandoned this stream
369
+ // mid-turn (session.ts's silent abort calls iterator.return(), the
370
+ // mailbox closes, or an error is thrown downstream) — kill it, WITH
371
+ // the SIGKILL escalation — or a SIGTERM from the timeout/hang/abort
372
+ // is still inside its grace period: leave that escalation armed,
373
+ // since clearing it here would orphan a CLI that ignores SIGTERM and
374
+ // then wait on `exitPromise` forever (same fix as codex/kimi/pi-rpc).
375
+ if (!child.killed)
376
+ killChild();
377
+ }
378
+ else if (killTimer) {
379
+ clearTimeout(killTimer);
380
+ }
381
+ }
382
+ const exitCode = await exitPromise;
383
+ if (killTimer)
384
+ clearTimeout(killTimer);
385
+ outcome.exitCode = exitCode;
386
+ outcome.stderrTail = stderrTail;
387
+ outcome.timedOut = timedOut;
388
+ outcome.hangSuspected = hangSuspected;
389
+ }
390
+ }
391
+ /** Build the actionable error for a failed pi turn. */
392
+ function turnError(outcome, round) {
393
+ if (outcome.timedOut) {
394
+ return new Error(`PiAgentRunner: pi turn (tool round ${round}) exceeded the ${TURN_TIMEOUT_MS / 3_600_000}h turn timeout ` +
395
+ `and was killed.${outcome.stderrTail ? ` stderr: ${outcome.stderrTail.slice(-500)}` : ''}`);
396
+ }
397
+ // Fatal provider errors (auth/permission/quota — classified from stderr):
398
+ // report what actually happened, and tag the error so the daemon does NOT
399
+ // restart into the same guaranteed failure (a restart on quota exhaustion
400
+ // can only hang or fail again).
401
+ const cls = classifyStderr(outcome.stderrTail);
402
+ if (cls.fatal) {
403
+ const err = new Error(`PiAgentRunner: FATAL provider error (${cls.label}) on turn ${round} — not retrying.` +
404
+ (outcome.stderrTail ? ` stderr: ${outcome.stderrTail.slice(-500)}` : ''));
405
+ err.fatal = true;
406
+ return err;
290
407
  }
408
+ return new Error(`PiAgentRunner: pi failed (exit ${outcome.exitCode})` +
409
+ (outcome.stderrTail ? `\nstderr: ${outcome.stderrTail.slice(-500)}` : ''));
291
410
  }
292
411
  //# sourceMappingURL=pi-runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi-runner.js","sourceRoot":"","sources":["../../../src/orgrt/pi-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi-runner.js","sourceRoot":"","sources":["../../../src/orgrt/pi-runner.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAIL,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C;;;;6EAI6E;AAC7E,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAiChC;4EAC4E;AAC5E,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,EAAW,CAAC;IAChB,IAAI,CAAC;QACH,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAc,CAAC;aAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,IAAI;YAAE,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;IACxC,CAAC;SAAM,IAAI,EAAE,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;QAC9C,mEAAmE;QACnE,uEAAuE;QACvE,+DAA+D;QAC/D,MAAM,CAAC,QAAQ,GAAG,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC;IAC5C,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;QACnF,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAAE,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QACtE,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAAE,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3E,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;2BAC2B;AAC3B,MAAM,UAAU,aAAa,CAAC,KAAe;IAM3C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,IAAI,MAAM,CAAC,aAAa;YAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;YAAE,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC7E,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;YAAE,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAClF,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACxD,CAAC;AA6BD,MAAM,OAAO,aAAa;IACJ,KAAK;IAAzB,YAAoB,KAAc;qBAAd,KAAK;IAAY,CAAC;IAEtC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAkB;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC;QACzD,iEAAiE;QACjE,iDAAiD;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAClF,IAAI,UAAU,GAAG,KAAK;oBACpB,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE;oBAC1E,CAAC,CAAC,IAAI,CAAC;gBACT,KAAK,GAAG,KAAK,CAAC;gBACd,IAAI,eAAe,GAAG,CAAC,CAAC;gBACxB,IAAI,gBAAgB,GAAG,CAAC,CAAC;gBAEzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,eAAe,EAAE,KAAK,EAAE,EAAE,CAAC;oBACtD,oEAAoE;oBACpE,MAAM,OAAO,GAAgB;wBAC3B,QAAQ,EAAE,CAAC;wBACX,UAAU,EAAE,EAAE;wBACd,QAAQ,EAAE,KAAK;wBACf,aAAa,EAAE,KAAK;wBACpB,WAAW,EAAE,CAAC;wBACd,YAAY,EAAE,CAAC;qBAChB,CAAC;oBACF,gEAAgE;oBAChE,iEAAiE;oBACjE,kEAAkE;oBAClE,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAE9B,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;wBACnF,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,IAAI,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;4BACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;4BAC1B,8DAA8D;4BAC9D,+DAA+D;4BAC/D,2DAA2D;4BAC3D,+DAA+D;4BAC/D,gEAAgE;4BAChE,IAAI,EAAE,CAAC,IAAI;gCAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;wBAC1D,CAAC;6BAAM,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BAC9B,yDAAyD;4BACzD,8DAA8D;4BAC9D,4DAA4D;4BAC5D,iBAAiB;4BACjB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;wBAChD,CAAC;oBACH,CAAC;oBAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;wBAC1B,MAAM,IAAI,KAAK,CACb,+CAA+C,gBAAgB,GAAG,IAAI,oBAAoB;4BACxF,2FAA2F;4BAC3F,4FAA4F;4BAC5F,oEAAoE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAChJ,CAAC;oBACJ,CAAC;oBACD,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;wBAC3B,MAAM,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAClC,CAAC;oBAED,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC;oBACvC,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC;oBAEzC,MAAM,SAAS,GAAa,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAClD,SAAS,CAAC,IAAI,CACZ,iDAAiD,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC9E,CACF,CAAC;oBACF,KAAK,MAAM,IAAI,IAAI,SAAS;wBAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;oBACtE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;wBAAE,MAAM;oBAE9B,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;wBAC9B,MAAM;4BACJ,IAAI,EAAE,WAAW;4BACjB,IAAI,EAAE,mCAAmC,eAAe,wBAAwB,KAAK,CAAC,MAAM,uBAAuB;yBACpH,CAAC;wBACF,MAAM;oBACR,CAAC;oBAED,MAAM,OAAO,GAAa,EAAE,CAAC;oBAC7B,KAAK,MAAM,IAAI,IAAI,KAAK;wBACtB,OAAO,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBACzE,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACjD,CAAC;gBAED,MAAM;oBACJ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,SAAS;oBAClB,YAAY,EAAE,eAAe;oBAC7B,aAAa,EAAE,gBAAgB;iBAChC,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,MAAM,IAAI,KAAK,CACb,+DAA+D;oBAC7D,6EAA6E;oBAC7E,+CAA+C,CAClD,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,CAAC,UAAU,CACvB,GAAW,EACX,MAAc,EACd,UAAkB,EAClB,IAAkB,EAClB,OAAoB;QAEpB,wEAAwE;QACxE,wEAAwE;QACxE,oEAAoE;QACpE,sEAAsE;QACtE,wEAAwE;QACxE,qEAAqE;QACrE,uEAAuE;QACvE,gDAAgD;QAChD,MAAM,OAAO,GAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE;YAChC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,oEAAoE;YACpE,sEAAsE;YACtE,+DAA+D;YAC/D,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;YACnF,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YACrC,UAAU,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,oEAAoE;QACpE,2DAA2D;QAC3D,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,sEAAsE;QACtE,iEAAiE;QACjE,0EAA0E;QAC1E,MAAM,aAAa,GAAG,IAAI,CAAC;QAC3B,IAAI,SAAoD,CAAC;QACzD,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB;YACpB,CAAC;YACD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,IAAI,CAAC;oBACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACP,kBAAkB;gBACpB,CAAC;YACH,CAAC,EAAE,aAAa,CAAC,CAAC;YAClB,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QACtB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS,EAAE,CAAC;QACd,CAAC,EAAE,eAAe,CAAC,CAAC;QAEpB,mEAAmE;QACnE,IAAI,SAAS,GAA8C,UAAU,CAAC,GAAG,EAAE;YACzE,aAAa,GAAG,IAAI,CAAC;YACrB,SAAS,EAAE,CAAC;QACd,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACrB,qEAAqE;QACrE,oEAAoE;QACpE,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAExE,sEAAsE;QACtE,oEAAoE;QACpE,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,WAAW,GAAG,IAAI,OAAO,CAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACnD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACvB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,uEAAuE;QACvE,oEAAoE;QACpE,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE5B,sEAAsE;QACtE,sEAAsE;QACtE,+CAA+C;QAC/C,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAY;YACzB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;gBAAE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YACrF,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;gBAAE,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;YACxF,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC1F,CAAC;iBAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC3B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpD,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,sEAAsE;YACtE,mEAAmE;YACnE,qEAAqE;YACrE,iEAAiE;YACjE,gBAAgB;YAChB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;YAEjD,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,MAA+B,EAAE,CAAC;gBAChE,IAAI,SAAS,EAAE,CAAC;oBACd,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,SAAS,GAAG,SAAS,CAAC;gBACxB,CAAC;gBACD,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9B,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,EAAE;gBAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACvC,gBAAgB,EAAE,CAAC;YACnB,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBACzD,gEAAgE;gBAChE,mEAAmE;gBACnE,oEAAoE;gBACpE,oEAAoE;gBACpE,iEAAiE;gBACjE,qEAAqE;gBACrE,sEAAsE;gBACtE,IAAI,CAAC,KAAK,CAAC,MAAM;oBAAE,SAAS,EAAE,CAAC;YACjC,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC;QACnC,IAAI,SAAS;YAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC5B,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;QAChC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC5B,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;IACxC,CAAC;CACF;AAED,uDAAuD;AACvD,SAAS,SAAS,CAAC,OAAoB,EAAE,KAAa;IACpD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,IAAI,KAAK,CACd,sCAAsC,KAAK,kBAAkB,eAAe,GAAG,SAAS,iBAAiB;YACvG,kBAAkB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7F,CAAC;IACJ,CAAC;IACD,0EAA0E;IAC1E,0EAA0E;IAC1E,0EAA0E;IAC1E,gCAAgC;IAChC,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,wCAAwC,GAAG,CAAC,KAAK,aAAa,KAAK,kBAAkB;YACnF,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3E,CAAC;QACD,GAAmC,CAAC,KAAK,GAAG,IAAI,CAAC;QAClD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,IAAI,KAAK,CACd,kCAAkC,OAAO,CAAC,QAAQ,GAAG;QACnD,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5E,CAAC;AACJ,CAAC"}
@@ -7,6 +7,7 @@ export type Decision = {
7
7
  behavior: 'deny';
8
8
  message: string;
9
9
  };
10
+ export declare function redactSecrets(text: string): string;
10
11
  /**
11
12
  * tiny glob→RegExp: `**\/` matches zero-or-more leading directories (so
12
13
  * `**\/*.md` matches both `README.md` and `docs/README.md`, standard glob
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/orgrt/policy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,QAAQ,GAChB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC5D;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAgB1C;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA6BjD;AAED,qBAAa,YAAY;IAKrB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,UAAU;IAC3B,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,GAAG;IAPb,OAAO,CAAC,IAAI,CAAK;IACjB,0EAA0E;IAC1E,OAAO,CAAC,OAAO,CAAK;IACpB,YACW,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACjB;IAEJ,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE7B;IACD,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE7B;IACD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,gFAAgF;IAChF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjC;IACD,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,gFAAgF;IAChF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjC;IACD;;wEAEoE;IACpE,IAAI,aAAa,IAAI,OAAO,CAE3B;IAEK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAoH5E;CACF;AAED;;2EAE2E;AAC3E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOvE"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/orgrt/policy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,QAAQ,GAChB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC5D;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAgD1C,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlD;AAID;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA6BjD;AAED,qBAAa,YAAY;IAKrB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,UAAU;IAC3B,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,GAAG;IAPb,OAAO,CAAC,IAAI,CAAK;IACjB,0EAA0E;IAC1E,OAAO,CAAC,OAAO,CAAK;IACpB,YACW,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACjB;IAEJ,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE7B;IACD,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE7B;IACD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,gFAAgF;IAChF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjC;IACD,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,gFAAgF;IAChF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjC;IACD;;wEAEoE;IACpE,IAAI,aAAa,IAAI,OAAO,CAE3B;IAEK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuH5E;CACF;AAED;;2EAE2E;AAC3E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOvE"}