iosm-cli 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +58 -47
  2. package/dist/core/agent-teams.d.ts.map +1 -1
  3. package/dist/core/agent-teams.js +38 -11
  4. package/dist/core/agent-teams.js.map +1 -1
  5. package/dist/core/failure-retrospective.d.ts +12 -0
  6. package/dist/core/failure-retrospective.d.ts.map +1 -0
  7. package/dist/core/failure-retrospective.js +115 -0
  8. package/dist/core/failure-retrospective.js.map +1 -0
  9. package/dist/core/project-index/index.d.ts +17 -0
  10. package/dist/core/project-index/index.d.ts.map +1 -0
  11. package/dist/core/project-index/index.js +323 -0
  12. package/dist/core/project-index/index.js.map +1 -0
  13. package/dist/core/project-index/types.d.ts +34 -0
  14. package/dist/core/project-index/types.d.ts.map +1 -0
  15. package/dist/core/project-index/types.js +2 -0
  16. package/dist/core/project-index/types.js.map +1 -0
  17. package/dist/core/sdk.d.ts.map +1 -1
  18. package/dist/core/sdk.js +8 -0
  19. package/dist/core/sdk.js.map +1 -1
  20. package/dist/core/shared-memory.d.ts +46 -0
  21. package/dist/core/shared-memory.d.ts.map +1 -0
  22. package/dist/core/shared-memory.js +253 -0
  23. package/dist/core/shared-memory.js.map +1 -0
  24. package/dist/core/slash-commands.d.ts.map +1 -1
  25. package/dist/core/slash-commands.js +5 -1
  26. package/dist/core/slash-commands.js.map +1 -1
  27. package/dist/core/subagents.js +1 -1
  28. package/dist/core/subagents.js.map +1 -1
  29. package/dist/core/swarm/gates.d.ts +9 -0
  30. package/dist/core/swarm/gates.d.ts.map +1 -0
  31. package/dist/core/swarm/gates.js +65 -0
  32. package/dist/core/swarm/gates.js.map +1 -0
  33. package/dist/core/swarm/index.d.ts +9 -0
  34. package/dist/core/swarm/index.d.ts.map +1 -0
  35. package/dist/core/swarm/index.js +9 -0
  36. package/dist/core/swarm/index.js.map +1 -0
  37. package/dist/core/swarm/locks.d.ts +21 -0
  38. package/dist/core/swarm/locks.d.ts.map +1 -0
  39. package/dist/core/swarm/locks.js +93 -0
  40. package/dist/core/swarm/locks.js.map +1 -0
  41. package/dist/core/swarm/planner.d.ts +16 -0
  42. package/dist/core/swarm/planner.d.ts.map +1 -0
  43. package/dist/core/swarm/planner.js +137 -0
  44. package/dist/core/swarm/planner.js.map +1 -0
  45. package/dist/core/swarm/retry.d.ts +16 -0
  46. package/dist/core/swarm/retry.d.ts.map +1 -0
  47. package/dist/core/swarm/retry.js +32 -0
  48. package/dist/core/swarm/retry.js.map +1 -0
  49. package/dist/core/swarm/scheduler.d.ts +48 -0
  50. package/dist/core/swarm/scheduler.d.ts.map +1 -0
  51. package/dist/core/swarm/scheduler.js +554 -0
  52. package/dist/core/swarm/scheduler.js.map +1 -0
  53. package/dist/core/swarm/spawn.d.ts +16 -0
  54. package/dist/core/swarm/spawn.d.ts.map +1 -0
  55. package/dist/core/swarm/spawn.js +42 -0
  56. package/dist/core/swarm/spawn.js.map +1 -0
  57. package/dist/core/swarm/state-store.d.ts +35 -0
  58. package/dist/core/swarm/state-store.d.ts.map +1 -0
  59. package/dist/core/swarm/state-store.js +106 -0
  60. package/dist/core/swarm/state-store.js.map +1 -0
  61. package/dist/core/swarm/types.d.ts +116 -0
  62. package/dist/core/swarm/types.d.ts.map +1 -0
  63. package/dist/core/swarm/types.js +2 -0
  64. package/dist/core/swarm/types.js.map +1 -0
  65. package/dist/core/system-prompt.d.ts.map +1 -1
  66. package/dist/core/system-prompt.js +3 -2
  67. package/dist/core/system-prompt.js.map +1 -1
  68. package/dist/core/tools/shared-memory.d.ts +23 -0
  69. package/dist/core/tools/shared-memory.d.ts.map +1 -0
  70. package/dist/core/tools/shared-memory.js +134 -0
  71. package/dist/core/tools/shared-memory.js.map +1 -0
  72. package/dist/core/tools/task.d.ts +8 -1
  73. package/dist/core/tools/task.d.ts.map +1 -1
  74. package/dist/core/tools/task.js +664 -123
  75. package/dist/core/tools/task.js.map +1 -1
  76. package/dist/modes/interactive/components/login-dialog.d.ts +1 -0
  77. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  78. package/dist/modes/interactive/components/login-dialog.js +27 -4
  79. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  80. package/dist/modes/interactive/components/subagent-message.d.ts.map +1 -1
  81. package/dist/modes/interactive/components/subagent-message.js +14 -0
  82. package/dist/modes/interactive/components/subagent-message.js.map +1 -1
  83. package/dist/modes/interactive/interactive-mode.d.ts +38 -0
  84. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  85. package/dist/modes/interactive/interactive-mode.js +1362 -31
  86. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  87. package/docs/cli-reference.md +11 -1
  88. package/docs/interactive-mode.md +42 -3
  89. package/docs/orchestration-and-subagents.md +96 -169
  90. package/package.json +4 -3
@@ -1,6 +1,6 @@
1
1
  import { getOAuthProviders } from "@mariozechner/pi-ai/oauth";
2
2
  import { Container, getEditorKeybindings, Input, Spacer, Text } from "@mariozechner/pi-tui";
3
- import { exec } from "child_process";
3
+ import { spawn } from "node:child_process";
4
4
  import { theme } from "../theme/theme.js";
5
5
  import { DynamicBorder } from "./dynamic-border.js";
6
6
  import { keyHint } from "./keybinding-hints.js";
@@ -58,6 +58,31 @@ export class LoginDialogComponent extends Container {
58
58
  }
59
59
  this.onComplete(false, "Login cancelled");
60
60
  }
61
+ tryOpenBrowser(url) {
62
+ const safeUrl = url.trim();
63
+ if (!safeUrl)
64
+ return;
65
+ const closeChild = (command, args) => {
66
+ const child = spawn(command, args, {
67
+ stdio: "ignore",
68
+ detached: true,
69
+ });
70
+ child.on("error", () => {
71
+ // best effort: hyperlink in TUI is still available for manual open
72
+ });
73
+ child.unref();
74
+ };
75
+ if (process.platform === "darwin") {
76
+ closeChild("open", [safeUrl]);
77
+ return;
78
+ }
79
+ if (process.platform === "win32") {
80
+ // Use cmd built-in `start` without interpolating user input into a shell string.
81
+ closeChild("cmd.exe", ["/d", "/s", "/c", "start", "", safeUrl]);
82
+ return;
83
+ }
84
+ closeChild("xdg-open", [safeUrl]);
85
+ }
61
86
  /**
62
87
  * Called by onAuth callback - show URL and optional instructions
63
88
  */
@@ -72,9 +97,7 @@ export class LoginDialogComponent extends Container {
72
97
  this.contentContainer.addChild(new Spacer(1));
73
98
  this.contentContainer.addChild(new Text(theme.fg("warning", instructions), 1, 0));
74
99
  }
75
- // Try to open browser
76
- const openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
77
- exec(`${openCmd} "${url}"`);
100
+ this.tryOpenBrowser(url);
78
101
  this.tui.requestRender();
79
102
  }
