poly-weaver 0.8.0 → 0.8.2

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 (270) hide show
  1. package/README.md +7 -64
  2. package/dist/agents/errors.d.ts +20 -0
  3. package/dist/agents/errors.d.ts.map +1 -0
  4. package/dist/agents/errors.js +26 -0
  5. package/dist/agents/errors.js.map +1 -0
  6. package/dist/agents/implementors/handler.d.ts.map +1 -1
  7. package/dist/agents/implementors/handler.js +3 -1
  8. package/dist/agents/implementors/handler.js.map +1 -1
  9. package/dist/agents/implementors/index.d.ts.map +1 -1
  10. package/dist/agents/implementors/index.js +3 -9
  11. package/dist/agents/implementors/index.js.map +1 -1
  12. package/dist/agents/implementors/prompts.d.ts +4 -9
  13. package/dist/agents/implementors/prompts.d.ts.map +1 -1
  14. package/dist/agents/implementors/prompts.js +10 -16
  15. package/dist/agents/implementors/prompts.js.map +1 -1
  16. package/dist/agents/index.d.ts +2 -0
  17. package/dist/agents/index.d.ts.map +1 -1
  18. package/dist/agents/index.js +4 -0
  19. package/dist/agents/index.js.map +1 -1
  20. package/dist/agents/interviewers/adapter.d.ts +17 -0
  21. package/dist/agents/interviewers/adapter.d.ts.map +1 -0
  22. package/dist/agents/interviewers/adapter.js +111 -0
  23. package/dist/agents/interviewers/adapter.js.map +1 -0
  24. package/dist/agents/interviewers/dsl.d.ts +13 -0
  25. package/dist/agents/interviewers/dsl.d.ts.map +1 -0
  26. package/dist/agents/interviewers/dsl.js +14 -0
  27. package/dist/agents/interviewers/dsl.js.map +1 -0
  28. package/dist/agents/interviewers/handler.d.ts +21 -0
  29. package/dist/agents/interviewers/handler.d.ts.map +1 -0
  30. package/dist/agents/interviewers/handler.js +217 -0
  31. package/dist/agents/interviewers/handler.js.map +1 -0
  32. package/dist/agents/interviewers/index.d.ts +11 -0
  33. package/dist/agents/interviewers/index.d.ts.map +1 -0
  34. package/dist/agents/interviewers/index.js +16 -0
  35. package/dist/agents/interviewers/index.js.map +1 -0
  36. package/dist/agents/interviewers/prompts.d.ts +3 -0
  37. package/dist/agents/interviewers/prompts.d.ts.map +1 -0
  38. package/dist/agents/interviewers/prompts.js +73 -0
  39. package/dist/agents/interviewers/prompts.js.map +1 -0
  40. package/dist/agents/interviewers/types.d.ts +53 -0
  41. package/dist/agents/interviewers/types.d.ts.map +1 -0
  42. package/dist/agents/interviewers/types.js +2 -0
  43. package/dist/agents/interviewers/types.js.map +1 -0
  44. package/dist/agents/planners/dsl.d.ts +5 -1
  45. package/dist/agents/planners/dsl.d.ts.map +1 -1
  46. package/dist/agents/planners/handler.d.ts.map +1 -1
  47. package/dist/agents/planners/handler.js +45 -25
  48. package/dist/agents/planners/handler.js.map +1 -1
  49. package/dist/agents/planners/index.d.ts.map +1 -1
  50. package/dist/agents/planners/index.js +3 -9
  51. package/dist/agents/planners/index.js.map +1 -1
  52. package/dist/agents/planners/prompts.d.ts +5 -11
  53. package/dist/agents/planners/prompts.d.ts.map +1 -1
  54. package/dist/agents/planners/prompts.js +15 -22
  55. package/dist/agents/planners/prompts.js.map +1 -1
  56. package/dist/agents/registry.d.ts +0 -1
  57. package/dist/agents/registry.d.ts.map +1 -1
  58. package/dist/agents/registry.js.map +1 -1
  59. package/dist/agents/reviewers/adapter.d.ts +1 -1
  60. package/dist/agents/reviewers/adapter.d.ts.map +1 -1
  61. package/dist/agents/reviewers/adapter.js +2 -2
  62. package/dist/agents/reviewers/adapter.js.map +1 -1
  63. package/dist/agents/reviewers/dsl.d.ts +6 -1
  64. package/dist/agents/reviewers/dsl.d.ts.map +1 -1
  65. package/dist/agents/reviewers/dsl.js.map +1 -1
  66. package/dist/agents/reviewers/handler.d.ts.map +1 -1
  67. package/dist/agents/reviewers/handler.js +22 -5
  68. package/dist/agents/reviewers/handler.js.map +1 -1
  69. package/dist/agents/reviewers/index.d.ts.map +1 -1
  70. package/dist/agents/reviewers/index.js +6 -8
  71. package/dist/agents/reviewers/index.js.map +1 -1
  72. package/dist/agents/reviewers/prompts.d.ts +5 -11
  73. package/dist/agents/reviewers/prompts.d.ts.map +1 -1
  74. package/dist/agents/reviewers/prompts.js +13 -19
  75. package/dist/agents/reviewers/prompts.js.map +1 -1
  76. package/dist/agents/reviewers/types.d.ts +4 -2
  77. package/dist/agents/reviewers/types.d.ts.map +1 -1
  78. package/dist/agents/reviewers/types.js.map +1 -1
  79. package/dist/agents/runner.d.ts +46 -0
  80. package/dist/agents/runner.d.ts.map +1 -1
  81. package/dist/agents/runner.js +192 -20
  82. package/dist/agents/runner.js.map +1 -1
  83. package/dist/agents/simplifiers/handler.d.ts.map +1 -1
  84. package/dist/agents/simplifiers/handler.js +3 -1
  85. package/dist/agents/simplifiers/handler.js.map +1 -1
  86. package/dist/ansi.d.ts +14 -0
  87. package/dist/ansi.d.ts.map +1 -1
  88. package/dist/ansi.js +15 -0
  89. package/dist/ansi.js.map +1 -1
  90. package/dist/cli.js +85 -186
  91. package/dist/cli.js.map +1 -1
  92. package/dist/config.d.ts +3 -6
  93. package/dist/config.d.ts.map +1 -1
  94. package/dist/config.js +3 -5
  95. package/dist/config.js.map +1 -1
  96. package/dist/dsl.d.ts +3 -0
  97. package/dist/dsl.d.ts.map +1 -1
  98. package/dist/dsl.js +4 -3
  99. package/dist/dsl.js.map +1 -1
  100. package/dist/dump/collector.d.ts.map +1 -1
  101. package/dist/dump/collector.js +32 -0
  102. package/dist/dump/collector.js.map +1 -1
  103. package/dist/dump/pty-tail-buffer.d.ts +25 -0
  104. package/dist/dump/pty-tail-buffer.d.ts.map +1 -0
  105. package/dist/dump/pty-tail-buffer.js +48 -0
  106. package/dist/dump/pty-tail-buffer.js.map +1 -0
  107. package/dist/dump/service.d.ts.map +1 -1
  108. package/dist/dump/service.js +3 -0
  109. package/dist/dump/service.js.map +1 -1
  110. package/dist/dump/types.d.ts +46 -0
  111. package/dist/dump/types.d.ts.map +1 -1
  112. package/dist/dump/types.js.map +1 -1
  113. package/dist/flow/built-in/default-factory.d.ts.map +1 -1
  114. package/dist/flow/built-in/default-factory.js +60 -64
  115. package/dist/flow/built-in/default-factory.js.map +1 -1
  116. package/dist/flow/built-in/default.d.ts +1 -1
  117. package/dist/flow/built-in/default.d.ts.map +1 -1
  118. package/dist/flow/built-in/default.js +1 -1
  119. package/dist/flow/built-in/default.js.map +1 -1
  120. package/dist/flow/built-in/default.ts +2 -2
  121. package/dist/flow/custom/AUTHORING.md +54 -54
  122. package/dist/flow/custom/load.d.ts.map +1 -1
  123. package/dist/flow/custom/load.js +0 -1
  124. package/dist/flow/custom/load.js.map +1 -1
  125. package/dist/flow/dsl.d.ts +2 -0
  126. package/dist/flow/dsl.d.ts.map +1 -1
  127. package/dist/flow/dsl.js +2 -0
  128. package/dist/flow/dsl.js.map +1 -1
  129. package/dist/flow/executor.d.ts +2 -1
  130. package/dist/flow/executor.d.ts.map +1 -1
  131. package/dist/flow/executor.js +39 -15
  132. package/dist/flow/executor.js.map +1 -1
  133. package/dist/flow/index.d.ts +1 -2
  134. package/dist/flow/index.d.ts.map +1 -1
  135. package/dist/flow/index.js +1 -2
  136. package/dist/flow/index.js.map +1 -1
  137. package/dist/flow/types.d.ts +28 -2
  138. package/dist/flow/types.d.ts.map +1 -1
  139. package/dist/flow/types.js +6 -0
  140. package/dist/flow/types.js.map +1 -1
  141. package/dist/markdown.d.ts +5 -0
  142. package/dist/markdown.d.ts.map +1 -1
  143. package/dist/markdown.js +48 -1
  144. package/dist/markdown.js.map +1 -1
  145. package/dist/orchestrator.d.ts +15 -4
  146. package/dist/orchestrator.d.ts.map +1 -1
  147. package/dist/orchestrator.js +82 -23
  148. package/dist/orchestrator.js.map +1 -1
  149. package/dist/preflight.d.ts +11 -0
  150. package/dist/preflight.d.ts.map +1 -1
  151. package/dist/preflight.js +49 -16
  152. package/dist/preflight.js.map +1 -1
  153. package/dist/preview-panel.d.ts +11 -3
  154. package/dist/preview-panel.d.ts.map +1 -1
  155. package/dist/preview-panel.js +26 -2
  156. package/dist/preview-panel.js.map +1 -1
  157. package/dist/providers/base-completion.d.ts +23 -1
  158. package/dist/providers/base-completion.d.ts.map +1 -1
  159. package/dist/providers/base-completion.js +93 -4
  160. package/dist/providers/base-completion.js.map +1 -1
  161. package/dist/providers/claude/completion-plan-mode.d.ts +9 -1
  162. package/dist/providers/claude/completion-plan-mode.d.ts.map +1 -1
  163. package/dist/providers/claude/completion-plan-mode.js +54 -3
  164. package/dist/providers/claude/completion-plan-mode.js.map +1 -1
  165. package/dist/providers/claude/completion.d.ts +1 -1
  166. package/dist/providers/claude/completion.d.ts.map +1 -1
  167. package/dist/providers/claude/completion.js +2 -2
  168. package/dist/providers/claude/completion.js.map +1 -1
  169. package/dist/providers/claude/plan-mode-pty-monitor.d.ts +51 -0
  170. package/dist/providers/claude/plan-mode-pty-monitor.d.ts.map +1 -0
  171. package/dist/providers/claude/plan-mode-pty-monitor.js +97 -0
  172. package/dist/providers/claude/plan-mode-pty-monitor.js.map +1 -0
  173. package/dist/providers/claude/strategy.d.ts +2 -4
  174. package/dist/providers/claude/strategy.d.ts.map +1 -1
  175. package/dist/providers/claude/strategy.js +7 -2
  176. package/dist/providers/claude/strategy.js.map +1 -1
  177. package/dist/providers/codex/completion.d.ts +1 -1
  178. package/dist/providers/codex/completion.d.ts.map +1 -1
  179. package/dist/providers/codex/completion.js +2 -2
  180. package/dist/providers/codex/completion.js.map +1 -1
  181. package/dist/providers/codex/plan-mode-activator.d.ts +23 -0
  182. package/dist/providers/codex/plan-mode-activator.d.ts.map +1 -0
  183. package/dist/providers/codex/plan-mode-activator.js +207 -0
  184. package/dist/providers/codex/plan-mode-activator.js.map +1 -0
  185. package/dist/providers/codex/session.d.ts +1 -0
  186. package/dist/providers/codex/session.d.ts.map +1 -1
  187. package/dist/providers/codex/session.js +35 -18
  188. package/dist/providers/codex/session.js.map +1 -1
  189. package/dist/providers/codex/strategy.d.ts +3 -4
  190. package/dist/providers/codex/strategy.d.ts.map +1 -1
  191. package/dist/providers/codex/strategy.js +19 -15
  192. package/dist/providers/codex/strategy.js.map +1 -1
  193. package/dist/providers/copilot/completion.d.ts +1 -1
  194. package/dist/providers/copilot/completion.d.ts.map +1 -1
  195. package/dist/providers/copilot/completion.js +2 -2
  196. package/dist/providers/copilot/completion.js.map +1 -1
  197. package/dist/providers/copilot/session.d.ts.map +1 -1
  198. package/dist/providers/copilot/session.js +11 -20
  199. package/dist/providers/copilot/session.js.map +1 -1
  200. package/dist/providers/copilot/strategy.d.ts +2 -3
  201. package/dist/providers/copilot/strategy.d.ts.map +1 -1
  202. package/dist/providers/copilot/strategy.js +7 -3
  203. package/dist/providers/copilot/strategy.js.map +1 -1
  204. package/dist/providers/types.d.ts +82 -3
  205. package/dist/providers/types.d.ts.map +1 -1
  206. package/dist/providers/types.js.map +1 -1
  207. package/dist/providers/version.d.ts.map +1 -1
  208. package/dist/providers/version.js +6 -2
  209. package/dist/providers/version.js.map +1 -1
  210. package/dist/pty/exit.js +1 -1
  211. package/dist/pty/exit.js.map +1 -1
  212. package/dist/pty/spawn.d.ts +1 -0
  213. package/dist/pty/spawn.d.ts.map +1 -1
  214. package/dist/pty/spawn.js +13 -9
  215. package/dist/pty/spawn.js.map +1 -1
  216. package/dist/pty/types.d.ts +5 -1
  217. package/dist/pty/types.d.ts.map +1 -1
  218. package/dist/session/locator.d.ts +15 -0
  219. package/dist/session/locator.d.ts.map +1 -1
  220. package/dist/session/locator.js +46 -27
  221. package/dist/session/locator.js.map +1 -1
  222. package/dist/session/manifest.d.ts +12 -5
  223. package/dist/session/manifest.d.ts.map +1 -1
  224. package/dist/session/resume.d.ts.map +1 -1
  225. package/dist/session/resume.js +4 -2
  226. package/dist/session/resume.js.map +1 -1
  227. package/dist/startup-tui.d.ts +10 -5
  228. package/dist/startup-tui.d.ts.map +1 -1
  229. package/dist/startup-tui.js +60 -27
  230. package/dist/startup-tui.js.map +1 -1
  231. package/dist/user/curate-handler.d.ts.map +1 -1
  232. package/dist/user/curate-handler.js +25 -32
  233. package/dist/user/curate-handler.js.map +1 -1
  234. package/dist/user/curate-prompt.d.ts +1 -1
  235. package/dist/user/dsl.d.ts +1 -0
  236. package/dist/user/dsl.d.ts.map +1 -1
  237. package/dist/user/dsl.js +1 -0
  238. package/dist/user/dsl.js.map +1 -1
  239. package/dist/user/handler.d.ts.map +1 -1
  240. package/dist/user/handler.js +2 -1
  241. package/dist/user/handler.js.map +1 -1
  242. package/dist/user/host-curate-prompt.js +1 -1
  243. package/dist/user/host-curate-prompt.js.map +1 -1
  244. package/dist/user/host-prompt.js +2 -2
  245. package/dist/user/host-prompt.js.map +1 -1
  246. package/dist/user/index.d.ts +1 -2
  247. package/dist/user/index.d.ts.map +1 -1
  248. package/dist/user/index.js +1 -2
  249. package/dist/user/index.js.map +1 -1
  250. package/dist/user/plan-pane.d.ts +7 -1
  251. package/dist/user/plan-pane.d.ts.map +1 -1
  252. package/dist/user/plan-pane.js +16 -4
  253. package/dist/user/plan-pane.js.map +1 -1
  254. package/dist/user/prompt.d.ts +7 -6
  255. package/dist/user/prompt.d.ts.map +1 -1
  256. package/dist/user/prompt.js +0 -8
  257. package/dist/user/prompt.js.map +1 -1
  258. package/package.json +1 -1
  259. package/dist/flow/built-in/why-so-serious-factory.d.ts +0 -16
  260. package/dist/flow/built-in/why-so-serious-factory.d.ts.map +0 -1
  261. package/dist/flow/built-in/why-so-serious-factory.js +0 -187
  262. package/dist/flow/built-in/why-so-serious-factory.js.map +0 -1
  263. package/dist/flow/built-in/why-so-serious.d.ts +0 -17
  264. package/dist/flow/built-in/why-so-serious.d.ts.map +0 -1
  265. package/dist/flow/built-in/why-so-serious.js +0 -23
  266. package/dist/flow/built-in/why-so-serious.js.map +0 -1
  267. package/dist/user/auto-curate-prompt.d.ts +0 -17
  268. package/dist/user/auto-curate-prompt.d.ts.map +0 -1
  269. package/dist/user/auto-curate-prompt.js +0 -22
  270. package/dist/user/auto-curate-prompt.js.map +0 -1
