@ashx-j/lunr 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5042 -0
- package/README.md +691 -0
- package/dist/builtin-extensions/ashxj-spinners.d.ts +3 -0
- package/dist/builtin-extensions/ashxj-spinners.d.ts.map +1 -0
- package/dist/builtin-extensions/ashxj-spinners.js +271 -0
- package/dist/builtin-extensions/ashxj-spinners.js.map +1 -0
- package/dist/builtin-extensions/ashxj-thinking.d.ts +65 -0
- package/dist/builtin-extensions/ashxj-thinking.d.ts.map +1 -0
- package/dist/builtin-extensions/ashxj-thinking.js +308 -0
- package/dist/builtin-extensions/ashxj-thinking.js.map +1 -0
- package/dist/builtin-extensions/ashxj-tui.d.ts +137 -0
- package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -0
- package/dist/builtin-extensions/ashxj-tui.js +579 -0
- package/dist/builtin-extensions/ashxj-tui.js.map +1 -0
- package/dist/builtin-extensions/index.d.ts +11 -0
- package/dist/builtin-extensions/index.d.ts.map +1 -0
- package/dist/builtin-extensions/index.js +62 -0
- package/dist/builtin-extensions/index.js.map +1 -0
- package/dist/builtin-extensions/lunr-behavior.d.ts +43 -0
- package/dist/builtin-extensions/lunr-behavior.d.ts.map +1 -0
- package/dist/builtin-extensions/lunr-behavior.js +201 -0
- package/dist/builtin-extensions/lunr-behavior.js.map +1 -0
- package/dist/builtin-extensions/lunr-cron.d.ts +26 -0
- package/dist/builtin-extensions/lunr-cron.d.ts.map +1 -0
- package/dist/builtin-extensions/lunr-cron.js +346 -0
- package/dist/builtin-extensions/lunr-cron.js.map +1 -0
- package/dist/builtin-extensions/lunr-local-providers/index.d.ts +20 -0
- package/dist/builtin-extensions/lunr-local-providers/index.d.ts.map +1 -0
- package/dist/builtin-extensions/lunr-local-providers/index.js +108 -0
- package/dist/builtin-extensions/lunr-local-providers/index.js.map +1 -0
- package/dist/builtin-extensions/lunr-local-providers/local-servers.d.ts +51 -0
- package/dist/builtin-extensions/lunr-local-providers/local-servers.d.ts.map +1 -0
- package/dist/builtin-extensions/lunr-local-providers/local-servers.js +128 -0
- package/dist/builtin-extensions/lunr-local-providers/local-servers.js.map +1 -0
- package/dist/builtin-extensions/lunr-plan-tools.d.ts +25 -0
- package/dist/builtin-extensions/lunr-plan-tools.d.ts.map +1 -0
- package/dist/builtin-extensions/lunr-plan-tools.js +59 -0
- package/dist/builtin-extensions/lunr-plan-tools.js.map +1 -0
- package/dist/builtin-extensions/lunr-skill-creator/index.d.ts +12 -0
- package/dist/builtin-extensions/lunr-skill-creator/index.d.ts.map +1 -0
- package/dist/builtin-extensions/lunr-skill-creator/index.js +18 -0
- package/dist/builtin-extensions/lunr-skill-creator/index.js.map +1 -0
- package/dist/builtin-extensions/lunr-skill-creator/skills/skill-creator/SKILL.md +68 -0
- package/dist/builtin-extensions/lunr-todos.d.ts +52 -0
- package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -0
- package/dist/builtin-extensions/lunr-todos.js +189 -0
- package/dist/builtin-extensions/lunr-todos.js.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.d.ts +23 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.d.ts.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.js +77 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.js.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/command.d.ts +18 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/command.d.ts.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/command.js +165 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/command.js.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts +19 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js +495 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts +10 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js +857 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.d.ts +57 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.d.ts.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.js +225 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.js.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.d.ts +20 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.d.ts.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.js +75 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.js.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.d.ts +16 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.d.ts.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.js +67 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.js.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts +157 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js +825 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.d.ts +22 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.d.ts.map +1 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.js +64 -0
- package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.js.map +1 -0
- package/dist/builtin-extensions/pi-intercom/broker/broker.d.ts +2 -0
- package/dist/builtin-extensions/pi-intercom/broker/broker.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-intercom/broker/broker.js +541 -0
- package/dist/builtin-extensions/pi-intercom/broker/broker.js.map +1 -0
- package/dist/builtin-extensions/pi-intercom/broker/client.d.ts +39 -0
- package/dist/builtin-extensions/pi-intercom/broker/client.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-intercom/broker/client.js +484 -0
- package/dist/builtin-extensions/pi-intercom/broker/client.js.map +1 -0
- package/dist/builtin-extensions/pi-intercom/broker/framing.d.ts +14 -0
- package/dist/builtin-extensions/pi-intercom/broker/framing.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-intercom/broker/framing.js +74 -0
- package/dist/builtin-extensions/pi-intercom/broker/framing.js.map +1 -0
- package/dist/builtin-extensions/pi-intercom/broker/paths.d.ts +22 -0
- package/dist/builtin-extensions/pi-intercom/broker/paths.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-intercom/broker/paths.js +88 -0
- package/dist/builtin-extensions/pi-intercom/broker/paths.js.map +1 -0
- package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts +27 -0
- package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-intercom/broker/spawn.js +313 -0
- package/dist/builtin-extensions/pi-intercom/broker/spawn.js.map +1 -0
- package/dist/builtin-extensions/pi-intercom/config.d.ts +22 -0
- package/dist/builtin-extensions/pi-intercom/config.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-intercom/config.js +103 -0
- package/dist/builtin-extensions/pi-intercom/config.js.map +1 -0
- package/dist/builtin-extensions/pi-intercom/index.d.ts +3 -0
- package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-intercom/index.js +1800 -0
- package/dist/builtin-extensions/pi-intercom/index.js.map +1 -0
- package/dist/builtin-extensions/pi-intercom/reply-tracker.d.ts +27 -0
- package/dist/builtin-extensions/pi-intercom/reply-tracker.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-intercom/reply-tracker.js +101 -0
- package/dist/builtin-extensions/pi-intercom/reply-tracker.js.map +1 -0
- package/dist/builtin-extensions/pi-intercom/types.d.ts +84 -0
- package/dist/builtin-extensions/pi-intercom/types.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-intercom/types.js +2 -0
- package/dist/builtin-extensions/pi-intercom/types.js.map +1 -0
- package/dist/builtin-extensions/pi-intercom/ui/compose.d.ts +27 -0
- package/dist/builtin-extensions/pi-intercom/ui/compose.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-intercom/ui/compose.js +112 -0
- package/dist/builtin-extensions/pi-intercom/ui/compose.js.map +1 -0
- package/dist/builtin-extensions/pi-intercom/ui/inline-message.d.ts +15 -0
- package/dist/builtin-extensions/pi-intercom/ui/inline-message.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-intercom/ui/inline-message.js +86 -0
- package/dist/builtin-extensions/pi-intercom/ui/inline-message.js.map +1 -0
- package/dist/builtin-extensions/pi-intercom/ui/session-list.d.ts +18 -0
- package/dist/builtin-extensions/pi-intercom/ui/session-list.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-intercom/ui/session-list.js +134 -0
- package/dist/builtin-extensions/pi-intercom/ui/session-list.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.d.ts +81 -0
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.js +273 -0
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts +13 -0
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js +163 -0
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.d.ts +34 -0
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.js +148 -0
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.d.ts +59 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.js +172 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts +25 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/index.js +521 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/index.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts +80 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js +366 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.d.ts +22 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.js +476 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts +141 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js +633 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.d.ts +30 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.js +52 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.d.ts +12 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.js +18 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.d.ts +10 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.js +18 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.d.ts +9 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.js +29 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.d.ts +10 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.js +51 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.d.ts +33 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.js +191 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.d.ts +14 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.js +15 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.d.ts +23 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.js +259 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.d.ts +23 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.js +197 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts +23 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js +131 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.d.ts +18 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.js +87 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.d.ts +34 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.js +347 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.d.ts +20 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.js +166 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.d.ts +22 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.js +228 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.d.ts +19 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.js +143 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.d.ts +20 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.js +98 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.d.ts +22 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.js +150 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.d.ts +18 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.js +211 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.d.ts +44 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.js +188 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.d.ts +58 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.js +260 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts +33 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js +102 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts +38 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js +276 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.d.ts +77 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.js +339 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.d.ts +51 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.js +219 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.js.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.d.ts +45 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.js +30 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/abort.d.ts +3 -0
- package/dist/builtin-extensions/pi-mcp-adapter/abort.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/abort.js +37 -0
- package/dist/builtin-extensions/pi-mcp-adapter/abort.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.d.ts +3 -0
- package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.js +22 -0
- package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts +18 -0
- package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/commands.js +327 -0
- package/dist/builtin-extensions/pi-mcp-adapter/commands.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts +79 -0
- package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/config.js +557 -0
- package/dist/builtin-extensions/pi-mcp-adapter/config.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.d.ts +14 -0
- package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.js +61 -0
- package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts +11 -0
- package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js +374 -0
- package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.d.ts +18 -0
- package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.js +309 -0
- package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/error-signal.d.ts +16 -0
- package/dist/builtin-extensions/pi-mcp-adapter/error-signal.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/error-signal.js +23 -0
- package/dist/builtin-extensions/pi-mcp-adapter/error-signal.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/errors.d.ts +100 -0
- package/dist/builtin-extensions/pi-mcp-adapter/errors.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/errors.js +167 -0
- package/dist/builtin-extensions/pi-mcp-adapter/errors.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.d.ts +10 -0
- package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.js +77 -0
- package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.d.ts +17 -0
- package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js +413 -0
- package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts +3 -0
- package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/index.js +334 -0
- package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts +11 -0
- package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/init.js +296 -0
- package/dist/builtin-extensions/pi-mcp-adapter/init.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.d.ts +30 -0
- package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.js +80 -0
- package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/logger.d.ts +52 -0
- package/dist/builtin-extensions/pi-mcp-adapter/logger.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/logger.js +132 -0
- package/dist/builtin-extensions/pi-mcp-adapter/logger.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts +86 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js +482 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.d.ts +104 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.js +252 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts +45 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js +305 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts +111 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js +302 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.d.ts +59 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.js +325 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.d.ts +64 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.js +777 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.d.ts +77 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.js +490 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.d.ts +32 -0
- package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.js +160 -0
- package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.d.ts +7 -0
- package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.js +388 -0
- package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.d.ts +19 -0
- package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.js +53 -0
- package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.d.ts +13 -0
- package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.js +58 -0
- package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.d.ts +17 -0
- package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.js +17 -0
- package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.d.ts +14 -0
- package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js +853 -0
- package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.d.ts +2 -0
- package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.js +16 -0
- package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.d.ts +16 -0
- package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.js +209 -0
- package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts +58 -0
- package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js +403 -0
- package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts +41 -0
- package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/state.js +2 -0
- package/dist/builtin-extensions/pi-mcp-adapter/state.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.d.ts +11 -0
- package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.js +178 -0
- package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.d.ts +11 -0
- package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.js +66 -0
- package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.d.ts +35 -0
- package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.js +107 -0
- package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/types.d.ts +286 -0
- package/dist/builtin-extensions/pi-mcp-adapter/types.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/types.js +94 -0
- package/dist/builtin-extensions/pi-mcp-adapter/types.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.d.ts +10 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.js +118 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-server.d.ts +37 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-server.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-server.js +524 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-server.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-session.d.ts +27 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-session.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-session.js +311 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-session.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.d.ts +105 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.js +60 -0
- package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/utils.d.ts +18 -0
- package/dist/builtin-extensions/pi-mcp-adapter/utils.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/utils.js +112 -0
- package/dist/builtin-extensions/pi-mcp-adapter/utils.js.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.d.ts +3 -0
- package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.js +15 -0
- package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.js.map +1 -0
- package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts +31 -0
- package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-ollama-cloud/index.js +120 -0
- package/dist/builtin-extensions/pi-ollama-cloud/index.js.map +1 -0
- package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts +49 -0
- package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-ollama-cloud/models.generated.d.ts +3 -0
- package/dist/builtin-extensions/pi-ollama-cloud/models.generated.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-ollama-cloud/models.generated.js +1135 -0
- package/dist/builtin-extensions/pi-ollama-cloud/models.generated.js.map +1 -0
- package/dist/builtin-extensions/pi-ollama-cloud/models.js +239 -0
- package/dist/builtin-extensions/pi-ollama-cloud/models.js.map +1 -0
- package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.d.ts +40 -0
- package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.js +80 -0
- package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.js.map +1 -0
- package/dist/builtin-extensions/pi-ollama-cloud/utils.d.ts +9 -0
- package/dist/builtin-extensions/pi-ollama-cloud/utils.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-ollama-cloud/utils.js +52 -0
- package/dist/builtin-extensions/pi-ollama-cloud/utils.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/args.d.ts +56 -0
- package/dist/builtin-extensions/pi-prompt-template-model/args.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/args.js +555 -0
- package/dist/builtin-extensions/pi-prompt-template-model/args.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.d.ts +22 -0
- package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.js +249 -0
- package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.d.ts +20 -0
- package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.js +102 -0
- package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.d.ts +30 -0
- package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.js +260 -0
- package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/index.d.ts +3 -0
- package/dist/builtin-extensions/pi-prompt-template-model/index.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/index.js +1403 -0
- package/dist/builtin-extensions/pi-prompt-template-model/index.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.d.ts +8 -0
- package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.js +164 -0
- package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/model-selection.d.ts +22 -0
- package/dist/builtin-extensions/pi-prompt-template-model/model-selection.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/model-selection.js +82 -0
- package/dist/builtin-extensions/pi-prompt-template-model/model-selection.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/notifications.d.ts +6 -0
- package/dist/builtin-extensions/pi-prompt-template-model/notifications.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/notifications.js +21 -0
- package/dist/builtin-extensions/pi-prompt-template-model/notifications.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.d.ts +24 -0
- package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.js +56 -0
- package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts +80 -0
- package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js +1234 -0
- package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.d.ts +11 -0
- package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.js +31 -0
- package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.d.ts +43 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.js +177 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.d.ts +97 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.js +64 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.d.ts +48 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.js +550 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.d.ts +8 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.js +230 -0
- package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.d.ts +10 -0
- package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.js +226 -0
- package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.js.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts +17 -0
- package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js +201 -0
- package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/agents/context-builder.md +46 -0
- package/dist/builtin-extensions/pi-subagents/agents/deep-researcher.md +36 -0
- package/dist/builtin-extensions/pi-subagents/agents/delegate.md +12 -0
- package/dist/builtin-extensions/pi-subagents/agents/oracle.md +73 -0
- package/dist/builtin-extensions/pi-subagents/agents/planner.md +55 -0
- package/dist/builtin-extensions/pi-subagents/agents/research-writer.md +37 -0
- package/dist/builtin-extensions/pi-subagents/agents/researcher.md +52 -0
- package/dist/builtin-extensions/pi-subagents/agents/reviewer.md +79 -0
- package/dist/builtin-extensions/pi-subagents/agents/scout.md +50 -0
- package/dist/builtin-extensions/pi-subagents/agents/worker.md +55 -0
- package/dist/builtin-extensions/pi-subagents/index.d.ts +2 -0
- package/dist/builtin-extensions/pi-subagents/index.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/index.js +3 -0
- package/dist/builtin-extensions/pi-subagents/index.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts +20 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js +1273 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.d.ts +49 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.js +252 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.d.ts +3 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.js +6 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.d.ts +3 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.js +23 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.d.ts +8 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.js +143 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agents.d.ts +176 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agents.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agents.js +1326 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/agents.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.d.ts +7 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.js +307 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.d.ts +11 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.js +84 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/identity.d.ts +8 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/identity.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/identity.js +30 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/identity.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.d.ts +35 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.js +151 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/skills.d.ts +33 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/skills.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/skills.js +674 -0
- package/dist/builtin-extensions/pi-subagents/src/agents/skills.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/api/background-work.d.ts +35 -0
- package/dist/builtin-extensions/pi-subagents/src/api/background-work.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/api/background-work.js +162 -0
- package/dist/builtin-extensions/pi-subagents/src/api/background-work.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/api/delegation.d.ts +113 -0
- package/dist/builtin-extensions/pi-subagents/src/api/delegation.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/api/delegation.js +10 -0
- package/dist/builtin-extensions/pi-subagents/src/api/delegation.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.d.ts +34 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js +125 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/config.d.ts +6 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/config.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/config.js +37 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/config.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.d.ts +21 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.js +70 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts +33 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js +174 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts +3 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js +175 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +17 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js +577 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/rpc.d.ts +57 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/rpc.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/rpc.js +291 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/rpc.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +225 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +301 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.d.ts +15 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.js +23 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +12 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +225 -0
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts +35 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js +144 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts +36 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +626 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts +31 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js +331 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.d.ts +131 -0
- package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.js +491 -0
- package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +169 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +1065 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts +20 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js +500 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts +64 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +525 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.d.ts +96 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.js +336 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.d.ts +15 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.js +47 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.d.ts +31 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.js +260 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts +35 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js +146 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.d.ts +52 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.js +119 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.d.ts +14 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.js +55 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.d.ts +182 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.js +487 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.d.ts +43 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.js +518 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +63 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +202 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.d.ts +4 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.js +47 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts +22 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +247 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.d.ts +23 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.js +91 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.d.ts +24 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js +453 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts +48 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js +473 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.d.ts +34 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.js +351 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.d.ts +44 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.js +228 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +2 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +3513 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts +95 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js +387 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts +8 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js +6 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.d.ts +7 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.js +34 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts +4 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +24 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.d.ts +23 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.js +230 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts +127 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.js +1161 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts +81 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +1014 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts +10 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +1374 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +87 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +3358 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts +64 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js +1122 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.d.ts +19 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.js +106 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.d.ts +27 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.js +108 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts +19 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js +51 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.d.ts +49 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js +274 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.d.ts +33 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.js +152 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.d.ts +18 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.js +326 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +83 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +291 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.d.ts +49 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.js +98 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.d.ts +121 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.js +881 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.d.ts +11 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.js +50 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.d.ts +19 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.js +109 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +101 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js +112 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +80 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +252 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.d.ts +25 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.js +111 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.d.ts +11 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.js +57 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.d.ts +54 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.js +244 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.d.ts +50 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.js +202 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.d.ts +22 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.js +67 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.d.ts +35 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.js +187 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts +22 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +438 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts +35 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js +154 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.d.ts +13 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.js +51 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.d.ts +16 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.js +74 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.d.ts +14 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.js +66 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.d.ts +30 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.js +200 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.d.ts +49 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.js +473 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.d.ts +13 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.js +104 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.d.ts +17 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.js +68 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.d.ts +36 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.js +173 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.d.ts +11 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.js +26 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.d.ts +44 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.js +158 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts +34 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js +128 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.d.ts +20 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.js +59 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/model-info.d.ts +31 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/model-info.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/model-info.js +68 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/model-info.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.d.ts +17 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.js +72 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.d.ts +7 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.js +7 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.d.ts +3 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.js +49 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts +136 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/settings.js +285 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/settings.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/status-format.d.ts +10 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/status-format.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/status-format.js +61 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/status-format.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +1101 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js +221 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts +52 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/utils.js +562 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/utils.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts +149 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js +321 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.d.ts +11 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.js +102 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.d.ts +25 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.js +200 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +23 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +305 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.d.ts +31 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.js +117 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +51 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +1531 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.d.ts +22 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.js +246 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/tui/fleet.d.ts +78 -0
- package/dist/builtin-extensions/pi-subagents/src/tui/fleet.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/tui/fleet.js +401 -0
- package/dist/builtin-extensions/pi-subagents/src/tui/fleet.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.d.ts +13 -0
- package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.js +74 -0
- package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +35 -0
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js +1687 -0
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.d.ts +8 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.js +123 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.d.ts +58 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.js +160 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.d.ts +34 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.js +96 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.d.ts +18 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.js +485 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.d.ts +21 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.js +151 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.d.ts +4 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.js +111 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts +10 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js +407 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/render.d.ts +12 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/render.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/render.js +55 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/render.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts +29 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js +245 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts +141 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js +647 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.d.ts +30 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.js +486 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts +18 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js +150 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.d.ts +10 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.js +159 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/types.d.ts +143 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/types.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/types.js +31 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/types.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.d.ts +8 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.js +62 -0
- package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.js.map +1 -0
- package/dist/builtin-extensions/pi-tps.d.ts +3 -0
- package/dist/builtin-extensions/pi-tps.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-tps.js +89 -0
- package/dist/builtin-extensions/pi-tps.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/activity.d.ts +34 -0
- package/dist/builtin-extensions/pi-web-access/activity.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/activity.js +68 -0
- package/dist/builtin-extensions/pi-web-access/activity.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/brave.d.ts +4 -0
- package/dist/builtin-extensions/pi-web-access/brave.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/brave.js +185 -0
- package/dist/builtin-extensions/pi-web-access/brave.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/chrome-cookies.d.ts +9 -0
- package/dist/builtin-extensions/pi-web-access/chrome-cookies.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/chrome-cookies.js +299 -0
- package/dist/builtin-extensions/pi-web-access/chrome-cookies.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/curator-page.d.ts +13 -0
- package/dist/builtin-extensions/pi-web-access/curator-page.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/curator-page.js +3382 -0
- package/dist/builtin-extensions/pi-web-access/curator-page.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/curator-server.d.ts +71 -0
- package/dist/builtin-extensions/pi-web-access/curator-server.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/curator-server.js +604 -0
- package/dist/builtin-extensions/pi-web-access/curator-server.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/exa.d.ts +10 -0
- package/dist/builtin-extensions/pi-web-access/exa.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/exa.js +391 -0
- package/dist/builtin-extensions/pi-web-access/exa.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/extract.d.ts +48 -0
- package/dist/builtin-extensions/pi-web-access/extract.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/extract.js +619 -0
- package/dist/builtin-extensions/pi-web-access/extract.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/fetch-params.d.ts +21 -0
- package/dist/builtin-extensions/pi-web-access/fetch-params.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/fetch-params.js +44 -0
- package/dist/builtin-extensions/pi-web-access/fetch-params.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/gemini-api.d.ts +18 -0
- package/dist/builtin-extensions/pi-web-access/gemini-api.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/gemini-api.js +120 -0
- package/dist/builtin-extensions/pi-web-access/gemini-api.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/gemini-search.d.ts +14 -0
- package/dist/builtin-extensions/pi-web-access/gemini-search.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/gemini-search.js +371 -0
- package/dist/builtin-extensions/pi-web-access/gemini-search.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/gemini-url-context.d.ts +4 -0
- package/dist/builtin-extensions/pi-web-access/gemini-url-context.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/gemini-url-context.js +101 -0
- package/dist/builtin-extensions/pi-web-access/gemini-url-context.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/gemini-web-config.d.ts +4 -0
- package/dist/builtin-extensions/pi-web-access/gemini-web-config.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/gemini-web-config.js +43 -0
- package/dist/builtin-extensions/pi-web-access/gemini-web-config.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/gemini-web.d.ts +12 -0
- package/dist/builtin-extensions/pi-web-access/gemini-web.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/gemini-web.js +331 -0
- package/dist/builtin-extensions/pi-web-access/gemini-web.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/github-api.d.ts +7 -0
- package/dist/builtin-extensions/pi-web-access/github-api.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/github-api.js +161 -0
- package/dist/builtin-extensions/pi-web-access/github-api.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/github-extract.d.ts +13 -0
- package/dist/builtin-extensions/pi-web-access/github-extract.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/github-extract.js +558 -0
- package/dist/builtin-extensions/pi-web-access/github-extract.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/index.d.ts +3 -0
- package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/index.js +2347 -0
- package/dist/builtin-extensions/pi-web-access/index.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/openai-search.d.ts +13 -0
- package/dist/builtin-extensions/pi-web-access/openai-search.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/openai-search.js +374 -0
- package/dist/builtin-extensions/pi-web-access/openai-search.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/parallel.d.ts +12 -0
- package/dist/builtin-extensions/pi-web-access/parallel.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/parallel.js +316 -0
- package/dist/builtin-extensions/pi-web-access/parallel.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/pdf-extract.d.ts +26 -0
- package/dist/builtin-extensions/pi-web-access/pdf-extract.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/pdf-extract.js +150 -0
- package/dist/builtin-extensions/pi-web-access/pdf-extract.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/perplexity.d.ts +20 -0
- package/dist/builtin-extensions/pi-web-access/perplexity.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/perplexity.js +150 -0
- package/dist/builtin-extensions/pi-web-access/perplexity.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/render-search-error.d.ts +57 -0
- package/dist/builtin-extensions/pi-web-access/render-search-error.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/render-search-error.js +131 -0
- package/dist/builtin-extensions/pi-web-access/render-search-error.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/rsc-extract.d.ts +12 -0
- package/dist/builtin-extensions/pi-web-access/rsc-extract.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/rsc-extract.js +330 -0
- package/dist/builtin-extensions/pi-web-access/rsc-extract.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/ssrf-protection.d.ts +24 -0
- package/dist/builtin-extensions/pi-web-access/ssrf-protection.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/ssrf-protection.js +255 -0
- package/dist/builtin-extensions/pi-web-access/ssrf-protection.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/storage.d.ts +25 -0
- package/dist/builtin-extensions/pi-web-access/storage.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/storage.js +49 -0
- package/dist/builtin-extensions/pi-web-access/storage.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/summary-model-scope.d.ts +13 -0
- package/dist/builtin-extensions/pi-web-access/summary-model-scope.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/summary-model-scope.js +86 -0
- package/dist/builtin-extensions/pi-web-access/summary-model-scope.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/summary-review.d.ts +21 -0
- package/dist/builtin-extensions/pi-web-access/summary-review.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/summary-review.js +278 -0
- package/dist/builtin-extensions/pi-web-access/summary-review.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/tavily.d.ts +8 -0
- package/dist/builtin-extensions/pi-web-access/tavily.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/tavily.js +184 -0
- package/dist/builtin-extensions/pi-web-access/tavily.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/utils.d.ts +12 -0
- package/dist/builtin-extensions/pi-web-access/utils.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/utils.js +61 -0
- package/dist/builtin-extensions/pi-web-access/utils.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/video-extract.d.ts +14 -0
- package/dist/builtin-extensions/pi-web-access/video-extract.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/video-extract.js +324 -0
- package/dist/builtin-extensions/pi-web-access/video-extract.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/youtube-extract.d.ts +27 -0
- package/dist/builtin-extensions/pi-web-access/youtube-extract.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/youtube-extract.js +282 -0
- package/dist/builtin-extensions/pi-web-access/youtube-extract.js.map +1 -0
- package/dist/builtin-extensions/simple-pi-memory.d.ts +55 -0
- package/dist/builtin-extensions/simple-pi-memory.d.ts.map +1 -0
- package/dist/builtin-extensions/simple-pi-memory.js +239 -0
- package/dist/builtin-extensions/simple-pi-memory.js.map +1 -0
- package/dist/bun/cli.d.ts +3 -0
- package/dist/bun/cli.d.ts.map +1 -0
- package/dist/bun/cli.js +11 -0
- package/dist/bun/cli.js.map +1 -0
- package/dist/bun/register-bedrock.d.ts +2 -0
- package/dist/bun/register-bedrock.d.ts.map +1 -0
- package/dist/bun/register-bedrock.js +4 -0
- package/dist/bun/register-bedrock.js.map +1 -0
- package/dist/bun/restore-sandbox-env.d.ts +17 -0
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
- package/dist/bun/restore-sandbox-env.js +36 -0
- package/dist/bun/restore-sandbox-env.js.map +1 -0
- package/dist/catalog/models.json +1 -0
- package/dist/catalog/providers/amazon-bedrock.json +1 -0
- package/dist/catalog/providers/ant-ling.json +1 -0
- package/dist/catalog/providers/anthropic.json +1 -0
- package/dist/catalog/providers/azure-openai-responses.json +1 -0
- package/dist/catalog/providers/cerebras.json +1 -0
- package/dist/catalog/providers/cloudflare-ai-gateway.json +1 -0
- package/dist/catalog/providers/cloudflare-workers-ai.json +1 -0
- package/dist/catalog/providers/deepseek.json +1 -0
- package/dist/catalog/providers/fireworks.json +1 -0
- package/dist/catalog/providers/github-copilot.json +1 -0
- package/dist/catalog/providers/google-vertex.json +1 -0
- package/dist/catalog/providers/google.json +1 -0
- package/dist/catalog/providers/groq.json +1 -0
- package/dist/catalog/providers/huggingface.json +1 -0
- package/dist/catalog/providers/kimi-coding.json +1 -0
- package/dist/catalog/providers/minimax-cn.json +1 -0
- package/dist/catalog/providers/minimax.json +1 -0
- package/dist/catalog/providers/mistral.json +1 -0
- package/dist/catalog/providers/moonshotai-cn.json +1 -0
- package/dist/catalog/providers/moonshotai.json +1 -0
- package/dist/catalog/providers/nvidia.json +1 -0
- package/dist/catalog/providers/openai-codex.json +1 -0
- package/dist/catalog/providers/openai.json +1 -0
- package/dist/catalog/providers/opencode-go.json +1 -0
- package/dist/catalog/providers/opencode.json +1 -0
- package/dist/catalog/providers/openrouter.json +1 -0
- package/dist/catalog/providers/qwen-cloud-cn.json +1 -0
- package/dist/catalog/providers/qwen-cloud.json +1 -0
- package/dist/catalog/providers/qwen-token-plan-cn.json +1 -0
- package/dist/catalog/providers/qwen-token-plan.json +1 -0
- package/dist/catalog/providers/together.json +1 -0
- package/dist/catalog/providers/vercel-ai-gateway.json +1 -0
- package/dist/catalog/providers/xai.json +1 -0
- package/dist/catalog/providers/xiaomi-token-plan-ams.json +1 -0
- package/dist/catalog/providers/xiaomi-token-plan-cn.json +1 -0
- package/dist/catalog/providers/xiaomi-token-plan-sgp.json +1 -0
- package/dist/catalog/providers/xiaomi.json +1 -0
- package/dist/catalog/providers/zai-coding-cn.json +1 -0
- package/dist/catalog/providers/zai.json +1 -0
- package/dist/catalog/providers.json +1 -0
- package/dist/catalog/publication.json +6 -0
- package/dist/cli/args.d.ts +57 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +381 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/config-selector.d.ts +16 -0
- package/dist/cli/config-selector.d.ts.map +1 -0
- package/dist/cli/config-selector.js +31 -0
- package/dist/cli/config-selector.js.map +1 -0
- package/dist/cli/file-processor.d.ts +15 -0
- package/dist/cli/file-processor.d.ts.map +1 -0
- package/dist/cli/file-processor.js +70 -0
- package/dist/cli/file-processor.js.map +1 -0
- package/dist/cli/initial-message.d.ts +18 -0
- package/dist/cli/initial-message.d.ts.map +1 -0
- package/dist/cli/initial-message.js +22 -0
- package/dist/cli/initial-message.js.map +1 -0
- package/dist/cli/install-cli.d.ts +13 -0
- package/dist/cli/install-cli.d.ts.map +1 -0
- package/dist/cli/install-cli.js +352 -0
- package/dist/cli/install-cli.js.map +1 -0
- package/dist/cli/list-models.d.ts +9 -0
- package/dist/cli/list-models.d.ts.map +1 -0
- package/dist/cli/list-models.js +98 -0
- package/dist/cli/list-models.js.map +1 -0
- package/dist/cli/project-trust.d.ts +10 -0
- package/dist/cli/project-trust.d.ts.map +1 -0
- package/dist/cli/project-trust.js +48 -0
- package/dist/cli/project-trust.js.map +1 -0
- package/dist/cli/read-secret.d.ts +6 -0
- package/dist/cli/read-secret.d.ts.map +1 -0
- package/dist/cli/read-secret.js +62 -0
- package/dist/cli/read-secret.js.map +1 -0
- package/dist/cli/session-picker.d.ts +10 -0
- package/dist/cli/session-picker.d.ts.map +1 -0
- package/dist/cli/session-picker.js +36 -0
- package/dist/cli/session-picker.js.map +1 -0
- package/dist/cli/startup-ui.d.ts +20 -0
- package/dist/cli/startup-ui.d.ts.map +1 -0
- package/dist/cli/startup-ui.js +190 -0
- package/dist/cli/startup-ui.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +18 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +84 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +211 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-session-runtime.d.ts +119 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -0
- package/dist/core/agent-session-runtime.js +306 -0
- package/dist/core/agent-session-runtime.js.map +1 -0
- package/dist/core/agent-session-services.d.ts +85 -0
- package/dist/core/agent-session-services.d.ts.map +1 -0
- package/dist/core/agent-session-services.js +120 -0
- package/dist/core/agent-session-services.js.map +1 -0
- package/dist/core/agent-session.d.ts +650 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +2797 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/auth-guidance.d.ts +5 -0
- package/dist/core/auth-guidance.d.ts.map +1 -0
- package/dist/core/auth-guidance.js +21 -0
- package/dist/core/auth-guidance.js.map +1 -0
- package/dist/core/auth-storage.d.ts +56 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +229 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/bash-executor.d.ts +32 -0
- package/dist/core/bash-executor.d.ts.map +1 -0
- package/dist/core/bash-executor.js +111 -0
- package/dist/core/bash-executor.js.map +1 -0
- package/dist/core/cache-stats.d.ts +49 -0
- package/dist/core/cache-stats.d.ts.map +1 -0
- package/dist/core/cache-stats.js +101 -0
- package/dist/core/cache-stats.js.map +1 -0
- package/dist/core/catalog-merge.d.ts +46 -0
- package/dist/core/catalog-merge.d.ts.map +1 -0
- package/dist/core/catalog-merge.js +128 -0
- package/dist/core/catalog-merge.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +92 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/core/compaction/branch-summarization.js +249 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -0
- package/dist/core/compaction/compaction.d.ts +121 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -0
- package/dist/core/compaction/compaction.js +600 -0
- package/dist/core/compaction/compaction.js.map +1 -0
- package/dist/core/compaction/index.d.ts +7 -0
- package/dist/core/compaction/index.d.ts.map +1 -0
- package/dist/core/compaction/index.js +7 -0
- package/dist/core/compaction/index.js.map +1 -0
- package/dist/core/compaction/utils.d.ts +38 -0
- package/dist/core/compaction/utils.d.ts.map +1 -0
- package/dist/core/compaction/utils.js +153 -0
- package/dist/core/compaction/utils.js.map +1 -0
- package/dist/core/context-breakdown.d.ts +67 -0
- package/dist/core/context-breakdown.d.ts.map +1 -0
- package/dist/core/context-breakdown.js +116 -0
- package/dist/core/context-breakdown.js.map +1 -0
- package/dist/core/cron/fire-guard.d.ts +16 -0
- package/dist/core/cron/fire-guard.d.ts.map +1 -0
- package/dist/core/cron/fire-guard.js +24 -0
- package/dist/core/cron/fire-guard.js.map +1 -0
- package/dist/core/cron/jobs.d.ts +162 -0
- package/dist/core/cron/jobs.d.ts.map +1 -0
- package/dist/core/cron/jobs.js +545 -0
- package/dist/core/cron/jobs.js.map +1 -0
- package/dist/core/cron/origin-context.d.ts +22 -0
- package/dist/core/cron/origin-context.d.ts.map +1 -0
- package/dist/core/cron/origin-context.js +22 -0
- package/dist/core/cron/origin-context.js.map +1 -0
- package/dist/core/cron/scheduler.d.ts +51 -0
- package/dist/core/cron/scheduler.d.ts.map +1 -0
- package/dist/core/cron/scheduler.js +165 -0
- package/dist/core/cron/scheduler.js.map +1 -0
- package/dist/core/customize.d.ts +31 -0
- package/dist/core/customize.d.ts.map +1 -0
- package/dist/core/customize.js +54 -0
- package/dist/core/customize.js.map +1 -0
- package/dist/core/defaults.d.ts +3 -0
- package/dist/core/defaults.d.ts.map +1 -0
- package/dist/core/defaults.js +2 -0
- package/dist/core/defaults.js.map +1 -0
- package/dist/core/diagnostics.d.ts +15 -0
- package/dist/core/diagnostics.d.ts.map +1 -0
- package/dist/core/diagnostics.js +2 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/event-bus.d.ts +9 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +25 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/exec.d.ts +29 -0
- package/dist/core/exec.d.ts.map +1 -0
- package/dist/core/exec.js +75 -0
- package/dist/core/exec.js.map +1 -0
- package/dist/core/experimental.d.ts +2 -0
- package/dist/core/experimental.d.ts.map +1 -0
- package/dist/core/experimental.js +4 -0
- package/dist/core/experimental.js.map +1 -0
- package/dist/core/export-html/ansi-to-html.d.ts +22 -0
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
- package/dist/core/export-html/ansi-to-html.js +249 -0
- package/dist/core/export-html/ansi-to-html.js.map +1 -0
- package/dist/core/export-html/index.d.ts +37 -0
- package/dist/core/export-html/index.d.ts.map +1 -0
- package/dist/core/export-html/index.js +226 -0
- package/dist/core/export-html/index.js.map +1 -0
- package/dist/core/export-html/template.css +1066 -0
- package/dist/core/export-html/template.html +55 -0
- package/dist/core/export-html/template.js +1864 -0
- package/dist/core/export-html/tool-renderer.d.ts +34 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/core/export-html/tool-renderer.js +108 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -0
- package/dist/core/export-html/vendor/highlight.min.js +1213 -0
- package/dist/core/export-html/vendor/marked.min.js +78 -0
- package/dist/core/extensions/index.d.ts +12 -0
- package/dist/core/extensions/index.d.ts.map +1 -0
- package/dist/core/extensions/index.js +9 -0
- package/dist/core/extensions/index.js.map +1 -0
- package/dist/core/extensions/loader.d.ts +23 -0
- package/dist/core/extensions/loader.d.ts.map +1 -0
- package/dist/core/extensions/loader.js +547 -0
- package/dist/core/extensions/loader.js.map +1 -0
- package/dist/core/extensions/runner.d.ts +170 -0
- package/dist/core/extensions/runner.d.ts.map +1 -0
- package/dist/core/extensions/runner.js +923 -0
- package/dist/core/extensions/runner.js.map +1 -0
- package/dist/core/extensions/types.d.ts +1247 -0
- package/dist/core/extensions/types.d.ts.map +1 -0
- package/dist/core/extensions/types.js +45 -0
- package/dist/core/extensions/types.js.map +1 -0
- package/dist/core/extensions/wrapper.d.ts +20 -0
- package/dist/core/extensions/wrapper.d.ts.map +1 -0
- package/dist/core/extensions/wrapper.js +41 -0
- package/dist/core/extensions/wrapper.js.map +1 -0
- package/dist/core/footer-data-provider.d.ts +54 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -0
- package/dist/core/footer-data-provider.js +338 -0
- package/dist/core/footer-data-provider.js.map +1 -0
- package/dist/core/http-dispatcher.d.ts +22 -0
- package/dist/core/http-dispatcher.d.ts.map +1 -0
- package/dist/core/http-dispatcher.js +91 -0
- package/dist/core/http-dispatcher.js.map +1 -0
- package/dist/core/index.d.ts +13 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/injected-prompt.d.ts +20 -0
- package/dist/core/injected-prompt.d.ts.map +1 -0
- package/dist/core/injected-prompt.js +64 -0
- package/dist/core/injected-prompt.js.map +1 -0
- package/dist/core/install-features.d.ts +106 -0
- package/dist/core/install-features.d.ts.map +1 -0
- package/dist/core/install-features.js +392 -0
- package/dist/core/install-features.js.map +1 -0
- package/dist/core/install-layout.d.ts +18 -0
- package/dist/core/install-layout.d.ts.map +1 -0
- package/dist/core/install-layout.js +54 -0
- package/dist/core/install-layout.js.map +1 -0
- package/dist/core/keybindings.d.ts +373 -0
- package/dist/core/keybindings.d.ts.map +1 -0
- package/dist/core/keybindings.js +309 -0
- package/dist/core/keybindings.js.map +1 -0
- package/dist/core/live-catalog.d.ts +74 -0
- package/dist/core/live-catalog.d.ts.map +1 -0
- package/dist/core/live-catalog.js +351 -0
- package/dist/core/live-catalog.js.map +1 -0
- package/dist/core/memory-cap.d.ts +27 -0
- package/dist/core/memory-cap.d.ts.map +1 -0
- package/dist/core/memory-cap.js +32 -0
- package/dist/core/memory-cap.js.map +1 -0
- package/dist/core/messages.d.ts +77 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +123 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/model-config-writer.d.ts +24 -0
- package/dist/core/model-config-writer.d.ts.map +1 -0
- package/dist/core/model-config-writer.js +84 -0
- package/dist/core/model-config-writer.js.map +1 -0
- package/dist/core/model-config.d.ts +512 -0
- package/dist/core/model-config.d.ts.map +1 -0
- package/dist/core/model-config.js +243 -0
- package/dist/core/model-config.js.map +1 -0
- package/dist/core/model-registry.d.ts +39 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +89 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +121 -0
- package/dist/core/model-resolver.d.ts.map +1 -0
- package/dist/core/model-resolver.js +536 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/model-runtime.d.ts +115 -0
- package/dist/core/model-runtime.d.ts.map +1 -0
- package/dist/core/model-runtime.js +640 -0
- package/dist/core/model-runtime.js.map +1 -0
- package/dist/core/model-tiers.d.ts +34 -0
- package/dist/core/model-tiers.d.ts.map +1 -0
- package/dist/core/model-tiers.js +53 -0
- package/dist/core/model-tiers.js.map +1 -0
- package/dist/core/models-store.d.ts +17 -0
- package/dist/core/models-store.d.ts.map +1 -0
- package/dist/core/models-store.js +45 -0
- package/dist/core/models-store.js.map +1 -0
- package/dist/core/official-catalog.d.ts +72 -0
- package/dist/core/official-catalog.d.ts.map +1 -0
- package/dist/core/official-catalog.js +370 -0
- package/dist/core/official-catalog.js.map +1 -0
- package/dist/core/output-guard.d.ts +7 -0
- package/dist/core/output-guard.d.ts.map +1 -0
- package/dist/core/output-guard.js +89 -0
- package/dist/core/output-guard.js.map +1 -0
- package/dist/core/package-manager.d.ts +198 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +2005 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/permission-mode.d.ts +19 -0
- package/dist/core/permission-mode.d.ts.map +1 -0
- package/dist/core/permission-mode.js +26 -0
- package/dist/core/permission-mode.js.map +1 -0
- package/dist/core/permissions.d.ts +99 -0
- package/dist/core/permissions.d.ts.map +1 -0
- package/dist/core/permissions.js +323 -0
- package/dist/core/permissions.js.map +1 -0
- package/dist/core/plan-mode.d.ts +37 -0
- package/dist/core/plan-mode.d.ts.map +1 -0
- package/dist/core/plan-mode.js +388 -0
- package/dist/core/plan-mode.js.map +1 -0
- package/dist/core/process-registry.d.ts +40 -0
- package/dist/core/process-registry.d.ts.map +1 -0
- package/dist/core/process-registry.js +190 -0
- package/dist/core/process-registry.js.map +1 -0
- package/dist/core/project-trust.d.ts +15 -0
- package/dist/core/project-trust.d.ts.map +1 -0
- package/dist/core/project-trust.js +59 -0
- package/dist/core/project-trust.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +53 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +236 -0
- package/dist/core/prompt-templates.js.map +1 -0
- package/dist/core/provider-attribution.d.ts +4 -0
- package/dist/core/provider-attribution.d.ts.map +1 -0
- package/dist/core/provider-attribution.js +31 -0
- package/dist/core/provider-attribution.js.map +1 -0
- package/dist/core/provider-composer.d.ts +55 -0
- package/dist/core/provider-composer.d.ts.map +1 -0
- package/dist/core/provider-composer.js +375 -0
- package/dist/core/provider-composer.js.map +1 -0
- package/dist/core/radius.d.ts +2 -0
- package/dist/core/radius.d.ts.map +1 -0
- package/dist/core/radius.js +2 -0
- package/dist/core/radius.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +30 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -0
- package/dist/core/resolve-config-value.js +247 -0
- package/dist/core/resolve-config-value.js.map +1 -0
- package/dist/core/resource-loader.d.ts +206 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +816 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/rollback.d.ts +80 -0
- package/dist/core/rollback.d.ts.map +1 -0
- package/dist/core/rollback.js +582 -0
- package/dist/core/rollback.js.map +1 -0
- package/dist/core/runtime-credentials.d.ts +15 -0
- package/dist/core/runtime-credentials.d.ts.map +1 -0
- package/dist/core/runtime-credentials.js +36 -0
- package/dist/core/runtime-credentials.js.map +1 -0
- package/dist/core/sdk.d.ts +106 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/sdk.js +264 -0
- package/dist/core/sdk.js.map +1 -0
- package/dist/core/search-curator.d.ts +23 -0
- package/dist/core/search-curator.d.ts.map +1 -0
- package/dist/core/search-curator.js +34 -0
- package/dist/core/search-curator.js.map +1 -0
- package/dist/core/session-cwd.d.ts +19 -0
- package/dist/core/session-cwd.d.ts.map +1 -0
- package/dist/core/session-cwd.js +38 -0
- package/dist/core/session-cwd.js.map +1 -0
- package/dist/core/session-manager.d.ts +351 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +1262 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/session-retention.d.ts +17 -0
- package/dist/core/session-retention.d.ts.map +1 -0
- package/dist/core/session-retention.js +69 -0
- package/dist/core/session-retention.js.map +1 -0
- package/dist/core/settings-manager.d.ts +355 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +1064 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +60 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +387 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/slash-commands.d.ts +15 -0
- package/dist/core/slash-commands.d.ts.map +1 -0
- package/dist/core/slash-commands.js +58 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/source-info.d.ts +18 -0
- package/dist/core/source-info.d.ts.map +1 -0
- package/dist/core/source-info.js +19 -0
- package/dist/core/source-info.js.map +1 -0
- package/dist/core/subscriptions.d.ts +64 -0
- package/dist/core/subscriptions.d.ts.map +1 -0
- package/dist/core/subscriptions.js +259 -0
- package/dist/core/subscriptions.js.map +1 -0
- package/dist/core/swarm.d.ts +41 -0
- package/dist/core/swarm.d.ts.map +1 -0
- package/dist/core/swarm.js +81 -0
- package/dist/core/swarm.js.map +1 -0
- package/dist/core/system-prompt.d.ts +28 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +107 -0
- package/dist/core/system-prompt.js.map +1 -0
- package/dist/core/timings.d.ts +10 -0
- package/dist/core/timings.d.ts.map +1 -0
- package/dist/core/timings.js +41 -0
- package/dist/core/timings.js.map +1 -0
- package/dist/core/tools/bash.d.ts +69 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +395 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +106 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +424 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +51 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +293 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/file-mutation-queue.d.ts +6 -0
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
- package/dist/core/tools/file-mutation-queue.js +52 -0
- package/dist/core/tools/file-mutation-queue.js.map +1 -0
- package/dist/core/tools/find.d.ts +35 -0
- package/dist/core/tools/find.d.ts.map +1 -0
- package/dist/core/tools/find.js +313 -0
- package/dist/core/tools/find.js.map +1 -0
- package/dist/core/tools/grep.d.ts +37 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +312 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +40 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +112 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/ls.d.ts +37 -0
- package/dist/core/tools/ls.d.ts.map +1 -0
- package/dist/core/tools/ls.js +175 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/output-accumulator.d.ts +52 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/core/tools/output-accumulator.js +184 -0
- package/dist/core/tools/output-accumulator.js.map +1 -0
- package/dist/core/tools/path-utils.d.ts +10 -0
- package/dist/core/tools/path-utils.d.ts.map +1 -0
- package/dist/core/tools/path-utils.js +99 -0
- package/dist/core/tools/path-utils.js.map +1 -0
- package/dist/core/tools/read.d.ts +35 -0
- package/dist/core/tools/read.d.ts.map +1 -0
- package/dist/core/tools/read.js +285 -0
- package/dist/core/tools/read.js.map +1 -0
- package/dist/core/tools/render-utils.d.ts +36 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -0
- package/dist/core/tools/render-utils.js +88 -0
- package/dist/core/tools/render-utils.js.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.js +34 -0
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
- package/dist/core/tools/truncate.d.ts +70 -0
- package/dist/core/tools/truncate.d.ts.map +1 -0
- package/dist/core/tools/truncate.js +215 -0
- package/dist/core/tools/truncate.js.map +1 -0
- package/dist/core/tools/write.d.ts +26 -0
- package/dist/core/tools/write.d.ts.map +1 -0
- package/dist/core/tools/write.js +202 -0
- package/dist/core/tools/write.js.map +1 -0
- package/dist/core/trust-manager.d.ts +36 -0
- package/dist/core/trust-manager.d.ts.map +1 -0
- package/dist/core/trust-manager.js +202 -0
- package/dist/core/trust-manager.js.map +1 -0
- package/dist/core/usage-adapters/kimi-coding.d.ts +11 -0
- package/dist/core/usage-adapters/kimi-coding.d.ts.map +1 -0
- package/dist/core/usage-adapters/kimi-coding.js +78 -0
- package/dist/core/usage-adapters/kimi-coding.js.map +1 -0
- package/dist/core/usage-adapters/openai-codex.d.ts +4 -0
- package/dist/core/usage-adapters/openai-codex.d.ts.map +1 -0
- package/dist/core/usage-adapters/openai-codex.js +180 -0
- package/dist/core/usage-adapters/openai-codex.js.map +1 -0
- package/dist/core/usage-adapters/shared.d.ts +20 -0
- package/dist/core/usage-adapters/shared.d.ts.map +1 -0
- package/dist/core/usage-adapters/shared.js +75 -0
- package/dist/core/usage-adapters/shared.js.map +1 -0
- package/dist/core/usage-adapters/xai.d.ts +21 -0
- package/dist/core/usage-adapters/xai.d.ts.map +1 -0
- package/dist/core/usage-adapters/xai.js +77 -0
- package/dist/core/usage-adapters/xai.js.map +1 -0
- package/dist/core/usage-adapters/zai.d.ts +14 -0
- package/dist/core/usage-adapters/zai.d.ts.map +1 -0
- package/dist/core/usage-adapters/zai.js +67 -0
- package/dist/core/usage-adapters/zai.js.map +1 -0
- package/dist/core/usage-history.d.ts +63 -0
- package/dist/core/usage-history.d.ts.map +1 -0
- package/dist/core/usage-history.js +239 -0
- package/dist/core/usage-history.js.map +1 -0
- package/dist/core/usage-limit.d.ts +17 -0
- package/dist/core/usage-limit.d.ts.map +1 -0
- package/dist/core/usage-limit.js +79 -0
- package/dist/core/usage-limit.js.map +1 -0
- package/dist/core/usage-service.d.ts +33 -0
- package/dist/core/usage-service.d.ts.map +1 -0
- package/dist/core/usage-service.js +56 -0
- package/dist/core/usage-service.js.map +1 -0
- package/dist/core/user-models.d.ts +50 -0
- package/dist/core/user-models.d.ts.map +1 -0
- package/dist/core/user-models.js +192 -0
- package/dist/core/user-models.js.map +1 -0
- package/dist/gateway/adapters/discord.d.ts +251 -0
- package/dist/gateway/adapters/discord.d.ts.map +1 -0
- package/dist/gateway/adapters/discord.js +693 -0
- package/dist/gateway/adapters/discord.js.map +1 -0
- package/dist/gateway/adapters/telegram.d.ts +187 -0
- package/dist/gateway/adapters/telegram.d.ts.map +1 -0
- package/dist/gateway/adapters/telegram.js +581 -0
- package/dist/gateway/adapters/telegram.js.map +1 -0
- package/dist/gateway/agent-bridge.d.ts +143 -0
- package/dist/gateway/agent-bridge.d.ts.map +1 -0
- package/dist/gateway/agent-bridge.js +466 -0
- package/dist/gateway/agent-bridge.js.map +1 -0
- package/dist/gateway/approval.d.ts +34 -0
- package/dist/gateway/approval.d.ts.map +1 -0
- package/dist/gateway/approval.js +152 -0
- package/dist/gateway/approval.js.map +1 -0
- package/dist/gateway/authz.d.ts +21 -0
- package/dist/gateway/authz.d.ts.map +1 -0
- package/dist/gateway/authz.js +61 -0
- package/dist/gateway/authz.js.map +1 -0
- package/dist/gateway/buttons.d.ts +58 -0
- package/dist/gateway/buttons.d.ts.map +1 -0
- package/dist/gateway/buttons.js +269 -0
- package/dist/gateway/buttons.js.map +1 -0
- package/dist/gateway/command.d.ts +8 -0
- package/dist/gateway/command.d.ts.map +1 -0
- package/dist/gateway/command.js +16 -0
- package/dist/gateway/command.js.map +1 -0
- package/dist/gateway/commands.d.ts +43 -0
- package/dist/gateway/commands.d.ts.map +1 -0
- package/dist/gateway/commands.js +642 -0
- package/dist/gateway/commands.js.map +1 -0
- package/dist/gateway/config.d.ts +53 -0
- package/dist/gateway/config.d.ts.map +1 -0
- package/dist/gateway/config.js +136 -0
- package/dist/gateway/config.js.map +1 -0
- package/dist/gateway/cron.d.ts +69 -0
- package/dist/gateway/cron.d.ts.map +1 -0
- package/dist/gateway/cron.js +321 -0
- package/dist/gateway/cron.js.map +1 -0
- package/dist/gateway/index.d.ts +31 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/gateway/index.js +233 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/gateway/pairing.d.ts +44 -0
- package/dist/gateway/pairing.d.ts.map +1 -0
- package/dist/gateway/pairing.js +171 -0
- package/dist/gateway/pairing.js.map +1 -0
- package/dist/gateway/router.d.ts +48 -0
- package/dist/gateway/router.d.ts.map +1 -0
- package/dist/gateway/router.js +215 -0
- package/dist/gateway/router.js.map +1 -0
- package/dist/gateway/session-keys.d.ts +18 -0
- package/dist/gateway/session-keys.d.ts.map +1 -0
- package/dist/gateway/session-keys.js +26 -0
- package/dist/gateway/session-keys.js.map +1 -0
- package/dist/gateway/store.d.ts +28 -0
- package/dist/gateway/store.d.ts.map +1 -0
- package/dist/gateway/store.js +93 -0
- package/dist/gateway/store.js.map +1 -0
- package/dist/gateway/stream.d.ts +55 -0
- package/dist/gateway/stream.d.ts.map +1 -0
- package/dist/gateway/stream.js +107 -0
- package/dist/gateway/stream.js.map +1 -0
- package/dist/gateway/text.d.ts +18 -0
- package/dist/gateway/text.d.ts.map +1 -0
- package/dist/gateway/text.js +136 -0
- package/dist/gateway/text.js.map +1 -0
- package/dist/gateway/types.d.ts +95 -0
- package/dist/gateway/types.d.ts.map +1 -0
- package/dist/gateway/types.js +9 -0
- package/dist/gateway/types.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +12 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +742 -0
- package/dist/main.js.map +1 -0
- package/dist/migrations.d.ts +46 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +351 -0
- package/dist/migrations.js.map +1 -0
- package/dist/modes/index.d.ts +9 -0
- package/dist/modes/index.d.ts.map +1 -0
- package/dist/modes/index.js +8 -0
- package/dist/modes/index.js.map +1 -0
- package/dist/modes/interactive/assets/clankolas.png +0 -0
- package/dist/modes/interactive/components/armin.d.ts +34 -0
- package/dist/modes/interactive/components/armin.d.ts.map +1 -0
- package/dist/modes/interactive/components/armin.js +333 -0
- package/dist/modes/interactive/components/armin.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +31 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/assistant-message.js +246 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +32 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/bash-execution.js +171 -0
- package/dist/modes/interactive/components/bash-execution.js.map +1 -0
- package/dist/modes/interactive/components/boot-ascii.d.ts +6 -0
- package/dist/modes/interactive/components/boot-ascii.d.ts.map +1 -0
- package/dist/modes/interactive/components/boot-ascii.js +6 -0
- package/dist/modes/interactive/components/boot-ascii.js.map +1 -0
- package/dist/modes/interactive/components/boot-screen.d.ts +22 -0
- package/dist/modes/interactive/components/boot-screen.d.ts.map +1 -0
- package/dist/modes/interactive/components/boot-screen.js +53 -0
- package/dist/modes/interactive/components/boot-screen.js.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.js +54 -0
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.js +44 -0
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/config-selector.d.ts +102 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/config-selector.js +761 -0
- package/dist/modes/interactive/components/config-selector.js.map +1 -0
- package/dist/modes/interactive/components/context-view.d.ts +13 -0
- package/dist/modes/interactive/components/context-view.d.ts.map +1 -0
- package/dist/modes/interactive/components/context-view.js +42 -0
- package/dist/modes/interactive/components/context-view.js.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.js +33 -0
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-editor.js +70 -0
- package/dist/modes/interactive/components/custom-editor.js.map +1 -0
- package/dist/modes/interactive/components/custom-entry.d.ts +19 -0
- package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-entry.js +52 -0
- package/dist/modes/interactive/components/custom-entry.js.map +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +20 -0
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-message.js +79 -0
- package/dist/modes/interactive/components/custom-message.js.map +1 -0
- package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
- package/dist/modes/interactive/components/daxnuts.js +140 -0
- package/dist/modes/interactive/components/daxnuts.js.map +1 -0
- package/dist/modes/interactive/components/diff.d.ts +12 -0
- package/dist/modes/interactive/components/diff.d.ts.map +1 -0
- package/dist/modes/interactive/components/diff.js +133 -0
- package/dist/modes/interactive/components/diff.js.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.js +21 -0
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
- package/dist/modes/interactive/components/earendil-announcement.js +40 -0
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
- package/dist/modes/interactive/components/exit-card.d.ts +22 -0
- package/dist/modes/interactive/components/exit-card.d.ts.map +1 -0
- package/dist/modes/interactive/components/exit-card.js +69 -0
- package/dist/modes/interactive/components/exit-card.js.map +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +22 -0
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-editor.js +128 -0
- package/dist/modes/interactive/components/extension-editor.js.map +1 -0
- package/dist/modes/interactive/components/extension-input.d.ts +23 -0
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-input.js +61 -0
- package/dist/modes/interactive/components/extension-input.js.map +1 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +30 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-selector.js +106 -0
- package/dist/modes/interactive/components/extension-selector.js.map +1 -0
- package/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
- package/dist/modes/interactive/components/first-time-setup.js +99 -0
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts +32 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/modes/interactive/components/footer.js +221 -0
- package/dist/modes/interactive/components/footer.js.map +1 -0
- package/dist/modes/interactive/components/index.d.ts +34 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -0
- package/dist/modes/interactive/components/index.js +35 -0
- package/dist/modes/interactive/components/index.js.map +1 -0
- package/dist/modes/interactive/components/injected-prompt-message.d.ts +21 -0
- package/dist/modes/interactive/components/injected-prompt-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/injected-prompt-message.js +51 -0
- package/dist/modes/interactive/components/injected-prompt-message.js.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.js +36 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +52 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/modes/interactive/components/login-dialog.js +188 -0
- package/dist/modes/interactive/components/login-dialog.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +61 -0
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/model-selector.js +320 -0
- package/dist/modes/interactive/components/model-selector.js.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +33 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.js +163 -0
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
- package/dist/modes/interactive/components/processes-selector.d.ts +19 -0
- package/dist/modes/interactive/components/processes-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/processes-selector.js +170 -0
- package/dist/modes/interactive/components/processes-selector.js.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +293 -0
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.js +155 -0
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts +95 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector.js +857 -0
- package/dist/modes/interactive/components/session-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +139 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-selector.js +1156 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.js +39 -0
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
- package/dist/modes/interactive/components/status-indicator.d.ts +28 -0
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
- package/dist/modes/interactive/components/status-indicator.js +60 -0
- package/dist/modes/interactive/components/status-indicator.js.map +1 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/theme-selector.js +50 -0
- package/dist/modes/interactive/components/theme-selector.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.js +52 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/modes/interactive/components/thinking-summary.d.ts +36 -0
- package/dist/modes/interactive/components/thinking-summary.d.ts.map +1 -0
- package/dist/modes/interactive/components/thinking-summary.js +94 -0
- package/dist/modes/interactive/components/thinking-summary.js.map +1 -0
- package/dist/modes/interactive/components/thinking-tail.d.ts +21 -0
- package/dist/modes/interactive/components/thinking-tail.d.ts.map +1 -0
- package/dist/modes/interactive/components/thinking-tail.js +29 -0
- package/dist/modes/interactive/components/thinking-tail.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +67 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +340 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +94 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-selector.js +1245 -0
- package/dist/modes/interactive/components/tree-selector.js.map +1 -0
- package/dist/modes/interactive/components/trust-selector.d.ts +23 -0
- package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/trust-selector.js +91 -0
- package/dist/modes/interactive/components/trust-selector.js.map +1 -0
- package/dist/modes/interactive/components/usage-view.d.ts +63 -0
- package/dist/modes/interactive/components/usage-view.d.ts.map +1 -0
- package/dist/modes/interactive/components/usage-view.js +189 -0
- package/dist/modes/interactive/components/usage-view.js.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.js +114 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +16 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message.js +62 -0
- package/dist/modes/interactive/components/user-message.js.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.js +33 -0
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +448 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +6487 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -0
- package/dist/modes/interactive/model-search.d.ts +12 -0
- package/dist/modes/interactive/model-search.d.ts.map +1 -0
- package/dist/modes/interactive/model-search.js +15 -0
- package/dist/modes/interactive/model-search.js.map +1 -0
- package/dist/modes/interactive/smooth-streaming.d.ts +10 -0
- package/dist/modes/interactive/smooth-streaming.d.ts.map +1 -0
- package/dist/modes/interactive/smooth-streaming.js +95 -0
- package/dist/modes/interactive/smooth-streaming.js.map +1 -0
- package/dist/modes/interactive/theme/moon.json +83 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts +29 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme-controller.js +97 -0
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -0
- package/dist/modes/interactive/theme/theme-schema.json +363 -0
- package/dist/modes/interactive/theme/theme.d.ts +128 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme.js +1092 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -0
- package/dist/modes/print-mode.d.ts +28 -0
- package/dist/modes/print-mode.d.ts.map +1 -0
- package/dist/modes/print-mode.js +132 -0
- package/dist/modes/print-mode.js.map +1 -0
- package/dist/modes/rpc/jsonl.d.ts +17 -0
- package/dist/modes/rpc/jsonl.d.ts.map +1 -0
- package/dist/modes/rpc/jsonl.js +49 -0
- package/dist/modes/rpc/jsonl.js.map +1 -0
- package/dist/modes/rpc/rpc-client.d.ts +242 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client.js +481 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts +20 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-mode.js +635 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +446 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-types.js +8 -0
- package/dist/modes/rpc/rpc-types.js.map +1 -0
- package/dist/package-manager-cli.d.ts +8 -0
- package/dist/package-manager-cli.d.ts.map +1 -0
- package/dist/package-manager-cli.js +378 -0
- package/dist/package-manager-cli.js.map +1 -0
- package/dist/rpc-entry.d.ts +3 -0
- package/dist/rpc-entry.d.ts.map +1 -0
- package/dist/rpc-entry.js +10 -0
- package/dist/rpc-entry.js.map +1 -0
- package/dist/utils/ansi.d.ts +2 -0
- package/dist/utils/ansi.d.ts.map +1 -0
- package/dist/utils/ansi.js +52 -0
- package/dist/utils/ansi.js.map +1 -0
- package/dist/utils/child-process.d.ts +18 -0
- package/dist/utils/child-process.d.ts.map +1 -0
- package/dist/utils/child-process.js +106 -0
- package/dist/utils/child-process.js.map +1 -0
- package/dist/utils/clipboard-image.d.ts +11 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -0
- package/dist/utils/clipboard-image.js +300 -0
- package/dist/utils/clipboard-image.js.map +1 -0
- package/dist/utils/clipboard-native.d.ts +11 -0
- package/dist/utils/clipboard-native.d.ts.map +1 -0
- package/dist/utils/clipboard-native.js +20 -0
- package/dist/utils/clipboard-native.js.map +1 -0
- package/dist/utils/clipboard.d.ts +4 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +130 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/deprecation.d.ts +4 -0
- package/dist/utils/deprecation.d.ts.map +1 -0
- package/dist/utils/deprecation.js +13 -0
- package/dist/utils/deprecation.js.map +1 -0
- package/dist/utils/exif-orientation.d.ts +5 -0
- package/dist/utils/exif-orientation.d.ts.map +1 -0
- package/dist/utils/exif-orientation.js +158 -0
- package/dist/utils/exif-orientation.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +8 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +26 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/fs-watch.d.ts +5 -0
- package/dist/utils/fs-watch.d.ts.map +1 -0
- package/dist/utils/fs-watch.js +25 -0
- package/dist/utils/fs-watch.js.map +1 -0
- package/dist/utils/git.d.ts +26 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +195 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/html.d.ts +7 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +40 -0
- package/dist/utils/html.js.map +1 -0
- package/dist/utils/image-convert.d.ts +10 -0
- package/dist/utils/image-convert.d.ts.map +1 -0
- package/dist/utils/image-convert.js +45 -0
- package/dist/utils/image-convert.js.map +1 -0
- package/dist/utils/image-process.d.ts +18 -0
- package/dist/utils/image-process.d.ts.map +1 -0
- package/dist/utils/image-process.js +83 -0
- package/dist/utils/image-process.js.map +1 -0
- package/dist/utils/image-resize-core.d.ts +30 -0
- package/dist/utils/image-resize-core.d.ts.map +1 -0
- package/dist/utils/image-resize-core.js +124 -0
- package/dist/utils/image-resize-core.js.map +1 -0
- package/dist/utils/image-resize-worker.d.ts +2 -0
- package/dist/utils/image-resize-worker.d.ts.map +1 -0
- package/dist/utils/image-resize-worker.js +31 -0
- package/dist/utils/image-resize-worker.js.map +1 -0
- package/dist/utils/image-resize.d.ts +16 -0
- package/dist/utils/image-resize.d.ts.map +1 -0
- package/dist/utils/image-resize.js +97 -0
- package/dist/utils/image-resize.js.map +1 -0
- package/dist/utils/json.d.ts +3 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +7 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/mime.d.ts +3 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +110 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/open-browser.d.ts +9 -0
- package/dist/utils/open-browser.d.ts.map +1 -0
- package/dist/utils/open-browser.js +22 -0
- package/dist/utils/open-browser.js.map +1 -0
- package/dist/utils/paths.d.ts +31 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +92 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/photon.d.ts +21 -0
- package/dist/utils/photon.d.ts.map +1 -0
- package/dist/utils/photon.js +121 -0
- package/dist/utils/photon.js.map +1 -0
- package/dist/utils/pi-user-agent.d.ts +2 -0
- package/dist/utils/pi-user-agent.d.ts.map +1 -0
- package/dist/utils/pi-user-agent.js +5 -0
- package/dist/utils/pi-user-agent.js.map +1 -0
- package/dist/utils/shell.d.ts +31 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +202 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/sleep.d.ts +5 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +17 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/utils/syntax-highlight.d.ts +12 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/utils/syntax-highlight.js +118 -0
- package/dist/utils/syntax-highlight.js.map +1 -0
- package/dist/utils/tools-manager.d.ts +3 -0
- package/dist/utils/tools-manager.d.ts.map +1 -0
- package/dist/utils/tools-manager.js +328 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/docs/compaction.md +396 -0
- package/docs/containerization.md +111 -0
- package/docs/custom-provider.md +735 -0
- package/docs/development.md +71 -0
- package/docs/docs.json +156 -0
- package/docs/extensions.md +2911 -0
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/exy.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/index.md +82 -0
- package/docs/json.md +82 -0
- package/docs/keybindings.md +201 -0
- package/docs/models.md +540 -0
- package/docs/packages.md +228 -0
- package/docs/prompt-templates.md +95 -0
- package/docs/providers.md +294 -0
- package/docs/quickstart.md +165 -0
- package/docs/rpc.md +1480 -0
- package/docs/sdk.md +1183 -0
- package/docs/security.md +59 -0
- package/docs/session-format.md +422 -0
- package/docs/sessions.md +145 -0
- package/docs/settings.md +302 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +231 -0
- package/docs/terminal-setup.md +142 -0
- package/docs/termux.md +127 -0
- package/docs/themes.md +297 -0
- package/docs/tmux.md +63 -0
- package/docs/tui.md +927 -0
- package/docs/usage.md +312 -0
- package/docs/windows.md +17 -0
- package/examples/README.md +25 -0
- package/examples/extensions/README.md +213 -0
- package/examples/extensions/auto-commit-on-exit.ts +49 -0
- package/examples/extensions/bash-spawn-hook.ts +30 -0
- package/examples/extensions/bookmark.ts +50 -0
- package/examples/extensions/border-status-editor.ts +150 -0
- package/examples/extensions/built-in-tool-renderer.ts +249 -0
- package/examples/extensions/claude-rules.ts +86 -0
- package/examples/extensions/commands.ts +72 -0
- package/examples/extensions/confirm-destructive.ts +59 -0
- package/examples/extensions/custom-compaction.ts +128 -0
- package/examples/extensions/custom-footer.ts +64 -0
- package/examples/extensions/custom-header.ts +73 -0
- package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
- package/examples/extensions/custom-provider-anthropic/package.json +19 -0
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -0
- package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
- package/examples/extensions/dirty-repo-guard.ts +56 -0
- package/examples/extensions/doom-overlay/README.md +46 -0
- package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
- package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
- package/examples/extensions/doom-overlay/doom/build.sh +152 -0
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
- package/examples/extensions/doom-overlay/doom-component.ts +132 -0
- package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
- package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
- package/examples/extensions/doom-overlay/index.ts +74 -0
- package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
- package/examples/extensions/dynamic-resources/SKILL.md +8 -0
- package/examples/extensions/dynamic-resources/dynamic.json +79 -0
- package/examples/extensions/dynamic-resources/dynamic.md +5 -0
- package/examples/extensions/dynamic-resources/index.ts +15 -0
- package/examples/extensions/dynamic-tools.ts +74 -0
- package/examples/extensions/entry-renderer.ts +41 -0
- package/examples/extensions/event-bus.ts +43 -0
- package/examples/extensions/file-trigger.ts +41 -0
- package/examples/extensions/git-checkpoint.ts +53 -0
- package/examples/extensions/git-merge-and-resolve.ts +115 -0
- package/examples/extensions/github-issue-autocomplete.ts +185 -0
- package/examples/extensions/gondolin/index.ts +531 -0
- package/examples/extensions/gondolin/package-lock.json +185 -0
- package/examples/extensions/gondolin/package.json +19 -0
- package/examples/extensions/handoff.ts +191 -0
- package/examples/extensions/hello.ts +26 -0
- package/examples/extensions/hidden-thinking-label.ts +53 -0
- package/examples/extensions/inline-bash.ts +94 -0
- package/examples/extensions/input-transform-streaming.ts +39 -0
- package/examples/extensions/input-transform.ts +43 -0
- package/examples/extensions/interactive-shell.ts +196 -0
- package/examples/extensions/kimi-deferred-tools.ts +61 -0
- package/examples/extensions/mac-system-theme.ts +47 -0
- package/examples/extensions/message-renderer.ts +59 -0
- package/examples/extensions/minimal-mode.ts +426 -0
- package/examples/extensions/modal-editor.ts +85 -0
- package/examples/extensions/model-status.ts +31 -0
- package/examples/extensions/notify.ts +55 -0
- package/examples/extensions/overlay-qa-tests.ts +1450 -0
- package/examples/extensions/overlay-test.ts +153 -0
- package/examples/extensions/permission-gate.ts +34 -0
- package/examples/extensions/pirate.ts +47 -0
- package/examples/extensions/plan-mode/README.md +66 -0
- package/examples/extensions/plan-mode/index.ts +390 -0
- package/examples/extensions/plan-mode/utils.ts +168 -0
- package/examples/extensions/preset.ts +436 -0
- package/examples/extensions/project-trust.ts +64 -0
- package/examples/extensions/prompt-customizer.ts +97 -0
- package/examples/extensions/protected-paths.ts +30 -0
- package/examples/extensions/provider-payload.ts +18 -0
- package/examples/extensions/qna.ts +122 -0
- package/examples/extensions/question.ts +286 -0
- package/examples/extensions/questionnaire.ts +448 -0
- package/examples/extensions/rainbow-editor.ts +88 -0
- package/examples/extensions/reload-runtime.ts +37 -0
- package/examples/extensions/rpc-demo.ts +118 -0
- package/examples/extensions/sandbox/index.ts +321 -0
- package/examples/extensions/sandbox/package-lock.json +92 -0
- package/examples/extensions/sandbox/package.json +19 -0
- package/examples/extensions/send-user-message.ts +97 -0
- package/examples/extensions/session-name.ts +27 -0
- package/examples/extensions/shutdown-command.ts +63 -0
- package/examples/extensions/snake.ts +343 -0
- package/examples/extensions/space-invaders.ts +560 -0
- package/examples/extensions/ssh.ts +220 -0
- package/examples/extensions/status-line.ts +32 -0
- package/examples/extensions/structured-output.ts +65 -0
- package/examples/extensions/subagent/README.md +175 -0
- package/examples/extensions/subagent/agents/planner.md +37 -0
- package/examples/extensions/subagent/agents/reviewer.md +35 -0
- package/examples/extensions/subagent/agents/scout.md +50 -0
- package/examples/extensions/subagent/agents/worker.md +24 -0
- package/examples/extensions/subagent/agents.ts +126 -0
- package/examples/extensions/subagent/index.ts +1015 -0
- package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
- package/examples/extensions/subagent/prompts/implement.md +10 -0
- package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
- package/examples/extensions/summarize.ts +207 -0
- package/examples/extensions/system-prompt-header.ts +17 -0
- package/examples/extensions/tic-tac-toe.ts +1008 -0
- package/examples/extensions/timed-confirm.ts +70 -0
- package/examples/extensions/titlebar-spinner.ts +58 -0
- package/examples/extensions/todo.ts +297 -0
- package/examples/extensions/tool-override.ts +144 -0
- package/examples/extensions/tools.ts +146 -0
- package/examples/extensions/trigger-compact.ts +50 -0
- package/examples/extensions/truncated-tool.ts +195 -0
- package/examples/extensions/widget-placement.ts +9 -0
- package/examples/extensions/with-deps/index.ts +32 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +22 -0
- package/examples/extensions/working-indicator.ts +123 -0
- package/examples/extensions/working-message-test.ts +25 -0
- package/examples/rpc-extension-ui.ts +632 -0
- package/examples/sdk/01-minimal.ts +26 -0
- package/examples/sdk/02-custom-model.ts +50 -0
- package/examples/sdk/03-custom-prompt.ts +75 -0
- package/examples/sdk/04-skills.ts +55 -0
- package/examples/sdk/05-tools.ts +48 -0
- package/examples/sdk/06-extensions.ts +99 -0
- package/examples/sdk/07-context-files.ts +47 -0
- package/examples/sdk/08-prompt-templates.ts +51 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +34 -0
- package/examples/sdk/10-settings.ts +53 -0
- package/examples/sdk/11-sessions.ts +52 -0
- package/examples/sdk/12-full-control.ts +72 -0
- package/examples/sdk/13-session-runtime.ts +67 -0
- package/examples/sdk/README.md +140 -0
- package/package.json +116 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/tui/fleet.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport * as path from \"node:path\";\nimport type { ExtensionContext } from \"@earendil-works/pi-coding-agent\";\nimport { matchesKey, truncateToWidth, visibleWidth, wrapTextWithAnsi, type Component, type TUI } from \"@earendil-works/pi-tui\";\nimport { formatDuration, formatModelThinking, formatTokens, shortenPath } from \"../shared/formatters.ts\";\nimport { RESULTS_DIR, type AsyncJobState, type ForegroundResumeChild, type ForegroundResumeRun, type SubagentState } from \"../shared/types.ts\";\nimport { readStatus } from \"../shared/utils.ts\";\nimport { formatAsyncRunTranscript } from \"../runs/background/fleet-view.ts\";\nimport { listAsyncRuns, summarizeAsyncStatus, type AsyncRunSummary } from \"../runs/background/async-status.ts\";\n\nconst REFRESH_MS = 750;\nconst MAX_RECENT_ASYNC_RUNS = 20;\nconst TRANSCRIPT_LINES = 200;\n\ntype Theme = ExtensionContext[\"ui\"][\"theme\"];\ntype ForegroundControl = SubagentState[\"foregroundControls\"] extends Map<string, infer T> ? T : never;\ntype AsyncStep = AsyncRunSummary[\"steps\"][number];\n\nexport type FleetItem =\n\t| { key: string; kind: \"foreground-active\"; runId: string; index?: number; agent: string; state: \"running\"; updatedAt: number; control: ForegroundControl }\n\t| { key: string; kind: \"foreground-recent\"; runId: string; index: number; agent: string; state: ForegroundResumeChild[\"status\"]; updatedAt: number; run: ForegroundResumeRun; child: ForegroundResumeChild }\n\t| { key: string; kind: \"async\"; runId: string; index?: number; agent: string; state: string; updatedAt: number; run: AsyncRunSummary; step?: AsyncStep };\n\nexport interface FleetSnapshot {\n\titems: FleetItem[];\n\terror?: string;\n}\n\nfunction belongsToCurrentSession(sessionId: string | undefined, currentSessionId: string | null): boolean {\n\treturn !currentSessionId || sessionId === currentSessionId;\n}\n\nfunction trackedJobSummary(job: AsyncJobState): AsyncRunSummary {\n\tconst status = readStatus(job.asyncDir);\n\tif (status) return summarizeAsyncStatus(job.asyncDir, status);\n\tconst startedAt = job.startedAt ?? job.updatedAt ?? Date.now();\n\treturn {\n\t\tid: job.asyncId,\n\t\tasyncDir: job.asyncDir,\n\t\t...(job.sessionId ? { sessionId: job.sessionId } : {}),\n\t\tstate: job.status,\n\t\tmode: job.mode ?? \"single\",\n\t\tstartedAt,\n\t\t...(job.updatedAt !== undefined ? { lastUpdate: job.updatedAt } : {}),\n\t\t...(job.currentStep !== undefined ? { currentStep: job.currentStep } : {}),\n\t\t...(job.chainStepCount !== undefined ? { chainStepCount: job.chainStepCount } : {}),\n\t\t...(job.parallelGroups?.length ? { parallelGroups: job.parallelGroups } : {}),\n\t\tsteps: (job.steps ?? job.agents?.map((agent) => ({ agent, status: job.status === \"queued\" ? \"pending\" as const : job.status })) ?? []).map((step, index) => ({\n\t\t\t...step,\n\t\t\tindex: step.index ?? index,\n\t\t})),\n\t\t...(job.sessionDir ? { sessionDir: job.sessionDir } : {}),\n\t\t...(job.outputFile ? { outputFile: job.outputFile } : {}),\n\t\t...(job.totalTokens ? { totalTokens: job.totalTokens } : {}),\n\t\t...(job.sessionFile ? { sessionFile: job.sessionFile } : {}),\n\t};\n}\n\nfunction asyncItems(run: AsyncRunSummary): FleetItem[] {\n\tconst updatedAt = run.lastUpdate ?? run.endedAt ?? run.startedAt;\n\tif (run.steps.length === 0) {\n\t\treturn [{ key: `async:${run.id}`, kind: \"async\", runId: run.id, agent: run.mode, state: run.state, updatedAt, run }];\n\t}\n\treturn run.steps.map((step) => ({\n\t\tkey: `async:${run.id}:${step.index}`,\n\t\tkind: \"async\" as const,\n\t\trunId: run.id,\n\t\tindex: step.index,\n\t\tagent: step.label ? `${step.label} (${step.agent})` : step.agent,\n\t\tstate: step.status,\n\t\tupdatedAt: step.lastActivityAt ?? updatedAt,\n\t\trun,\n\t\tstep,\n\t}));\n}\n\nexport function collectFleetSnapshot(\n\tstate: SubagentState,\n\toptions: { asyncDirRoot?: string; resultsDir?: string; limit?: number } = {},\n): FleetSnapshot {\n\tconst items: FleetItem[] = [];\n\tconst activeForegroundIds = new Set<string>();\n\tfor (const control of [...state.foregroundControls.values()].sort((left, right) => right.updatedAt - left.updatedAt)) {\n\t\tactiveForegroundIds.add(control.runId);\n\t\titems.push({\n\t\t\tkey: `foreground-active:${control.runId}:${control.currentIndex ?? 0}`,\n\t\t\tkind: \"foreground-active\",\n\t\t\trunId: control.runId,\n\t\t\t...(control.currentIndex !== undefined ? { index: control.currentIndex } : {}),\n\t\t\tagent: control.currentAgent ?? control.mode,\n\t\t\tstate: \"running\",\n\t\t\tupdatedAt: control.updatedAt,\n\t\t\tcontrol,\n\t\t});\n\t}\n\n\tlet error: string | undefined;\n\ttry {\n\t\tlet runs: AsyncRunSummary[];\n\t\tif (options.asyncDirRoot !== undefined) {\n\t\t\truns = listAsyncRuns(options.asyncDirRoot, {\n\t\t\t\t...(state.currentSessionId ? { sessionId: state.currentSessionId } : {}),\n\t\t\t\tlimit: options.limit ?? MAX_RECENT_ASYNC_RUNS,\n\t\t\t\tresultsDir: options.resultsDir ?? RESULTS_DIR,\n\t\t\t\treconcile: false,\n\t\t\t});\n\t\t} else {\n\t\t\tconst tracked = [...(state.fleetJobs ?? state.asyncJobs).values()]\n\t\t\t\t.filter((job) => belongsToCurrentSession(job.sessionId, state.currentSessionId));\n\t\t\tconst byUpdate = (left: AsyncJobState, right: AsyncJobState) => (right.updatedAt ?? right.startedAt ?? 0) - (left.updatedAt ?? left.startedAt ?? 0);\n\t\t\tconst active = tracked.filter((job) => job.status === \"queued\" || job.status === \"running\").sort(byUpdate);\n\t\t\tconst recent = tracked.filter((job) => job.status !== \"queued\" && job.status !== \"running\").sort(byUpdate).slice(0, options.limit ?? MAX_RECENT_ASYNC_RUNS);\n\t\t\truns = [];\n\t\t\tfor (const job of [...active, ...recent]) {\n\t\t\t\ttry {\n\t\t\t\t\truns.push(trackedJobSummary(job));\n\t\t\t\t} catch (cause) {\n\t\t\t\t\terror = `Failed to inspect async run '${job.asyncId}': ${cause instanceof Error ? cause.message : String(cause)}`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const run of runs) items.push(...asyncItems(run));\n\t} catch (cause) {\n\t\terror = cause instanceof Error ? cause.message : String(cause);\n\t}\n\n\tconst recentForeground = [...(state.foregroundRuns?.values() ?? [])]\n\t\t.filter((run) => belongsToCurrentSession(run.sessionId, state.currentSessionId) && !activeForegroundIds.has(run.runId))\n\t\t.sort((left, right) => right.updatedAt - left.updatedAt);\n\tfor (const run of recentForeground) {\n\t\tfor (const child of run.children) {\n\t\t\titems.push({\n\t\t\t\tkey: `foreground-recent:${run.runId}:${child.index}`,\n\t\t\t\tkind: \"foreground-recent\",\n\t\t\t\trunId: run.runId,\n\t\t\t\tindex: child.index,\n\t\t\t\tagent: child.agent,\n\t\t\t\tstate: child.status,\n\t\t\t\tupdatedAt: child.updatedAt ?? run.updatedAt,\n\t\t\t\trun,\n\t\t\t\tchild,\n\t\t\t});\n\t\t}\n\t}\n\treturn { items, ...(error ? { error } : {}) };\n}\n\nfunction statusGlyph(item: FleetItem, theme: Theme): string {\n\tif (item.state === \"running\") return theme.fg(\"accent\", \"●\");\n\tif (item.state === \"queued\" || item.state === \"pending\") return theme.fg(\"muted\", \"◦\");\n\tif (item.state === \"complete\" || item.state === \"completed\") return theme.fg(\"success\", \"✓\");\n\tif (item.state === \"paused\" || item.state === \"stopped\" || item.state === \"detached\") return theme.fg(\"warning\", \"■\");\n\treturn theme.fg(\"error\", \"✗\");\n}\n\n/** lunr: enrich roster rows with elapsed / tool count / model:thinking badge. */\nfunction rosterFacts(item: FleetItem, _theme: Theme): string | undefined {\n\tconst parts: string[] = [];\n\tlet startedAt: number | undefined;\n\tif (item.kind === \"foreground-active\") startedAt = item.control.startedAt;\n\telse if (item.kind === \"async\") startedAt = item.run.startedAt;\n\tif (startedAt !== undefined && Number.isFinite(startedAt) && item.updatedAt > startedAt) {\n\t\tparts.push(formatDuration(item.updatedAt - startedAt));\n\t}\n\tlet toolCount: number | undefined;\n\tif (item.kind === \"foreground-active\") toolCount = item.control.toolCount;\n\telse if (item.kind === \"async\") toolCount = item.step?.toolCount ?? item.run.toolCount;\n\tif (toolCount !== undefined) parts.push(`${toolCount} tools`);\n\tif (item.kind === \"async\") {\n\t\tconst model = item.step?.model;\n\t\tconst thinking = item.step?.thinking;\n\t\tconst badge = formatModelThinking(model, thinking);\n\t\tif (badge) parts.push(badge);\n\t}\n\treturn parts.length ? parts.join(\" · \") : undefined;\n}\n\nfunction foregroundActiveDetail(item: Extract<FleetItem, { kind: \"foreground-active\" }>): string[] {\n\tconst { control } = item;\n\tconst lines = [\n\t\t`Run: ${item.runId}`,\n\t\t`State: running`,\n\t\t`Mode: ${control.mode}`,\n\t\titem.index !== undefined ? `Child: ${item.index} (${item.agent})` : `Agent: ${item.agent}`,\n\t\t`Started: ${new Date(control.startedAt).toISOString()}`,\n\t\tcontrol.currentTool ? `Current tool: ${control.currentTool}${control.currentPath ? ` · ${shortenPath(control.currentPath)}` : \"\"}` : undefined,\n\t\tcontrol.turnCount !== undefined ? `Turns: ${control.turnCount}` : undefined,\n\t\tcontrol.toolCount !== undefined ? `Tools: ${control.toolCount}` : undefined,\n\t\tcontrol.tokens !== undefined ? `Tokens: ${formatTokens(control.tokens)}` : undefined,\n\t\t\"\",\n\t\t\"Transcript\",\n\t\t\"Live foreground output remains in the expanded subagent tool result. Persisted output and session paths appear here after the child settles.\",\n\t];\n\treturn lines.filter((line): line is string => line !== undefined);\n}\n\nfunction foregroundRecentDetail(item: Extract<FleetItem, { kind: \"foreground-recent\" }>): string[] {\n\tconst { child, run } = item;\n\tconst outputPath = child.artifactPaths?.outputPath ?? child.savedOutputPath;\n\tconst lines = [\n\t\t`Run: ${item.runId}`,\n\t\t`State: ${child.status}`,\n\t\t`Mode: ${run.mode}`,\n\t\t`Child: ${child.index} (${child.agent})`,\n\t\t`Updated: ${new Date(child.updatedAt ?? run.updatedAt).toISOString()}`,\n\t\toutputPath ? `Output: ${outputPath}` : undefined,\n\t\tchild.sessionFile ? `Session: ${child.sessionFile}` : undefined,\n\t\tchild.transcriptPath ? `Transcript file: ${child.transcriptPath}` : undefined,\n\t\tchild.error ? `Error: ${child.error}` : undefined,\n\t\tchild.outputSaveError ? `Output warning: ${child.outputSaveError}` : undefined,\n\t\tchild.transcriptError ? `Transcript warning: ${child.transcriptError}` : undefined,\n\t\t\"\",\n\t\t\"Result transcript tail\",\n\t];\n\tconst outputLines = (child.finalOutput ?? \"\").split(/\\r?\\n/).filter((line) => line.trim()).slice(-TRANSCRIPT_LINES);\n\tlines.push(...(outputLines.length ? outputLines : [\"(no recovered output available)\"]));\n\treturn lines.filter((line): line is string => line !== undefined);\n}\n\nfunction asyncDetail(item: Extract<FleetItem, { kind: \"async\" }>): string[] {\n\tconst status = readStatus(item.run.asyncDir);\n\tif (status) {\n\t\treturn formatAsyncRunTranscript(status, item.run.asyncDir, { index: item.index, lines: TRANSCRIPT_LINES }).split(\"\\n\");\n\t}\n\tconst outputPath = item.index !== undefined ? path.join(item.run.asyncDir, `output-${item.index}.log`) : undefined;\n\treturn [\n\t\t`Run: ${item.runId}`,\n\t\t\"Source: async\",\n\t\t`State: ${item.state}`,\n\t\t`Mode: ${item.run.mode}`,\n\t\titem.index !== undefined ? `Child: ${item.index} (${item.agent})` : `Agent: ${item.agent}`,\n\t\toutputPath ? `Output: ${outputPath}` : undefined,\n\t\titem.step?.sessionFile ? `Session: ${item.step.sessionFile}` : item.run.sessionFile ? `Session: ${item.run.sessionFile}` : undefined,\n\t\t\"\",\n\t\t\"Transcript\",\n\t\t\"(status is no longer available)\",\n\t].filter((line): line is string => line !== undefined);\n}\n\nfunction detailLines(item: FleetItem | undefined, error: string | undefined): string[] {\n\tif (!item) return [error ? `Fleet scan failed: ${error}` : \"No current-session foreground or recent async children.\", \"\", \"New runs appear here automatically while this inspector remains open.\"];\n\tconst lines = item.kind === \"foreground-active\"\n\t\t? foregroundActiveDetail(item)\n\t\t: item.kind === \"foreground-recent\"\n\t\t\t? foregroundRecentDetail(item)\n\t\t\t: asyncDetail(item);\n\tif (error) lines.unshift(`Fleet scan warning: ${error}`, \"\");\n\treturn lines;\n}\n\nfunction fit(text: string, width: number): string {\n\tconst clipped = truncateToWidth(text, Math.max(0, width));\n\treturn clipped + \" \".repeat(Math.max(0, width - visibleWidth(clipped)));\n}\n\nfunction rightAligned(left: string, right: string, width: number): string {\n\tconst rightWidth = visibleWidth(right);\n\tconst leftWidth = Math.max(0, width - rightWidth - 1);\n\treturn fit(left, leftWidth) + \" \".repeat(Math.max(1, width - leftWidth - rightWidth)) + fit(right, rightWidth);\n}\n\nexport class SubagentFleetComponent implements Component {\n\tprivate snapshot: FleetSnapshot = { items: [] };\n\tprivate selected = 0;\n\tprivate selectedKey: string | undefined;\n\tprivate detailScroll = 0;\n\tprivate detailAutoFollow = true;\n\tprivate detailLineCount = 0;\n\tprivate bodyHeight = 8;\n\tprivate disposed = false;\n\tprivate readonly timer: ReturnType<typeof setInterval>;\n\tprivate readonly tui: TUI;\n\tprivate readonly theme: Theme;\n\tprivate readonly state: SubagentState;\n\tprivate readonly done: (result: undefined) => void;\n\tprivate readonly options: { asyncDirRoot?: string; resultsDir?: string; refreshMs?: number };\n\n\tconstructor(\n\t\ttui: TUI,\n\t\ttheme: Theme,\n\t\tstate: SubagentState,\n\t\tdone: (result: undefined) => void,\n\t\toptions: { asyncDirRoot?: string; resultsDir?: string; refreshMs?: number } = {},\n\t) {\n\t\tthis.tui = tui;\n\t\tthis.theme = theme;\n\t\tthis.state = state;\n\t\tthis.done = done;\n\t\tthis.options = options;\n\t\tthis.refresh();\n\t\tthis.timer = setInterval(() => {\n\t\t\tif (this.disposed) return;\n\t\t\tthis.refresh();\n\t\t\tthis.tui.requestRender();\n\t\t}, options.refreshMs ?? REFRESH_MS);\n\t\tthis.timer.unref?.();\n\t}\n\n\tprivate refresh(): void {\n\t\tconst previousKey = this.snapshot.items[this.selected]?.key ?? this.selectedKey;\n\t\tthis.snapshot = collectFleetSnapshot(this.state, this.options);\n\t\tconst preserved = previousKey ? this.snapshot.items.findIndex((item) => item.key === previousKey) : -1;\n\t\tthis.selected = preserved >= 0 ? preserved : Math.min(this.selected, Math.max(0, this.snapshot.items.length - 1));\n\t\tthis.selectedKey = this.snapshot.items[this.selected]?.key;\n\t}\n\n\tprivate moveSelection(delta: number): void {\n\t\tif (this.snapshot.items.length === 0) return;\n\t\tthis.selected = Math.max(0, Math.min(this.snapshot.items.length - 1, this.selected + delta));\n\t\tthis.selectedKey = this.snapshot.items[this.selected]?.key;\n\t\tthis.detailAutoFollow = true;\n\t\tthis.tui.requestRender();\n\t}\n\n\thandleInput(data: string): void {\n\t\tif (matchesKey(data, \"escape\") || matchesKey(data, \"ctrl+c\") || matchesKey(data, \"q\")) {\n\t\t\tthis.done(undefined);\n\t\t\treturn;\n\t\t}\n\t\tif (matchesKey(data, \"up\") || matchesKey(data, \"k\")) return this.moveSelection(-1);\n\t\tif (matchesKey(data, \"down\") || matchesKey(data, \"j\")) return this.moveSelection(1);\n\t\tif (matchesKey(data, \"home\")) return this.moveSelection(-this.snapshot.items.length);\n\t\tif (matchesKey(data, \"end\")) return this.moveSelection(this.snapshot.items.length);\n\t\tif (matchesKey(data, \"pageUp\")) {\n\t\t\tthis.detailAutoFollow = false;\n\t\t\tthis.detailScroll = Math.max(0, Math.min(this.detailScroll, Math.max(0, this.detailLineCount - this.bodyHeight)) - this.bodyHeight);\n\t\t\tthis.tui.requestRender();\n\t\t\treturn;\n\t\t}\n\t\tif (matchesKey(data, \"pageDown\")) {\n\t\t\tconst maxScroll = Math.max(0, this.detailLineCount - this.bodyHeight);\n\t\t\tthis.detailScroll = Math.min(maxScroll, this.detailScroll + this.bodyHeight);\n\t\t\tthis.detailAutoFollow = this.detailScroll >= maxScroll;\n\t\t\tthis.tui.requestRender();\n\t\t\treturn;\n\t\t}\n\t\tif (data.toLowerCase() === \"r\") {\n\t\t\tthis.refresh();\n\t\t\tthis.tui.requestRender();\n\t\t}\n\t}\n\n\tprivate rosterLines(width: number): string[] {\n\t\tif (this.snapshot.items.length === 0) return [this.theme.fg(\"dim\", \"No tracked children\")];\n\t\tconst start = Math.max(0, Math.min(this.selected - this.bodyHeight + 1, Math.max(0, this.snapshot.items.length - this.bodyHeight)));\n\t\treturn this.snapshot.items.slice(start, start + this.bodyHeight).map((item, offset) => {\n\t\t\tconst index = start + offset;\n\t\t\tconst marker = index === this.selected ? this.theme.fg(\"accent\", \"›\") : \" \";\n\t\t\tconst child = item.index !== undefined ? `:${item.index + 1}` : \"\";\n\t\t\tconst source = item.kind === \"async\" ? \"async\" : item.kind === \"foreground-active\" ? \"live\" : \"recent\";\n\t\t\tconst facts = rosterFacts(item, this.theme);\n\t\t\tconst factsSuffix = facts ? ` ${this.theme.fg(\"dim\", facts)}` : \"\";\n\t\t\tconst left = `${marker} ${statusGlyph(item, this.theme)} ${source} ${item.runId.slice(0, 8)}${child} ${item.agent}${factsSuffix}`;\n\t\t\treturn rightAligned(left, this.theme.fg(\"dim\", item.state), width);\n\t\t});\n\t}\n\n\tprivate wrappedDetail(width: number): string[] {\n\t\tconst selected = this.snapshot.items[this.selected];\n\t\tconst raw = detailLines(selected, this.snapshot.error);\n\t\tconst lines: string[] = [];\n\t\tfor (const line of raw) {\n\t\t\tconst styled = /^(Run|State|Mode|Source|Child|Agent):/.test(line)\n\t\t\t\t? this.theme.bold(line)\n\t\t\t\t: /^(Transcript|Result transcript tail)/.test(line)\n\t\t\t\t\t? this.theme.fg(\"accent\", line)\n\t\t\t\t\t: /^(Output|Session|Transcript file|Artifacts):/.test(line)\n\t\t\t\t\t\t? this.theme.fg(\"muted\", line)\n\t\t\t\t\t\t: line;\n\t\t\tconst wrapped = wrapTextWithAnsi(styled, Math.max(1, width));\n\t\t\tlines.push(...(wrapped.length ? wrapped : [\"\"]));\n\t\t}\n\t\treturn lines;\n\t}\n\n\trender(width: number): string[] {\n\t\tif (width < 36) return [truncateToWidth(\"Subagent fleet needs at least 36 columns. Esc closes.\", width)];\n\t\tconst innerWidth = width - 2;\n\t\tconst rows = this.tui.terminal?.rows ?? 32;\n\t\tthis.bodyHeight = Math.max(2, Math.min(30, Math.floor(rows * 0.85) - 6));\n\t\tconst rosterWidth = Math.max(22, Math.min(46, Math.floor((innerWidth - 1) * 0.38)));\n\t\tconst detailWidth = Math.max(1, innerWidth - rosterWidth - 1);\n\t\tconst roster = this.rosterLines(rosterWidth);\n\t\tconst details = this.wrappedDetail(detailWidth);\n\t\tthis.detailLineCount = details.length;\n\t\tconst maxDetailScroll = Math.max(0, details.length - this.bodyHeight);\n\t\tif (this.detailAutoFollow) this.detailScroll = maxDetailScroll;\n\t\telse if (this.detailScroll > maxDetailScroll) this.detailScroll = maxDetailScroll;\n\t\tconst visibleDetails = details.slice(this.detailScroll, this.detailScroll + this.bodyHeight);\n\t\tconst lines = [this.theme.fg(\"border\", `╭${\"─\".repeat(innerWidth)}╮`)];\n\t\tlines.push(this.theme.fg(\"border\", \"│\") + fit(` ${this.theme.bold(\"Subagent fleet\")} ${this.theme.fg(\"dim\", \"· inspection only · live refresh\")}`, innerWidth) + this.theme.fg(\"border\", \"│\"));\n\t\tlines.push(this.theme.fg(\"border\", `├${\"─\".repeat(rosterWidth)}┬${\"─\".repeat(detailWidth)}┤`));\n\t\tfor (let index = 0; index < this.bodyHeight; index++) {\n\t\t\tlines.push(\n\t\t\t\tthis.theme.fg(\"border\", \"│\")\n\t\t\t\t+ fit(roster[index] ?? \"\", rosterWidth)\n\t\t\t\t+ this.theme.fg(\"border\", \"│\")\n\t\t\t\t+ fit(visibleDetails[index] ?? \"\", detailWidth)\n\t\t\t\t+ this.theme.fg(\"border\", \"│\"),\n\t\t\t);\n\t\t}\n\t\tlines.push(this.theme.fg(\"border\", `├${\"─\".repeat(rosterWidth)}┴${\"─\".repeat(detailWidth)}┤`));\n\t\tconst position = this.snapshot.items.length ? `${this.selected + 1}/${this.snapshot.items.length}` : \"0/0\";\n\t\tconst footer = ` ↑↓/jk child · PgUp/PgDn transcript · r refresh · Esc close · ${position}`;\n\t\tlines.push(this.theme.fg(\"border\", \"│\") + fit(this.theme.fg(\"dim\", footer), innerWidth) + this.theme.fg(\"border\", \"│\"));\n\t\tlines.push(this.theme.fg(\"border\", `╰${\"─\".repeat(innerWidth)}╯`));\n\t\treturn lines.map((line) => truncateToWidth(line, width));\n\t}\n\n\tinvalidate(): void {\n\t\tthis.refresh();\n\t}\n\n\tdispose(): void {\n\t\tthis.disposed = true;\n\t\tclearInterval(this.timer);\n\t}\n}\n\nexport async function openSubagentFleet(ctx: ExtensionContext, state: SubagentState): Promise<void> {\n\tawait ctx.ui.custom<undefined>(\n\t\t(tui, theme, _keybindings, done) => new SubagentFleetComponent(tui, theme, state, done),\n\t\t{\n\t\t\toverlay: true,\n\t\t\toverlayOptions: { anchor: \"center\", width: \"95%\", minWidth: 60, maxHeight: \"85%\", margin: 1 },\n\t\t},\n\t);\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Theme } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
export declare function fuzzyFilter<T extends {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
model?: string;
|
|
6
|
+
}>(items: T[], query: string): T[];
|
|
7
|
+
export declare function pad(s: string, len: number): string;
|
|
8
|
+
export declare function row(content: string, width: number, theme: Theme): string;
|
|
9
|
+
export declare function renderHeader(text: string, width: number, theme: Theme): string;
|
|
10
|
+
export declare function formatPath(filePath: string): string;
|
|
11
|
+
export declare function formatScrollInfo(above: number, below: number): string;
|
|
12
|
+
export declare function renderFooter(text: string, width: number, theme: Theme): string;
|
|
13
|
+
//# sourceMappingURL=render-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-helpers.d.ts","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/tui/render-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAsB7D,wBAAgB,WAAW,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAQ3H;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAKxE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAU9E;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAU9E","sourcesContent":["// @ts-nocheck\nimport type { Theme } from \"@earendil-works/pi-coding-agent\";\nimport { truncateToWidth, visibleWidth } from \"@earendil-works/pi-tui\";\n\nfunction fuzzyScore(query: string, text: string): number {\n\tconst lq = query.toLowerCase();\n\tconst lt = text.toLowerCase();\n\tif (lt.includes(lq)) return 100 + (lq.length / lt.length) * 50;\n\tlet score = 0;\n\tlet qi = 0;\n\tlet consecutive = 0;\n\tfor (let i = 0; i < lt.length && qi < lq.length; i++) {\n\t\tif (lt[i] === lq[qi]) {\n\t\t\tscore += 10 + consecutive;\n\t\t\tconsecutive += 5;\n\t\t\tqi++;\n\t\t} else {\n\t\t\tconsecutive = 0;\n\t\t}\n\t}\n\treturn qi === lq.length ? score : 0;\n}\n\nexport function fuzzyFilter<T extends { name: string; description: string; model?: string }>(items: T[], query: string): T[] {\n\tconst q = query.trim();\n\tif (!q) return items;\n\treturn items\n\t\t.map((item) => ({ item, score: Math.max(fuzzyScore(q, item.name), fuzzyScore(q, item.description) * 0.8, fuzzyScore(q, item.model ?? \"\") * 0.6) }))\n\t\t.filter((x) => x.score > 0)\n\t\t.sort((a, b) => b.score - a.score)\n\t\t.map((x) => x.item);\n}\n\nexport function pad(s: string, len: number): string {\n\tconst vis = visibleWidth(s);\n\treturn s + \" \".repeat(Math.max(0, len - vis));\n}\n\nexport function row(content: string, width: number, theme: Theme): string {\n\tconst innerW = width - 2;\n\tconst singleLine = content.replace(/[\\r\\n]+/g, \" \").replace(/\\t/g, \" \");\n\tconst clipped = truncateToWidth(singleLine, innerW);\n\treturn theme.fg(\"border\", \"│\") + pad(clipped, innerW) + theme.fg(\"border\", \"│\");\n}\n\nexport function renderHeader(text: string, width: number, theme: Theme): string {\n\tconst innerW = width - 2;\n\tconst padLen = Math.max(0, innerW - visibleWidth(text));\n\tconst padLeft = Math.floor(padLen / 2);\n\tconst padRight = padLen - padLeft;\n\treturn (\n\t\ttheme.fg(\"border\", \"╭\" + \"─\".repeat(padLeft)) +\n\t\ttheme.fg(\"accent\", text) +\n\t\ttheme.fg(\"border\", \"─\".repeat(padRight) + \"╮\")\n\t);\n}\n\nexport function formatPath(filePath: string): string {\n\tconst home = process.env.HOME;\n\tif (home && filePath.startsWith(home)) return `~${filePath.slice(home.length)}`;\n\treturn filePath;\n}\n\nexport function formatScrollInfo(above: number, below: number): string {\n\tlet info = \"\";\n\tif (above > 0) info += `↑ ${above} more`;\n\tif (below > 0) info += `${info ? \" \" : \"\"}↓ ${below} more`;\n\treturn info;\n}\n\nexport function renderFooter(text: string, width: number, theme: Theme): string {\n\tconst innerW = width - 2;\n\tconst padLen = Math.max(0, innerW - visibleWidth(text));\n\tconst padLeft = Math.floor(padLen / 2);\n\tconst padRight = padLen - padLeft;\n\treturn (\n\t\ttheme.fg(\"border\", \"╰\" + \"─\".repeat(padLeft)) +\n\t\ttheme.fg(\"dim\", text) +\n\t\ttheme.fg(\"border\", \"─\".repeat(padRight) + \"╯\")\n\t);\n}\n"]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
|
|
2
|
+
function fuzzyScore(query, text) {
|
|
3
|
+
const lq = query.toLowerCase();
|
|
4
|
+
const lt = text.toLowerCase();
|
|
5
|
+
if (lt.includes(lq))
|
|
6
|
+
return 100 + (lq.length / lt.length) * 50;
|
|
7
|
+
let score = 0;
|
|
8
|
+
let qi = 0;
|
|
9
|
+
let consecutive = 0;
|
|
10
|
+
for (let i = 0; i < lt.length && qi < lq.length; i++) {
|
|
11
|
+
if (lt[i] === lq[qi]) {
|
|
12
|
+
score += 10 + consecutive;
|
|
13
|
+
consecutive += 5;
|
|
14
|
+
qi++;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
consecutive = 0;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return qi === lq.length ? score : 0;
|
|
21
|
+
}
|
|
22
|
+
export function fuzzyFilter(items, query) {
|
|
23
|
+
const q = query.trim();
|
|
24
|
+
if (!q)
|
|
25
|
+
return items;
|
|
26
|
+
return items
|
|
27
|
+
.map((item) => ({ item, score: Math.max(fuzzyScore(q, item.name), fuzzyScore(q, item.description) * 0.8, fuzzyScore(q, item.model ?? "") * 0.6) }))
|
|
28
|
+
.filter((x) => x.score > 0)
|
|
29
|
+
.sort((a, b) => b.score - a.score)
|
|
30
|
+
.map((x) => x.item);
|
|
31
|
+
}
|
|
32
|
+
export function pad(s, len) {
|
|
33
|
+
const vis = visibleWidth(s);
|
|
34
|
+
return s + " ".repeat(Math.max(0, len - vis));
|
|
35
|
+
}
|
|
36
|
+
export function row(content, width, theme) {
|
|
37
|
+
const innerW = width - 2;
|
|
38
|
+
const singleLine = content.replace(/[\r\n]+/g, " ").replace(/\t/g, " ");
|
|
39
|
+
const clipped = truncateToWidth(singleLine, innerW);
|
|
40
|
+
return theme.fg("border", "│") + pad(clipped, innerW) + theme.fg("border", "│");
|
|
41
|
+
}
|
|
42
|
+
export function renderHeader(text, width, theme) {
|
|
43
|
+
const innerW = width - 2;
|
|
44
|
+
const padLen = Math.max(0, innerW - visibleWidth(text));
|
|
45
|
+
const padLeft = Math.floor(padLen / 2);
|
|
46
|
+
const padRight = padLen - padLeft;
|
|
47
|
+
return (theme.fg("border", "╭" + "─".repeat(padLeft)) +
|
|
48
|
+
theme.fg("accent", text) +
|
|
49
|
+
theme.fg("border", "─".repeat(padRight) + "╮"));
|
|
50
|
+
}
|
|
51
|
+
export function formatPath(filePath) {
|
|
52
|
+
const home = process.env.HOME;
|
|
53
|
+
if (home && filePath.startsWith(home))
|
|
54
|
+
return `~${filePath.slice(home.length)}`;
|
|
55
|
+
return filePath;
|
|
56
|
+
}
|
|
57
|
+
export function formatScrollInfo(above, below) {
|
|
58
|
+
let info = "";
|
|
59
|
+
if (above > 0)
|
|
60
|
+
info += `↑ ${above} more`;
|
|
61
|
+
if (below > 0)
|
|
62
|
+
info += `${info ? " " : ""}↓ ${below} more`;
|
|
63
|
+
return info;
|
|
64
|
+
}
|
|
65
|
+
export function renderFooter(text, width, theme) {
|
|
66
|
+
const innerW = width - 2;
|
|
67
|
+
const padLen = Math.max(0, innerW - visibleWidth(text));
|
|
68
|
+
const padLeft = Math.floor(padLen / 2);
|
|
69
|
+
const padRight = padLen - padLeft;
|
|
70
|
+
return (theme.fg("border", "╰" + "─".repeat(padLeft)) +
|
|
71
|
+
theme.fg("dim", text) +
|
|
72
|
+
theme.fg("border", "─".repeat(padRight) + "╯"));
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=render-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-helpers.js","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/tui/render-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport type { Theme } from \"@earendil-works/pi-coding-agent\";\nimport { truncateToWidth, visibleWidth } from \"@earendil-works/pi-tui\";\n\nfunction fuzzyScore(query: string, text: string): number {\n\tconst lq = query.toLowerCase();\n\tconst lt = text.toLowerCase();\n\tif (lt.includes(lq)) return 100 + (lq.length / lt.length) * 50;\n\tlet score = 0;\n\tlet qi = 0;\n\tlet consecutive = 0;\n\tfor (let i = 0; i < lt.length && qi < lq.length; i++) {\n\t\tif (lt[i] === lq[qi]) {\n\t\t\tscore += 10 + consecutive;\n\t\t\tconsecutive += 5;\n\t\t\tqi++;\n\t\t} else {\n\t\t\tconsecutive = 0;\n\t\t}\n\t}\n\treturn qi === lq.length ? score : 0;\n}\n\nexport function fuzzyFilter<T extends { name: string; description: string; model?: string }>(items: T[], query: string): T[] {\n\tconst q = query.trim();\n\tif (!q) return items;\n\treturn items\n\t\t.map((item) => ({ item, score: Math.max(fuzzyScore(q, item.name), fuzzyScore(q, item.description) * 0.8, fuzzyScore(q, item.model ?? \"\") * 0.6) }))\n\t\t.filter((x) => x.score > 0)\n\t\t.sort((a, b) => b.score - a.score)\n\t\t.map((x) => x.item);\n}\n\nexport function pad(s: string, len: number): string {\n\tconst vis = visibleWidth(s);\n\treturn s + \" \".repeat(Math.max(0, len - vis));\n}\n\nexport function row(content: string, width: number, theme: Theme): string {\n\tconst innerW = width - 2;\n\tconst singleLine = content.replace(/[\\r\\n]+/g, \" \").replace(/\\t/g, \" \");\n\tconst clipped = truncateToWidth(singleLine, innerW);\n\treturn theme.fg(\"border\", \"│\") + pad(clipped, innerW) + theme.fg(\"border\", \"│\");\n}\n\nexport function renderHeader(text: string, width: number, theme: Theme): string {\n\tconst innerW = width - 2;\n\tconst padLen = Math.max(0, innerW - visibleWidth(text));\n\tconst padLeft = Math.floor(padLen / 2);\n\tconst padRight = padLen - padLeft;\n\treturn (\n\t\ttheme.fg(\"border\", \"╭\" + \"─\".repeat(padLeft)) +\n\t\ttheme.fg(\"accent\", text) +\n\t\ttheme.fg(\"border\", \"─\".repeat(padRight) + \"╮\")\n\t);\n}\n\nexport function formatPath(filePath: string): string {\n\tconst home = process.env.HOME;\n\tif (home && filePath.startsWith(home)) return `~${filePath.slice(home.length)}`;\n\treturn filePath;\n}\n\nexport function formatScrollInfo(above: number, below: number): string {\n\tlet info = \"\";\n\tif (above > 0) info += `↑ ${above} more`;\n\tif (below > 0) info += `${info ? \" \" : \"\"}↓ ${below} more`;\n\treturn info;\n}\n\nexport function renderFooter(text: string, width: number, theme: Theme): string {\n\tconst innerW = width - 2;\n\tconst padLen = Math.max(0, innerW - visibleWidth(text));\n\tconst padLeft = Math.floor(padLen / 2);\n\tconst padRight = padLen - padLeft;\n\treturn (\n\t\ttheme.fg(\"border\", \"╰\" + \"─\".repeat(padLeft)) +\n\t\ttheme.fg(\"dim\", text) +\n\t\ttheme.fg(\"border\", \"─\".repeat(padRight) + \"╯\")\n\t);\n}\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rendering functions for subagent results
|
|
3
|
+
*/
|
|
4
|
+
import type { AgentToolResult } from "@earendil-works/pi-agent-core";
|
|
5
|
+
import { type ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
6
|
+
import { Text, type Component } from "@earendil-works/pi-tui";
|
|
7
|
+
import { type AsyncJobState, type Details } from "../shared/types.ts";
|
|
8
|
+
type Theme = ExtensionContext["ui"]["theme"];
|
|
9
|
+
interface LegacyResultAnimationContext {
|
|
10
|
+
state: {
|
|
11
|
+
subagentResultAnimationTimer?: ReturnType<typeof setInterval>;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function clearLegacyResultAnimationTimer(context: LegacyResultAnimationContext): void;
|
|
15
|
+
export interface SubagentAnimatedLine {
|
|
16
|
+
text: Text;
|
|
17
|
+
line: (frame: number) => string;
|
|
18
|
+
}
|
|
19
|
+
export declare const subagentAnimSink: {
|
|
20
|
+
current: SubagentAnimatedLine[] | null;
|
|
21
|
+
};
|
|
22
|
+
export declare function widgetRenderKey(job: AsyncJobState): string;
|
|
23
|
+
export declare function buildWidgetLines(jobs: AsyncJobState[], theme: Theme, width?: number, expanded?: boolean): string[];
|
|
24
|
+
/**
|
|
25
|
+
* Render the async jobs widget
|
|
26
|
+
*/
|
|
27
|
+
export declare function renderWidget(ctx: ExtensionContext, jobs: AsyncJobState[]): void;
|
|
28
|
+
/**
|
|
29
|
+
* Render a subagent result
|
|
30
|
+
*/
|
|
31
|
+
export declare function renderSubagentResult(result: AgentToolResult<Details>, options: {
|
|
32
|
+
expanded: boolean;
|
|
33
|
+
}, theme: Theme, frame?: number): Component;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/tui/render.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnG,OAAO,EAA+B,IAAI,EAAgB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACzG,OAAO,EAEN,KAAK,aAAa,EAGlB,KAAK,OAAO,EAMZ,MAAM,oBAAoB,CAAC;AAO5B,KAAK,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AAmI7C,UAAU,4BAA4B;IACrC,KAAK,EAAE;QAAE,4BAA4B,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;KAAE,CAAC;CACzE;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI,CAK3F;AAKD,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAChC;AACD,eAAO,MAAM,gBAAgB,EAAE;IAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAA;CAAsB,CAAC;AAkJ9F,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CA0B1D;AA22BD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,SAAiB,EAAE,QAAQ,UAAQ,GAAG,MAAM,EAAE,CAoExH;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,IAAI,CAQ/E;AA6HD;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAChC,OAAO,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,EAC9B,KAAK,EAAE,KAAK,EACZ,KAAK,CAAC,EAAE,MAAM,GACZ,SAAS,CA+UX","sourcesContent":["// @ts-nocheck\n/**\n * Rendering functions for subagent results\n */\n\nimport type { AgentToolResult } from \"@earendil-works/pi-agent-core\";\nimport { getMarkdownTheme, keyText, type ExtensionContext } from \"@earendil-works/pi-coding-agent\";\nimport { Container, Markdown, Spacer, Text, visibleWidth, type Component } from \"@earendil-works/pi-tui\";\nimport {\n\ttype AgentProgress,\n\ttype AsyncJobState,\n\ttype AsyncJobStep,\n\ttype AsyncParallelGroupStatus,\n\ttype Details,\n\ttype NestedRunSummary,\n\ttype NestedStepSummary,\n\ttype WorkflowNodeStatus,\n\tMAX_WIDGET_JOBS,\n\tWIDGET_KEY,\n} from \"../shared/types.ts\";\nimport { formatTokens, formatUsage, formatDuration, formatModelThinking, formatToolCall, shortenPath } from \"../shared/formatters.ts\";\nimport { getDisplayItems, getSingleResultOutput } from \"../shared/utils.ts\";\nimport { flatToLogicalStepIndex } from \"../runs/background/parallel-groups.ts\";\nimport { formatNestedAggregate } from \"../runs/shared/nested-render.ts\";\nimport { aggregateStepStatus, formatActivityLabel, formatAgentRunningLabel, formatParallelOutcome } from \"../shared/status-format.ts\";\n\ntype Theme = ExtensionContext[\"ui\"][\"theme\"];\n\nfunction liveDetailKeyText(): string {\n\treturn keyText(\"app.tools.expand\");\n}\n\nfunction liveDetailHintText(): string {\n\treturn `Press ${liveDetailKeyText()} for live detail`;\n}\n\nfunction getTermWidth(): number {\n\treturn process.stdout.columns || 120;\n}\n\nconst segmenter = new Intl.Segmenter(undefined, { granularity: \"grapheme\" });\n\n/**\n * Truncate a line to maxWidth, preserving ANSI styling through the ellipsis.\n * \n * pi-tui's truncateToWidth adds \\x1b[0m before ellipsis which resets all styling,\n * causing background color bleed in the TUI. This implementation tracks active\n * ANSI styles and re-applies them before the ellipsis.\n * \n * Uses Intl.Segmenter for proper Unicode/emoji handling (not char-by-char).\n */\nfunction truncLine(text: string, maxWidth: number): string {\n\tif (visibleWidth(text) <= maxWidth) return text;\n\n\tconst targetWidth = maxWidth - 1;\n\tlet result = \"\";\n\tlet currentWidth = 0;\n\tlet activeStyles: string[] = [];\n\tlet i = 0;\n\n\twhile (i < text.length) {\n\t\tconst ansiMatch = text.slice(i).match(/^\\x1b\\[[0-9;]*m/);\n\t\tif (ansiMatch) {\n\t\t\tconst code = ansiMatch[0];\n\t\t\tresult += code;\n\n\t\t\tif (code === \"\\x1b[0m\" || code === \"\\x1b[m\") {\n\t\t\t\tactiveStyles = [];\n\t\t\t} else {\n\t\t\t\tactiveStyles.push(code);\n\t\t\t}\n\t\t\ti += code.length;\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet end = i;\n\t\twhile (end < text.length && !text.slice(end).match(/^\\x1b\\[[0-9;]*m/)) {\n\t\t\tend++;\n\t\t}\n\n\t\tconst textPortion = text.slice(i, end);\n\t\tfor (const seg of segmenter.segment(textPortion)) {\n\t\t\tconst grapheme = seg.segment;\n\t\t\tconst graphemeWidth = visibleWidth(grapheme);\n\n\t\t\tif (currentWidth + graphemeWidth > targetWidth) {\n\t\t\t\treturn result + activeStyles.join(\"\") + \"…\";\n\t\t\t}\n\n\t\t\tresult += grapheme;\n\t\t\tcurrentWidth += graphemeWidth;\n\t\t}\n\t\ti = end;\n\t}\n\n\treturn result + activeStyles.join(\"\") + \"…\";\n}\n\nfunction wrapPlainText(text: string, maxWidth: number): string[] {\n\tif (maxWidth <= 0) return [\"\"];\n\tconst lines: string[] = [];\n\tfor (const rawLine of text.split(\"\\n\")) {\n\t\tif (rawLine.length === 0) {\n\t\t\tlines.push(\"\");\n\t\t\tcontinue;\n\t\t}\n\t\tlet current = \"\";\n\t\tlet currentWidth = 0;\n\t\tfor (const seg of segmenter.segment(rawLine)) {\n\t\t\tconst grapheme = seg.segment;\n\t\t\tconst graphemeWidth = visibleWidth(grapheme);\n\t\t\tif (currentWidth > 0 && currentWidth + graphemeWidth > maxWidth) {\n\t\t\t\tlines.push(current);\n\t\t\t\tcurrent = grapheme;\n\t\t\t\tcurrentWidth = graphemeWidth;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcurrent += grapheme;\n\t\t\tcurrentWidth += graphemeWidth;\n\t\t}\n\t\tlines.push(current);\n\t}\n\treturn lines;\n}\n\nconst RUNNING_FRAMES = [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"];\nconst STATIC_RUNNING_GLYPH = \"●\";\n\ntype ProgressSeedSource = Partial<Pick<AgentProgress, \"index\" | \"toolCount\" | \"tokens\" | \"durationMs\" | \"lastActivityAt\" | \"currentToolStartedAt\" | \"turnCount\">>;\n\nfunction runningSeed(...values: Array<number | undefined>): number | undefined {\n\tlet seed: number | undefined;\n\tfor (const value of values) {\n\t\tif (value === undefined || !Number.isFinite(value)) continue;\n\t\tseed = (seed ?? 0) + Math.trunc(value);\n\t}\n\treturn seed;\n}\n\nfunction runningGlyph(seed?: number): string {\n\tif (seed === undefined) return STATIC_RUNNING_GLYPH;\n\treturn RUNNING_FRAMES[Math.abs(seed) % RUNNING_FRAMES.length]!;\n}\n\nfunction progressRunningSeed(progress: ProgressSeedSource | undefined): number | undefined {\n\tif (!progress) return undefined;\n\treturn runningSeed(\n\t\tprogress.index,\n\t\tprogress.toolCount,\n\t\tprogress.tokens,\n\t\tprogress.durationMs,\n\t\tprogress.lastActivityAt,\n\t\tprogress.currentToolStartedAt,\n\t\tprogress.turnCount,\n\t);\n}\n\ninterface LegacyResultAnimationContext {\n\tstate: { subagentResultAnimationTimer?: ReturnType<typeof setInterval> };\n}\n\nexport function clearLegacyResultAnimationTimer(context: LegacyResultAnimationContext): void {\n\tconst timer = context.state.subagentResultAnimationTimer;\n\tif (!timer) return;\n\tclearInterval(timer);\n\tcontext.state.subagentResultAnimationTimer = undefined;\n}\n\n// lunr: animation sink — while `current` is set, running-glyph lines register a\n// per-frame template so the extension timer can rewrite just those Text nodes\n// (setText + requestRender) instead of rebuilding the whole result tree per frame.\nexport interface SubagentAnimatedLine {\n\ttext: Text;\n\tline: (frame: number) => string;\n}\nexport const subagentAnimSink: { current: SubagentAnimatedLine[] | null } = { current: null };\n\nfunction animatedLine(line: (frame: number) => string, frame: number | undefined, animate: boolean): Text {\n\tconst text = new Text(line(frame ?? 0), 0, 0);\n\tif (animate && frame !== undefined && subagentAnimSink.current) {\n\t\tsubagentAnimSink.current.push({ text, line });\n\t}\n\treturn text;\n}\n\nfunction extractOutputTarget(task: string): string | undefined {\n\tconst writeToMatch = task.match(/\\[Write to:\\s*([^\\]\\n]+)\\]/i);\n\tif (writeToMatch?.[1]?.trim()) return writeToMatch[1].trim();\n\tconst findingsMatch = task.match(/Write your findings to(?: exactly this path)?:\\s*([^\\r\\n]+)/i);\n\tif (findingsMatch?.[1]?.trim()) return findingsMatch[1].trim();\n\tconst outputMatch = task.match(/[Oo]utput(?:\\s+to)?\\s*:\\s*(\\S+)/i);\n\tif (outputMatch?.[1]?.trim()) return outputMatch[1].trim();\n\treturn undefined;\n}\n\nfunction hasEmptyTextOutputWithoutOutputTarget(task: string, output: string): boolean {\n\tif (output.trim()) return false;\n\treturn !extractOutputTarget(task);\n}\n\nfunction getToolCallLines(\n\tresult: Pick<Details[\"results\"][number], \"messages\" | \"toolCalls\">,\n\texpanded: boolean,\n): string[] {\n\tif (result.messages) {\n\t\treturn getDisplayItems(result.messages)\n\t\t\t.filter((item): item is { type: \"tool\"; name: string; args: Record<string, unknown> } => item.type === \"tool\")\n\t\t\t.map((item) => formatToolCall(item.name, item.args, expanded));\n\t}\n\treturn result.toolCalls?.map((toolCall) => expanded ? toolCall.expandedText : toolCall.text) ?? [];\n}\n\n\nfunction snapshotNowForProgress(progress: Pick<AgentProgress, \"currentToolStartedAt\" | \"durationMs\" | \"lastActivityAt\">): number | undefined {\n\tif (progress.currentToolStartedAt !== undefined && progress.durationMs !== undefined) return progress.currentToolStartedAt + progress.durationMs;\n\treturn progress.lastActivityAt;\n}\n\nfunction formatCurrentToolLine(\n\tprogress: Pick<AgentProgress, \"currentTool\" | \"currentToolArgs\" | \"currentToolStartedAt\">,\n\tavailableWidth: number,\n\texpanded: boolean,\n\tsnapshotNow?: number,\n): string | undefined {\n\tif (!progress.currentTool) return undefined;\n\tconst maxToolArgsLen = Math.max(50, availableWidth - 20);\n\tconst toolArgsPreview = progress.currentToolArgs\n\t\t? (expanded || progress.currentToolArgs.length <= maxToolArgsLen\n\t\t\t? progress.currentToolArgs\n\t\t\t: `${progress.currentToolArgs.slice(0, maxToolArgsLen)}...`)\n\t\t: \"\";\n\tconst durationSuffix = progress.currentToolStartedAt !== undefined && snapshotNow !== undefined\n\t\t? ` | ${formatDuration(Math.max(0, snapshotNow - progress.currentToolStartedAt))}`\n\t\t: \"\";\n\treturn toolArgsPreview\n\t\t? `${progress.currentTool}: ${toolArgsPreview}${durationSuffix}`\n\t\t: `${progress.currentTool}${durationSuffix}`;\n}\n\nfunction buildLiveStatusLine(progress: Pick<AgentProgress, \"activityState\" | \"lastActivityAt\">, snapshotNow?: number): string | undefined {\n\tif (progress.lastActivityAt !== undefined && snapshotNow !== undefined) return formatActivityLabel(progress.lastActivityAt, progress.activityState, snapshotNow);\n\tif (progress.activityState === \"needs_attention\") return \"needs attention\";\n\tif (progress.activityState === \"active_long_running\") return \"active but long-running\";\n\tif (progress.lastActivityAt !== undefined) return \"active\";\n\treturn undefined;\n}\n\nfunction themeBold(theme: Theme, text: string): string {\n\treturn ((theme as { bold?: (value: string) => string }).bold?.(text)) ?? text;\n}\n\nfunction statJoin(theme: Theme, parts: string[]): string {\n\treturn parts.filter(Boolean).map((part) => theme.fg(\"dim\", part)).join(` ${theme.fg(\"dim\", \"·\")} `);\n}\n\nfunction formatTokenStat(tokens: number): string {\n\treturn `${formatTokens(tokens)} token`;\n}\n\nfunction formatToolUseStat(count: number): string {\n\treturn `${count} tool use${count === 1 ? \"\" : \"s\"}`;\n}\n\nfunction formatTotalCostStat(totalCost: Details[\"totalCost\"] | undefined): string {\n\tif (!totalCost || (totalCost.inputTokens === 0 && totalCost.outputTokens === 0 && totalCost.costUsd === 0)) return \"\";\n\tconst parts: string[] = [];\n\tif (totalCost.inputTokens) parts.push(`in:${formatTokens(totalCost.inputTokens)}`);\n\tif (totalCost.outputTokens) parts.push(`out:${formatTokens(totalCost.outputTokens)}`);\n\tif (totalCost.costUsd) parts.push(`$${totalCost.costUsd.toFixed(4)}`);\n\treturn parts.join(\" \");\n}\n\nfunction formatProgressStats(theme: Theme, progress: Pick<AgentProgress, \"toolCount\" | \"tokens\" | \"durationMs\"> | undefined, includeDuration = true): string {\n\tif (!progress) return \"\";\n\tconst parts: string[] = [];\n\tif (progress.toolCount > 0) parts.push(formatToolUseStat(progress.toolCount));\n\tif (progress.tokens > 0) parts.push(formatTokenStat(progress.tokens));\n\tif (includeDuration && progress.durationMs > 0) parts.push(formatDuration(progress.durationMs));\n\treturn statJoin(theme, parts);\n}\n\nfunction firstOutputLine(text: string): string {\n\treturn text.split(\"\\n\").find((line) => line.trim())?.trim() ?? \"\";\n}\n\n// lunr: first line of the task with whitespace collapsed, capped at ~60 chars,\n// for the simplified collapsed subagent rows.\nfunction taskSummaryText(task: string | undefined, max = 60): string {\n\tconst first = (task ?? \"\").split(\"\\n\")[0]?.replace(/\\s+/g, \" \").trim() ?? \"\";\n\tif (first.length <= max) return first;\n\treturn `${first.slice(0, max - 1)}…`;\n}\n\nfunction resultStatusLine(result: Details[\"results\"][number], output: string): string {\n\tif (result.detached) return result.detachedReason ? `Detached: ${result.detachedReason}` : \"Detached\";\n\tif (result.stopped) return \"Stopped\";\n\tif (result.interrupted) return \"Paused\";\n\tif (result.exitCode !== 0) return `Error: ${result.error ?? (firstOutputLine(output) || `exit ${result.exitCode}`)}`;\n\tif (result.acceptance?.status && result.acceptance.status !== \"not-required\") return `Done · acceptance: ${result.acceptance.status}`;\n\tif (hasEmptyTextOutputWithoutOutputTarget(result.task, output)) return \"Done (no text output)\";\n\treturn \"Done\";\n}\n\nfunction resultGlyph(result: Details[\"results\"][number], output: string, theme: Theme, running = result.progress?.status === \"running\", seed = progressRunningSeed(result.progress ?? result.progressSummary), frame?: number): string {\n\tif (running) {\n\t\tif (frame !== undefined) return theme.fg(\"accent\", runningGlyph((seed ?? 0) + frame));\n\t\treturn theme.fg(\"accent\", runningGlyph(seed));\n\t}\n\tif (result.detached) return theme.fg(\"warning\", \"■\");\n\tif (result.stopped) return theme.fg(\"warning\", \"■\");\n\tif (result.interrupted) return theme.fg(\"warning\", \"■\");\n\tif (result.exitCode !== 0) return theme.fg(\"error\", \"✗\");\n\tif (hasEmptyTextOutputWithoutOutputTarget(result.task, output)) return theme.fg(\"warning\", \"✓\");\n\treturn theme.fg(\"success\", \"✓\");\n}\n\nfunction compactCurrentActivity(progress: AgentProgress): string {\n\tconst snapshotNow = snapshotNowForProgress(progress);\n\treturn formatCurrentToolLine(progress, getTermWidth() - 4, false, snapshotNow) ?? buildLiveStatusLine(progress, snapshotNow) ?? \"thinking…\";\n}\n\nexport function widgetRenderKey(job: AsyncJobState): string {\n\treturn JSON.stringify({\n\t\tasyncDir: job.asyncDir,\n\t\tstatus: job.status,\n\t\tactivityState: job.activityState,\n\t\tlastActivityAt: job.lastActivityAt,\n\t\tcurrentTool: job.currentTool,\n\t\tcurrentToolStartedAt: job.currentToolStartedAt,\n\t\tcurrentPath: job.currentPath,\n\t\tturnCount: job.turnCount,\n\t\ttoolCount: job.toolCount,\n\t\tmode: job.mode,\n\t\tagents: job.agents,\n\t\tcurrentStep: job.currentStep,\n\t\tchainStepCount: job.chainStepCount,\n\t\tparallelGroups: job.parallelGroups,\n\t\tsteps: job.steps,\n\t\tnestedChildren: job.nestedChildren,\n\t\tstepsTotal: job.stepsTotal,\n\t\trunningSteps: job.runningSteps,\n\t\tcompletedSteps: job.completedSteps,\n\t\tactiveParallelGroup: job.activeParallelGroup,\n\t\tstartedAt: job.startedAt,\n\t\tupdatedAt: job.updatedAt,\n\t\ttotalTokens: job.totalTokens,\n\t});\n}\n\nfunction formatWidgetAgents(agents: string[]): string {\n\tconst distinct = [...new Set(agents)];\n\tif (distinct.length === 1 && agents.length > 1) return `${distinct[0]} ×${agents.length}`;\n\tif (agents.length > 3) return `${agents.slice(0, 2).join(\", \")} +${agents.length - 2} more`;\n\treturn agents.join(\", \");\n}\n\nfunction widgetJobName(job: AsyncJobState): string {\n\tif (job.mode === \"parallel\") return \"parallel\";\n\tif (job.mode === \"chain\") return \"chain\";\n\tif (job.mode === \"single\" && job.agents?.length === 1) return job.agents[0]!;\n\tif (job.agents?.length) return formatWidgetAgents(job.agents);\n\treturn job.mode ?? \"subagent\";\n}\n\nfunction widgetActivity(job: AsyncJobState): string {\n\tconst facts: string[] = [];\n\tif (job.currentTool && job.currentToolStartedAt !== undefined && job.updatedAt !== undefined) facts.push(`${job.currentTool} ${formatDuration(Math.max(0, job.updatedAt - job.currentToolStartedAt))}`);\n\telse if (job.currentTool) facts.push(job.currentTool);\n\tif (job.currentPath) facts.push(shortenPath(job.currentPath));\n\tif (job.turnCount !== undefined) facts.push(`${job.turnCount} turns`);\n\tif (job.toolCount !== undefined) facts.push(`${job.toolCount} tools`);\n\tconst activity = buildLiveStatusLine(job, job.updatedAt);\n\tif (activity && facts.length) return `${activity} · ${facts.join(\" · \")}`;\n\tif (activity) return activity;\n\tif (facts.length) return facts.join(\" · \");\n\tif (job.status === \"running\") return \"thinking…\";\n\tif (job.status === \"queued\") return \"queued…\";\n\tif (job.status === \"paused\") return \"Paused\";\n\tif (job.status === \"stopped\") return \"Stopped\";\n\tif (job.status === \"failed\") return \"Failed\";\n\treturn \"Done\";\n}\n\nfunction widgetStepRunningSeed(step: NonNullable<AsyncJobState[\"steps\"]>[number], fallbackIndex?: number): number | undefined {\n\treturn runningSeed(\n\t\tfallbackIndex,\n\t\tstep.index,\n\t\tstep.toolCount,\n\t\tstep.turnCount,\n\t\tstep.tokens?.total,\n\t\tstep.lastActivityAt,\n\t\tstep.currentToolStartedAt,\n\t\tstep.durationMs,\n\t);\n}\n\nfunction widgetStepsRunningSeed(steps: Array<NonNullable<AsyncJobState[\"steps\"]>[number]> | undefined): number | undefined {\n\tlet seed: number | undefined;\n\tfor (const [index, step] of (steps ?? []).entries()) seed = runningSeed(seed, widgetStepRunningSeed(step, index));\n\treturn seed;\n}\n\nfunction widgetJobRunningSeed(job: AsyncJobState): number | undefined {\n\treturn runningSeed(\n\t\tjob.updatedAt,\n\t\tjob.lastActivityAt,\n\t\tjob.toolCount,\n\t\tjob.turnCount,\n\t\tjob.totalTokens?.total,\n\t\tjob.currentStep,\n\t\tjob.runningSteps,\n\t\tjob.completedSteps,\n\t\twidgetStepsRunningSeed(job.steps),\n\t);\n}\n\nfunction widgetJobsRunningSeed(jobs: AsyncJobState[]): number | undefined {\n\tlet seed: number | undefined;\n\tfor (const job of jobs) seed = runningSeed(seed, widgetJobRunningSeed(job));\n\treturn seed;\n}\n\nfunction widgetStatusGlyph(job: AsyncJobState, theme: Theme): string {\n\tif (job.status === \"running\") return theme.fg(\"accent\", runningGlyph(widgetJobRunningSeed(job)));\n\tif (job.status === \"queued\") return theme.fg(\"muted\", \"◦\");\n\tif (job.status === \"complete\") return theme.fg(\"success\", \"✓\");\n\tif (job.status === \"paused\") return theme.fg(\"warning\", \"■\");\n\tif (job.status === \"stopped\") return theme.fg(\"warning\", \"■\");\n\treturn theme.fg(\"error\", \"✗\");\n}\n\nfunction widgetStepGlyph(status: AsyncJobStep[\"status\"], theme: Theme, seed?: number): string {\n\tif (status === \"running\") return theme.fg(\"accent\", runningGlyph(seed));\n\tif (status === \"complete\" || status === \"completed\") return theme.fg(\"success\", \"✓\");\n\tif (status === \"failed\") return theme.fg(\"error\", \"✗\");\n\tif (status === \"paused\") return theme.fg(\"warning\", \"■\");\n\tif (status === \"stopped\") return theme.fg(\"warning\", \"■\");\n\treturn theme.fg(\"muted\", \"◦\");\n}\n\nfunction widgetStepStatus(status: AsyncJobStep[\"status\"], theme: Theme): string {\n\tif (status === \"running\") return theme.fg(\"accent\", \"running\");\n\tif (status === \"complete\" || status === \"completed\") return theme.fg(\"success\", \"complete\");\n\tif (status === \"failed\") return theme.fg(\"error\", \"failed\");\n\tif (status === \"paused\") return theme.fg(\"warning\", \"paused\");\n\tif (status === \"stopped\") return theme.fg(\"warning\", \"stopped\");\n\treturn theme.fg(\"dim\", status);\n}\n\nfunction widgetStepActivity(step: NonNullable<AsyncJobState[\"steps\"]>[number], snapshotNow?: number): string {\n\tconst facts: string[] = [];\n\tif (step.currentTool && step.currentToolStartedAt !== undefined && snapshotNow !== undefined) facts.push(`${step.currentTool} ${formatDuration(Math.max(0, snapshotNow - step.currentToolStartedAt))}`);\n\telse if (step.currentTool) facts.push(step.currentTool);\n\tif (step.currentPath) facts.push(shortenPath(step.currentPath));\n\tif (step.turnCount !== undefined) facts.push(`${step.turnCount} turns`);\n\tif (step.toolCount !== undefined) facts.push(`${step.toolCount} tools`);\n\tif (step.tokens?.total) facts.push(formatTokenStat(step.tokens.total));\n\tconst activity = buildLiveStatusLine(step, snapshotNow);\n\tif (activity && facts.length) return `${activity} · ${facts.join(\" · \")}`;\n\tif (activity) return activity;\n\treturn facts.join(\" · \");\n}\n\n\nfunction widgetChainDetails(job: AsyncJobState, theme: Theme, expanded = false, width = getTermWidth()): string[] {\n\tif (!job.steps?.length) return [];\n\tconst total = job.chainStepCount ?? job.steps.length;\n\tconst lines: string[] = [];\n\tfor (const span of buildAsyncChainStepSpans(total, job.steps.length, job.parallelGroups)) {\n\t\tconst steps = job.steps.slice(span.start, span.start + span.count);\n\t\tif (span.isParallel) {\n\t\t\tconst status = aggregateStepStatus(steps);\n\t\t\tlines.push(` ${widgetStepGlyph(status, theme, widgetStepsRunningSeed(steps))} Step ${span.stepIndex + 1}/${total}: ${themeBold(theme, \"parallel group\")} ${theme.fg(\"dim\", \"·\")} ${theme.fg(\"dim\", formatParallelOutcome(steps, span.count))}`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst step = steps[0];\n\t\tif (!step) {\n\t\t\tlines.push(` ${theme.fg(\"dim\", `◦ Step ${span.stepIndex + 1}/${total}: pending`)}`);\n\t\t\tcontinue;\n\t\t}\n\t\tlines.push(...foregroundStyleWidgetStepLines(job, theme, step, \"Step\", span.stepIndex + 1, total, expanded, width));\n\t}\n\treturn lines;\n}\n\nfunction widgetParallelAgentDetails(job: AsyncJobState, theme: Theme, expanded = false, width = getTermWidth()): string[] {\n\tif (!job.steps?.length) return [];\n\tif (job.mode !== \"parallel\" && job.mode !== \"chain\") return [];\n\tif (job.mode === \"chain\" && !job.activeParallelGroup && job.parallelGroups?.length) return widgetChainDetails(job, theme, expanded, width);\n\tconst total = job.stepsTotal ?? job.steps.length;\n\tconst lines: string[] = [];\n\tfor (const [index, step] of job.steps.entries()) {\n\t\tconst marker = index === job.steps.length - 1 ? \"└\" : \"├\";\n\t\tconst activity = widgetStepActivity(step, job.updatedAt);\n\t\tconst itemTitle = job.mode === \"parallel\" || job.activeParallelGroup ? \"Agent\" : \"Step\";\n\t\tconst modelDisplay = modelThinkingBadge(theme, step.model, step.thinking);\n\t\tlines.push(` ${theme.fg(\"dim\", `${marker} ${widgetStepGlyph(step.status, theme, widgetStepRunningSeed(step, index))} ${itemTitle} ${index + 1}/${total}: ${step.agent} · ${widgetStepStatus(step.status, theme)}${modelDisplay}${activity ? ` · ${activity}` : \"\"}`)}`);\n\t\tfor (const nestedLine of formatNestedWidgetLines(step.children, theme, width, expanded, job.updatedAt, expanded ? 8 : 1)) lines.push(` ${nestedLine}`);\n\t}\n\treturn lines;\n}\n\nfunction parseParallelGroupAgentCount(label: string | undefined): number | undefined {\n\tif (!label || !label.startsWith(\"[\") || !label.endsWith(\"]\")) return undefined;\n\tconst inner = label.slice(1, -1).trim();\n\tif (!inner) return 0;\n\treturn inner.split(\"+\").map((part) => part.trim()).filter(Boolean).length;\n}\n\ninterface ChainStepSpan {\n\tstepIndex: number;\n\tstart: number;\n\tcount: number;\n\tisParallel: boolean;\n\tstatus?: WorkflowNodeStatus;\n\tlabel?: string;\n\terror?: string;\n}\n\nfunction buildChainStepSpans(details: Pick<Details, \"chainAgents\" | \"workflowGraph\">): ChainStepSpan[] {\n\tif (details.workflowGraph?.nodes?.length) {\n\t\tconst spans: ChainStepSpan[] = [];\n\t\tlet flatCursor = 0;\n\t\tfor (const node of details.workflowGraph.nodes) {\n\t\t\tif (node.stepIndex === undefined) continue;\n\t\t\tif (node.kind === \"parallel-group\" || node.kind === \"dynamic-parallel-group\") {\n\t\t\t\tconst childFlatIndexes = (node.children ?? [])\n\t\t\t\t\t.map((child) => child.flatIndex)\n\t\t\t\t\t.filter((value): value is number => typeof value === \"number\");\n\t\t\t\tconst start = childFlatIndexes.length ? Math.min(...childFlatIndexes) : flatCursor;\n\t\t\t\tconst count = node.children?.length ?? 0;\n\t\t\t\tspans.push({ stepIndex: node.stepIndex, start, count, isParallel: true, status: node.status, label: node.label, error: node.error });\n\t\t\t\tflatCursor = Math.max(flatCursor, start + count);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst start = node.flatIndex ?? flatCursor;\n\t\t\tspans.push({ stepIndex: node.stepIndex, start, count: 1, isParallel: false, status: node.status, label: node.label, error: node.error });\n\t\t\tflatCursor = Math.max(flatCursor, start + 1);\n\t\t}\n\t\tif (spans.length) return spans.sort((left, right) => left.stepIndex - right.stepIndex);\n\t}\n\n\tif (!details.chainAgents?.length) return [];\n\tconst spans: ChainStepSpan[] = [];\n\tlet start = 0;\n\tfor (let stepIndex = 0; stepIndex < details.chainAgents.length; stepIndex++) {\n\t\tconst label = details.chainAgents[stepIndex]!;\n\t\tconst parsedCount = parseParallelGroupAgentCount(label);\n\t\tconst count = parsedCount ?? 1;\n\t\tspans.push({ stepIndex, start, count, isParallel: parsedCount !== undefined });\n\t\tstart += count;\n\t}\n\treturn spans;\n}\n\nfunction isChainParallelGroupActive(details: Pick<Details, \"mode\" | \"chainAgents\" | \"currentStepIndex\" | \"workflowGraph\">): boolean {\n\tif (details.mode !== \"chain\") return false;\n\tif (details.currentStepIndex === undefined) return false;\n\treturn buildChainStepSpans(details).some((span) => span.stepIndex === details.currentStepIndex && span.isParallel);\n}\n\nfunction buildAsyncChainStepSpans(total: number, stepCount: number, parallelGroups: AsyncParallelGroupStatus[] = []): ChainStepSpan[] {\n\tconst spans: ChainStepSpan[] = [];\n\tlet flatIndex = 0;\n\tfor (let stepIndex = 0; stepIndex < total; stepIndex++) {\n\t\tconst group = parallelGroups.find((candidate) => candidate.stepIndex === stepIndex);\n\t\tif (group) {\n\t\t\tspans.push({ stepIndex, start: group.start, count: group.count, isParallel: true });\n\t\t\tflatIndex = Math.max(flatIndex, group.start + group.count);\n\t\t\tcontinue;\n\t\t}\n\t\tspans.push({ stepIndex, start: flatIndex, count: flatIndex < stepCount ? 1 : 0, isParallel: false });\n\t\tflatIndex++;\n\t}\n\treturn spans;\n}\n\nfunction isDoneResult(result: Details[\"results\"][number]): boolean {\n\tconst status = result.progress?.status;\n\tif (status === \"completed\") return true;\n\tif (status === \"running\" || status === \"pending\") return false;\n\tif (result.interrupted || result.detached) return false;\n\treturn result.exitCode === 0;\n}\n\nfunction workflowGraphHasStatus(details: Pick<Details, \"workflowGraph\">, statuses: WorkflowNodeStatus[]): boolean {\n\treturn details.workflowGraph?.nodes.some((node) => statuses.includes(node.status)) ?? false;\n}\n\ninterface ChainRenderResultEntry {\n\tkind: \"result\";\n\tresultIndex: number;\n\trowNumber: number;\n\tagentName: string;\n}\n\ninterface ChainRenderPlaceholderEntry {\n\tkind: \"placeholder\";\n\trowNumber: number;\n\tstepLabel: string;\n\tagentName: string;\n\tstatus: WorkflowNodeStatus;\n\terror?: string;\n}\n\ntype ChainRenderEntry = ChainRenderResultEntry | ChainRenderPlaceholderEntry;\n\nfunction buildChainRenderEntries(details: Details, label: MultiProgressLabel): ChainRenderEntry[] | undefined {\n\tif (details.mode !== \"chain\" || !label.hasParallelInChain || label.showActiveGroupOnly) return undefined;\n\tconst entries: ChainRenderEntry[] = [];\n\tfor (const span of buildChainStepSpans(details)) {\n\t\tif (span.isParallel && span.count === 0) {\n\t\t\tentries.push({\n\t\t\t\tkind: \"placeholder\",\n\t\t\t\trowNumber: span.stepIndex + 1,\n\t\t\t\tstepLabel: `Step ${span.stepIndex + 1}`,\n\t\t\t\tagentName: span.label ?? details.chainAgents?.[span.stepIndex] ?? `step-${span.stepIndex + 1}`,\n\t\t\t\tstatus: span.status ?? \"pending\",\n\t\t\t\terror: span.error,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tfor (let index = span.start; index < span.start + span.count; index++) {\n\t\t\tentries.push({\n\t\t\t\tkind: \"result\",\n\t\t\t\tresultIndex: index,\n\t\t\t\trowNumber: index + 1,\n\t\t\t\tagentName: details.results[index]?.agent ?? details.chainAgents?.[span.stepIndex] ?? `step-${span.stepIndex + 1}`,\n\t\t\t});\n\t\t}\n\t}\n\treturn entries;\n}\n\ninterface MultiProgressLabel {\n\theaderLabel: string;\n\titemTitle: \"Step\" | \"Agent\";\n\ttotalCount: number;\n\thasParallelInChain: boolean;\n\tactiveParallelGroup: boolean;\n\tgroupStartIndex: number;\n\tgroupEndIndex: number;\n\tshowActiveGroupOnly: boolean;\n}\n\nfunction buildMultiProgressLabel(details: Pick<Details, \"mode\" | \"results\" | \"progress\" | \"totalSteps\" | \"currentStepIndex\" | \"chainAgents\" | \"workflowGraph\">, hasRunning: boolean): MultiProgressLabel {\n\tconst stepSpans = buildChainStepSpans(details);\n\tconst hasParallelInChain = details.mode === \"chain\" && stepSpans.some((span) => span.isParallel);\n\tconst activeParallelGroup = isChainParallelGroupActive(details);\n\tconst itemTitle: \"Step\" | \"Agent\" = details.mode === \"parallel\" || activeParallelGroup ? \"Agent\" : \"Step\";\n\n\tif (details.mode === \"parallel\") {\n\t\tconst totalCount = details.totalSteps ?? details.results.length;\n\t\tconst statuses = new Array(totalCount).fill(\"pending\") as Array<\"pending\" | \"running\" | \"completed\" | \"failed\" | \"stopped\" | \"detached\">;\n\t\tfor (const progress of details.progress ?? []) {\n\t\t\tif (progress.index >= 0 && progress.index < totalCount) statuses[progress.index] = progress.status;\n\t\t}\n\t\tfor (let i = 0; i < details.results.length; i++) {\n\t\t\tconst result = details.results[i]!;\n\t\t\tconst progressFromArray = details.progress?.find((progress) => progress.index === i)\n\t\t\t\t|| details.progress?.find((progress) => progress.agent === result.agent && progress.status === \"running\");\n\t\t\tconst index = result.progress?.index ?? progressFromArray?.index ?? i;\n\t\t\tif (index < 0 || index >= totalCount) continue;\n\t\t\tconst status = result.progress?.status\n\t\t\t\t?? (result.stopped\n\t\t\t\t\t? \"stopped\"\n\t\t\t\t\t: result.interrupted || result.detached\n\t\t\t\t\t\t? \"detached\"\n\t\t\t\t\t\t: result.exitCode === 0\n\t\t\t\t\t\t\t? \"completed\"\n\t\t\t\t\t\t\t: \"failed\");\n\t\t\tstatuses[index] = status;\n\t\t}\n\t\tconst running = statuses.filter((status) => status === \"running\").length;\n\t\tconst done = statuses.filter((status) => status === \"completed\").length;\n\t\tconst headerLabel = hasRunning\n\t\t\t? `${formatAgentRunningLabel(running)} · ${done}/${totalCount} done`\n\t\t\t: `${done}/${totalCount} done`;\n\t\treturn { headerLabel, itemTitle, totalCount, hasParallelInChain, activeParallelGroup, groupStartIndex: 0, groupEndIndex: totalCount, showActiveGroupOnly: false };\n\t}\n\n\tif (activeParallelGroup) {\n\t\tconst currentStepIndex = details.currentStepIndex!;\n\t\tconst span = stepSpans[currentStepIndex];\n\t\tconst groupSize = span?.count ?? 1;\n\t\tconst groupStart = span?.start ?? 0;\n\t\tconst groupEnd = groupStart + groupSize;\n\t\tlet running = 0;\n\t\tlet done = 0;\n\t\tfor (let index = groupStart; index < groupEnd; index++) {\n\t\t\tconst progressEntry = details.progress?.find((progress) => progress.index === index);\n\t\t\tconst resultEntry = details.results.find((result) => result.progress?.index === index);\n\t\t\tif (progressEntry?.status === \"running\") {\n\t\t\t\trunning++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (progressEntry?.status === \"completed\") {\n\t\t\t\tdone++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (resultEntry && isDoneResult(resultEntry)) done++;\n\t\t}\n\t\tconst totalSteps = details.totalSteps ?? details.chainAgents?.length ?? 1;\n\t\tconst headerLabel = hasRunning\n\t\t\t? `step ${currentStepIndex + 1}/${totalSteps} · parallel group: ${formatAgentRunningLabel(running)} · ${done}/${groupSize} done`\n\t\t\t: `step ${currentStepIndex + 1}/${totalSteps} · parallel group: ${done}/${groupSize} done`;\n\t\treturn { headerLabel, itemTitle, totalCount: groupSize, hasParallelInChain, activeParallelGroup, groupStartIndex: groupStart, groupEndIndex: groupEnd, showActiveGroupOnly: true };\n\t}\n\n\tif (details.mode === \"chain\" && details.chainAgents?.length) {\n\t\tconst totalCount = details.totalSteps ?? details.chainAgents.length;\n\t\tconst doneLogical = stepSpans.filter((span) => {\n\t\t\tif (span.status && span.status !== \"completed\") return false;\n\t\t\tif (span.count === 0) return span.status === \"completed\";\n\t\t\tfor (let index = span.start; index < span.start + span.count; index++) {\n\t\t\t\tconst progressEntry = details.progress?.find((progress) => progress.index === index);\n\t\t\t\tconst resultEntry = details.results.find((result) => result.progress?.index === index) ?? details.results[index];\n\t\t\t\tif (progressEntry?.status === \"running\" || progressEntry?.status === \"pending\" || progressEntry?.status === \"failed\") return false;\n\t\t\t\tif (!resultEntry || !isDoneResult(resultEntry)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}).length;\n\t\tconst currentStep = details.currentStepIndex !== undefined ? details.currentStepIndex + 1 : Math.min(totalCount, doneLogical + (hasRunning ? 1 : 0));\n\t\tconst headerLabel = hasRunning ? `step ${currentStep}/${totalCount}` : `step ${doneLogical}/${totalCount}`;\n\t\treturn { headerLabel, itemTitle, totalCount, hasParallelInChain, activeParallelGroup, groupStartIndex: 0, groupEndIndex: details.results.length, showActiveGroupOnly: false };\n\t}\n\n\tconst totalCount = details.totalSteps ?? details.results.length;\n\tconst currentStep = details.currentStepIndex !== undefined ? details.currentStepIndex + 1 : Math.min(totalCount, details.results.filter(isDoneResult).length + (hasRunning ? 1 : 0));\n\tconst done = details.results.filter(isDoneResult).length;\n\tconst headerLabel = hasRunning ? `step ${currentStep}/${totalCount}` : `step ${done}/${totalCount}`;\n\treturn { headerLabel, itemTitle, totalCount, hasParallelInChain, activeParallelGroup, groupStartIndex: 0, groupEndIndex: details.results.length, showActiveGroupOnly: false };\n}\n\nfunction resultRowLabel(details: Pick<Details, \"mode\" | \"chainAgents\" | \"workflowGraph\">, label: MultiProgressLabel, resultIndex: number, stepNumber: number): string {\n\tif (details.mode === \"chain\" && label.hasParallelInChain) {\n\t\tconst span = buildChainStepSpans(details).find((candidate) => resultIndex >= candidate.start && resultIndex < candidate.start + candidate.count);\n\t\tif (span?.isParallel) return `Agent ${resultIndex - span.start + 1}/${span.count}`;\n\t\tif (span) return `Step ${span.stepIndex + 1}`;\n\t}\n\tif (label.itemTitle === \"Agent\") {\n\t\tconst localStepNumber = label.activeParallelGroup\n\t\t\t? Math.max(1, stepNumber - label.groupStartIndex)\n\t\t\t: stepNumber;\n\t\treturn `Agent ${localStepNumber}/${label.totalCount}`;\n\t}\n\treturn `Step ${stepNumber}`;\n}\n\nfunction widgetStats(job: AsyncJobState, theme: Theme): string {\n\tconst parts: string[] = [];\n\tconst stepsTotal = job.stepsTotal ?? (job.agents?.length ?? 1);\n\tif (job.activeParallelGroup) {\n\t\tconst running = job.runningSteps ?? (job.status === \"running\" ? 1 : 0);\n\t\tconst done = job.completedSteps ?? (job.status === \"complete\" ? stepsTotal : 0);\n\t\tif (job.mode === \"parallel\") {\n\t\t\tif (job.status === \"running\" && running > 0) parts.push(formatAgentRunningLabel(running));\n\t\t\tif (stepsTotal > 0) parts.push(`${done}/${stepsTotal} done`);\n\t\t} else {\n\t\t\tconst activeGroup = job.currentStep !== undefined\n\t\t\t\t? job.parallelGroups?.find((group) => job.currentStep! >= group.start && job.currentStep! < group.start + group.count)\n\t\t\t\t: job.parallelGroups?.find((group) => group.start === 0);\n\t\t\tconst logicalStep = activeGroup?.stepIndex ?? job.currentStep ?? 0;\n\t\t\tconst total = job.chainStepCount ?? stepsTotal;\n\t\t\tconst groupParts = [`${done}/${stepsTotal} done`];\n\t\t\tif (job.status === \"running\" && running > 0) groupParts.unshift(formatAgentRunningLabel(running));\n\t\t\tparts.push(`step ${logicalStep + 1}/${total} · parallel group: ${groupParts.join(\" · \")}`);\n\t\t}\n\t} else if (job.currentStep !== undefined) {\n\t\tif (job.mode === \"chain\" && job.parallelGroups?.length) {\n\t\t\tconst total = job.chainStepCount ?? stepsTotal;\n\t\t\tparts.push(`step ${flatToLogicalStepIndex(job.currentStep, total, job.parallelGroups) + 1}/${total}`);\n\t\t} else {\n\t\t\tparts.push(`step ${job.currentStep + 1}/${stepsTotal}`);\n\t\t}\n\t} else if (stepsTotal > 1) {\n\t\tparts.push(`steps ${stepsTotal}`);\n\t}\n\tif (job.toolCount !== undefined) parts.push(formatToolUseStat(job.toolCount));\n\tif (job.totalTokens?.total) parts.push(formatTokenStat(job.totalTokens.total));\n\tif (job.startedAt !== undefined && job.updatedAt !== undefined) parts.push(formatDuration(Math.max(0, job.updatedAt - job.startedAt)));\n\treturn statJoin(theme, parts);\n}\n\nfunction widgetStepStats(theme: Theme, step: NonNullable<AsyncJobState[\"steps\"]>[number]): string {\n\treturn statJoin(theme, [\n\t\tstep.turnCount !== undefined ? `${step.turnCount} turns` : \"\",\n\t\tstep.toolCount !== undefined ? formatToolUseStat(step.toolCount) : \"\",\n\t\tstep.tokens?.total ? formatTokenStat(step.tokens.total) : \"\",\n\t\tstep.durationMs !== undefined ? formatDuration(step.durationMs) : \"\",\n\t]);\n}\n\nfunction modelThinkingBadge(theme: Theme, model?: string, thinking?: string): string {\n\tconst label = formatModelThinking(model, thinking);\n\treturn label ? theme.fg(\"dim\", ` (${label})`) : \"\";\n}\n\nfunction widgetStepActivityLine(step: NonNullable<AsyncJobState[\"steps\"]>[number], width: number, expanded: boolean, snapshotNow?: number): string {\n\tconst toolLine = formatCurrentToolLine(step, width, expanded, snapshotNow);\n\tif (toolLine) return toolLine;\n\tconst activity = buildLiveStatusLine(step, snapshotNow);\n\tif (activity) return activity;\n\tif (step.status === \"running\") return \"thinking…\";\n\treturn \"\";\n}\n\nfunction nestedRunName(run: NestedRunSummary): string {\n\tif (run.agent) return run.agent;\n\tif (run.agents?.length) return formatWidgetAgents(run.agents);\n\treturn run.id;\n}\n\nfunction nestedStatusGlyph(state: NestedRunSummary[\"state\"] | NestedStepSummary[\"status\"], theme: Theme, seed?: number): string {\n\tif (state === \"running\") return theme.fg(\"accent\", runningGlyph(seed));\n\tif (state === \"complete\" || state === \"completed\") return theme.fg(\"success\", \"✓\");\n\tif (state === \"failed\") return theme.fg(\"error\", \"✗\");\n\tif (state === \"paused\") return theme.fg(\"warning\", \"■\");\n\tif (state === \"stopped\") return theme.fg(\"warning\", \"■\");\n\treturn theme.fg(\"muted\", \"◦\");\n}\n\nfunction nestedRunSeed(run: NestedRunSummary): number | undefined {\n\treturn runningSeed(run.lastUpdate, run.lastActivityAt, run.currentStep, run.toolCount, run.turnCount, run.totalTokens?.total, run.currentToolStartedAt);\n}\n\nfunction nestedActivity(input: Pick<NestedRunSummary | NestedStepSummary, \"activityState\" | \"lastActivityAt\" | \"currentTool\" | \"currentToolStartedAt\" | \"currentPath\" | \"turnCount\" | \"toolCount\">, state: NestedRunSummary[\"state\"] | NestedStepSummary[\"status\"], snapshotNow?: number): string {\n\tconst facts: string[] = [];\n\tif (input.currentTool && input.currentToolStartedAt !== undefined && snapshotNow !== undefined) facts.push(`${input.currentTool} ${formatDuration(Math.max(0, snapshotNow - input.currentToolStartedAt))}`);\n\telse if (input.currentTool) facts.push(input.currentTool);\n\tif (input.currentPath) facts.push(shortenPath(input.currentPath));\n\tif (input.turnCount !== undefined) facts.push(`${input.turnCount} turns`);\n\tif (input.toolCount !== undefined) facts.push(`${input.toolCount} tools`);\n\tconst activity = buildLiveStatusLine(input, snapshotNow);\n\tif (activity && facts.length) return `${activity} · ${facts.join(\" · \")}`;\n\tif (activity) return activity;\n\tif (facts.length) return facts.join(\" · \");\n\tif (state === \"running\") return \"thinking…\";\n\tif (state === \"queued\" || state === \"pending\") return \"queued…\";\n\tif (state === \"paused\") return \"Paused\";\n\tif (state === \"stopped\") return \"Stopped\";\n\tif (state === \"failed\") return \"Failed\";\n\treturn \"Done\";\n}\n\nfunction formatNestedWidgetLines(children: NestedRunSummary[] | undefined, theme: Theme, width: number, expanded: boolean, snapshotNow?: number, lineBudget = expanded ? 12 : 1): string[] {\n\tif (!children?.length || lineBudget <= 0) return [];\n\tif (!expanded) {\n\t\tconst aggregate = formatNestedAggregate(children);\n\t\treturn aggregate ? [theme.fg(\"dim\", `↳ ${aggregate}`)] : [];\n\t}\n\tconst lines: string[] = [];\n\tconst maxDepth = 2;\n\tconst append = (items: NestedRunSummary[] | undefined, depth: number, prefix: string): void => {\n\t\tif (!items?.length || lines.length >= lineBudget) return;\n\t\tif (depth > maxDepth) {\n\t\t\tconst aggregate = formatNestedAggregate(items);\n\t\t\tif (aggregate && lines.length < lineBudget) lines.push(theme.fg(\"dim\", `${prefix}↳ ${aggregate}`));\n\t\t\treturn;\n\t\t}\n\t\tfor (let index = 0; index < items.length; index++) {\n\t\t\tconst child = items[index]!;\n\t\t\tif (lines.length >= lineBudget) {\n\t\t\t\tconst aggregate = formatNestedAggregate(items.slice(index));\n\t\t\t\tif (aggregate) lines[lines.length - 1] = theme.fg(\"dim\", `${prefix}↳ ${aggregate}`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst activity = nestedActivity(child, child.state, snapshotNow ?? child.lastUpdate);\n\t\t\tconst error = child.error ? ` · ${child.error}` : \"\";\n\t\t\tlines.push(theme.fg(\"dim\", `${prefix}↳ ${nestedStatusGlyph(child.state, theme, nestedRunSeed(child))} ${nestedRunName(child)} · ${child.state} · ${activity}${error}`));\n\t\t\tif (depth === maxDepth) {\n\t\t\t\tconst aggregate = formatNestedAggregate([...(child.steps?.flatMap((step) => step.children ?? []) ?? []), ...(child.children ?? [])]);\n\t\t\t\tif (aggregate && lines.length < lineBudget) lines.push(theme.fg(\"dim\", `${prefix} ↳ ${aggregate}`));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfor (const step of child.steps ?? []) {\n\t\t\t\tif (lines.length >= lineBudget) return;\n\t\t\t\tlines.push(theme.fg(\"dim\", `${prefix} ↳ ${nestedStatusGlyph(step.status, theme)} ${step.agent} · ${step.status} · ${nestedActivity(step, step.status, snapshotNow ?? child.lastUpdate)}`));\n\t\t\t\tappend(step.children, depth + 1, `${prefix} `);\n\t\t\t}\n\t\t\tappend(child.children, depth + 1, `${prefix} `);\n\t\t}\n\t};\n\tappend(children, 0, \"\");\n\treturn lines.map((line) => truncLine(line, width));\n}\n\nfunction foregroundStyleWidgetStepLines(\n\tjob: AsyncJobState,\n\ttheme: Theme,\n\tstep: NonNullable<AsyncJobState[\"steps\"]>[number],\n\titemTitle: \"Agent\" | \"Step\",\n\tindex: number,\n\ttotal: number,\n\texpanded: boolean,\n\twidth: number,\n): string[] {\n\tconst status = widgetStepStatus(step.status, theme);\n\tconst stats = widgetStepStats(theme, step);\n\tconst modelDisplay = modelThinkingBadge(theme, step.model, step.thinking);\n\tconst lines = [` ${widgetStepGlyph(step.status, theme, widgetStepRunningSeed(step, index - 1))} ${itemTitle} ${index}/${total}: ${themeBold(theme, step.agent)} ${theme.fg(\"dim\", \"·\")} ${status}${modelDisplay}${stats ? ` ${theme.fg(\"dim\", \"·\")} ${stats}` : \"\"}`];\n\tconst activity = widgetStepActivityLine(step, width, expanded, job.updatedAt);\n\tif (activity) lines.push(` ${theme.fg(\"dim\", `⎿ ${activity}`)}`);\n\tfor (const nestedLine of formatNestedWidgetLines(step.children, theme, width, expanded, job.updatedAt)) {\n\t\tlines.push(` ${nestedLine}`);\n\t}\n\tif (step.status === \"running\") {\n\t\tif (!expanded) lines.push(` ${theme.fg(\"accent\", liveDetailHintText())}`);\n\t\tif (expanded) {\n\t\t\tconst liveStatus = buildLiveStatusLine(step, job.updatedAt);\n\t\t\tif (liveStatus && liveStatus !== activity) lines.push(` ${theme.fg(\"accent\", liveStatus)}`);\n\t\t\tfor (const tool of step.recentTools?.slice(-3) ?? []) {\n\t\t\t\tconst maxArgsLen = Math.max(40, width - 30);\n\t\t\t\tconst argsPreview = tool.args.length <= maxArgsLen ? tool.args : `${tool.args.slice(0, maxArgsLen)}...`;\n\t\t\t\tlines.push(` ${theme.fg(\"dim\", `${tool.tool}${argsPreview ? `: ${argsPreview}` : \"\"}`)}`);\n\t\t\t}\n\t\t\tfor (const line of step.recentOutput?.slice(-5) ?? []) {\n\t\t\t\tlines.push(` ${theme.fg(\"dim\", line)}`);\n\t\t\t}\n\t\t}\n\t}\n\treturn lines;\n}\n\nfunction foregroundStyleWidgetDetails(job: AsyncJobState, theme: Theme, expanded: boolean, width: number): string[] {\n\tif (!job.steps?.length) return [\n\t\t` ${theme.fg(\"dim\", `⎿ ${widgetActivity(job)}`)}`,\n\t\t...formatNestedWidgetLines(job.nestedChildren, theme, width, expanded, job.updatedAt).map((line) => ` ${line}`),\n\t];\n\tif (job.mode === \"chain\" && !job.activeParallelGroup && job.parallelGroups?.length) return widgetChainDetails(job, theme, expanded, width);\n\tconst total = job.stepsTotal ?? job.steps.length;\n\tconst itemTitle = job.mode === \"parallel\" || job.activeParallelGroup ? \"Agent\" : \"Step\";\n\tconst lines: string[] = [];\n\tfor (const [index, step] of job.steps.entries()) {\n\t\tlines.push(...foregroundStyleWidgetStepLines(job, theme, step, itemTitle, index + 1, total, expanded, width));\n\t}\n\tconst attached = new Set(job.steps.flatMap((step) => step.children?.map((child) => child.id) ?? []));\n\tconst unattached = job.nestedChildren?.filter((child) => !attached.has(child.id)) ?? [];\n\tfor (const nestedLine of formatNestedWidgetLines(unattached, theme, width, expanded, job.updatedAt)) {\n\t\tlines.push(` ${nestedLine}`);\n\t}\n\treturn lines;\n}\n\nfunction buildSingleWidgetLines(job: AsyncJobState, theme: Theme, width: number, expanded: boolean): string[] {\n\tconst stats = widgetStats(job, theme);\n\tconst count = job.mode === \"chain\" ? job.chainStepCount : job.stepsTotal ?? job.agents?.length ?? job.steps?.length;\n\tconst mode = widgetJobName(job);\n\tconst title = `async subagent ${mode}${count && count > 1 ? ` (${count})` : \"\"}`;\n\treturn [\n\t\t`${theme.fg(\"toolTitle\", themeBold(theme, title))} ${theme.fg(\"dim\", \"· background\")}`,\n\t\t`${widgetStatusGlyph(job, theme)} ${themeBold(theme, mode)}${stats ? ` ${theme.fg(\"dim\", \"·\")} ${stats}` : \"\"}`,\n\t\t...foregroundStyleWidgetDetails(job, theme, expanded, width),\n\t].map((line) => truncLine(line, width));\n}\n\nfunction compactSingleWidgetLines(job: AsyncJobState, theme: Theme, width: number): string[] {\n\tconst fullLines = buildSingleWidgetLines(job, theme, width, false);\n\tif (fullLines.length <= 10 || !job.steps?.length || (job.mode !== \"parallel\" && !job.activeParallelGroup)) return fullLines;\n\n\tconst total = job.stepsTotal ?? job.steps.length;\n\tconst itemTitle = job.mode === \"parallel\" || job.activeParallelGroup ? \"Agent\" : \"Step\";\n\tconst lines = fullLines.slice(0, 2);\n\tfor (const [index, step] of job.steps.entries()) {\n\t\tconst status = widgetStepStatus(step.status, theme);\n\t\tconst activity = widgetStepActivityLine(step, width, false, job.updatedAt);\n\t\tconst stepStats = widgetStepStats(theme, step);\n\t\tconst activitySuffix = activity ? ` ${theme.fg(\"dim\", \"·\")} ${theme.fg(\"dim\", activity)}` : \"\";\n\t\tconst modelDisplay = modelThinkingBadge(theme, step.model, step.thinking);\n\t\tlines.push(` ${widgetStepGlyph(step.status, theme, widgetStepRunningSeed(step, index))} ${itemTitle} ${index + 1}/${total}: ${themeBold(theme, step.agent)} ${theme.fg(\"dim\", \"·\")} ${status}${modelDisplay}${activitySuffix}${stepStats ? ` ${theme.fg(\"dim\", \"·\")} ${stepStats}` : \"\"}`);\n\t\tfor (const nestedLine of formatNestedWidgetLines(step.children, theme, width, false, job.updatedAt)) lines.push(` ${nestedLine}`);\n\t}\n\tif (job.steps.some((step) => step.status === \"running\")) lines.push(theme.fg(\"accent\", ` ${liveDetailHintText()}`));\n\treturn lines.map((line) => truncLine(line, width));\n}\n\ntype WidgetRenderTier = \"full\" | \"single-line\" | \"progressive\";\n\ninterface WidgetLayoutSession {\n\texpanded: boolean;\n\trows: number;\n\tcolumns: number;\n\ttier: WidgetRenderTier;\n\tlockedRows?: number;\n\tvisibleJobKeys: string[];\n}\n\nconst RESERVED_NON_WIDGET_ROWS = 19;\n\nlet widgetLayoutSession: WidgetLayoutSession | undefined;\n\nfunction resetWidgetLayoutSession(): void {\n\twidgetLayoutSession = undefined;\n}\n\nfunction estimateAvailableWidgetRows(): number {\n\tconst rows = process.stdout.rows || 30;\n\treturn Math.max(1, rows - RESERVED_NON_WIDGET_ROWS);\n}\n\nfunction currentTerminalRows(): number {\n\treturn process.stdout.rows || 30;\n}\n\nfunction currentTerminalColumns(): number {\n\treturn process.stdout.columns || 120;\n}\n\nfunction widgetSessionMatches(expanded: boolean): boolean {\n\treturn widgetLayoutSession?.expanded === expanded\n\t\t&& widgetLayoutSession.rows === currentTerminalRows()\n\t\t&& widgetLayoutSession.columns === currentTerminalColumns();\n}\n\nfunction widgetHeaderCounts(jobs: AsyncJobState[]): { running: AsyncJobState[]; queued: AsyncJobState[]; complete: AsyncJobState[]; failed: AsyncJobState[]; paused: AsyncJobState[]; stopped: AsyncJobState[] } {\n\treturn {\n\t\trunning: jobs.filter((job) => job.status === \"running\"),\n\t\tqueued: jobs.filter((job) => job.status === \"queued\"),\n\t\tcomplete: jobs.filter((job) => job.status === \"complete\"),\n\t\tfailed: jobs.filter((job) => job.status === \"failed\"),\n\t\tpaused: jobs.filter((job) => job.status === \"paused\"),\n\t\tstopped: jobs.filter((job) => job.status === \"stopped\"),\n\t};\n}\n\nfunction buildSingleLineWidgetLines(jobs: AsyncJobState[], theme: Theme, width: number): string[] {\n\tconst counts = widgetHeaderCounts(jobs);\n\tconst hasActive = counts.running.length > 0 || counts.queued.length > 0;\n\tconst glyph = counts.running.length > 0 ? runningGlyph(widgetJobsRunningSeed(counts.running)) : hasActive ? \"●\" : \"○\";\n\tconst parts: string[] = [];\n\tif (counts.running.length > 0) parts.push(`${counts.running.length}/${jobs.length} running`);\n\tif (counts.queued.length > 0) parts.push(`${counts.queued.length} queued`);\n\tif (counts.failed.length > 0) parts.push(`${counts.failed.length} failed`);\n\tif (counts.stopped.length > 0) parts.push(`${counts.stopped.length} stopped`);\n\tif (counts.paused.length > 0) parts.push(`${counts.paused.length} paused`);\n\tif (!hasActive && counts.complete.length > 0) parts.push(`${counts.complete.length}/${jobs.length} done`);\n\treturn [truncLine(`${theme.fg(hasActive ? \"accent\" : \"dim\", glyph)} ${theme.fg(hasActive ? \"accent\" : \"dim\", \"subagents\")} (${parts.join(\", \") || `${jobs.length} total`})`, width)];\n}\n\nfunction orderedWidgetJobs(jobs: AsyncJobState[]): AsyncJobState[] {\n\treturn [\n\t\t...jobs.filter((job) => job.status === \"running\"),\n\t\t...jobs.filter((job) => job.status === \"queued\"),\n\t\t...jobs.filter((job) => job.status !== \"running\" && job.status !== \"queued\"),\n\t];\n}\n\nfunction progressiveJobKey(job: AsyncJobState): string {\n\treturn job.asyncId;\n}\n\nfunction isProgressiveActiveJob(job: AsyncJobState | undefined): boolean {\n\treturn job?.status === \"running\" || job?.status === \"queued\";\n}\n\nfunction selectProgressiveJobKeys(jobs: AsyncJobState[], previousKeys: string[], bodyRows: number): string[] {\n\tif (bodyRows <= 0) return [];\n\tconst jobsByKey = new Map(jobs.map((job) => [progressiveJobKey(job), job]));\n\tconst selected: string[] = [];\n\tconst append = (key: string): void => {\n\t\tif (selected.includes(key) || !jobsByKey.has(key)) return;\n\t\tselected.push(key);\n\t};\n\tfor (const key of previousKeys) {\n\t\tif (!isProgressiveActiveJob(jobsByKey.get(key))) continue;\n\t\tappend(key);\n\t\tif (selected.length >= bodyRows) return selected;\n\t}\n\tfor (const job of orderedWidgetJobs(jobs)) {\n\t\tif (!isProgressiveActiveJob(job)) continue;\n\t\tconst key = progressiveJobKey(job);\n\t\tappend(key);\n\t\tif (selected.length >= bodyRows) break;\n\t}\n\tif (selected.length >= bodyRows) return selected;\n\tfor (const key of previousKeys) {\n\t\tif (isProgressiveActiveJob(jobsByKey.get(key))) continue;\n\t\tappend(key);\n\t\tif (selected.length >= bodyRows) return selected;\n\t}\n\tfor (const job of orderedWidgetJobs(jobs)) {\n\t\tconst key = progressiveJobKey(job);\n\t\tappend(key);\n\t\tif (selected.length >= bodyRows) break;\n\t}\n\treturn selected;\n}\n\nfunction progressiveHeaderLine(jobs: AsyncJobState[], theme: Theme, width: number): string {\n\tconst counts = widgetHeaderCounts(jobs);\n\tconst hasActive = counts.running.length > 0 || counts.queued.length > 0;\n\tconst glyph = counts.running.length > 0 ? runningGlyph(widgetJobsRunningSeed(counts.running)) : hasActive ? \"●\" : \"○\";\n\tconst parts: string[] = [];\n\tif (counts.running.length > 0) parts.push(formatAgentRunningLabel(counts.running.length));\n\tif (counts.queued.length > 0) parts.push(`${counts.queued.length} queued`);\n\tif (!hasActive) {\n\t\tif (counts.failed.length > 0) parts.push(`${counts.failed.length} failed`);\n\t\tif (counts.stopped.length > 0) parts.push(`${counts.stopped.length} stopped`);\n\t\tif (counts.paused.length > 0) parts.push(`${counts.paused.length} paused`);\n\t\tif (counts.complete.length > 0) parts.push(`${counts.complete.length}/${jobs.length} done`);\n\t}\n\treturn truncLine(`${theme.fg(hasActive ? \"accent\" : \"dim\", glyph)} ${theme.fg(hasActive ? \"accent\" : \"dim\", \"Async agents\")} ${theme.fg(\"dim\", \"·\")} ${theme.fg(\"dim\", parts.join(\", \") || `${jobs.length} total`)}`, width);\n}\n\nfunction progressiveJobLine(job: AsyncJobState, theme: Theme, width: number): string {\n\tconst stats = widgetStats(job, theme);\n\tconst activity = widgetActivity(job);\n\tconst status = job.status === \"complete\" ? \"done\" : job.status;\n\tconst parts = [\n\t\tthemeBold(theme, widgetJobName(job)),\n\t\ttheme.fg(\"dim\", status),\n\t\tstats,\n\t\tactivity && activity.toLowerCase() !== status ? theme.fg(\"dim\", activity) : \"\",\n\t].filter(Boolean);\n\treturn truncLine(` ${widgetStatusGlyph(job, theme)} ${parts.join(` ${theme.fg(\"dim\", \"·\")} `)}`, width);\n}\n\nfunction progressiveHiddenLine(hiddenJobs: AsyncJobState[], theme: Theme, width: number): string {\n\tconst counts = widgetHeaderCounts(hiddenJobs);\n\tconst parts: string[] = [];\n\tif (counts.running.length > 0) parts.push(`${counts.running.length} running`);\n\tif (counts.queued.length > 0) parts.push(`${counts.queued.length} queued`);\n\tconst finished = counts.complete.length + counts.failed.length + counts.paused.length + counts.stopped.length;\n\tif (finished > 0) parts.push(`${finished} finished`);\n\treturn truncLine(theme.fg(\"dim\", ` +${hiddenJobs.length} more${parts.length ? ` (${parts.join(\", \")})` : \"\"}`), width);\n}\n\nfunction buildProgressiveWidgetLines(jobs: AsyncJobState[], theme: Theme, width: number, lockedRows: number, previousKeys: string[]): { lines: string[]; visibleJobKeys: string[] } {\n\tconst rowCount = Math.max(1, lockedRows);\n\tif (rowCount === 1) return { lines: buildSingleLineWidgetLines(jobs, theme, width), visibleJobKeys: [] };\n\n\tconst bodyRows = rowCount - 1;\n\tlet visibleJobKeys = selectProgressiveJobKeys(jobs, previousKeys, bodyRows);\n\tconst jobsByKey = new Map(jobs.map((job) => [progressiveJobKey(job), job]));\n\tlet visibleJobs = visibleJobKeys.map((key) => jobsByKey.get(key)).filter((job): job is AsyncJobState => Boolean(job));\n\tlet hiddenJobs = jobs.filter((job) => !visibleJobKeys.includes(progressiveJobKey(job)));\n\tconst needsHiddenLine = hiddenJobs.length > 0;\n\n\tif (needsHiddenLine && visibleJobs.length >= bodyRows && bodyRows > 0) {\n\t\tvisibleJobs = visibleJobs.slice(0, bodyRows - 1);\n\t\tvisibleJobKeys = visibleJobs.map(progressiveJobKey);\n\t\thiddenJobs = jobs.filter((job) => !visibleJobKeys.includes(progressiveJobKey(job)));\n\t}\n\n\tconst lines = [\n\t\tprogressiveHeaderLine(jobs, theme, width),\n\t\t...visibleJobs.map((job) => progressiveJobLine(job, theme, width)),\n\t];\n\tif (hiddenJobs.length > 0 && lines.length < rowCount) lines.push(progressiveHiddenLine(hiddenJobs, theme, width));\n\twhile (lines.length < rowCount) lines.push(\" \");\n\treturn { lines: lines.slice(0, rowCount), visibleJobKeys };\n}\n\nfunction collapsedWidgetLineBudget(rows: number): number {\n\treturn Math.max(10, Math.min(14, Math.floor(rows * 0.35)));\n}\n\nfunction fitWidgetLineBudget(lines: string[], theme: Theme, width: number, expanded: boolean): string[] {\n\tconst rows = process.stdout.rows || 30;\n\tconst budget = expanded\n\t\t? Math.max(12, Math.min(24, Math.floor(rows * 0.55)))\n\t\t: collapsedWidgetLineBudget(rows);\n\tif (lines.length <= budget) return lines;\n\tconst visibleLines = Math.max(1, budget - 1);\n\tconst hiddenCount = lines.length - visibleLines;\n\tconst hint = expanded\n\t\t? `… ${hiddenCount} live-detail lines hidden`\n\t\t: `… ${hiddenCount} lines hidden · ${liveDetailKeyText()} expands`;\n\treturn [...lines.slice(0, visibleLines), truncLine(theme.fg(\"dim\", hint), width)];\n}\n\nfunction fitAdaptiveWidgetLines(jobs: AsyncJobState[], lines: string[], theme: Theme, width: number, expanded: boolean): string[] {\n\tif (expanded) {\n\t\tresetWidgetLayoutSession();\n\t\treturn fitWidgetLineBudget(lines, theme, width, true);\n\t}\n\n\tconst hasMatchingSession = widgetSessionMatches(expanded);\n\tconst rows = currentTerminalRows();\n\tconst columns = currentTerminalColumns();\n\tconst availableRows = estimateAvailableWidgetRows();\n\n\tif (hasMatchingSession && widgetLayoutSession?.tier === \"single-line\") {\n\t\treturn buildSingleLineWidgetLines(jobs, theme, width);\n\t}\n\n\tif (hasMatchingSession && widgetLayoutSession?.tier === \"progressive\" && widgetLayoutSession.lockedRows !== undefined) {\n\t\tconst rendered = buildProgressiveWidgetLines(jobs, theme, width, widgetLayoutSession.lockedRows, widgetLayoutSession.visibleJobKeys);\n\t\twidgetLayoutSession.visibleJobKeys = rendered.visibleJobKeys;\n\t\treturn rendered.lines;\n\t}\n\n\tif (lines.length <= availableRows) {\n\t\twidgetLayoutSession = { expanded, rows, columns, tier: \"full\", visibleJobKeys: [] };\n\t\treturn fitWidgetLineBudget(lines, theme, width, false);\n\t}\n\n\tif (availableRows <= 2) {\n\t\twidgetLayoutSession = { expanded, rows, columns, tier: \"single-line\", visibleJobKeys: [] };\n\t\treturn buildSingleLineWidgetLines(jobs, theme, width);\n\t}\n\n\tconst lockedRows = Math.min(availableRows, collapsedWidgetLineBudget(rows));\n\tconst rendered = buildProgressiveWidgetLines(jobs, theme, width, lockedRows, []);\n\twidgetLayoutSession = { expanded, rows, columns, tier: \"progressive\", lockedRows, visibleJobKeys: rendered.visibleJobKeys };\n\treturn rendered.lines;\n}\n\nfunction buildWidgetComponent(jobs: AsyncJobState[], expanded: boolean): (_tui: unknown, theme: Theme) => Component {\n\treturn (_tui, theme) => {\n\t\tconst width = getTermWidth();\n\t\tconst lines = expanded\n\t\t\t? buildWidgetLines(jobs, theme, width, true)\n\t\t\t: jobs.length === 1\n\t\t\t\t? compactSingleWidgetLines(jobs[0]!, theme, width)\n\t\t\t\t: buildWidgetLines(jobs, theme, width, false);\n\t\tconst container = new Container();\n\t\tfor (const line of fitAdaptiveWidgetLines(jobs, lines, theme, width, expanded)) container.addChild(new Text(line, 1, 0));\n\t\treturn container;\n\t};\n}\n\nexport function buildWidgetLines(jobs: AsyncJobState[], theme: Theme, width = getTermWidth(), expanded = false): string[] {\n\tif (jobs.length === 0) return [];\n\tif (jobs.length === 1) return buildSingleWidgetLines(jobs[0]!, theme, width, expanded);\n\tconst running = jobs.filter((job) => job.status === \"running\");\n\tconst queued = jobs.filter((job) => job.status === \"queued\");\n\tconst finished = jobs.filter((job) => job.status !== \"running\" && job.status !== \"queued\");\n\n\tconst lines: string[] = [];\n\tconst hasActive = running.length > 0 || queued.length > 0;\n\tconst headerGlyph = running.length > 0 ? runningGlyph(widgetJobsRunningSeed(running)) : hasActive ? \"●\" : \"○\";\n\tlines.push(truncLine(`${theme.fg(hasActive ? \"accent\" : \"dim\", headerGlyph)} ${theme.fg(hasActive ? \"accent\" : \"dim\", \"Async agents\")} ${theme.fg(\"dim\", \"· background\")}`, width));\n\n\tconst items: string[][] = [];\n\tlet hiddenRunning = 0;\n\tlet hiddenFinished = 0;\n\tlet queuedSummaryShown = false;\n\tlet slots = MAX_WIDGET_JOBS;\n\n\tfor (const job of running) {\n\t\tif (slots <= 0) { hiddenRunning++; continue; }\n\t\tconst stats = widgetStats(job, theme);\n\t\titems.push([\n\t\t\t`${widgetStatusGlyph(job, theme)} ${themeBold(theme, widgetJobName(job))}${stats ? ` ${theme.fg(\"dim\", \"·\")} ${stats}` : \"\"}`,\n\t\t\t` ${theme.fg(\"dim\", `⎿ ${widgetActivity(job)}`)}`,\n\t\t\t...widgetParallelAgentDetails(job, theme, expanded, width),\n\t\t]);\n\t\tslots--;\n\t}\n\n\tif (queued.length > 0 && slots > 0) {\n\t\titems.push([`${theme.fg(\"muted\", \"◦\")} ${theme.fg(\"dim\", `${queued.length} queued`)}`]);\n\t\tqueuedSummaryShown = true;\n\t\tslots--;\n\t}\n\n\tfor (const job of finished) {\n\t\tif (slots <= 0) { hiddenFinished++; continue; }\n\t\tconst stats = widgetStats(job, theme);\n\t\titems.push([\n\t\t\t`${widgetStatusGlyph(job, theme)} ${themeBold(theme, widgetJobName(job))}${stats ? ` ${theme.fg(\"dim\", \"·\")} ${stats}` : \"\"}`,\n\t\t\t` ${theme.fg(\"dim\", `⎿ ${widgetActivity(job)}`)}`,\n\t\t\t...widgetParallelAgentDetails(job, theme, expanded, width),\n\t\t]);\n\t\tslots--;\n\t}\n\n\tconst hiddenQueued = queued.length > 0 && !queuedSummaryShown ? queued.length : 0;\n\tconst hiddenTotal = hiddenRunning + hiddenFinished + hiddenQueued;\n\tif (hiddenTotal > 0) {\n\t\tconst parts: string[] = [];\n\t\tif (hiddenRunning > 0) parts.push(`${hiddenRunning} running`);\n\t\tif (hiddenQueued > 0) parts.push(`${hiddenQueued} queued`);\n\t\tif (hiddenFinished > 0) parts.push(`${hiddenFinished} finished`);\n\t\titems.push([theme.fg(\"dim\", `+${hiddenTotal} more (${parts.join(\", \")})`)]);\n\t}\n\n\tfor (let i = 0; i < items.length; i++) {\n\t\tconst item = items[i]!;\n\t\tconst last = i === items.length - 1;\n\t\tconst branch = last ? \"└─\" : \"├─\";\n\t\tconst continuation = last ? \" \" : \"│ \";\n\t\tlines.push(truncLine(`${theme.fg(\"dim\", branch)} ${item[0]}`, width));\n\t\tfor (const detail of item.slice(1)) {\n\t\t\tlines.push(truncLine(`${theme.fg(\"dim\", continuation)} ${detail}`, width));\n\t\t}\n\t}\n\n\treturn lines;\n}\n\n/**\n * Render the async jobs widget\n */\nexport function renderWidget(ctx: ExtensionContext, jobs: AsyncJobState[]): void {\n\tif (jobs.length === 0) {\n\t\tresetWidgetLayoutSession();\n\t\tif (ctx.hasUI) ctx.ui.setWidget(WIDGET_KEY, undefined);\n\t\treturn;\n\t}\n\tif (!ctx.hasUI) return;\n\tctx.ui.setWidget(WIDGET_KEY, buildWidgetComponent(jobs, ctx.ui.getToolsExpanded?.() ?? false));\n}\n\nfunction renderSingleCompact(d: Details, r: Details[\"results\"][number], theme: Theme, frame?: number): Component {\n\tconst output = r.truncation?.text || getSingleResultOutput(r);\n\tconst progress = r.progress || r.progressSummary;\n\tconst isRunning = r.progress?.status === \"running\";\n\tconst contextBadge = d.context === \"fork\" ? theme.fg(\"warning\", \" [fork]\") : \"\";\n\t// lunr: simplified collapsed row — glyph · task summary · agent type · runtime/tools/tokens stats.\n\tconst stats = formatProgressStats(theme, progress);\n\tconst c = new Container();\n\tconst width = getTermWidth() - 4;\n\t// lunr: row line is a per-frame template so the running glyph animates in place (see subagentAnimSink).\n\tc.addChild(animatedLine((f) => truncLine(`${resultGlyph(r, output, theme, isRunning, undefined, f)} ${taskSummaryText(r.task)} ${theme.fg(\"dim\", \"·\")} ${themeBold(theme, r.agent)}${contextBadge}${stats ? ` ${theme.fg(\"dim\", \"·\")} ${stats}` : \"\"}`, width), frame, isRunning));\n\n\tif (isRunning && r.progress) {\n\t\tconst progressSnapshotNow = snapshotNowForProgress(r.progress);\n\t\tconst activity = compactCurrentActivity(r.progress);\n\t\tc.addChild(new Text(truncLine(theme.fg(\"dim\", ` ⎿ ${activity}`), width), 0, 0));\n\t\tconst liveStatus = buildLiveStatusLine(r.progress, progressSnapshotNow);\n\t\tif (liveStatus && liveStatus !== activity) c.addChild(new Text(truncLine(theme.fg(\"dim\", ` ${liveStatus}`), width), 0, 0));\n\t\treturn c;\n\t}\n\n\tc.addChild(new Text(truncLine(theme.fg(\"dim\", ` ⎿ ${resultStatusLine(r, output)}`), width), 0, 0));\n\tconst preview = firstOutputLine(output);\n\tif (preview && r.exitCode === 0 && !hasEmptyTextOutputWithoutOutputTarget(r.task, output)) {\n\t\tc.addChild(new Text(truncLine(theme.fg(\"dim\", ` ${preview}`), width), 0, 0));\n\t}\n\tif (r.sessionFile) c.addChild(new Text(truncLine(theme.fg(\"dim\", ` session: ${shortenPath(r.sessionFile)}`), width), 0, 0));\n\treturn c;\n}\n\nfunction renderMultiCompact(d: Details, theme: Theme, frame?: number): Component {\n\tconst hasRunning = d.progress?.some((p) => p.status === \"running\")\n\t\t|| d.results.some((r) => r.progress?.status === \"running\")\n\t\t|| workflowGraphHasStatus(d, [\"running\"]);\n\tconst stopped = d.results.some((r) => r.stopped && r.progress?.status !== \"running\")\n\t\t|| workflowGraphHasStatus(d, [\"stopped\"]);\n\tconst failed = d.results.some((r) => !r.stopped && r.exitCode !== 0 && r.progress?.status !== \"running\")\n\t\t|| workflowGraphHasStatus(d, [\"failed\"]);\n\tconst paused = d.results.some((r) => (r.interrupted || r.detached) && r.progress?.status !== \"running\")\n\t\t|| workflowGraphHasStatus(d, [\"paused\", \"detached\"]);\n\tlet totalSummary = d.progressSummary;\n\tif (!totalSummary) {\n\t\tlet sawProgress = false;\n\t\tconst summary = { toolCount: 0, tokens: 0, durationMs: 0 };\n\t\tfor (const r of d.results) {\n\t\t\tconst prog = r.progress || r.progressSummary;\n\t\t\tif (!prog) continue;\n\t\t\tsawProgress = true;\n\t\t\tsummary.toolCount += prog.toolCount;\n\t\t\tsummary.tokens += prog.tokens;\n\t\t\tsummary.durationMs = d.mode === \"chain\" ? summary.durationMs + prog.durationMs : Math.max(summary.durationMs, prog.durationMs);\n\t\t}\n\t\tif (sawProgress) totalSummary = summary;\n\t}\n\tconst multiLabel = buildMultiProgressLabel(d, hasRunning);\n\tconst itemTitle = multiLabel.itemTitle;\n\tconst stats = statJoin(theme, [multiLabel.headerLabel, formatProgressStats(theme, totalSummary), formatTotalCostStat(d.totalCost)]);\n\tconst glyph = (f: number | undefined) => hasRunning\n\t\t? theme.fg(\"accent\", runningGlyph(f !== undefined ? (runningSeed(progressRunningSeed(totalSummary), d.currentStepIndex) ?? 0) + f : runningSeed(progressRunningSeed(totalSummary), d.currentStepIndex)))\n\t\t: stopped\n\t\t\t? theme.fg(\"warning\", \"■\")\n\t\t\t: failed\n\t\t\t\t? theme.fg(\"error\", \"✗\")\n\t\t\t: paused\n\t\t\t\t? theme.fg(\"warning\", \"■\")\n\t\t\t\t: theme.fg(\"success\", \"✓\");\n\tconst contextBadge = d.context === \"fork\" ? theme.fg(\"warning\", \" [fork]\") : \"\";\n\tconst c = new Container();\n\tconst width = getTermWidth() - 4;\n\t// lunr: header line is a per-frame template so the running glyph animates in place (see subagentAnimSink).\n\tc.addChild(animatedLine((f) => truncLine(`${glyph(f)} ${theme.fg(\"toolTitle\", theme.bold(d.mode))}${contextBadge}${stats ? ` ${theme.fg(\"dim\", \"·\")} ${stats}` : \"\"}`, width), frame, hasRunning));\n\n\tconst useResultsDirectly = multiLabel.hasParallelInChain || !d.chainAgents?.length;\n\tconst displayStart = multiLabel.showActiveGroupOnly ? multiLabel.groupStartIndex : 0;\n\tconst displayEnd = multiLabel.showActiveGroupOnly ? multiLabel.groupEndIndex : (useResultsDirectly ? d.results.length : d.chainAgents!.length);\n\tconst chainEntries = buildChainRenderEntries(d, multiLabel);\n\tconst renderEntries = chainEntries ?? Array.from({ length: displayEnd - displayStart }, (_, offset): ChainRenderEntry => {\n\t\tconst i = displayStart + offset;\n\t\tconst r = d.results[i];\n\t\tconst fallbackLabel = itemTitle.toLowerCase();\n\t\tconst rowNumber = multiLabel.showActiveGroupOnly ? (i - multiLabel.groupStartIndex + 1) : (i + 1);\n\t\treturn { kind: \"result\", resultIndex: i, rowNumber, agentName: useResultsDirectly ? (r?.agent || `${fallbackLabel}-${rowNumber}`) : (d.chainAgents![i] || r?.agent || `${fallbackLabel}-${rowNumber}`) };\n\t});\n\tfor (const entry of renderEntries) {\n\t\tif (entry.kind === \"placeholder\") {\n\t\t\tconst glyph = widgetStepGlyph(entry.status as AsyncJobStep[\"status\"], theme);\n\t\t\tconst statusLabel = widgetStepStatus(entry.status as AsyncJobStep[\"status\"], theme);\n\t\t\tc.addChild(new Text(truncLine(` ${glyph} ${entry.stepLabel}: ${themeBold(theme, entry.agentName)} ${theme.fg(\"dim\", \"·\")} ${statusLabel}`, width), 0, 0));\n\t\t\tif (entry.error) c.addChild(new Text(truncLine(theme.fg(\"error\", ` ⎿ Error: ${entry.error}`), width), 0, 0));\n\t\t\tcontinue;\n\t\t}\n\t\tconst i = entry.resultIndex;\n\t\tconst r = d.results[i];\n\t\tconst rowNumber = entry.rowNumber;\n\t\tconst agentName = entry.agentName;\n\t\tif (!r) {\n\t\t\tconst pendingLabel = chainEntries ? resultRowLabel(d, multiLabel, i, rowNumber) : `${itemTitle} ${rowNumber}`;\n\t\t\tc.addChild(new Text(truncLine(theme.fg(\"dim\", ` ◦ ${pendingLabel}: ${agentName} · pending`), width), 0, 0));\n\t\t\tcontinue;\n\t\t}\n\t\tconst output = getSingleResultOutput(r);\n\t\tconst progressFromArray = d.progress?.find((p) => p.index === i) || d.progress?.find((p) => p.agent === r.agent && p.status === \"running\");\n\t\tconst rProg = r.progress || progressFromArray || r.progressSummary;\n\t\tconst rRunning = rProg && \"status\" in rProg && rProg.status === \"running\";\n\t\tconst rPending = rProg && \"status\" in rProg && rProg.status === \"pending\";\n\t\tconst stepStats = formatProgressStats(theme, rProg);\n\t\tconst pendingLabel = rPending ? ` ${theme.fg(\"dim\", \"· pending\")}` : \"\";\n\t\t// lunr: simplified collapsed row — glyph · task summary · agent type · runtime/tools/tokens stats.\n\t\t// lunr: row line is a per-frame template so the running glyph animates in place (see subagentAnimSink).\n\t\tc.addChild(animatedLine((f) => {\n\t\t\tconst glyph = rPending ? theme.fg(\"dim\", \"◦\") : resultGlyph(r, output, theme, rRunning, progressRunningSeed(rProg), f);\n\t\t\treturn truncLine(` ${glyph} ${taskSummaryText(r.task)} ${theme.fg(\"dim\", \"·\")} ${themeBold(theme, agentName)}${stepStats ? ` ${theme.fg(\"dim\", \"·\")} ${stepStats}` : \"\"}${pendingLabel}`, width);\n\t\t}, frame, !!rRunning));\n\t\tif (rRunning && rProg && \"status\" in rProg) {\n\t\t\tconst activity = compactCurrentActivity(rProg);\n\t\t\tc.addChild(new Text(truncLine(theme.fg(\"dim\", ` ⎿ ${activity}`), width), 0, 0));\n\t\t} else if (!rPending && (r.exitCode !== 0 || r.interrupted || r.detached || hasEmptyTextOutputWithoutOutputTarget(r.task, output))) {\n\t\t\tc.addChild(new Text(truncLine(theme.fg(r.exitCode !== 0 ? \"error\" : \"dim\", ` ⎿ ${resultStatusLine(r, output)}`), width), 0, 0));\n\t\t}\n\t}\n\treturn c;\n}\n\n/**\n * Render a subagent result\n */\nexport function renderSubagentResult(\n\tresult: AgentToolResult<Details>,\n\toptions: { expanded: boolean },\n\ttheme: Theme,\n\tframe?: number,\n): Component {\n\tconst d = result.details;\n\tif (!d || !d.results.length) {\n\t\tconst t = result.content[0];\n\t\tconst text = t?.type === \"text\" ? t.text : \"(no output)\";\n\t\tconst contextPrefix = d?.context === \"fork\" ? `${theme.fg(\"warning\", \"[fork]\")} ` : \"\";\n\t\tconst width = getTermWidth() - 4;\n\t\tif (!text.includes(\"\\n\")) return new Text(truncLine(`${contextPrefix}${text}`, width), 0, 0);\n\t\tconst c = new Container();\n\t\tconst wrapped = wrapPlainText(`${contextPrefix}${text}`, width);\n\t\tfor (const line of wrapped) c.addChild(new Text(line, 0, 0));\n\t\treturn c;\n\t}\n\n\tconst expanded = options.expanded;\n\tconst mdTheme = getMarkdownTheme();\n\n\tif (d.mode === \"single\" && d.results.length === 1) {\n\t\tconst r = d.results[0];\n\t\tif (!expanded) return renderSingleCompact(d, r, theme, frame);\n\t\tconst isRunning = r.progress?.status === \"running\";\n\t\tconst icon = isRunning\n\t\t\t? theme.fg(\"warning\", \"running\")\n\t\t\t: r.detached\n\t\t\t\t? theme.fg(\"warning\", \"detached\")\n\t\t\t\t: r.exitCode === 0\n\t\t\t\t\t? theme.fg(\"success\", \"ok\")\n\t\t\t\t\t: theme.fg(\"error\", \"failed\");\n\t\tconst contextBadge = d.context === \"fork\" ? theme.fg(\"warning\", \" [fork]\") : \"\";\n\t\tconst output = r.truncation?.text || getSingleResultOutput(r);\n\n\t\tconst progressInfo = isRunning && r.progress\n\t\t\t? ` | ${r.progress.toolCount} tools, ${formatTokens(r.progress.tokens)} tok, ${formatDuration(r.progress.durationMs)}`\n\t\t\t: r.progressSummary\n\t\t\t\t? ` | ${r.progressSummary.toolCount} tools, ${formatTokens(r.progressSummary.tokens)} tok, ${formatDuration(r.progressSummary.durationMs)}`\n\t\t\t\t: \"\";\n\n\t\tconst w = getTermWidth() - 4;\n\t\tconst fit = (text: string) => expanded ? text : truncLine(text, w);\n\t\tconst toolCallLines = getToolCallLines(r, expanded);\n\t\tconst c = new Container();\n\t\tc.addChild(new Text(fit(`${icon} ${theme.fg(\"toolTitle\", theme.bold(r.agent))}${contextBadge}${progressInfo}`), 0, 0));\n\t\tc.addChild(new Spacer(1));\n\t\tconst taskMaxLen = Math.max(20, w - 8);\n\t\tconst taskPreview = expanded || r.task.length <= taskMaxLen\n\t\t\t? r.task\n\t\t\t: `${r.task.slice(0, taskMaxLen)}...`;\n\t\tc.addChild(\n\t\t\tnew Text(fit(theme.fg(\"dim\", `Task: ${taskPreview}`)), 0, 0),\n\t\t);\n\t\tc.addChild(new Spacer(1));\n\n\t\tif (isRunning && r.progress) {\n\t\t\tconst progressSnapshotNow = snapshotNowForProgress(r.progress);\n\t\t\tconst toolLine = formatCurrentToolLine(r.progress, w, expanded, progressSnapshotNow);\n\t\t\tif (toolLine) {\n\t\t\t\tc.addChild(new Text(fit(theme.fg(\"warning\", `> ${toolLine}`)), 0, 0));\n\t\t\t}\n\t\t\tconst liveStatusLine = buildLiveStatusLine(r.progress, progressSnapshotNow);\n\t\t\tif (liveStatusLine) {\n\t\t\t\tc.addChild(new Text(fit(theme.fg(\"accent\", liveStatusLine)), 0, 0));\n\t\t\t}\n\t\t\tc.addChild(new Text(fit(theme.fg(\"accent\", liveDetailHintText())), 0, 0));\n\t\t\tif (r.artifactPaths) {\n\t\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", `Artifacts: ${shortenPath(r.artifactPaths.outputPath)}`)), 0, 0));\n\t\t\t}\n\t\t\tif (r.progress.recentTools?.length) {\n\t\t\t\tfor (const t of r.progress.recentTools.slice(-3)) {\n\t\t\t\t\tconst maxArgsLen = Math.max(40, w - 24);\n\t\t\t\t\tconst argsPreview = expanded || t.args.length <= maxArgsLen\n\t\t\t\t\t\t? t.args\n\t\t\t\t\t\t: `${t.args.slice(0, maxArgsLen)}...`;\n\t\t\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", `${t.tool}: ${argsPreview}`)), 0, 0));\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const line of (r.progress.recentOutput ?? []).slice(-5)) {\n\t\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", ` ${line}`)), 0, 0));\n\t\t\t}\n\t\t\tif (toolLine || liveStatusLine || r.progress.recentTools?.length || r.progress.recentOutput?.length || r.artifactPaths) {\n\t\t\t\tc.addChild(new Spacer(1));\n\t\t\t}\n\t\t}\n\n\t\tif (expanded) {\n\t\t\tfor (const line of toolCallLines) {\n\t\t\t\tc.addChild(new Text(fit(theme.fg(\"muted\", line)), 0, 0));\n\t\t\t}\n\t\t\tif (toolCallLines.length) c.addChild(new Spacer(1));\n\t\t}\n\n\t\tif (output) c.addChild(new Markdown(output, 0, 0, mdTheme));\n\t\tc.addChild(new Spacer(1));\n\t\tif (r.skills?.length) {\n\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", `Skills: ${r.skills.join(\", \")}`)), 0, 0));\n\t\t}\n\t\tif (r.skillsWarning) {\n\t\t\tc.addChild(new Text(fit(theme.fg(\"warning\", `Warning: ${r.skillsWarning}`)), 0, 0));\n\t\t}\n\t\tif (r.attemptedModels && r.attemptedModels.length > 1) {\n\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", `Fallbacks: ${r.attemptedModels.join(\" → \")}`)), 0, 0));\n\t\t}\n\t\tc.addChild(new Text(fit(theme.fg(\"dim\", formatUsage(r.usage, r.model))), 0, 0));\n\t\tif (r.sessionFile) {\n\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", `Session: ${shortenPath(r.sessionFile)}`)), 0, 0));\n\t\t}\n\n\t\tif (!isRunning && r.artifactPaths) {\n\t\t\tc.addChild(new Spacer(1));\n\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", `Artifacts: ${shortenPath(r.artifactPaths.outputPath)}`)), 0, 0));\n\t\t}\n\t\treturn c;\n\t}\n\n\tif (!expanded) return renderMultiCompact(d, theme, frame);\n\n\tconst hasRunning = d.progress?.some((p) => p.status === \"running\") \n\t\t|| d.results.some((r) => r.progress?.status === \"running\")\n\t\t|| workflowGraphHasStatus(d, [\"running\"]);\n\tconst ok = d.results.filter((r) => r.progress?.status === \"completed\" || (r.exitCode === 0 && r.progress?.status !== \"running\")).length;\n\tconst hasEmptyWithoutTarget = d.results.some((r) =>\n\t\tr.exitCode === 0\n\t\t&& r.progress?.status !== \"running\"\n\t\t&& hasEmptyTextOutputWithoutOutputTarget(r.task, getSingleResultOutput(r)),\n\t);\n\tconst hasWorkflowFailure = workflowGraphHasStatus(d, [\"failed\"]);\n\tconst hasWorkflowStop = d.results.some((r) => r.stopped && r.progress?.status !== \"running\") || workflowGraphHasStatus(d, [\"stopped\"]);\n\tconst hasWorkflowPause = workflowGraphHasStatus(d, [\"paused\", \"detached\"]);\n\tconst icon = hasRunning\n\t\t? theme.fg(\"warning\", \"running\")\n\t\t: hasEmptyWithoutTarget\n\t\t\t? theme.fg(\"warning\", \"warning\")\n\t\t\t: hasWorkflowFailure\n\t\t\t\t? theme.fg(\"error\", \"failed\")\n\t\t\t\t: hasWorkflowStop\n\t\t\t\t\t? theme.fg(\"warning\", \"stopped\")\n\t\t\t\t\t: hasWorkflowPause\n\t\t\t\t\t\t? theme.fg(\"warning\", \"paused\")\n\t\t\t\t\t: ok === d.results.length\n\t\t\t\t\t\t? theme.fg(\"success\", \"ok\")\n\t\t\t\t\t\t: theme.fg(\"error\", \"failed\");\n\n\tconst totalSummary =\n\t\td.progressSummary ||\n\t\td.results.reduce(\n\t\t\t(acc, r) => {\n\t\t\t\tconst prog = r.progress || r.progressSummary;\n\t\t\t\tif (prog) {\n\t\t\t\t\tacc.toolCount += prog.toolCount;\n\t\t\t\t\tacc.tokens += prog.tokens;\n\t\t\t\t\tacc.durationMs =\n\t\t\t\t\t\td.mode === \"chain\"\n\t\t\t\t\t\t\t? acc.durationMs + prog.durationMs\n\t\t\t\t\t\t\t: Math.max(acc.durationMs, prog.durationMs);\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{ toolCount: 0, tokens: 0, durationMs: 0 },\n\t\t);\n\n\tconst summaryParts = [\n\t\ttotalSummary.toolCount || totalSummary.tokens\n\t\t\t? `${totalSummary.toolCount} tools, ${formatTokens(totalSummary.tokens)} tok, ${formatDuration(totalSummary.durationMs)}`\n\t\t\t: \"\",\n\t\tformatTotalCostStat(d.totalCost),\n\t].filter(Boolean);\n\tconst summaryStr = summaryParts.length ? ` | ${summaryParts.join(\", \")}` : \"\";\n\n\tconst modeLabel = d.mode;\n\tconst contextBadge = d.context === \"fork\" ? theme.fg(\"warning\", \" [fork]\") : \"\";\n\tconst multiLabel = buildMultiProgressLabel(d, hasRunning);\n\tconst itemTitle = multiLabel.itemTitle;\n\t\n\tconst chainVis = d.chainAgents?.length && !multiLabel.hasParallelInChain\n\t\t? d.chainAgents\n\t\t\t\t.map((agent, i) => {\n\t\t\t\t\tconst result = d.results[i];\n\t\t\t\t\tconst isFailed = result && result.exitCode !== 0 && result.progress?.status !== \"running\";\n\t\t\t\t\tconst isComplete = result && result.exitCode === 0 && result.progress?.status !== \"running\";\n\t\t\t\t\tconst isEmptyWithoutTarget = Boolean(result)\n\t\t\t\t\t\t&& Boolean(isComplete)\n\t\t\t\t\t\t&& hasEmptyTextOutputWithoutOutputTarget(result.task, getSingleResultOutput(result));\n\t\t\t\t\tconst isCurrent = i === (d.currentStepIndex ?? d.results.length);\n\t\t\t\t\tconst stepIcon = isFailed\n\t\t\t\t\t\t? theme.fg(\"error\", \"failed\")\n\t\t\t\t\t\t: isEmptyWithoutTarget\n\t\t\t\t\t\t\t? theme.fg(\"warning\", \"warning\")\n\t\t\t\t\t\t\t: isComplete\n\t\t\t\t\t\t\t\t? theme.fg(\"success\", \"done\")\n\t\t\t\t\t\t\t\t: isCurrent && hasRunning\n\t\t\t\t\t\t\t\t\t? theme.fg(\"warning\", \"running\")\n\t\t\t\t\t\t\t\t\t: theme.fg(\"dim\", \"pending\");\n\t\t\t\t\treturn `${stepIcon} ${agent}`;\n\t\t\t\t})\n\t\t\t\t.join(theme.fg(\"dim\", \" → \"))\n\t\t: null;\n\n\tconst w = getTermWidth() - 4;\n\tconst fit = (text: string) => expanded ? text : truncLine(text, w);\n\tconst c = new Container();\n\tc.addChild(\n\t\tnew Text(\n\t\t\tfit(`${icon} ${theme.fg(\"toolTitle\", theme.bold(modeLabel))}${contextBadge} · ${multiLabel.headerLabel}${summaryStr}`),\n\t\t\t0,\n\t\t\t0,\n\t\t),\n\t);\n\tif (chainVis) {\n\t\tc.addChild(new Text(fit(` ${chainVis}`), 0, 0));\n\t}\n\n\tconst useResultsDirectly = multiLabel.hasParallelInChain || !d.chainAgents?.length;\n\tconst displayStart = multiLabel.showActiveGroupOnly ? multiLabel.groupStartIndex : 0;\n\tconst displayEnd = multiLabel.showActiveGroupOnly ? multiLabel.groupEndIndex : (useResultsDirectly ? d.results.length : d.chainAgents!.length);\n\tconst chainEntries = buildChainRenderEntries(d, multiLabel);\n\tconst renderEntries = chainEntries ?? Array.from({ length: displayEnd - displayStart }, (_, offset): ChainRenderEntry => {\n\t\tconst i = displayStart + offset;\n\t\tconst r = d.results[i];\n\t\tconst rowNumber = multiLabel.showActiveGroupOnly ? (i - multiLabel.groupStartIndex + 1) : (i + 1);\n\t\treturn { kind: \"result\", resultIndex: i, rowNumber, agentName: useResultsDirectly ? (r?.agent || `step-${rowNumber}`) : (d.chainAgents![i] || r?.agent || `step-${rowNumber}`) };\n\t});\n\n\tc.addChild(new Spacer(1));\n\n\tfor (const entry of renderEntries) {\n\t\tif (entry.kind === \"placeholder\") {\n\t\t\tconst statusLabel = widgetStepStatus(entry.status as AsyncJobStep[\"status\"], theme);\n\t\t\tc.addChild(new Text(fit(` ${statusLabel} ${entry.stepLabel}: ${theme.bold(entry.agentName)}`), 0, 0));\n\t\t\tc.addChild(new Text(theme.fg(entry.status === \"failed\" ? \"error\" : \"dim\", ` status: ${entry.status}`), 0, 0));\n\t\t\tif (entry.error) c.addChild(new Text(theme.fg(\"error\", ` error: ${entry.error}`), 0, 0));\n\t\t\tc.addChild(new Spacer(1));\n\t\t\tcontinue;\n\t\t}\n\t\tconst i = entry.resultIndex;\n\t\tconst r = d.results[i];\n\t\tconst rowNumber = entry.rowNumber;\n\t\tconst agentName = entry.agentName;\n\n\t\tif (!r) {\n\t\t\tconst pendingLabel = chainEntries ? resultRowLabel(d, multiLabel, i, rowNumber) : `${itemTitle} ${rowNumber}`;\n\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", ` ${pendingLabel}: ${agentName}`)), 0, 0));\n\t\t\tc.addChild(new Text(theme.fg(\"dim\", ` status: pending`), 0, 0));\n\t\t\tc.addChild(new Spacer(1));\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst progressFromArray = d.progress?.find((p) => p.index === i) \n\t\t\t|| d.progress?.find((p) => p.agent === r.agent && p.status === \"running\");\n\t\tconst rProg = r.progress || progressFromArray || r.progressSummary;\n\t\tconst rRunning = rProg?.status === \"running\";\n\t\tconst stepNumber = typeof rProg?.index === \"number\" ? rProg.index + 1 : i + 1;\n\n\t\tconst resultOutput = getSingleResultOutput(r);\n\t\tconst statusIcon = rRunning\n\t\t\t? theme.fg(\"warning\", \"running\")\n\t\t\t: r.exitCode !== 0\n\t\t\t\t? theme.fg(\"error\", \"failed\")\n\t\t\t\t: hasEmptyTextOutputWithoutOutputTarget(r.task, resultOutput)\n\t\t\t\t\t? theme.fg(\"warning\", \"warning\")\n\t\t\t\t\t: theme.fg(\"success\", \"done\");\n\t\tconst stats = rProg ? ` | ${rProg.toolCount} tools, ${formatDuration(rProg.durationMs)}` : \"\";\n\t\tconst modelDisplay = modelThinkingBadge(theme, r.model);\n\t\tconst stepLabel = resultRowLabel(d, multiLabel, i, stepNumber);\n\t\tconst stepHeader = rRunning\n\t\t\t? `${statusIcon} ${stepLabel}: ${theme.bold(theme.fg(\"warning\", r.agent))}${modelDisplay}${stats}`\n\t\t\t: `${statusIcon} ${stepLabel}: ${theme.bold(r.agent)}${modelDisplay}${stats}`;\n\t\tconst toolCallLines = getToolCallLines(r, expanded);\n\t\tc.addChild(new Text(fit(stepHeader), 0, 0));\n\n\t\tconst taskMaxLen = Math.max(20, w - 12);\n\t\tconst taskPreview = expanded || r.task.length <= taskMaxLen\n\t\t\t? r.task\n\t\t\t: `${r.task.slice(0, taskMaxLen)}...`;\n\t\tc.addChild(new Text(fit(theme.fg(\"dim\", ` task: ${taskPreview}`)), 0, 0));\n\n\t\tif (r.skills?.length) {\n\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", ` skills: ${r.skills.join(\", \")}`)), 0, 0));\n\t\t}\n\t\tif (r.skillsWarning) {\n\t\t\tc.addChild(new Text(fit(theme.fg(\"warning\", ` Warning: ${r.skillsWarning}`)), 0, 0));\n\t\t}\n\t\tif (r.attemptedModels && r.attemptedModels.length > 1) {\n\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", ` fallbacks: ${r.attemptedModels.join(\" → \")}`)), 0, 0));\n\t\t}\n\n\t\tif (rRunning && rProg) {\n\t\t\tif (rProg.skills?.length) {\n\t\t\t\tc.addChild(new Text(fit(theme.fg(\"accent\", ` skills: ${rProg.skills.join(\", \")}`)), 0, 0));\n\t\t\t}\n\t\t\tconst progressSnapshotNow = snapshotNowForProgress(rProg);\n\t\t\tconst toolLine = formatCurrentToolLine(rProg, w, expanded, progressSnapshotNow);\n\t\t\tif (toolLine) {\n\t\t\t\tc.addChild(new Text(fit(theme.fg(\"warning\", ` > ${toolLine}`)), 0, 0));\n\t\t\t}\n\t\t\tconst liveStatusLine = buildLiveStatusLine(rProg, progressSnapshotNow);\n\t\t\tif (liveStatusLine) {\n\t\t\t\tc.addChild(new Text(fit(theme.fg(\"accent\", ` ${liveStatusLine}`)), 0, 0));\n\t\t\t}\n\t\t\tc.addChild(new Text(fit(theme.fg(\"accent\", ` ${liveDetailHintText()}`)), 0, 0));\n\t\t\tif (r.artifactPaths) {\n\t\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", ` artifacts: ${shortenPath(r.artifactPaths.outputPath)}`)), 0, 0));\n\t\t\t}\n\t\t\tif (rProg.recentTools?.length) {\n\t\t\t\tfor (const t of rProg.recentTools.slice(-3)) {\n\t\t\t\t\tconst maxArgsLen = Math.max(40, w - 30);\n\t\t\t\t\tconst argsPreview = expanded || t.args.length <= maxArgsLen\n\t\t\t\t\t\t? t.args\n\t\t\t\t\t\t: `${t.args.slice(0, maxArgsLen)}...`;\n\t\t\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", ` ${t.tool}: ${argsPreview}`)), 0, 0));\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst recentLines = (rProg.recentOutput ?? []).slice(-5);\n\t\t\tfor (const line of recentLines) {\n\t\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", ` ${line}`)), 0, 0));\n\t\t\t}\n\t\t}\n\n\t\tif (!rRunning && r.artifactPaths) {\n\t\t\tc.addChild(new Text(fit(theme.fg(\"dim\", ` artifacts: ${shortenPath(r.artifactPaths.outputPath)}`)), 0, 0));\n\t\t}\n\n\t\tif (expanded && !rRunning) {\n\t\t\tfor (const line of toolCallLines) {\n\t\t\t\tc.addChild(new Text(fit(theme.fg(\"muted\", ` ${line}`)), 0, 0));\n\t\t\t}\n\t\t\tif (toolCallLines.length) c.addChild(new Spacer(1));\n\t\t}\n\n\t\tc.addChild(new Spacer(1));\n\t}\n\n\tif (d.artifacts) {\n\t\tc.addChild(new Spacer(1));\n\t\tc.addChild(new Text(fit(theme.fg(\"dim\", `Artifacts dir: ${shortenPath(d.artifacts.dir)}`)), 0, 0));\n\t}\n\treturn c;\n}\n"]}
|