80
103
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"login-dialog.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/login-dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { getOAuthProviders } from \"@mariozechner/pi-ai/oauth\";\nimport { Container, type Focusable, getEditorKeybindings, Input, Spacer, Text, type TUI } from \"@mariozechner/pi-tui\";\nimport { exec } from \"child_process\";\nimport { theme } from \"../theme/theme.js\";\nimport { DynamicBorder } from \"./dynamic-border.js\";\nimport { keyHint } from \"./keybinding-hints.js\";\n\n/**\n * Login dialog component - replaces editor during OAuth login flow\n */\nexport class LoginDialogComponent extends Container implements Focusable {\n\tprivate contentContainer: Container;\n\tprivate input: Input;\n\tprivate tui: TUI;\n\tprivate abortController = new AbortController();\n\tprivate inputResolver?: (value: string) => void;\n\tprivate inputRejecter?: (error: Error) => void;\n\n\t// Focusable implementation - propagate to input for IME cursor positioning\n\tprivate _focused = false;\n\tget focused(): boolean {\n\t\treturn this._focused;\n\t}\n\tset focused(value: boolean) {\n\t\tthis._focused = value;\n\t\tthis.input.focused = value;\n\t}\n\n\tconstructor(\n\t\ttui: TUI,\n\t\tproviderId: string,\n\t\tprivate onComplete: (success: boolean, message?: string) => void,\n\t) {\n\t\tsuper();\n\t\tthis.tui = tui;\n\n\t\tconst providerInfo = getOAuthProviders().find((p) => p.id === providerId);\n\t\tconst providerName = providerInfo?.name || providerId;\n\n\t\t// Top border\n\t\tthis.addChild(new DynamicBorder());\n\n\t\t// Title\n\t\tthis.addChild(new Text(theme.fg(\"warning\", `Login to ${providerName}`), 1, 0));\n\n\t\t// Dynamic content area\n\t\tthis.contentContainer = new Container();\n\t\tthis.addChild(this.contentContainer);\n\n\t\t// Input (always present, used when needed)\n\t\tthis.input = new Input();\n\t\tthis.input.onSubmit = () => {\n\t\t\tif (this.inputResolver) {\n\t\t\t\tthis.inputResolver(this.input.getValue());\n\t\t\t\tthis.inputResolver = undefined;\n\t\t\t\tthis.inputRejecter = undefined;\n\t\t\t}\n\t\t};\n\t\tthis.input.onEscape = () => {\n\t\t\tthis.cancel();\n\t\t};\n\n\t\t// Bottom border\n\t\tthis.addChild(new DynamicBorder());\n\t}\n\n\tget signal(): AbortSignal {\n\t\treturn this.abortController.signal;\n\t}\n\n\tprivate cancel(): void {\n\t\tthis.abortController.abort();\n\t\tif (this.inputRejecter) {\n\t\t\tthis.inputRejecter(new Error(\"Login cancelled\"));\n\t\t\tthis.inputResolver = undefined;\n\t\t\tthis.inputRejecter = undefined;\n\t\t}\n\t\tthis.onComplete(false, \"Login cancelled\");\n\t}\n\n\t/**\n\t * Called by onAuth callback - show URL and optional instructions\n\t */\n\tshowAuth(url: string, instructions?: string): void {\n\t\tthis.contentContainer.clear();\n\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\tthis.contentContainer.addChild(new Text(theme.fg(\"accent\", url), 1, 0));\n\n\t\tconst clickHint = process.platform === \"darwin\" ? \"Cmd+click to open\" : \"Ctrl+click to open\";\n\t\tconst hyperlink = `\\x1b]8;;${url}\\x07${clickHint}\\x1b]8;;\\x07`;\n\t\tthis.contentContainer.addChild(new Text(theme.fg(\"dim\", hyperlink), 1, 0));\n\n\t\tif (instructions) {\n\t\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\t\tthis.contentContainer.addChild(new Text(theme.fg(\"warning\", instructions), 1, 0));\n\t\t}\n\n\t\t// Try to open browser\n\t\tconst openCmd = process.platform === \"darwin\" ? \"open\" : process.platform === \"win32\" ? \"start\" : \"xdg-open\";\n\t\texec(`${openCmd} \"${url}\"`);\n\n\t\tthis.tui.requestRender();\n\t}\n\n\t/**\n\t * Show input for manual code/URL entry (for callback server providers)\n\t */\n\tshowManualInput(prompt: string): Promise<string> {\n\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\tthis.contentContainer.addChild(new Text(theme.fg(\"dim\", prompt), 1, 0));\n\t\tthis.contentContainer.addChild(this.input);\n\t\tthis.contentContainer.addChild(new Text(`(${keyHint(\"selectCancel\", \"to cancel\")})`, 1, 0));\n\t\tthis.tui.requestRender();\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.inputResolver = resolve;\n\t\t\tthis.inputRejecter = reject;\n\t\t});\n\t}\n\n\t/**\n\t * Called by onPrompt callback - show prompt and wait for input\n\t * Note: Does NOT clear content, appends to existing (preserves URL from showAuth)\n\t */\n\tshowPrompt(message: string, placeholder?: string): Promise<string> {\n\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\tthis.contentContainer.addChild(new Text(theme.fg(\"text\", message), 1, 0));\n\t\tif (placeholder) {\n\t\t\tthis.contentContainer.addChild(new Text(theme.fg(\"dim\", `e.g., ${placeholder}`), 1, 0));\n\t\t}\n\t\tthis.contentContainer.addChild(this.input);\n\t\tthis.contentContainer.addChild(\n\t\t\tnew Text(`(${keyHint(\"selectCancel\", \"to cancel,\")} ${keyHint(\"selectConfirm\", \"to submit\")})`, 1, 0),\n\t\t);\n\n\t\tthis.input.setValue(\"\");\n\t\tthis.tui.requestRender();\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.inputResolver = resolve;\n\t\t\tthis.inputRejecter = reject;\n\t\t});\n\t}\n\n\t/**\n\t * Show waiting message (for polling flows like GitHub Copilot)\n\t */\n\tshowWaiting(message: string): void {\n\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\tthis.contentContainer.addChild(new Text(theme.fg(\"dim\", message), 1, 0));\n\t\tthis.contentContainer.addChild(new Text(`(${keyHint(\"selectCancel\", \"to cancel\")})`, 1, 0));\n\t\tthis.tui.requestRender();\n\t}\n\n\t/**\n\t * Called by onProgress callback\n\t */\n\tshowProgress(message: string): void {\n\t\tthis.contentContainer.addChild(new Text(theme.fg(\"dim\", message), 1, 0));\n\t\tthis.tui.requestRender();\n\t}\n\n\thandleInput(data: string): void {\n\t\tconst kb = getEditorKeybindings();\n\n\t\tif (kb.matches(data, \"selectCancel\")) {\n\t\t\tthis.cancel();\n\t\t\treturn;\n\t\t}\n\n\t\t// Pass to input\n\t\tthis.input.handleInput(data);\n\t}\n}\n"]}
1
+ {"version":3,"file":"login-dialog.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/login-dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { getOAuthProviders } from \"@mariozechner/pi-ai/oauth\";\nimport { Container, type Focusable, getEditorKeybindings, Input, Spacer, Text, type TUI } from \"@mariozechner/pi-tui\";\nimport { spawn } from \"node:child_process\";\nimport { theme } from \"../theme/theme.js\";\nimport { DynamicBorder } from \"./dynamic-border.js\";\nimport { keyHint } from \"./keybinding-hints.js\";\n\n/**\n * Login dialog component - replaces editor during OAuth login flow\n */\nexport class LoginDialogComponent extends Container implements Focusable {\n\tprivate contentContainer: Container;\n\tprivate input: Input;\n\tprivate tui: TUI;\n\tprivate abortController = new AbortController();\n\tprivate inputResolver?: (value: string) => void;\n\tprivate inputRejecter?: (error: Error) => void;\n\n\t// Focusable implementation - propagate to input for IME cursor positioning\n\tprivate _focused = false;\n\tget focused(): boolean {\n\t\treturn this._focused;\n\t}\n\tset focused(value: boolean) {\n\t\tthis._focused = value;\n\t\tthis.input.focused = value;\n\t}\n\n\tconstructor(\n\t\ttui: TUI,\n\t\tproviderId: string,\n\t\tprivate onComplete: (success: boolean, message?: string) => void,\n\t) {\n\t\tsuper();\n\t\tthis.tui = tui;\n\n\t\tconst providerInfo = getOAuthProviders().find((p) => p.id === providerId);\n\t\tconst providerName = providerInfo?.name || providerId;\n\n\t\t// Top border\n\t\tthis.addChild(new DynamicBorder());\n\n\t\t// Title\n\t\tthis.addChild(new Text(theme.fg(\"warning\", `Login to ${providerName}`), 1, 0));\n\n\t\t// Dynamic content area\n\t\tthis.contentContainer = new Container();\n\t\tthis.addChild(this.contentContainer);\n\n\t\t// Input (always present, used when needed)\n\t\tthis.input = new Input();\n\t\tthis.input.onSubmit = () => {\n\t\t\tif (this.inputResolver) {\n\t\t\t\tthis.inputResolver(this.input.getValue());\n\t\t\t\tthis.inputResolver = undefined;\n\t\t\t\tthis.inputRejecter = undefined;\n\t\t\t}\n\t\t};\n\t\tthis.input.onEscape = () => {\n\t\t\tthis.cancel();\n\t\t};\n\n\t\t// Bottom border\n\t\tthis.addChild(new DynamicBorder());\n\t}\n\n\tget signal(): AbortSignal {\n\t\treturn this.abortController.signal;\n\t}\n\n\tprivate cancel(): void {\n\t\tthis.abortController.abort();\n\t\tif (this.inputRejecter) {\n\t\t\tthis.inputRejecter(new Error(\"Login cancelled\"));\n\t\t\tthis.inputResolver = undefined;\n\t\t\tthis.inputRejecter = undefined;\n\t\t}\n\t\tthis.onComplete(false, \"Login cancelled\");\n\t}\n\n\tprivate tryOpenBrowser(url: string): void {\n\t\tconst safeUrl = url.trim();\n\t\tif (!safeUrl) return;\n\t\tconst closeChild = (command: string, args: string[]): void => {\n\t\t\tconst child = spawn(command, args, {\n\t\t\t\tstdio: \"ignore\",\n\t\t\t\tdetached: true,\n\t\t\t});\n\t\t\tchild.on(\"error\", () => {\n\t\t\t\t// best effort: hyperlink in TUI is still available for manual open\n\t\t\t});\n\t\t\tchild.unref();\n\t\t};\n\t\tif (process.platform === \"darwin\") {\n\t\t\tcloseChild(\"open\", [safeUrl]);\n\t\t\treturn;\n\t\t}\n\t\tif (process.platform === \"win32\") {\n\t\t\t// Use cmd built-in `start` without interpolating user input into a shell string.\n\t\t\tcloseChild(\"cmd.exe\", [\"/d\", \"/s\", \"/c\", \"start\", \"\", safeUrl]);\n\t\t\treturn;\n\t\t}\n\t\tcloseChild(\"xdg-open\", [safeUrl]);\n\t}\n\n\t/**\n\t * Called by onAuth callback - show URL and optional instructions\n\t */\n\tshowAuth(url: string, instructions?: string): void {\n\t\tthis.contentContainer.clear();\n\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\tthis.contentContainer.addChild(new Text(theme.fg(\"accent\", url), 1, 0));\n\n\t\tconst clickHint = process.platform === \"darwin\" ? \"Cmd+click to open\" : \"Ctrl+click to open\";\n\t\tconst hyperlink = `\\x1b]8;;${url}\\x07${clickHint}\\x1b]8;;\\x07`;\n\t\tthis.contentContainer.addChild(new Text(theme.fg(\"dim\", hyperlink), 1, 0));\n\n\t\tif (instructions) {\n\t\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\t\tthis.contentContainer.addChild(new Text(theme.fg(\"warning\", instructions), 1, 0));\n\t\t}\n\n\t\tthis.tryOpenBrowser(url);\n\n\t\tthis.tui.requestRender();\n\t}\n\n\t/**\n\t * Show input for manual code/URL entry (for callback server providers)\n\t */\n\tshowManualInput(prompt: string): Promise<string> {\n\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\tthis.contentContainer.addChild(new Text(theme.fg(\"dim\", prompt), 1, 0));\n\t\tthis.contentContainer.addChild(this.input);\n\t\tthis.contentContainer.addChild(new Text(`(${keyHint(\"selectCancel\", \"to cancel\")})`, 1, 0));\n\t\tthis.tui.requestRender();\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.inputResolver = resolve;\n\t\t\tthis.inputRejecter = reject;\n\t\t});\n\t}\n\n\t/**\n\t * Called by onPrompt callback - show prompt and wait for input\n\t * Note: Does NOT clear content, appends to existing (preserves URL from showAuth)\n\t */\n\tshowPrompt(message: string, placeholder?: string): Promise<string> {\n\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\tthis.contentContainer.addChild(new Text(theme.fg(\"text\", message), 1, 0));\n\t\tif (placeholder) {\n\t\t\tthis.contentContainer.addChild(new Text(theme.fg(\"dim\", `e.g., ${placeholder}`), 1, 0));\n\t\t}\n\t\tthis.contentContainer.addChild(this.input);\n\t\tthis.contentContainer.addChild(\n\t\t\tnew Text(`(${keyHint(\"selectCancel\", \"to cancel,\")} ${keyHint(\"selectConfirm\", \"to submit\")})`, 1, 0),\n\t\t);\n\n\t\tthis.input.setValue(\"\");\n\t\tthis.tui.requestRender();\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.inputResolver = resolve;\n\t\t\tthis.inputRejecter = reject;\n\t\t});\n\t}\n\n\t/**\n\t * Show waiting message (for polling flows like GitHub Copilot)\n\t */\n\tshowWaiting(message: string): void {\n\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\tthis.contentContainer.addChild(new Text(theme.fg(\"dim\", message), 1, 0));\n\t\tthis.contentContainer.addChild(new Text(`(${keyHint(\"selectCancel\", \"to cancel\")})`, 1, 0));\n\t\tthis.tui.requestRender();\n\t}\n\n\t/**\n\t * Called by onProgress callback\n\t */\n\tshowProgress(message: string): void {\n\t\tthis.contentContainer.addChild(new Text(theme.fg(\"dim\", message), 1, 0));\n\t\tthis.tui.requestRender();\n\t}\n\n\thandleInput(data: string): void {\n\t\tconst kb = getEditorKeybindings();\n\n\t\tif (kb.matches(data, \"selectCancel\")) {\n\t\t\tthis.cancel();\n\t\t\treturn;\n\t\t}\n\n\t\t// Pass to input\n\t\tthis.input.handleInput(data);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-message.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/subagent-message.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAgB,MAAM,sBAAsB,CAAC;AAGzD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,CAAC;AAClF,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,sBAAsB,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC5B,2FAA2F;IAC3F,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACvC;AA4ID;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,wBAAyB,SAAQ,GAAG;gBACpC,IAAI,EAAE,YAAY;IAK9B;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAKvB,UAAU,IAAI,IAAI;IAI3B,OAAO,CAAC,aAAa;CAoJrB"}
1
+ {"version":3,"file":"subagent-message.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/subagent-message.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAgB,MAAM,sBAAsB,CAAC;AAGzD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,CAAC;AAClF,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,sBAAsB,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC5B,2FAA2F;IAC3F,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAwJD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,wBAAyB,SAAQ,GAAG;gBACpC,IAAI,EAAE,YAAY;IAK9B;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAKvB,UAAU,IAAI,IAAI;IAI3B,OAAO,CAAC,aAAa;CAuJrB"}
@@ -25,6 +25,17 @@ function formatDuration(ms) {
25
25
  const seconds = ((ms % 60_000) / 1000).toFixed(0);
26
26
  return `${minutes}m ${seconds}s`;
27
27
  }