@@ -1,6 +1,9 @@
1
1
  import type { ProviderStrategy } from "../providers/types.js";
2
2
  import type { OrchestrationOutput } from "../terminal/output.js";
3
3
  import type { TerminalHost } from "../terminal/host.js";
4
+ import { PtyTailBuffer } from "../dump/pty-tail-buffer.js";
5
+ import type { StepContext } from "../flow/types.js";
6
+ import type { AttemptFailureRecord } from "../dump/types.js";
4
7
  export interface RunRequest {
5
8
  /** The full prompt text to send to the agent. */
6
9
  prompt: string;
@@ -23,10 +26,29 @@ export interface RunRequest {
23
26
  freshFallbackPrompt?: string;
24
27
  /** True when the role is running in provider plan mode. */
25
28
  planMode?: boolean;
29
+ /**
30
+ * Optional path to a marker file. When set, the provider's completion
31
+ * detector treats this file's existence as the authoritative "I'm
32
+ * finished" signal — replacing every other provider completion signal
33
+ * (text-after-tools, task_complete, turn_end, etc.) for the lifetime of
34
+ * the run. Interviewer-role only.
35
+ */
36
+ completionMarkerFile?: string;
26
37
  /** Optional orchestration sink for warnings (resume-failure fallback, etc.). */
27
38
  output?: OrchestrationOutput;
28
39
  /** Optional terminal host for parent-owned rendering of the child PTY. */
29
40
  terminalHost?: TerminalHost;
41
+ /**
42
+ * Invoked once per `runInternal` attempt, immediately after the PTY tail
43
+ * buffer is created and before any PTY bytes are appended. Role handlers
44
+ * wire this via `bindPtyBufferReporter(driver, ctx)` to stash the buffer
45
+ * reference on `ctx.inFlightStep` so dump capture can snapshot it later.
46
+ * A retry-path second attempt overwrites the prior reference; the
47
+ * failed-attempt buffer is discarded.
48
+ */
49
+ onPtyBuffer?: (buffer: PtyTailBuffer) => void;
50
+ /** Invoked once for each failed provider process attempt. */
51
+ onAttemptFailure?: (record: AttemptFailureRecord) => void;
30
52
  }
31
53
  export interface RunResult {
32
54
  /** The agent's response text (from completion detector). */
@@ -46,6 +68,13 @@ export interface RunResult {
46
68
  */
47
69
  export declare class AgentInterruptedError extends Error {
48
70
  readonly code: "AGENT_INTERRUPTED";
71
+ /**
72
+ * Tells `runPhaseWithRetries` to short-circuit instead of retrying the
73
+ * phase. Aligns interrupts with the existing "skip retry" marker used by
74
+ * provider session detection errors. Ctrl+C is an explicit cancel — silently
75
+ * spawning a fresh attempt would directly contradict the user.
76
+ */
77
+ readonly noRetry = true;
49
78
  constructor(message?: string);
50
79
  }
51
80
  export declare function isAgentInterruptedError(err: unknown): err is AgentInterruptedError;
@@ -80,6 +109,15 @@ export declare abstract class BaseAdapter {
80
109
  protected applyPlanModePrompt(rawPrompt: string): string;
81
110
  /** Optional callback invoked as soon as the session file path is resolved during a run. */
82
111
  sessionFileCallback?: (path: string) => void;
112
+ /**
113
+ * Optional callback invoked once per `runInternal` attempt with the PTY
114
+ * tail buffer for that attempt. Role handlers wire this through
115
+ * `bindPtyBufferReporter` so the dump collector can snapshot the latest
116
+ * PTY tail.
117
+ */
118
+ ptyBufferCallback?: (buffer: PtyTailBuffer) => void;
119
+ /** Optional callback invoked with per-attempt process failure diagnostics. */
120
+ attemptFailureCallback?: (record: AttemptFailureRecord) => void;
83
121
  protected runAgent(request: RunRequest): Promise<RunResult>;
84
122
  }
85
123
  /**
@@ -96,6 +134,14 @@ export declare function bindDriverRuntime(driver: unknown, runtime: {
96
134
  * into the provided array. No-op if the driver is not a BaseAdapter.
97
135
  */
98
136
  export declare function bindSessionReporter(driver: unknown, sessionFilePaths: string[]): void;
137
+ /**
138
+ * Wire a driver's `ptyBufferCallback` to stash the PTY tail buffer on
139
+ * `ctx.inFlightStep` for dump capture. No-op for non-`BaseAdapter`
140
+ * drivers and for non-in-flight calls. On retry, the second attempt's
141
+ * buffer simply overwrites the first.
142
+ */
143
+ export declare function bindPtyBufferReporter(driver: unknown, ctx: StepContext): void;
144
+ export declare function bindAttemptFailureReporter(driver: unknown, ctx: StepContext): void;
99
145
  /**
100
146
  * Shared lifecycle engine for AI agent PTY sessions.
101
147
  *
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { randomUUID } from "node:crypto";
2
- import { spawnPty } from "../pty/spawn.js";
2
+ import { resolveSpawnCommand, spawnPty } from "../pty/spawn.js";
3
3
  import { sendExit } from "../pty/exit.js";
4
4
  import { readSessionFile } from "../session/reader.js";
5
5
  import { waitForFile } from "../session/locator.js";
6
+ import { PtyTailBuffer } from "../dump/pty-tail-buffer.js";
7
+ import { AgentExitError, classifyAgentFailure } from "./errors.js";
6
8
  /**
7
9
  * Thrown when the user interrupts a run via Ctrl+C while the orchestration
8
10
  * host owns raw stdin. Distinguished from ordinary failures so the
@@ -11,6 +13,13 @@ import { waitForFile } from "../session/locator.js";
11
13
  */
12
14
  export class AgentInterruptedError extends Error {
13
15
  code = "AGENT_INTERRUPTED";
16
+ /**
17
+ * Tells `runPhaseWithRetries` to short-circuit instead of retrying the
18
+ * phase. Aligns interrupts with the existing "skip retry" marker used by
19
+ * provider session detection errors. Ctrl+C is an explicit cancel — silently
20
+ * spawning a fresh attempt would directly contradict the user.
21
+ */
22
+ noRetry = true;
14
23
  constructor(message = "Interrupted by Ctrl+C") {
15
24
  super(message);
16
25
  this.name = "AgentInterruptedError";
@@ -65,11 +74,22 @@ export class BaseAdapter {
65
74
  }
66
75
  /** Optional callback invoked as soon as the session file path is resolved during a run. */
67
76
  sessionFileCallback;
77
+ /**
78
+ * Optional callback invoked once per `runInternal` attempt with the PTY
79
+ * tail buffer for that attempt. Role handlers wire this through
80
+ * `bindPtyBufferReporter` so the dump collector can snapshot the latest
81
+ * PTY tail.
82
+ */
83
+ ptyBufferCallback;
84
+ /** Optional callback invoked with per-attempt process failure diagnostics. */
85
+ attemptFailureCallback;
68
86
  async runAgent(request) {
69
87
  const merged = {
70
88
  ...request,
71
89
  output: request.output ?? this.runtimeOutput,
72
90
  terminalHost: request.terminalHost ?? this.runtimeHost,
91
+ onPtyBuffer: request.onPtyBuffer ?? this.ptyBufferCallback,
92
+ onAttemptFailure: request.onAttemptFailure ?? this.attemptFailureCallback,
73
93
  };
74
94
  const result = await this.runner.run(merged, (path) => {
75
95
  this.sessionFilePath = path;
@@ -105,6 +125,36 @@ export function bindSessionReporter(driver, sessionFilePaths) {
105
125
  };
106
126
  }
107
127
  }
128
+ /**
129
+ * Wire a driver's `ptyBufferCallback` to stash the PTY tail buffer on
130
+ * `ctx.inFlightStep` for dump capture. No-op for non-`BaseAdapter`
131
+ * drivers and for non-in-flight calls. On retry, the second attempt's
132
+ * buffer simply overwrites the first.
133
+ */
134
+ export function bindPtyBufferReporter(driver, ctx) {
135
+ if (driver != null &&
136
+ typeof driver === "object" &&
137
+ "ptyBufferCallback" in driver) {
138
+ driver.ptyBufferCallback = (buffer) => {
139
+ if (ctx.inFlightStep) {
140
+ ctx.inFlightStep.ptyTailBuffer = buffer;
141
+ }
142
+ };
143
+ }
144
+ }
145
+ export function bindAttemptFailureReporter(driver, ctx) {
146
+ if (driver != null &&
147
+ typeof driver === "object" &&
148
+ "attemptFailureCallback" in driver) {
149
+ driver.attemptFailureCallback = (record) => {
150
+ if (ctx.inFlightStep) {
151
+ const failures = ctx.inFlightStep.attemptFailures ?? [];
152
+ ctx.inFlightStep.attemptFailures = failures;
153
+ failures.push({ ...record, attempt: failures.length + 1 });
154
+ }
155
+ };
156
+ }
157
+ }
108
158
  /**
109
159
  * Internal lifecycle controller for a single `runInternal()` execution.
110
160
  *
@@ -117,15 +167,20 @@ export function bindSessionReporter(driver, sessionFilePaths) {
117
167
  * failure. Once `interrupting` is set, the exit handler also no-ops.
118
168
  */
119
169
  class RunLifecycle {
170
+ createExitError;
171
+ spawnedAt = Date.now();
172
+ activationObserved = false;
120
173
  settled = false;
121
174
  interrupting = false;
122
175
  childExited = false;
123
176
  childExitCode = null;
177
+ childSignal;
124
178
  cancelPromise;
125
179
  cancelReject;
126
180
  controller = new AbortController();
127
181
  interruptUnsubscribe;
128
- constructor() {
182
+ constructor(createExitError) {
183
+ this.createExitError = createExitError;
129
184
  this.cancelPromise = new Promise((_resolve, reject) => {
130
185
  this.cancelReject = reject;
131
186
  });
@@ -148,7 +203,7 @@ class RunLifecycle {
148
203
  }
149
204
  /** Subscribe to child exit. Idempotent against `settled` / `interrupting`. */
150
205
  registerChildExit(handle) {
151
- handle.onExit((code) => this.handleChildExit(code));
206
+ handle.onExit((event) => this.handleChildExit(event));
152
207
  }
153
208
  /**
154
209
  * Race `op` against host interrupt and child exit. After the race
@@ -162,6 +217,9 @@ class RunLifecycle {
162
217
  markSettled() {
163
218
  this.settled = true;
164
219
  }
220
+ markActivationObserved() {
221
+ this.activationObserved = true;
222
+ }
165
223
  /**
166
224
  * Tear down host-interrupt subscription. Idempotent. Always called from
167
225
  * the runner's `finally`.
@@ -177,12 +235,13 @@ class RunLifecycle {
177
235
  this.controller.abort(new AgentInterruptedError());
178
236
  this.cancelReject(new AgentInterruptedError());
179
237
  }
180
- handleChildExit(code) {
238
+ handleChildExit(event) {
181
239
  this.childExited = true;
182
- this.childExitCode = code;
240
+ this.childExitCode = event.exitCode;
241
+ this.childSignal = event.signal;
183
242
  if (this.settled || this.interrupting)
184
243
  return;
185
- const err = new Error(`Agent process exited before completion (code ${code})`);
244
+ const err = this.createExitError(event);
186
245
  this.controller.abort(err);
187
246
  this.cancelReject(err);
188
247
  }
@@ -193,6 +252,9 @@ class RunLifecycle {
193
252
  get exitCode() {
194
253
  return this.childExitCode;
195
254
  }
255
+ get signalName() {
256
+ return this.childSignal;
257
+ }
196
258
  }
197
259
  /**
198
260
  * Shared lifecycle engine for AI agent PTY sessions.
@@ -214,7 +276,7 @@ export class AgentRunner {
214
276
  async run(request, onSessionFile) {
215
277
  if (request.resumeSessionId) {
216
278
  try {
217
- return await this.runInternal(request, onSessionFile);
279
+ return await this.runInternal(request, onSessionFile, 1);
218
280
  }
219
281
  catch (err) {
220
282
  // Don't retry on user interrupt — that's an explicit cancel.
@@ -232,12 +294,12 @@ export class AgentRunner {
232
294
  prompt: request.freshFallbackPrompt ?? request.prompt,
233
295
  resumeSessionId: undefined,
234
296
  sessionFilePath: undefined,
235
- }, onSessionFile);
297
+ }, onSessionFile, 2);
236
298
  }
237
299
  }
238
- return await this.runInternal(request, onSessionFile);
300
+ return await this.runInternal(request, onSessionFile, 1);
239
301
  }
240
- async runInternal(request, onSessionFile) {
302
+ async runInternal(request, onSessionFile, attempt = 1) {
241
303
  const { prompt, workdir, resumeSessionId, sessionFilePath: knownSessionFile, permissionFlags, promptPrefix, } = request;
242
304
  // Pre-assign session ID when supported (skips snapshot/discovery)
243
305
  let preAssignedSessionId;
@@ -253,29 +315,110 @@ export class AgentRunner {
253
315
  permissionFlags,
254
316
  promptPrefix,
255
317
  yolo: this.yolo,
318
+ planMode: request.planMode,
256
319
  });
257
320
  // 2. Snapshot sessions (skip if resuming with a known file or predicted)
258
321
  const snapshot = (resumeSessionId && knownSessionFile) || predictedFile
259
322
  ? { skipped: true }
260
323
  : await this.strategy.session.snapshot(workdir);
324
+ const ptyTailBuffer = new PtyTailBuffer();
325
+ const envDelta = { CLAUDECODE: null };
326
+ let resolvedCommand = {
327
+ binary: this.strategy.command,
328
+ argv: args,
329
+ cwd: workdir,
330
+ };
331
+ const smokingGunLine = () => lastNonEmptyLine(ptyTailBuffer.snapshot().stripped);
332
+ const buildFailureRecord = (failureMode, exitCode, signal, elapsedMs, activationObserved) => ({
333
+ attempt,
334
+ failureMode,
335
+ exitCode,
336
+ ...(signal && { signal }),
337
+ elapsedMs,
338
+ activationObserved,
339
+ ptyTail: ptyTailBuffer.snapshot(),
340
+ resolvedCommand,
341
+ envDelta,
342
+ ...(this.strategy.version && { providerVersion: this.strategy.version }),
343
+ });
344
+ const emitAttemptFailure = (record) => {
345
+ request.onAttemptFailure?.(record);
346
+ };
347
+ let lifecycle;
348
+ lifecycle = new RunLifecycle((event) => {
349
+ const failureMode = classifyAgentFailure({
350
+ spawnFailed: false,
351
+ activationObserved: lifecycle.activationObserved,
352
+ });
353
+ const record = buildFailureRecord(failureMode, event.exitCode, event.signal, Date.now() - lifecycle.spawnedAt, lifecycle.activationObserved);
354
+ emitAttemptFailure(record);
355
+ return new AgentExitError({
356
+ failureMode,
357
+ exitCode: event.exitCode,
358
+ signal: event.signal,
359
+ smokingGunLine: smokingGunLine(),
360
+ message: `Agent process exited before completion (code ${event.exitCode})`,
361
+ });
362
+ });
261
363
  // 3. Spawn PTY (size from terminal host when available so the child,
262
364
  // virtual terminal, and visible viewport all agree).
263
365
  const layout = request.terminalHost?.getLayout();
264
- const handle = spawnPty({
265
- command: this.strategy.command,
266
- args,
267
- cwd: workdir,
268
- cols: layout?.childCols,
269
- rows: layout?.childRows,
270
- });
271
- const lifecycle = new RunLifecycle();
366
+ let handle;
367
+ try {
368
+ const resolved = resolveSpawnCommand(this.strategy.command, args);
369
+ resolvedCommand = {
370
+ binary: resolved.command,
371
+ argv: resolved.args,
372
+ cwd: workdir,
373
+ };
374
+ handle = spawnPty({
375
+ command: this.strategy.command,
376
+ args,
377
+ cwd: workdir,
378
+ cols: layout?.childCols,
379
+ rows: layout?.childRows,
380
+ });
381
+ }
382
+ catch (err) {
383
+ const failureMode = classifyAgentFailure({
384
+ spawnFailed: true,
385
+ activationObserved: false,
386
+ });
387
+ const record = buildFailureRecord(failureMode, null, undefined, 0, false);
388
+ emitAttemptFailure(record);
389
+ throw new AgentExitError({
390
+ failureMode,
391
+ exitCode: null,
392
+ message: err instanceof Error ? err.message : String(err),
393
+ });
394
+ }
272
395
  // 4. Wire up completion detector and lifecycle observers IMMEDIATELY.
273
396
  // The detector data callback must be registered before opening the
274
397
  // gate so very fast first-byte JSONL emissions are not missed. The
275
398
  // exit and interrupt observers must race the entire post-spawn
276
399
  // lifecycle, including session discovery — not only `detector.start`.
277
- const detector = this.strategy.createDetector({ planMode: request.planMode });
400
+ const detector = this.strategy.createDetector({
401
+ planMode: request.planMode,
402
+ completionMarkerFile: request.completionMarkerFile,
403
+ onActivation: () => {
404
+ lifecycle.markActivationObserved();
405
+ },
406
+ });
278
407
  handle.onData((data) => detector.onPtyData(data));
408
+ // Separate per-attempt PTY tail buffer for dump capture. Notify the
409
+ // caller before the first byte flows so the handler-side `inFlightStep`
410
+ // reference is ready in time. On retry this overwrites the prior
411
+ // buffer; the failed attempt's tail is discarded.
412
+ request.onPtyBuffer?.(ptyTailBuffer);
413
+ handle.onData((data) => ptyTailBuffer.append(data));
414
+ // Plan-mode activator's onData listener must be registered in the
415
+ // same immediate-wiring block so PTY bytes emitted during session
416
+ // discovery (the Codex header, status line) are not missed. attach()
417
+ // is side-effect-free on the PTY (no writes); drive() runs later.
418
+ const willActivatePlanMode = !!(request.planMode && this.strategy.planModeActivator);
419
+ const attachedActivator = willActivatePlanMode
420
+ ? this.strategy.planModeActivator.attach(handle)
421
+ : undefined;
279
422
  // Attach to the host BEFORE opening the gate so the first user
280
423
  // keystrokes already route through the host's input router.
281
424
  const detachFromHost = request.terminalHost?.attachChild(handle);
@@ -288,9 +431,21 @@ export class AgentRunner {
288
431
  if (request.terminalHost) {
289
432
  lifecycle.registerHostInterrupt(request.terminalHost);
290
433
  }
291
- // Open the gate only after exit/interrupt handling is armed.
292
434
  handle.openGate();
293
435
  try {
436
+ const activatePlanMode = async () => {
437
+ await lifecycle.race(attachedActivator.drive(prompt, {
438
+ signal: lifecycle.signal,
439
+ onReadyForAutomation: () => handle.closeGate(),
440
+ }));
441
+ handle.openGate();
442
+ };
443
+ // Fresh plan-mode runs must activate before session discovery: Codex
444
+ // won't create a session file until the first prompt is submitted,
445
+ // so polling for the file before drive() would deadlock.
446
+ if (willActivatePlanMode && !resumeSessionId) {
447
+ await activatePlanMode();
448
+ }
294
449
  // 5. Find or reuse session file; compute line offset
295
450
  let sessionFile;
296
451
  let lineOffset = 0;
@@ -316,6 +471,11 @@ export class AgentRunner {
316
471
  const sessionId = await lifecycle.race(this.strategy.session.extractSessionId(sessionFile));
317
472
  // Notify caller of session file path before blocking on completion
318
473
  onSessionFile?.(sessionFile);
474
+ // Resume plan-mode runs activate AFTER lineOffset is captured, so
475
+ // the completion detector ignores the prior turn's events.
476
+ if (willActivatePlanMode && resumeSessionId) {
477
+ await activatePlanMode();
478
+ }
319
479
  // 6. Wait for completion
320
480
  const responseText = await lifecycle.race(detector.start(sessionFile, lineOffset));
321
481
  // 7. Mark settled BEFORE the graceful exit. Late onExit callbacks
@@ -342,6 +502,9 @@ export class AgentRunner {
342
502
  }
343
503
  catch (err) {
344
504
  detector.dispose();
505
+ // Failure path: drive()'s own finally may not have run yet. dispose
506
+ // is idempotent so calling it here is safe in either case.
507
+ attachedActivator?.dispose();
345
508
  handle.suppressOutput();
346
509
  detachFromHost?.();
347
510
  // Close the gate so any racing user keystrokes stop reaching the
@@ -358,4 +521,13 @@ export class AgentRunner {
358
521
  }
359
522
  }
360
523
  }
524
+ function lastNonEmptyLine(text) {
525
+ const lines = text.split(/\r?\n/);
526
+ for (let i = lines.length - 1; i >= 0; i--) {
527
+ const line = lines[i].trim();
528
+ if (line)
529
+ return line;
530
+ }
531
+ return undefined;
532
+ }
361
533
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/simplifiers/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKnD,OAAO,KAAK,EAEV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,OAAO,EACP,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAO7B,qBAAa,qBAAsB,YAAW,WAAW;IAG3C,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,WAAW,CAAK;gBAEJ,MAAM,EAAE,gBAAgB;IAEtC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;CA4CvB"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/simplifiers/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKnD,OAAO,KAAK,EAEV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,OAAO,EACP,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAO7B,qBAAa,qBAAsB,YAAW,WAAW;IAG3C,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,WAAW,CAAK;gBAEJ,MAAM,EAAE,gBAAgB;IAEtC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;CA8CvB"}
@@ -1,6 +1,6 @@
1
1
  import { join } from "node:path";
2
2
  import { readPlanFromContract, removeFileIfExists, } from "../../orchestrator.js";
3
- import { bindSessionReporter, bindDriverRuntime } from "../runner.js";
3
+ import { bindSessionReporter, bindDriverRuntime, bindPtyBufferReporter, bindAttemptFailureReporter } from "../runner.js";
4
4
  function planFileForVersion(root, version) {
5
5
  return join(root, `simplify-v${version}.md`);
6
6
  }
@@ -20,6 +20,8 @@ export class SimplifierRoleHandler {
20
20
  }
21
21
  const resumeSessionId = ctx.sessionIds.get(sessionKey);
22
22
  bindSessionReporter(this.driver, ctx.lastStepSessionFilePaths);
23
+ bindPtyBufferReporter(this.driver, ctx);
24
+ bindAttemptFailureReporter(this.driver, ctx);
23
25
  bindDriverRuntime(this.driver, { output: ctx.output, terminalHost: ctx.terminalHost });
24
26
  const { result, planText } = await retry("simplifier", async (attempt) => {
25
27
  if (attempt > 1)
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/simplifiers/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtE,SAAS,kBAAkB,CAAC,IAAY,EAAE,OAAe;IACvD,OAAO,IAAI,CAAC,IAAI,EAAE,aAAa,OAAO,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,OAAO,qBAAqB;IAGZ;IAFZ,WAAW,GAAG,CAAC,CAAC;IAExB,YAAoB,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;IAAG,CAAC;IAEhD,KAAK,CAAC,OAAO,CACX,IAAc,EACd,GAAgB,EAChB,KAAc;QAEd,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAE5E,MAAM,OAAO,GAAG,IAAiB,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,eAAe,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,wBAAyB,CAAC,CAAC;QAChE,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QAEvF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACvE,IAAI,OAAO,GAAG,CAAC;gBAAE,MAAM,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAE1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBACnC,cAAc;gBACd,eAAe,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;aAC7D,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,CAAC;YAC5D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC7D,CAAC;QAED,sBAAsB;QACtB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAClC,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/simplifiers/handler.ts"],"names":[],"mappings":"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"}
package/dist/ansi.d.ts CHANGED
@@ -1,4 +1,12 @@
1
1
  export declare const ANSI_RE: RegExp;
2
+ /**
3
+ * Broad ANSI / CSI / OSC / bracketed-paste stripper for diagnostic-text use.
4
+ * Covers far more sequences than `ANSI_RE` (which is SGR-only and is depended
5
+ * on by `padOrClip` / `visibleLength` for byte-faithful column accounting).
6
+ * Use this only for human-readable artifact text (e.g. `pty-tail.txt`); do
7
+ * NOT swap it in for `ANSI_RE`.
8
+ */
9
+ export declare const STRIP_ALL_ANSI_RE: RegExp;
2
10
  /**
3
11
  * Measure the visible terminal width of a string.
4
12
  * Strips ANSI escape sequences, then iterates code points:
@@ -34,6 +42,12 @@ export declare const red = "\u001B[31m";
34
42
  export declare const invert = "\u001B[7m";
35
43
  /** CSI (Control Sequence Introducer) prefix for ANSI escape sequences. */
36
44
  export declare const CSI = "\u001B[";
45
+ /** CSI Z — Shift+Tab (cycle / back-tab). */
46
+ export declare const SHIFT_TAB = "\u001B[Z";
47
+ /** Bracketed-paste start delimiter. Preserves embedded newlines without mid-prompt submission. */
48
+ export declare const PASTE_START = "\u001B[200~";
49
+ /** Bracketed-paste end delimiter. */
50
+ export declare const PASTE_END = "\u001B[201~";
37
51
  /**
38
52
  * Mouse reporting (DECSET 1000): normal-tracking — only press/release on
39
53
  * buttons, including wheel events (button codes 64/65 for vertical wheel).
@@ -1 +1 @@
1
- {"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../src/ansi.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,QAAoB,CAAC;AAmGzC;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAa/C;AAED,eAAO,MAAM,GAAG,cAAY,CAAC;AAC7B,eAAO,MAAM,IAAI,cAAY,CAAC;AAC9B,eAAO,MAAM,KAAK,cAAY,CAAC;AAC/B,eAAO,MAAM,IAAI,eAAa,CAAC;AAC/B,eAAO,MAAM,KAAK,eAAa,CAAC;AAChC,eAAO,MAAM,MAAM,eAAa,CAAC;AACjC,eAAO,MAAM,UAAU,aAAW,CAAC;AACnC,eAAO,MAAM,QAAQ,aAAW,CAAC;AAEjC,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,aAAW,CAAC;AAC5C,mCAAmC;AACnC,eAAO,MAAM,YAAY,cAAY,CAAC;AACtC,sCAAsC;AACtC,eAAO,MAAM,WAAW,aAAW,CAAC;AACpC,uCAAuC;AACvC,eAAO,MAAM,WAAW,gBAAc,CAAC;AACvC,6BAA6B;AAC7B,eAAO,MAAM,WAAW,gBAAc,CAAC;AACvC,yCAAyC;AACzC,eAAO,MAAM,aAAa,kBAAgB,CAAC;AAC3C,qCAAqC;AACrC,eAAO,MAAM,cAAc,kBAAgB,CAAC;AAE5C,eAAO,MAAM,GAAG,eAAa,CAAC;AAC9B,eAAO,MAAM,MAAM,cAAY,CAAC;AAEhC,0EAA0E;AAC1E,eAAO,MAAM,GAAG,YAAU,CAAC;AAE3B;;;GAGG;AACH,eAAO,MAAM,kBAAkB,kBAAgB,CAAC;AAChD,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB,kBAAgB,CAAC;AACjD,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,kBAAgB,CAAC;AACpD,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,kBAAgB,CAAC;AACjD;;;GAGG;AACH,eAAO,MAAM,YAAY,kBAAgB,CAAC;AAC1C,kCAAkC;AAClC,eAAO,MAAM,aAAa,kBAAgB,CAAC;AAE3C,uDAAuD;AACvD,eAAO,MAAM,QAAQ,QAAoC,CAAC;AAC1D;;;;GAIG;AACH,eAAO,MAAM,SAAS,QAC8D,CAAC;AAErF,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAqB7D"}
1
+ {"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../src/ansi.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,QAAoB,CAAC;AAEzC;;;;;;GAMG;AAEH,eAAO,MAAM,iBAAiB,QACwE,CAAC;AAmGvG;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAa/C;AAED,eAAO,MAAM,GAAG,cAAY,CAAC;AAC7B,eAAO,MAAM,IAAI,cAAY,CAAC;AAC9B,eAAO,MAAM,KAAK,cAAY,CAAC;AAC/B,eAAO,MAAM,IAAI,eAAa,CAAC;AAC/B,eAAO,MAAM,KAAK,eAAa,CAAC;AAChC,eAAO,MAAM,MAAM,eAAa,CAAC;AACjC,eAAO,MAAM,UAAU,aAAW,CAAC;AACnC,eAAO,MAAM,QAAQ,aAAW,CAAC;AAEjC,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,aAAW,CAAC;AAC5C,mCAAmC;AACnC,eAAO,MAAM,YAAY,cAAY,CAAC;AACtC,sCAAsC;AACtC,eAAO,MAAM,WAAW,aAAW,CAAC;AACpC,uCAAuC;AACvC,eAAO,MAAM,WAAW,gBAAc,CAAC;AACvC,6BAA6B;AAC7B,eAAO,MAAM,WAAW,gBAAc,CAAC;AACvC,yCAAyC;AACzC,eAAO,MAAM,aAAa,kBAAgB,CAAC;AAC3C,qCAAqC;AACrC,eAAO,MAAM,cAAc,kBAAgB,CAAC;AAE5C,eAAO,MAAM,GAAG,eAAa,CAAC;AAC9B,eAAO,MAAM,MAAM,cAAY,CAAC;AAEhC,0EAA0E;AAC1E,eAAO,MAAM,GAAG,YAAU,CAAC;AAE3B,4CAA4C;AAC5C,eAAO,MAAM,SAAS,aAAW,CAAC;AAClC,kGAAkG;AAClG,eAAO,MAAM,WAAW,gBAAc,CAAC;AACvC,qCAAqC;AACrC,eAAO,MAAM,SAAS,gBAAc,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,kBAAgB,CAAC;AAChD,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB,kBAAgB,CAAC;AACjD,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,kBAAgB,CAAC;AACpD,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,kBAAgB,CAAC;AACjD;;;GAGG;AACH,eAAO,MAAM,YAAY,kBAAgB,CAAC;AAC1C,kCAAkC;AAClC,eAAO,MAAM,aAAa,kBAAgB,CAAC;AAE3C,uDAAuD;AACvD,eAAO,MAAM,QAAQ,QAAoC,CAAC;AAC1D;;;;GAIG;AACH,eAAO,MAAM,SAAS,QAC8D,CAAC;AAErF,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAqB7D"}
package/dist/ansi.js CHANGED
@@ -1,5 +1,14 @@
1
1
  // eslint-disable-next-line no-control-regex
2
2
  export const ANSI_RE = /\x1b\[[0-9;]*m/g;
3
+ /**
4
+ * Broad ANSI / CSI / OSC / bracketed-paste stripper for diagnostic-text use.
5
+ * Covers far more sequences than `ANSI_RE` (which is SGR-only and is depended
6
+ * on by `padOrClip` / `visibleLength` for byte-faithful column accounting).
7
+ * Use this only for human-readable artifact text (e.g. `pty-tail.txt`); do
8
+ * NOT swap it in for `ANSI_RE`.
9
+ */
10
+ // eslint-disable-next-line no-control-regex
11
+ export const STRIP_ALL_ANSI_RE = /\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\x1b\[[0-?]*[ -/]*[@-~]|\x1b[PX^_][\s\S]*?\x1b\\|\x1b[=>NOM78c]/g;
3
12
  /**
4
13
  * BMP code points with Emoji_Presentation=Yes (Unicode 15.1).
5
14
  * These render as wide (2-column) glyphs in terminals despite being
@@ -148,6 +157,12 @@ export const red = "\x1b[31m";
148
157
  export const invert = "\x1b[7m";
149
158
  /** CSI (Control Sequence Introducer) prefix for ANSI escape sequences. */
150
159
  export const CSI = "\x1b[";
160
+ /** CSI Z — Shift+Tab (cycle / back-tab). */
161
+ export const SHIFT_TAB = "\x1b[Z";
162
+ /** Bracketed-paste start delimiter. Preserves embedded newlines without mid-prompt submission. */
163
+ export const PASTE_START = "\x1b[200~";
164
+ /** Bracketed-paste end delimiter. */
165
+ export const PASTE_END = "\x1b[201~";
151
166
  /**
152
167
  * Mouse reporting (DECSET 1000): normal-tracking — only press/release on
153
168
  * buttons, including wheel events (button codes 64/65 for vertical wheel).
package/dist/ansi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../src/ansi.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,iBAAiB,CAAC;AAEzC;;;;GAIG;AACH,MAAM,cAAc,GAAuB;IACzC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;CACvB,CAAC;AAEF,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,EAAE,GAAG,GAAG;YAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;aACtB,IAAI,EAAE,GAAG,GAAG;YAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;;YAC3B,OAAO,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QAC9B,IAAI,EAAE,KAAK,MAAM;YAAE,SAAS,CAAC,2BAA2B;QACxD,IAAI,EAAE,GAAG,MAAM,IAAI,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;YACtC,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC;AAC7B,MAAM,CAAC,MAAM,IAAI,GAAG,SAAS,CAAC;AAC9B,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC;AAC/B,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAC;AAC/B,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC;AAChC,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC;AACjC,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AACnC,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC;AAEjC,mDAAmD;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAC5C,mCAAmC;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AACtC,sCAAsC;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AACpC,uCAAuC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AACvC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AACvC,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAC3C,qCAAqC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,GAAG,GAAG,UAAU,CAAC;AAC9B,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC;AAEhC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC;AAE3B;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAChD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAC;AACjD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC;AACpD,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAC;AACjD;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAC1C,kCAAkC;AAClC,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAE3C,uDAAuD;AACvD,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,GAAG,YAAY,CAAC;AAC1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GACpB,mBAAmB,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,aAAa,CAAC;AAErF,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAa;IACpD,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,GAAG,GAAG,KAAK;QAAE,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,KAAa;IACnD,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,GAAG,GAAG,KAAK;QAAE,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IACvD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACjD,IAAI,CAAC,EAAE,CAAC;gBACN,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACjB,SAAS;YACX,CAAC;QACH,CAAC;QACD,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,CAAC;QACX,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../src/ansi.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,iBAAiB,CAAC;AAEzC;;;;;;GAMG;AACH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAC5B,oGAAoG,CAAC;AAEvG;;;;GAIG;AACH,MAAM,cAAc,GAAuB;IACzC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK;IACvB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACtB,CAAC,MAAM,EAAE,M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"}