28
+ function formatElapsedClock(ms) {
29
+ const totalSeconds = Math.max(0, Math.floor(ms / 1000));
30
+ const hours = Math.floor(totalSeconds / 3600);
31
+ const minutes = Math.floor((totalSeconds % 3600) / 60);
32
+ const seconds = totalSeconds % 60;
33
+ const pad2 = (value) => value.toString().padStart(2, "0");
34
+ if (hours > 0) {
35
+ return `${pad2(hours)}:${pad2(minutes)}:${pad2(seconds)}`;
36
+ }
37
+ return `${pad2(minutes)}:${pad2(seconds)}`;
38
+ }
28
39
  function shortenPath(path) {
29
40
  const home = homedir();
30
41
  return path.startsWith(home) ? `~${path.slice(home.length)}` : path;
@@ -195,6 +206,9 @@ export class SubagentMessageComponent extends Box {
195
206
  if (info.agent) {
196
207
  metadata.push(theme.fg("muted", `agent ${info.agent}`));
197
208
  }
209
+ if (typeof info.durationMs === "number" && info.durationMs >= 0) {
210
+ metadata.push(theme.fg("muted", `elapsed ${formatElapsedClock(info.durationMs)}`));
211
+ }
198
212
  if (info.isolation && info.isolation !== "none") {
199
213
  metadata.push(theme.fg("muted", `iso ${info.isolation}`));
200
214
  }
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-message.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/subagent-message.ts"],"names":[],"mappings":"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","sourcesContent":["import { homedir } from \"node:os\";\nimport { Box, Spacer, Text } from \"@mariozechner/pi-tui\";\nimport { theme } from \"../theme/theme.js\";\n\nexport type SubagentPhaseState = \"queued\" | \"starting\" | \"running\" | \"responding\";\nexport type SubagentDelegateStatus = \"pending\" | \"running\" | \"done\" | \"failed\";\n\nexport interface SubagentDelegateItem {\n\tindex: number;\n\tdescription: string;\n\tprofile: string;\n\tstatus: SubagentDelegateStatus;\n}\n\nexport interface SubagentInfo {\n\t/** Human-readable description of the subagent's task, e.g. \"Exploring TypeScript files\" */\n\tdescription: string;\n\t/** Profile name, e.g. \"explore\" | \"plan\" | \"fix\" */\n\tprofile: string;\n\t/** Current lifecycle state of the subagent */\n\tstatus: \"running\" | \"done\" | \"error\";\n\t/** Byte length of the subagent's output, populated when status is \"done\" */\n\toutputLength?: number;\n\t/** Wall-clock elapsed time in milliseconds, populated when status is \"done\" */\n\tdurationMs?: number;\n\t/** Error message, populated when status is \"error\" */\n\terrorMessage?: string;\n\t/** Current phase summary for in-progress work */\n\tphase?: string;\n\t/** Current phase state in the execution timeline */\n\tphaseState?: SubagentPhaseState;\n\t/** Effective working directory for the subagent */\n\tcwd?: string;\n\t/** Optional custom agent label */\n\tagent?: string;\n\t/** Optional lock domain key */\n\tlockKey?: string;\n\t/** Isolation mode for this run */\n\tisolation?: \"none\" | \"worktree\";\n\t/** Current active subagent tool (e.g. read, bash, write) */\n\tactiveTool?: string;\n\t/** Number of subagent tool calls started */\n\ttoolCallsStarted?: number;\n\t/** Number of subagent tool calls completed */\n\ttoolCallsCompleted?: number;\n\t/** Number of assistant messages produced inside subagent */\n\tassistantMessages?: number;\n\t/** Queue delay before execution started (ms) */\n\twaitMs?: number;\n\t/** Number of delegated child subtasks launched by this subagent */\n\tdelegatedTasks?: number;\n\t/** Number of delegated child subtasks finished successfully */\n\tdelegatedSucceeded?: number;\n\t/** Number of delegated child subtasks that failed */\n\tdelegatedFailed?: number;\n\t/** Currently active delegated subtask index (1-based) */\n\tdelegateIndex?: number;\n\t/** Total delegated subtasks in the current batch */\n\tdelegateTotal?: number;\n\t/** Currently active delegated subtask description */\n\tdelegateDescription?: string;\n\t/** Currently active delegated subtask profile */\n\tdelegateProfile?: string;\n\t/** Delegate task mini-list with per-item status */\n\tdelegateItems?: SubagentDelegateItem[];\n}\n\ntype DelegateSummary = {\n\ttotal: number;\n\tdone: number;\n\tfailed: number;\n\trunning: number;\n\tpending: number;\n};\n\n/**\n * Format a byte count as a compact human-readable string.\n * Mirrors the formatting conventions used elsewhere in the footer (k/M suffixes).\n */\nfunction formatBytes(bytes: number): string {\n\tif (bytes < 1024) return `${bytes}B`;\n\tif (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)}KB`;\n\treturn `${(bytes / (1024 * 1024)).toFixed(1)}MB`;\n}\n\n/**\n * Format a millisecond duration as a compact human-readable string.\n * Keeps the unit explicit so users can immediately scan the value at a glance.\n */\nfunction formatDuration(ms: number): string {\n\tif (ms < 1000) return `${ms}ms`;\n\tif (ms < 60_000) return `${(ms / 1000).toFixed(1)}s`;\n\tconst minutes = Math.floor(ms / 60_000);\n\tconst seconds = ((ms % 60_000) / 1000).toFixed(0);\n\treturn `${minutes}m ${seconds}s`;\n}\n\nfunction shortenPath(path: string): string {\n\tconst home = homedir();\n\treturn path.startsWith(home) ? `~${path.slice(home.length)}` : path;\n}\n\nfunction formatToolProgress(started?: number, completed?: number): string | undefined {\n\tif (typeof started !== \"number\" || started < 0) return undefined;\n\tif (typeof completed === \"number\" && completed >= 0) {\n\t\treturn `tools ${completed}/${started}`;\n\t}\n\treturn `tools ${started}`;\n}\n\nfunction formatSubagentBadge(agent?: string): string {\n\tif (typeof agent !== \"string\") return \"[subagent]\";\n\tconst normalized = agent.trim();\n\tif (!normalized) return \"[subagent]\";\n\treturn `[subagent:${normalized}]`;\n}\n\nfunction renderPhaseTimeline(phaseState: SubagentPhaseState): string {\n\tconst phases: SubagentPhaseState[] = [\"queued\", \"starting\", \"running\", \"responding\"];\n\tconst currentIndex = phases.indexOf(phaseState);\n\tif (currentIndex < 0) return \"\";\n\n\tconst segments = phases.map((phase, index) => {\n\t\tconst marker = index < currentIndex ? \"[x]\" : index === currentIndex ? \"[>]\" : \"[ ]\";\n\t\tconst text = `${marker} ${phase}`;\n\t\tif (index < currentIndex) return theme.fg(\"success\", text);\n\t\tif (index === currentIndex) return theme.fg(\"accent\", text);\n\t\treturn theme.fg(\"muted\", text);\n\t});\n\treturn `${theme.fg(\"muted\", \"flow\")} ${segments.join(theme.fg(\"dim\", \" -> \"))}`;\n}\n\nfunction summarizeDelegates(info: SubagentInfo): DelegateSummary | undefined {\n\tif (Array.isArray(info.delegateItems) && info.delegateItems.length > 0) {\n\t\tlet done = 0;\n\t\tlet failed = 0;\n\t\tlet running = 0;\n\t\tlet pending = 0;\n\t\tfor (const item of info.delegateItems) {\n\t\t\tswitch (item.status) {\n\t\t\t\tcase \"done\":\n\t\t\t\t\tdone += 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"failed\":\n\t\t\t\t\tfailed += 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"running\":\n\t\t\t\t\trunning += 1;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tpending += 1;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn { total: info.delegateItems.length, done, failed, running, pending };\n\t}\n\tif (typeof info.delegatedTasks === \"number\" && info.delegatedTasks > 0) {\n\t\tconst total = info.delegatedTasks;\n\t\tconst done = typeof info.delegatedSucceeded === \"number\" ? Math.max(0, info.delegatedSucceeded) : 0;\n\t\tconst failed = typeof info.delegatedFailed === \"number\" ? Math.max(0, info.delegatedFailed) : 0;\n\t\tconst running = Math.max(0, total - done - failed);\n\t\tconst pending = 0;\n\t\treturn { total, done, failed, running, pending };\n\t}\n\treturn undefined;\n}\n\nfunction formatDelegateSummary(summary: DelegateSummary): string {\n\tconst parts: string[] = [`delegates ${summary.done}/${summary.total} done`];\n\tif (summary.failed > 0) {\n\t\tparts.push(`${summary.failed} failed`);\n\t}\n\tif (summary.running > 0) {\n\t\tparts.push(`${summary.running} running`);\n\t}\n\treturn parts.join(\", \");\n}\n\nfunction selectDelegateItemsForDisplay(items: SubagentDelegateItem[]): {\n\tvisibleItems: SubagentDelegateItem[];\n\tcompacted: boolean;\n\thiddenDonePending: number;\n\toverflow: number;\n} {\n\tconst compactThreshold = 6;\n\tconst maxRows = 5;\n\tif (items.length > compactThreshold) {\n\t\tconst critical = items.filter((item) => item.status === \"running\" || item.status === \"failed\");\n\t\tconst visibleItems = critical.slice(0, maxRows);\n\t\treturn {\n\t\t\tvisibleItems,\n\t\t\tcompacted: true,\n\t\t\thiddenDonePending: Math.max(0, items.length - critical.length),\n\t\t\toverflow: Math.max(0, critical.length - visibleItems.length),\n\t\t};\n\t}\n\tconst visibleItems = items.slice(0, maxRows);\n\treturn {\n\t\tvisibleItems,\n\t\tcompacted: false,\n\t\thiddenDonePending: 0,\n\t\toverflow: Math.max(0, items.length - visibleItems.length),\n\t};\n}\n\n/**\n * Component that surfaces a running or completed subagent (task tool invocation).\n *\n * Visual structure\n * ----------------\n * Line 1 (header): [subagent] <profile> · <description>\n * Line 2 (status):\n * running → ... <phase>\n * @ <cwd> · tool <active> · tools <done>/<started>\n * delegates <done>/<total> done, <failed> failed\n * delegate <i>/<n> · <description> · (<profile>)\n * delegates list with status markers (compact mode on large runs)\n * flow [x] queued -> [>] running -> [ ] responding\n * done → + <outputSize> output, <duration>, tools <done>/<started>, queue <wait>\n * error → x <errorMessage or \"error\">\n *\n * Theming follows the customMessage palette so the block sits visually alongside\n * other agent-injected messages (task plan, skill invocation, custom messages).\n */\nexport class SubagentMessageComponent extends Box {\n\tconstructor(info: SubagentInfo) {\n\t\tsuper(1, 1, (text) => theme.bg(\"customMessageBg\", text));\n\t\tthis.renderContent(info);\n\t}\n\n\t/**\n\t * Replace the rendered content with updated subagent info.\n\t * Call this whenever status, outputLength, durationMs, or errorMessage changes.\n\t */\n\tupdate(info: SubagentInfo): void {\n\t\tthis.clear();\n\t\tthis.renderContent(info);\n\t}\n\n\toverride invalidate(): void {\n\t\tsuper.invalidate();\n\t}\n\n\tprivate renderContent(info: SubagentInfo): void {\n\t\t// --- Header line ---\n\t\t// [subagent] or [subagent:<agent>] <profile> · <description>\n\t\tconst label = theme.fg(\"customMessageLabel\", `\\x1b[1m${formatSubagentBadge(info.agent)}\\x1b[22m`);\n\t\tconst profileBadge = theme.fg(\"accent\", info.profile);\n\t\tconst dot = theme.fg(\"dim\", \" \\u00B7 \"); // middle dot separator\n\t\tconst description = theme.fg(\"customMessageText\", info.description);\n\t\tthis.addChild(new Text(`${label} ${profileBadge}${dot}${description}`, 0, 0));\n\n\t\tthis.addChild(new Spacer(1));\n\n\t\t// --- Status line ---\n\t\tswitch (info.status) {\n\t\t\t\tcase \"running\": {\n\t\t\t\t// Ellipsis prefix signals in-progress work without a spinner dependency\n\t\t\t\tconst indicator = theme.fg(\"accent\", \"...\");\n\t\t\t\tconst phase = info.phase?.trim() ? info.phase.trim() : \"running\";\n\t\t\t\tconst statusText = theme.fg(\"muted\", ` ${phase}`);\n\t\t\t\tthis.addChild(new Text(`${indicator}${statusText}`, 0, 0));\n\n\t\t\t\tconst metadata: string[] = [];\n\t\t\t\tif (info.cwd) {\n\t\t\t\t\tmetadata.push(theme.fg(\"muted\", `@ ${shortenPath(info.cwd)}`));\n\t\t\t\t}\n\t\t\t\tif (info.activeTool) {\n\t\t\t\t\tmetadata.push(theme.fg(\"customMessageText\", `tool ${info.activeTool}`));\n\t\t\t\t}\n\t\t\t\tconst toolProgress = formatToolProgress(info.toolCallsStarted, info.toolCallsCompleted);\n\t\t\t\tif (toolProgress) {\n\t\t\t\t\tmetadata.push(theme.fg(\"muted\", toolProgress));\n\t\t\t\t}\n\t\t\t\tif (typeof info.assistantMessages === \"number\" && info.assistantMessages > 0) {\n\t\t\t\t\tmetadata.push(theme.fg(\"muted\", `msgs ${info.assistantMessages}`));\n\t\t\t\t}\n\t\t\t\tif (info.agent) {\n\t\t\t\t\tmetadata.push(theme.fg(\"muted\", `agent ${info.agent}`));\n\t\t\t\t}\n\t\t\t\tif (info.isolation && info.isolation !== \"none\") {\n\t\t\t\t\tmetadata.push(theme.fg(\"muted\", `iso ${info.isolation}`));\n\t\t\t\t}\n\t\t\t\t\tif (info.lockKey) {\n\t\t\t\t\t\tmetadata.push(theme.fg(\"muted\", `lock ${info.lockKey}`));\n\t\t\t\t\t}\n\t\t\t\t\tif (metadata.length > 0) {\n\t\t\t\t\t\tthis.addChild(new Text(metadata.join(theme.fg(\"dim\", \" \\u00B7 \")), 0, 0));\n\t\t\t\t\t}\n\t\t\t\t\tconst delegateSummary = summarizeDelegates(info);\n\t\t\t\t\tif (delegateSummary) {\n\t\t\t\t\t\tthis.addChild(new Text(theme.fg(\"accent\", formatDelegateSummary(delegateSummary)), 0, 0));\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof info.delegateIndex === \"number\" && info.delegateIndex > 0) {\n\t\t\t\t\t\tconst delegateTotal =\n\t\t\t\t\t\t\ttypeof info.delegateTotal === \"number\" && info.delegateTotal > 0\n\t\t\t\t\t\t\t\t? info.delegateTotal\n\t\t\t\t\t\t\t\t: info.delegateIndex;\n\t\t\t\t\t\tconst delegateParts: string[] = [theme.fg(\"accent\", `delegate ${info.delegateIndex}/${delegateTotal}`)];\n\t\t\t\t\t\tif (typeof info.delegateDescription === \"string\" && info.delegateDescription.trim().length > 0) {\n\t\t\t\t\t\t\tdelegateParts.push(theme.fg(\"customMessageText\", info.delegateDescription.trim()));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof info.delegateProfile === \"string\" && info.delegateProfile.trim().length > 0) {\n\t\t\t\t\t\t\tdelegateParts.push(theme.fg(\"muted\", `(${info.delegateProfile.trim()})`));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.addChild(new Text(delegateParts.join(theme.fg(\"dim\", \" \\u00B7 \")), 0, 0));\n\t\t\t\t\t}\n\t\t\t\t\tif (Array.isArray(info.delegateItems) && info.delegateItems.length > 0) {\n\t\t\t\t\t\tconst selected = selectDelegateItemsForDisplay(info.delegateItems);\n\t\t\t\t\t\tconst headerParts = [theme.fg(\"muted\", \"delegates\")];\n\t\t\t\t\t\tif (selected.compacted) {\n\t\t\t\t\t\t\theaderParts.push(theme.fg(\"accent\", \"compact\"));\n\t\t\t\t\t\t\tif (selected.hiddenDonePending > 0) {\n\t\t\t\t\t\t\t\theaderParts.push(theme.fg(\"muted\", `hidden ${selected.hiddenDonePending} done/pending`));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.addChild(new Text(headerParts.join(theme.fg(\"dim\", \" \\u00B7 \")), 0, 0));\n\t\t\t\t\t\tif (selected.visibleItems.length === 0 && selected.compacted) {\n\t\t\t\t\t\t\tthis.addChild(new Text(theme.fg(\"muted\", \"no running/failed delegates\"), 0, 0));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const item of selected.visibleItems) {\n\t\t\t\t\t\t\tconst marker = (() => {\n\t\t\t\t\t\t\t\tswitch (item.status) {\n\t\t\t\t\t\t\t\t\tcase \"done\":\n\t\t\t\t\t\t\t\t\t\treturn theme.fg(\"success\", \"[x]\");\n\t\t\t\t\t\t\t\t\tcase \"running\":\n\t\t\t\t\t\t\t\t\t\treturn theme.fg(\"accent\", \"[>]\");\n\t\t\t\t\t\t\t\t\tcase \"failed\":\n\t\t\t\t\t\t\t\t\t\treturn theme.fg(\"warning\", \"[!]\");\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn theme.fg(\"muted\", \"[ ]\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\tconst label = `${item.index}. ${item.description} (${item.profile})`;\n\t\t\t\t\t\t\tconst textColor =\n\t\t\t\t\t\t\t\titem.status === \"done\"\n\t\t\t\t\t\t\t\t\t? \"muted\"\n\t\t\t\t\t\t\t\t\t: item.status === \"running\"\n\t\t\t\t\t\t\t\t\t\t? \"customMessageText\"\n\t\t\t\t\t\t\t\t\t\t: item.status === \"failed\"\n\t\t\t\t\t\t\t\t\t\t\t? \"warning\"\n\t\t\t\t\t\t\t\t\t\t\t: \"muted\";\n\t\t\t\t\t\t\tthis.addChild(new Text(`${marker} ${theme.fg(textColor, label)}`, 0, 0));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (selected.overflow > 0) {\n\t\t\t\t\t\t\tthis.addChild(new Text(theme.fg(\"muted\", `... +${selected.overflow} more`), 0, 0));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (info.phaseState) {\n\t\t\t\t\t\tthis.addChild(new Text(renderPhaseTimeline(info.phaseState), 0, 0));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\tcase \"done\": {\n\t\t\t\tconst checkmark = theme.fg(\"success\", \"+\");\n\t\t\t\tconst parts: string[] = [];\n\t\t\t\tif (info.outputLength !== undefined) {\n\t\t\t\t\tparts.push(theme.fg(\"customMessageText\", formatBytes(info.outputLength)) + theme.fg(\"muted\", \" output\"));\n\t\t\t\t}\n\t\t\t\tif (info.durationMs !== undefined) {\n\t\t\t\t\tparts.push(theme.fg(\"muted\", formatDuration(info.durationMs)));\n\t\t\t\t}\n\t\t\t\tconst toolProgress = formatToolProgress(info.toolCallsStarted, info.toolCallsCompleted);\n\t\t\t\tif (toolProgress) {\n\t\t\t\t\tparts.push(theme.fg(\"muted\", toolProgress));\n\t\t\t\t}\n\t\t\t\t\tconst delegateSummary = summarizeDelegates(info);\n\t\t\t\t\tif (delegateSummary) {\n\t\t\t\t\t\tparts.push(theme.fg(\"muted\", `delegates ${delegateSummary.done}/${delegateSummary.total} done`));\n\t\t\t\t\t\tif (delegateSummary.failed > 0) {\n\t\t\t\t\t\t\tparts.push(theme.fg(\"warning\", `${delegateSummary.failed} failed`));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tif (typeof info.waitMs === \"number\" && info.waitMs > 0) {\n\t\t\t\t\tparts.push(theme.fg(\"muted\", `queue ${formatDuration(info.waitMs)}`));\n\t\t\t\t}\n\t\t\t\tconst detail = parts.length > 0 ? \" \" + parts.join(theme.fg(\"dim\", \", \")) : \"\";\n\t\t\t\tthis.addChild(new Text(`${checkmark}${detail}`, 0, 0));\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"error\": {\n\t\t\t\tconst cross = theme.fg(\"error\", \"x\");\n\t\t\t\tconst message = info.errorMessage ? info.errorMessage : \"error\";\n\t\t\t\tconst errorText = theme.fg(\"error\", ` ${message}`);\n\t\t\t\tthis.addChild(new Text(`${cross}${errorText}`, 0, 0));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"subagent-message.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/subagent-message.ts"],"names":[],"mappings":"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","sourcesContent":["import { homedir } from \"node:os\";\nimport { Box, Spacer, Text } from \"@mariozechner/pi-tui\";\nimport { theme } from \"../theme/theme.js\";\n\nexport type SubagentPhaseState = \"queued\" | \"starting\" | \"running\" | \"responding\";\nexport type SubagentDelegateStatus = \"pending\" | \"running\" | \"done\" | \"failed\";\n\nexport interface SubagentDelegateItem {\n\tindex: number;\n\tdescription: string;\n\tprofile: string;\n\tstatus: SubagentDelegateStatus;\n}\n\nexport interface SubagentInfo {\n\t/** Human-readable description of the subagent's task, e.g. \"Exploring TypeScript files\" */\n\tdescription: string;\n\t/** Profile name, e.g. \"explore\" | \"plan\" | \"fix\" */\n\tprofile: string;\n\t/** Current lifecycle state of the subagent */\n\tstatus: \"running\" | \"done\" | \"error\";\n\t/** Byte length of the subagent's output, populated when status is \"done\" */\n\toutputLength?: number;\n\t/** Wall-clock elapsed time in milliseconds, populated when status is \"done\" */\n\tdurationMs?: number;\n\t/** Error message, populated when status is \"error\" */\n\terrorMessage?: string;\n\t/** Current phase summary for in-progress work */\n\tphase?: string;\n\t/** Current phase state in the execution timeline */\n\tphaseState?: SubagentPhaseState;\n\t/** Effective working directory for the subagent */\n\tcwd?: string;\n\t/** Optional custom agent label */\n\tagent?: string;\n\t/** Optional lock domain key */\n\tlockKey?: string;\n\t/** Isolation mode for this run */\n\tisolation?: \"none\" | \"worktree\";\n\t/** Current active subagent tool (e.g. read, bash, write) */\n\tactiveTool?: string;\n\t/** Number of subagent tool calls started */\n\ttoolCallsStarted?: number;\n\t/** Number of subagent tool calls completed */\n\ttoolCallsCompleted?: number;\n\t/** Number of assistant messages produced inside subagent */\n\tassistantMessages?: number;\n\t/** Queue delay before execution started (ms) */\n\twaitMs?: number;\n\t/** Number of delegated child subtasks launched by this subagent */\n\tdelegatedTasks?: number;\n\t/** Number of delegated child subtasks finished successfully */\n\tdelegatedSucceeded?: number;\n\t/** Number of delegated child subtasks that failed */\n\tdelegatedFailed?: number;\n\t/** Currently active delegated subtask index (1-based) */\n\tdelegateIndex?: number;\n\t/** Total delegated subtasks in the current batch */\n\tdelegateTotal?: number;\n\t/** Currently active delegated subtask description */\n\tdelegateDescription?: string;\n\t/** Currently active delegated subtask profile */\n\tdelegateProfile?: string;\n\t/** Delegate task mini-list with per-item status */\n\tdelegateItems?: SubagentDelegateItem[];\n}\n\ntype DelegateSummary = {\n\ttotal: number;\n\tdone: number;\n\tfailed: number;\n\trunning: number;\n\tpending: number;\n};\n\n/**\n * Format a byte count as a compact human-readable string.\n * Mirrors the formatting conventions used elsewhere in the footer (k/M suffixes).\n */\nfunction formatBytes(bytes: number): string {\n\tif (bytes < 1024) return `${bytes}B`;\n\tif (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)}KB`;\n\treturn `${(bytes / (1024 * 1024)).toFixed(1)}MB`;\n}\n\n/**\n * Format a millisecond duration as a compact human-readable string.\n * Keeps the unit explicit so users can immediately scan the value at a glance.\n */\nfunction formatDuration(ms: number): string {\n\tif (ms < 1000) return `${ms}ms`;\n\tif (ms < 60_000) return `${(ms / 1000).toFixed(1)}s`;\n\tconst minutes = Math.floor(ms / 60_000);\n\tconst seconds = ((ms % 60_000) / 1000).toFixed(0);\n\treturn `${minutes}m ${seconds}s`;\n}\n\nfunction formatElapsedClock(ms: number): string {\n\tconst totalSeconds = Math.max(0, Math.floor(ms / 1000));\n\tconst hours = Math.floor(totalSeconds / 3600);\n\tconst minutes = Math.floor((totalSeconds % 3600) / 60);\n\tconst seconds = totalSeconds % 60;\n\tconst pad2 = (value: number): string => value.toString().padStart(2, \"0\");\n\tif (hours > 0) {\n\t\treturn `${pad2(hours)}:${pad2(minutes)}:${pad2(seconds)}`;\n\t}\n\treturn `${pad2(minutes)}:${pad2(seconds)}`;\n}\n\nfunction shortenPath(path: string): string {\n\tconst home = homedir();\n\treturn path.startsWith(home) ? `~${path.slice(home.length)}` : path;\n}\n\nfunction formatToolProgress(started?: number, completed?: number): string | undefined {\n\tif (typeof started !== \"number\" || started < 0) return undefined;\n\tif (typeof completed === \"number\" && completed >= 0) {\n\t\treturn `tools ${completed}/${started}`;\n\t}\n\treturn `tools ${started}`;\n}\n\nfunction formatSubagentBadge(agent?: string): string {\n\tif (typeof agent !== \"string\") return \"[subagent]\";\n\tconst normalized = agent.trim();\n\tif (!normalized) return \"[subagent]\";\n\treturn `[subagent:${normalized}]`;\n}\n\nfunction renderPhaseTimeline(phaseState: SubagentPhaseState): string {\n\tconst phases: SubagentPhaseState[] = [\"queued\", \"starting\", \"running\", \"responding\"];\n\tconst currentIndex = phases.indexOf(phaseState);\n\tif (currentIndex < 0) return \"\";\n\n\tconst segments = phases.map((phase, index) => {\n\t\tconst marker = index < currentIndex ? \"[x]\" : index === currentIndex ? \"[>]\" : \"[ ]\";\n\t\tconst text = `${marker} ${phase}`;\n\t\tif (index < currentIndex) return theme.fg(\"success\", text);\n\t\tif (index === currentIndex) return theme.fg(\"accent\", text);\n\t\treturn theme.fg(\"muted\", text);\n\t});\n\treturn `${theme.fg(\"muted\", \"flow\")} ${segments.join(theme.fg(\"dim\", \" -> \"))}`;\n}\n\nfunction summarizeDelegates(info: SubagentInfo): DelegateSummary | undefined {\n\tif (Array.isArray(info.delegateItems) && info.delegateItems.length > 0) {\n\t\tlet done = 0;\n\t\tlet failed = 0;\n\t\tlet running = 0;\n\t\tlet pending = 0;\n\t\tfor (const item of info.delegateItems) {\n\t\t\tswitch (item.status) {\n\t\t\t\tcase \"done\":\n\t\t\t\t\tdone += 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"failed\":\n\t\t\t\t\tfailed += 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"running\":\n\t\t\t\t\trunning += 1;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tpending += 1;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn { total: info.delegateItems.length, done, failed, running, pending };\n\t}\n\tif (typeof info.delegatedTasks === \"number\" && info.delegatedTasks > 0) {\n\t\tconst total = info.delegatedTasks;\n\t\tconst done = typeof info.delegatedSucceeded === \"number\" ? Math.max(0, info.delegatedSucceeded) : 0;\n\t\tconst failed = typeof info.delegatedFailed === \"number\" ? Math.max(0, info.delegatedFailed) : 0;\n\t\tconst running = Math.max(0, total - done - failed);\n\t\tconst pending = 0;\n\t\treturn { total, done, failed, running, pending };\n\t}\n\treturn undefined;\n}\n\nfunction formatDelegateSummary(summary: DelegateSummary): string {\n\tconst parts: string[] = [`delegates ${summary.done}/${summary.total} done`];\n\tif (summary.failed > 0) {\n\t\tparts.push(`${summary.failed} failed`);\n\t}\n\tif (summary.running > 0) {\n\t\tparts.push(`${summary.running} running`);\n\t}\n\treturn parts.join(\", \");\n}\n\nfunction selectDelegateItemsForDisplay(items: SubagentDelegateItem[]): {\n\tvisibleItems: SubagentDelegateItem[];\n\tcompacted: boolean;\n\thiddenDonePending: number;\n\toverflow: number;\n} {\n\tconst compactThreshold = 6;\n\tconst maxRows = 5;\n\tif (items.length > compactThreshold) {\n\t\tconst critical = items.filter((item) => item.status === \"running\" || item.status === \"failed\");\n\t\tconst visibleItems = critical.slice(0, maxRows);\n\t\treturn {\n\t\t\tvisibleItems,\n\t\t\tcompacted: true,\n\t\t\thiddenDonePending: Math.max(0, items.length - critical.length),\n\t\t\toverflow: Math.max(0, critical.length - visibleItems.length),\n\t\t};\n\t}\n\tconst visibleItems = items.slice(0, maxRows);\n\treturn {\n\t\tvisibleItems,\n\t\tcompacted: false,\n\t\thiddenDonePending: 0,\n\t\toverflow: Math.max(0, items.length - visibleItems.length),\n\t};\n}\n\n/**\n * Component that surfaces a running or completed subagent (task tool invocation).\n *\n * Visual structure\n * ----------------\n * Line 1 (header): [subagent] <profile> · <description>\n * Line 2 (status):\n * running → ... <phase>\n * @ <cwd> · tool <active> · tools <done>/<started>\n * delegates <done>/<total> done, <failed> failed\n * delegate <i>/<n> · <description> · (<profile>)\n * delegates list with status markers (compact mode on large runs)\n * flow [x] queued -> [>] running -> [ ] responding\n * done → + <outputSize> output, <duration>, tools <done>/<started>, queue <wait>\n * error → x <errorMessage or \"error\">\n *\n * Theming follows the customMessage palette so the block sits visually alongside\n * other agent-injected messages (task plan, skill invocation, custom messages).\n */\nexport class SubagentMessageComponent extends Box {\n\tconstructor(info: SubagentInfo) {\n\t\tsuper(1, 1, (text) => theme.bg(\"customMessageBg\", text));\n\t\tthis.renderContent(info);\n\t}\n\n\t/**\n\t * Replace the rendered content with updated subagent info.\n\t * Call this whenever status, outputLength, durationMs, or errorMessage changes.\n\t */\n\tupdate(info: SubagentInfo): void {\n\t\tthis.clear();\n\t\tthis.renderContent(info);\n\t}\n\n\toverride invalidate(): void {\n\t\tsuper.invalidate();\n\t}\n\n\tprivate renderContent(info: SubagentInfo): void {\n\t\t// --- Header line ---\n\t\t// [subagent] or [subagent:<agent>] <profile> · <description>\n\t\tconst label = theme.fg(\"customMessageLabel\", `\\x1b[1m${formatSubagentBadge(info.agent)}\\x1b[22m`);\n\t\tconst profileBadge = theme.fg(\"accent\", info.profile);\n\t\tconst dot = theme.fg(\"dim\", \" \\u00B7 \"); // middle dot separator\n\t\tconst description = theme.fg(\"customMessageText\", info.description);\n\t\tthis.addChild(new Text(`${label} ${profileBadge}${dot}${description}`, 0, 0));\n\n\t\tthis.addChild(new Spacer(1));\n\n\t\t// --- Status line ---\n\t\tswitch (info.status) {\n\t\t\t\tcase \"running\": {\n\t\t\t\t// Ellipsis prefix signals in-progress work without a spinner dependency\n\t\t\t\tconst indicator = theme.fg(\"accent\", \"...\");\n\t\t\t\tconst phase = info.phase?.trim() ? info.phase.trim() : \"running\";\n\t\t\t\tconst statusText = theme.fg(\"muted\", ` ${phase}`);\n\t\t\t\tthis.addChild(new Text(`${indicator}${statusText}`, 0, 0));\n\n\t\t\t\tconst metadata: string[] = [];\n\t\t\t\tif (info.cwd) {\n\t\t\t\t\tmetadata.push(theme.fg(\"muted\", `@ ${shortenPath(info.cwd)}`));\n\t\t\t\t}\n\t\t\t\tif (info.activeTool) {\n\t\t\t\t\tmetadata.push(theme.fg(\"customMessageText\", `tool ${info.activeTool}`));\n\t\t\t\t}\n\t\t\t\tconst toolProgress = formatToolProgress(info.toolCallsStarted, info.toolCallsCompleted);\n\t\t\t\tif (toolProgress) {\n\t\t\t\t\tmetadata.push(theme.fg(\"muted\", toolProgress));\n\t\t\t\t}\n\t\t\t\tif (typeof info.assistantMessages === \"number\" && info.assistantMessages > 0) {\n\t\t\t\t\tmetadata.push(theme.fg(\"muted\", `msgs ${info.assistantMessages}`));\n\t\t\t\t}\n\t\t\t\tif (info.agent) {\n\t\t\t\t\tmetadata.push(theme.fg(\"muted\", `agent ${info.agent}`));\n\t\t\t\t}\n\t\t\t\tif (typeof info.durationMs === \"number\" && info.durationMs >= 0) {\n\t\t\t\t\tmetadata.push(theme.fg(\"muted\", `elapsed ${formatElapsedClock(info.durationMs)}`));\n\t\t\t\t}\n\t\t\t\tif (info.isolation && info.isolation !== \"none\") {\n\t\t\t\t\tmetadata.push(theme.fg(\"muted\", `iso ${info.isolation}`));\n\t\t\t\t}\n\t\t\t\t\tif (info.lockKey) {\n\t\t\t\t\t\tmetadata.push(theme.fg(\"muted\", `lock ${info.lockKey}`));\n\t\t\t\t\t}\n\t\t\t\t\tif (metadata.length > 0) {\n\t\t\t\t\t\tthis.addChild(new Text(metadata.join(theme.fg(\"dim\", \" \\u00B7 \")), 0, 0));\n\t\t\t\t\t}\n\t\t\t\t\tconst delegateSummary = summarizeDelegates(info);\n\t\t\t\t\tif (delegateSummary) {\n\t\t\t\t\t\tthis.addChild(new Text(theme.fg(\"accent\", formatDelegateSummary(delegateSummary)), 0, 0));\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof info.delegateIndex === \"number\" && info.delegateIndex > 0) {\n\t\t\t\t\t\tconst delegateTotal =\n\t\t\t\t\t\t\ttypeof info.delegateTotal === \"number\" && info.delegateTotal > 0\n\t\t\t\t\t\t\t\t? info.delegateTotal\n\t\t\t\t\t\t\t\t: info.delegateIndex;\n\t\t\t\t\t\tconst delegateParts: string[] = [theme.fg(\"accent\", `delegate ${info.delegateIndex}/${delegateTotal}`)];\n\t\t\t\t\t\tif (typeof info.delegateDescription === \"string\" && info.delegateDescription.trim().length > 0) {\n\t\t\t\t\t\t\tdelegateParts.push(theme.fg(\"customMessageText\", info.delegateDescription.trim()));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof info.delegateProfile === \"string\" && info.delegateProfile.trim().length > 0) {\n\t\t\t\t\t\t\tdelegateParts.push(theme.fg(\"muted\", `(${info.delegateProfile.trim()})`));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.addChild(new Text(delegateParts.join(theme.fg(\"dim\", \" \\u00B7 \")), 0, 0));\n\t\t\t\t\t}\n\t\t\t\t\tif (Array.isArray(info.delegateItems) && info.delegateItems.length > 0) {\n\t\t\t\t\t\tconst selected = selectDelegateItemsForDisplay(info.delegateItems);\n\t\t\t\t\t\tconst headerParts = [theme.fg(\"muted\", \"delegates\")];\n\t\t\t\t\t\tif (selected.compacted) {\n\t\t\t\t\t\t\theaderParts.push(theme.fg(\"accent\", \"compact\"));\n\t\t\t\t\t\t\tif (selected.hiddenDonePending > 0) {\n\t\t\t\t\t\t\t\theaderParts.push(theme.fg(\"muted\", `hidden ${selected.hiddenDonePending} done/pending`));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.addChild(new Text(headerParts.join(theme.fg(\"dim\", \" \\u00B7 \")), 0, 0));\n\t\t\t\t\t\tif (selected.visibleItems.length === 0 && selected.compacted) {\n\t\t\t\t\t\t\tthis.addChild(new Text(theme.fg(\"muted\", \"no running/failed delegates\"), 0, 0));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const item of selected.visibleItems) {\n\t\t\t\t\t\t\tconst marker = (() => {\n\t\t\t\t\t\t\t\tswitch (item.status) {\n\t\t\t\t\t\t\t\t\tcase \"done\":\n\t\t\t\t\t\t\t\t\t\treturn theme.fg(\"success\", \"[x]\");\n\t\t\t\t\t\t\t\t\tcase \"running\":\n\t\t\t\t\t\t\t\t\t\treturn theme.fg(\"accent\", \"[>]\");\n\t\t\t\t\t\t\t\t\tcase \"failed\":\n\t\t\t\t\t\t\t\t\t\treturn theme.fg(\"warning\", \"[!]\");\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn theme.fg(\"muted\", \"[ ]\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\tconst label = `${item.index}. ${item.description} (${item.profile})`;\n\t\t\t\t\t\t\tconst textColor =\n\t\t\t\t\t\t\t\titem.status === \"done\"\n\t\t\t\t\t\t\t\t\t? \"muted\"\n\t\t\t\t\t\t\t\t\t: item.status === \"running\"\n\t\t\t\t\t\t\t\t\t\t? \"customMessageText\"\n\t\t\t\t\t\t\t\t\t\t: item.status === \"failed\"\n\t\t\t\t\t\t\t\t\t\t\t? \"warning\"\n\t\t\t\t\t\t\t\t\t\t\t: \"muted\";\n\t\t\t\t\t\t\tthis.addChild(new Text(`${marker} ${theme.fg(textColor, label)}`, 0, 0));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (selected.overflow > 0) {\n\t\t\t\t\t\t\tthis.addChild(new Text(theme.fg(\"muted\", `... +${selected.overflow} more`), 0, 0));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (info.phaseState) {\n\t\t\t\t\t\tthis.addChild(new Text(renderPhaseTimeline(info.phaseState), 0, 0));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\tcase \"done\": {\n\t\t\t\tconst checkmark = theme.fg(\"success\", \"+\");\n\t\t\t\tconst parts: string[] = [];\n\t\t\t\tif (info.outputLength !== undefined) {\n\t\t\t\t\tparts.push(theme.fg(\"customMessageText\", formatBytes(info.outputLength)) + theme.fg(\"muted\", \" output\"));\n\t\t\t\t}\n\t\t\t\tif (info.durationMs !== undefined) {\n\t\t\t\t\tparts.push(theme.fg(\"muted\", formatDuration(info.durationMs)));\n\t\t\t\t}\n\t\t\t\tconst toolProgress = formatToolProgress(info.toolCallsStarted, info.toolCallsCompleted);\n\t\t\t\tif (toolProgress) {\n\t\t\t\t\tparts.push(theme.fg(\"muted\", toolProgress));\n\t\t\t\t}\n\t\t\t\t\tconst delegateSummary = summarizeDelegates(info);\n\t\t\t\t\tif (delegateSummary) {\n\t\t\t\t\t\tparts.push(theme.fg(\"muted\", `delegates ${delegateSummary.done}/${delegateSummary.total} done`));\n\t\t\t\t\t\tif (delegateSummary.failed > 0) {\n\t\t\t\t\t\t\tparts.push(theme.fg(\"warning\", `${delegateSummary.failed} failed`));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tif (typeof info.waitMs === \"number\" && info.waitMs > 0) {\n\t\t\t\t\tparts.push(theme.fg(\"muted\", `queue ${formatDuration(info.waitMs)}`));\n\t\t\t\t}\n\t\t\t\tconst detail = parts.length > 0 ? \" \" + parts.join(theme.fg(\"dim\", \", \")) : \"\";\n\t\t\t\tthis.addChild(new Text(`${checkmark}${detail}`, 0, 0));\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"error\": {\n\t\t\t\tconst cross = theme.fg(\"error\", \"x\");\n\t\t\t\tconst message = info.errorMessage ? info.errorMessage : \"error\";\n\t\t\t\tconst errorText = theme.fg(\"error\", ` ${message}`);\n\t\t\t\tthis.addChild(new Text(`${cross}${errorText}`, 0, 0));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
@@ -59,6 +59,7 @@ export declare class InteractiveMode {
59
59
  private contractService;
60
60
  private singularService;
61
61
  private singularLastEffectiveContract;
62
+ private swarmActiveRunId;
62
63
  private lastSigintTime;
63
64
  private lastEscapeTime;
64
65
  private changelogMarkdown;
@@ -68,6 +69,7 @@ export declare class InteractiveMode {
68
69
  private streamingMessage;
69
70
  private pendingTools;
70
71
  private subagentComponents;
72
+ private subagentElapsedTimer;
71
73
  private pendingInternalUserDisplayAliases;
72
74
  private pendingAssistantOrchestrationContexts;
73
75
  private activeAssistantOrchestrationContext;
@@ -123,6 +125,7 @@ export declare class InteractiveMode {
123
125
  private getSemanticArgumentCompletions;
124
126
  private getContractArgumentCompletions;
125
127
  private getSingularArgumentCompletions;
128
+ private getSwarmArgumentCompletions;
126
129
  private setupAutocomplete;
127
130
  init(): Promise<void>;
128
131
  private buildStartupHeaderContent;
@@ -262,6 +265,10 @@ export declare class InteractiveMode {
262
265
  private setupKeyHandlers;
263
266
  private handleClipboardImagePaste;
264
267
  private setupEditorSubmitHandler;
268
+ private updateRunningSubagentDisplay;
269
+ private ensureSubagentElapsedTimer;
270
+ private clearSubagentElapsedTimer;
271
+ private stopSubagentElapsedTimerIfIdle;
265
272
  private subscribeToAgent;
266
273
  private handleEvent;
267
274
  /** Extract text content from a user message */
@@ -410,6 +417,9 @@ export declare class InteractiveMode {
410
417
  private toTrimmedStringList;
411
418
  private normalizeSingularImpactAnalysis;
412
419
  private buildSingularContractPromptSection;
420
+ private resolveSingularRepoScaleMode;
421
+ private buildSingularSemanticGuidanceFromStatus;
422
+ private buildSingularSemanticGuidance;
413
423
  private buildSingularAgentPrompt;
414
424
  private extractLabeledValue;
415
425
  private parseSingularListSection;
@@ -446,6 +456,34 @@ export declare class InteractiveMode {
446
456
  private resolveIosmSnapshot;
447
457
  private runIosmRefreshPass;
448
458
  private parseIosmAutomationSlashCommand;
459
+ private getSwarmHelpText;
460
+ private buildSwarmRecommendationFromOrchestrate;
461
+ private isEffectiveContractReady;
462
+ private parseContractListInput;
463
+ private buildAutoDraftContractFromTask;
464
+ private runSwarmContractGuidedInterview;
465
+ private ensureSwarmEffectiveContract;
466
+ private maybeWarnSwarmSemantic;
467
+ private ensureSwarmProjectIndex;
468
+ private parseSwarmCommand;
469
+ private buildSwarmBootstrapState;
470
+ private buildSwarmRunMeta;
471
+ private resolveSwarmTaskProfile;
472
+ private estimateSwarmTaskCostUsd;
473
+ private deriveSwarmTaskDelegateParallelHint;
474
+ private parseSwarmSpawnCandidates;
475
+ private loadSingularAnalysisByRunId;
476
+ private dispatchSwarmTaskWithAgent;
477
+ private executeSwarmRun;
478
+ private runSwarmFromTask;
479
+ private runSwarmFromSingular;
480
+ private loadSwarmRunBundle;
481
+ private computeSwarmCriticalPathLength;
482
+ private computeSwarmDependentCounts;
483
+ private formatSwarmWatch;
484
+ private runSwarmResume;
485
+ private runSwarmRetry;
486
+ private handleSwarmCommand;
449
487
  private parseOrchestrateSlashCommand;
450
488
  private handleOrchestrateSlashCommand;
451
489
  private handleAgentsSlashCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAoB,YAAY,EAAmC,MAAM,qBAAqB,CAAC;AAuD3G,OAAO,EAAE,KAAK,YAAY,EAA2C,MAAM,6BAA6B,CAAC;AAkBzG,OAAO,EAKN,KAAK,UAAU,EAEf,MAAM,yBAAyB,CAAC;AAqhBjC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,UAAU,CAAC,EAAE,UAAU,CAAC;CACxB;AAED,qBAAa,eAAe;IAiK1B,OAAO,CAAC,OAAO;IAhKhB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,wBAAwB,CAAY;IAC5C,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,oBAAoB,CAAmC;IAC/D,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAC,CAAyB;IACjD,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,qBAAqB,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAgB;IACtD,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,4BAA4B,CAAqB;IACzD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,6BAA6B,CAA2B;IAEhE,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,iBAAiB,CAAiC;IAG1D,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,cAAc,CAA+B;IAGrD,OAAO,CAAC,kBAAkB,CAAoD;IAC9E,OAAO,CAAC,gBAAgB,CAA2C;IAGnE,OAAO,CAAC,YAAY,CAA6C;IAGjE,OAAO,CAAC,kBAAkB,CA0BtB;IAGJ,OAAO,CAAC,iCAAiC,CAAyD;IAClG,OAAO,CAAC,qCAAqC,CAAK;IAClD,OAAO,CAAC,mCAAmC,CAAS;IAGpD,OAAO,CAAC,kBAAkB,CAAS;IAGnC,OAAO,CAAC,iBAAiB,CAAS;IAGlC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,UAAU,CAAC,CAAa;IAGhC,OAAO,CAAC,WAAW,CAAC,CAAa;IAGjC,OAAO,CAAC,UAAU,CAAS;IAG3B,OAAO,CAAC,aAAa,CAAiD;IAGtE,OAAO,CAAC,qBAAqB,CAAgC;IAG7D,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,2BAA2B,CAAC,CAAa;IAGjD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,kBAAkB,CAAC,CAAa;IAGxC,OAAO,CAAC,wBAAwB,CAAiC;IAGjE,OAAO,CAAC,iBAAiB,CAAS;IAGlC,OAAO,CAAC,iBAAiB,CAAiD;IAC1E,OAAO,CAAC,uBAAuB,CAAuC;IACtE,OAAO,CAAC,uBAAuB,CAAuC;IAGtE,OAAO,CAAC,iBAAiB,CAAqD;IAC9E,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,mCAAmC,CAAyB;IAGpE,OAAO,CAAC,qBAAqB,CAAuD;IACpF,OAAO,CAAC,qBAAqB,CAAuD;IACpF,OAAO,CAAC,oBAAoB,CAAa;IACzC,OAAO,CAAC,oBAAoB,CAAa;IAGzC,OAAO,CAAC,YAAY,CAA6D;IAGjF,OAAO,CAAC,eAAe,CAAY;IAGnC,OAAO,CAAC,aAAa,CAA+B;IAGpD,OAAO,CAAC,SAAS,CAA6C;IAG9D,OAAO,CAAC,YAAY,CAA6D;IAGjF,OAAO,KAAK,KAAK,GAEhB;IACD,OAAO,KAAK,cAAc,GAEzB;IACD,OAAO,KAAK,eAAe,GAE1B;gBAGA,OAAO,EAAE,YAAY,EACb,OAAO,GAAE,sBAA2B;IAqD7C,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,qBAAqB;YASf,wBAAwB;YAcxB,qBAAqB;IAmDnC,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,wBAAwB;YAQlB,sBAAsB;YA2EtB,6BAA6B;YAqE7B,wBAAwB;IAuHtC,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,4BAA4B;IAsCpC,OAAO,CAAC,8BAA8B;IA2CtC,OAAO,CAAC,8BAA8B;IAkCtC,OAAO,CAAC,8BAA8B;IActC,OAAO,CAAC,iBAAiB;IAgLnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0G3B,OAAO,CAAC,yBAAyB;IA0GjC,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAmE1B;;OAEG;YACW,kBAAkB;IA6BhC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,iBAAiB;IA8BzB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyDzB,OAAO,CAAC,mBAAmB;IAmI3B;;OAEG;YACW,cAAc;IAkG5B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAMnC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmD/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0C1B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAE9C;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,iCAAiC;IAWzC,OAAO,CAAC,oCAAoC;IAO5C;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA4ChC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwC7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;YACW,oBAAoB;YASpB,sBAAsB;IAwBpC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwC1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA0DhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B,oGAAoG;YACtF,mBAAmB;IA8EjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,gBAAgB;YAkFV,yBAAyB;IAsBvC,OAAO,CAAC,wBAAwB;IA6RhC,OAAO,CAAC,gBAAgB;YAMV,WAAW;IA4gBzB,+CAA+C;IAC/C,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,2BAA2B;IAenC;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,gBAAgB;IAwGxB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAkH5B,qBAAqB,IAAI,IAAI;IAiBvB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IASrC,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,WAAW;IAKnB;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAS;YAEjB,QAAQ;IAwBtB;;OAEG;YACW,sBAAsB;IAKpC,OAAO,CAAC,WAAW;YAoBL,WAAW;YA8BX,cAAc;IA+B5B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,YAAY;YAaN,UAAU;IAmBxB,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,6BAA6B;IAkBrC,OAAO,CAAC,kBAAkB;IAmD1B,WAAW,IAAI,IAAI;IAKnB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAMrC,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAMzC,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAoBpD;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,4BAA4B;IAuEpC,OAAO,CAAC,qBAAqB;YAIf,oBAAoB;IAqGlC,OAAO,CAAC,6BAA6B;IAqBrC,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,kBAAkB;YAWZ,oBAAoB;IAgFlC,6DAA6D;IAC7D,OAAO,CAAC,0BAA0B;IAYlC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,uBAAuB;YAOjB,2BAA2B;IAUzC,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,wBAAwB;IA0BhC,OAAO,CAAC,oBAAoB;YAUd,eAAe;YA6Nf,qBAAqB;IA6JnC,OAAO,CAAC,eAAe;IAqEvB,OAAO,CAAC,oBAAoB;YA0Id,kBAAkB;YAwBlB,yBAAyB;YAiEzB,mBAAmB;YA2BnB,kBAAkB;IAahC,iFAAiF;YACnE,4BAA4B;IAO1C,OAAO,CAAC,iBAAiB;YAiCX,kBAAkB;IAsHhC,OAAO,CAAC,uBAAuB;IAmC/B,OAAO,CAAC,gBAAgB;IAgIxB,OAAO,CAAC,mBAAmB;YAmCb,mBAAmB;YA4BnB,iBAAiB;IAiD/B,OAAO,CAAC,sBAAsB;YAQhB,2BAA2B;YAqC3B,eAAe;IA6F7B,OAAO,CAAC,cAAc;IAgDtB,OAAO,CAAC,uBAAuB;IAmC/B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,yBAAyB;IAmCjC,OAAO,CAAC,uBAAuB;YAMjB,iBAAiB;YAuBjB,yBAAyB;YAWzB,mBAAmB;YASnB,sBAAsB;YActB,sBAAsB;YAQtB,wBAAwB;YA2GxB,mBAAmB;IA0IjC,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,yBAAyB;IAkCjC,OAAO,CAAC,wBAAwB;IA8BhC,OAAO,CAAC,0BAA0B;IAuBlC,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,6BAA6B;YAMvB,mCAAmC;YAoBnC,8BAA8B;YA2D9B,sBAAsB;IA2MpC,OAAO,CAAC,kCAAkC;YAQ5B,8BAA8B;YAiC9B,0BAA0B;IA6HxC,OAAO,CAAC,mBAAmB;YA2Bb,qBAAqB;IAyInC,OAAO,CAAC,yBAAyB;IA4BjC,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,iBAAiB;YAeX,sBAAsB;IA6CpC,OAAO,CAAC,2BAA2B;YASrB,iBAAiB;YA0EjB,0BAA0B;YAgF1B,qBAAqB;IA0EnC,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,+BAA+B;IAQvC,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,+BAA+B;IAqBvC,OAAO,CAAC,kCAAkC;IAwB1C,OAAO,CAAC,wBAAwB;IAuEhC,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,wBAAwB;IAiChC,OAAO,CAAC,4BAA4B;IA8DpC,OAAO,CAAC,kCAAkC;YA2C5B,+BAA+B;IA8G7C,OAAO,CAAC,uBAAuB;IA4D/B,OAAO,CAAC,2BAA2B;IAuFnC,OAAO,CAAC,kCAAkC;YAY5B,sBAAsB;IA4CpC,OAAO,CAAC,uBAAuB;YAmBjB,mBAAmB;YA6CnB,qBAAqB;IAsCnC,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,uBAAuB;YAmCjB,qBAAqB;YA0FrB,yBAAyB;YAwGzB,mBAAmB;IAkPjC,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,oBAAoB;YAWd,4BAA4B;IAqS1C,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,+BAA+B;IAiBvC,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,iBAAiB;YAaX,sBAAsB;IAmDpC,OAAO,CAAC,iCAAiC;IAoHzC,OAAO,CAAC,mBAAmB;YAsBb,kBAAkB;IAiChC,OAAO,CAAC,+BAA+B;IAiDvC,OAAO,CAAC,4BAA4B;YA2MtB,6BAA6B;YA0F7B,wBAAwB;IAgItC,OAAO,CAAC,iBAAiB;YAeX,iBAAiB;IAiB/B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,0BAA0B;IAgClC,OAAO,CAAC,sBAAsB;YAiChB,aAAa;YAsBb,eAAe;IAiB7B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,qBAAqB;YASf,iBAAiB;IA2J/B,OAAO,CAAC,8BAA8B;YA2BxB,gCAAgC;IAyE9C,OAAO,CAAC,0BAA0B;YAuBpB,4BAA4B;IA6D1C,OAAO,CAAC,6BAA6B;YA0DvB,gCAAgC;IAiV9C,OAAO,CAAC,yBAAyB;YAkEnB,oCAAoC;YA4JpC,8BAA8B;YAuC9B,0BAA0B;IA0GxC,OAAO,CAAC,uBAAuB;IAuH/B,OAAO,CAAC,+BAA+B;YAqBzB,+BAA+B;IA0D7C,OAAO,CAAC,8BAA8B;YAKxB,iBAAiB;YAyBjB,iCAAiC;YA2BjC,iCAAiC;YAsDjC,mBAAmB;YAiFnB,mBAAmB;YAqCnB,kBAAkB;IA8FhC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,sBAAsB;IAqB9B;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,oBAAoB;YAmHd,kBAAkB;IA4BhC,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,qBAAqB;YAMf,iBAAiB;YAyFjB,oBAAoB;YAYpB,iBAAiB;IAwD/B,IAAI,IAAI,IAAI;CAgBZ"}
1
+ {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}