@ashx-j/lunr 0.2.19 → 0.2.21
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 +36 -1
- package/README.md +2 -2
- package/dist/builtin-extensions/index.d.ts.map +1 -1
- package/dist/builtin-extensions/index.js +0 -2
- package/dist/builtin-extensions/index.js.map +1 -1
- package/dist/builtin-extensions/lunr-todos.d.ts +6 -5
- package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -1
- package/dist/builtin-extensions/lunr-todos.js +9 -7
- package/dist/builtin-extensions/lunr-todos.js.map +1 -1
- package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts +6 -4
- package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-intercom/broker/spawn.js +114 -61
- package/dist/builtin-extensions/pi-intercom/broker/spawn.js.map +1 -1
- package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-intercom/index.js +360 -351
- package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js +2 -2
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +8 -6
- package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js +128 -57
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +18 -8
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +38 -13
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +4 -3
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +24 -14
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts +8 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +247 -18
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts +29 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js +179 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts +89 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js +541 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +11 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +38 -12
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js +3 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts +2 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +35 -8
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +7 -3
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +26 -4
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +55 -38
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +100 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +46 -31
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts +3 -6
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js +64 -5
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts +15 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js +14 -4
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +2 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +21 -8
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +0 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +71 -25
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts +2 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js +75 -18
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +13 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +67 -11
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +3 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +7 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +13 -3
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js +5 -10
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.d.ts +2 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.js +3 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts +3 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js +68 -11
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts +12 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js +21 -2
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +21 -4
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +7 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +11 -7
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +6 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +46 -29
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +46 -4
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js +407 -450
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts +2 -13
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js +5 -91
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js.map +1 -1
- package/dist/core/customize.d.ts +2 -0
- package/dist/core/customize.d.ts.map +1 -1
- package/dist/core/customize.js +3 -0
- package/dist/core/customize.js.map +1 -1
- package/dist/core/permissions.d.ts +1 -0
- package/dist/core/permissions.d.ts.map +1 -1
- package/dist/core/permissions.js +8 -4
- package/dist/core/permissions.js.map +1 -1
- package/dist/core/plan-mode.d.ts.map +1 -1
- package/dist/core/plan-mode.js +0 -5
- package/dist/core/plan-mode.js.map +1 -1
- package/dist/core/runtime-bridges.d.ts.map +1 -1
- package/dist/core/runtime-bridges.js +0 -2
- package/dist/core/runtime-bridges.js.map +1 -1
- package/dist/core/settings-manager.d.ts +4 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +11 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/subagent-cancellation.d.ts +21 -0
- package/dist/core/subagent-cancellation.d.ts.map +1 -0
- package/dist/core/subagent-cancellation.js +53 -0
- package/dist/core/subagent-cancellation.js.map +1 -0
- package/dist/core/subagent-spinner-setting.d.ts +6 -0
- package/dist/core/subagent-spinner-setting.d.ts.map +1 -0
- package/dist/core/subagent-spinner-setting.js +12 -0
- package/dist/core/subagent-spinner-setting.js.map +1 -0
- package/dist/core/subagent-spinner.d.ts +4 -0
- package/dist/core/subagent-spinner.d.ts.map +1 -0
- package/dist/core/subagent-spinner.js +6 -0
- package/dist/core/subagent-spinner.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +12 -18
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +4 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +73 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +12 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/extension-widget-order.d.ts +8 -0
- package/dist/modes/interactive/extension-widget-order.d.ts.map +1 -0
- package/dist/modes/interactive/extension-widget-order.js +37 -0
- package/dist/modes/interactive/extension-widget-order.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +44 -22
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/node-runtime/{agent-session-services-35WNVGMR.js → agent-session-services-C743TYQE.js} +6 -5
- package/dist/node-runtime/{builtin-extensions-322XDDEM.js → builtin-extensions-JCOPAAB5.js} +3 -2
- package/dist/node-runtime/{chunk-XATUM2HK.js → chunk-25I2BHAA.js} +1 -1
- package/dist/node-runtime/{chunk-TXHKBRHZ.js → chunk-2BUAYZ7K.js} +136 -53
- package/dist/node-runtime/chunk-5ZH3ZFIZ.js +308 -0
- package/dist/node-runtime/{chunk-J26TSGDL.js → chunk-6N22HULO.js} +8 -5
- package/dist/node-runtime/chunk-A3KMVBZV.js +60 -0
- package/dist/node-runtime/{chunk-4FX25LWP.js → chunk-AWVD5IEY.js} +20 -421
- package/dist/node-runtime/{chunk-ZRCBN365.js → chunk-GB2MGFLI.js} +12 -12
- package/dist/node-runtime/chunk-LISUTZS3.js +19 -0
- package/dist/node-runtime/{chunk-PNJSG3IZ.js → chunk-LTYWTR3V.js} +1 -369
- package/dist/node-runtime/{chunk-TFBIJTM3.js → chunk-PDNXVXMD.js} +13 -13
- package/dist/node-runtime/{chunk-MCUNIRD5.js → chunk-SY2TFMLO.js} +532 -261
- package/dist/node-runtime/{chunk-HQCKFM2O.js → chunk-VGYZ3APQ.js} +3 -0
- package/dist/node-runtime/{chunk-4DJ6HEGH.js → chunk-VZR3NCM7.js} +3 -3
- package/dist/node-runtime/chunk-W3SILANP.js +24 -0
- package/dist/node-runtime/{chunk-CBGB57XT.js → chunk-WLLDXJRT.js} +10 -0
- package/dist/node-runtime/{chunk-ATGA2WLC.js → chunk-XI77KVKA.js} +399 -36
- package/dist/node-runtime/{chunk-4CSFRBCN.js → chunk-Y5KOEMBH.js} +1 -1
- package/dist/node-runtime/{chunk-AROOY4BB.js → chunk-YMEAYRBE.js} +1 -1
- package/dist/node-runtime/{command-DWUM5X3U.js → command-P4NYCJ2M.js} +1 -1
- package/dist/node-runtime/{customize-XEXL2DGQ.js → customize-LF5VST47.js} +1 -1
- package/dist/node-runtime/{gateway-UZXMFGWY.js → gateway-BM6NLOH4.js} +2 -2
- package/dist/node-runtime/index.js +16 -13
- package/dist/node-runtime/{interactive-mode-QT5IKGQ5.js → interactive-mode-EVVBA64D.js} +11 -8
- package/dist/node-runtime/{lunr-cron-QPBTKBGI.js → lunr-cron-4VHP4E4B.js} +2 -2
- package/dist/node-runtime/main.js +14 -12
- package/dist/node-runtime/{package-manager-cli-7RKSZGEN.js → package-manager-cli-N37546V5.js} +5 -4
- package/dist/node-runtime/{pi-intercom-EEMBGQID.js → pi-intercom-NV2LW6X7.js} +108 -87
- package/dist/node-runtime/{pi-subagents-7YJ3I4VE.js → pi-subagents-6MUIFNDM.js} +1262 -599
- package/dist/node-runtime/rpc-entry.js +14 -12
- package/dist/node-runtime/{runtime-bridges-3RKBDLNA.js → runtime-bridges-2VQTLPOZ.js} +3 -5
- package/dist/node-runtime/{settings-manager-GHPTUN7R.js → settings-manager-CUGAZWAB.js} +2 -1
- package/dist/node-runtime/{subagent-executor-5Q5A4HJ2.js → subagent-executor-MH4A7CCF.js} +181 -294
- package/dist/node-runtime/{update-cli-L3JIBH2U.js → update-cli-XTZMZGOL.js} +2 -1
- package/docs/features.md +22 -4
- package/docs/keybindings.md +3 -1
- package/docs/settings.md +3 -2
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/package.json +4 -4
- package/dist/builtin-extensions/lunr-settings-tools.d.ts +0 -4
- package/dist/builtin-extensions/lunr-settings-tools.d.ts.map +0 -1
- package/dist/builtin-extensions/lunr-settings-tools.js +0 -120
- package/dist/builtin-extensions/lunr-settings-tools.js.map +0 -1
- package/dist/core/settings-tools-bridge.d.ts +0 -35
- package/dist/core/settings-tools-bridge.d.ts.map +0 -1
- package/dist/core/settings-tools-bridge.js +0 -56
- package/dist/core/settings-tools-bridge.js.map +0 -1
- package/dist/node-runtime/chunk-3NMWLTPV.js +0 -64
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-spec.js","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/shared/child-spec.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * Normalize model-authored delegated tasks into ChildSpec before validation,\n * rendering, persistence, or process spawning.\n */\n\nimport {\n\tPLAN_MODE_WRITE_SPAWN_ERROR,\n\tresolveChildPermissions,\n\ttype ChildPermission,\n} from \"../../../../core/subagent-permission-inherit.ts\";\nimport { resolveChildExcludeTools } from \"../runs/shared/child-tools.ts\";\nimport { captureModelSelection } from \"../runs/shared/model-fallback.ts\";\nimport type { AcceptanceInput, ChildSpec, ChildTier, JsonSchemaObject, ModelSelection, ToolBudgetConfig } from \"./types.ts\";\n\nexport type { ChildSpec, ChildTier, ModelSelection } from \"./types.ts\";\n\nexport const CHILD_DESCRIPTION_MAX_LENGTH = 80;\n\nexport interface DelegatedTaskInput {\n\ttask?: unknown;\n\tdescription?: unknown;\n\tpermissions?: unknown;\n\tmodel?: unknown;\n\ttier?: unknown;\n\tmodelSelection?: unknown;\n\tskill?: unknown;\n\tcwd?: unknown;\n\toutput?: unknown;\n\toutputMode?: unknown;\n\tacceptance?: unknown;\n\ttoolBudget?: unknown;\n\tcount?: unknown;\n\treads?: unknown;\n\tprogress?: unknown;\n\tlabel?: unknown;\n\tphase?: unknown;\n\tas?: unknown;\n\toutputSchema?: unknown;\n}\n\nexport interface NormalizeChildSpecOptions {\n\tparentMode?: string;\n\trunId: string;\n\tindex: number;\n\tchildId?: string;\n\tdefaultTask?: string;\n\tfanoutAuthorized?: boolean;\n\tpathLabel?: string;\n}\n\nexport function allocateChildId(runId: string, index: number): string {\n\treturn `${runId}-${index}`;\n}\n\nexport function sanitizeChildDescription(value: string, max = CHILD_DESCRIPTION_MAX_LENGTH): string {\n\tconst collapsed = value.replace(/\\s+/g, \" \").trim();\n\tif (collapsed.length <= max) return collapsed;\n\treturn `${collapsed.slice(0, Math.max(1, max - 1))}…`;\n}\n\nexport function validateChildDescription(value: unknown, pathLabel = \"description\"): string {\n\tif (typeof value !== \"string\") {\n\t\tthrow new Error(`${pathLabel} is required and must be a concise single-line label (max ${CHILD_DESCRIPTION_MAX_LENGTH} characters).`);\n\t}\n\tif (/[\\r\\n]/.test(value)) {\n\t\tthrow new Error(`${pathLabel} must be a single line with no newlines.`);\n\t}\n\tconst trimmed = value.trim();\n\tif (!trimmed) {\n\t\tthrow new Error(`${pathLabel} is required and must be a concise single-line label (max ${CHILD_DESCRIPTION_MAX_LENGTH} characters).`);\n\t}\n\tif (trimmed.length > CHILD_DESCRIPTION_MAX_LENGTH) {\n\t\tthrow new Error(`${pathLabel} must be at most ${CHILD_DESCRIPTION_MAX_LENGTH} characters.`);\n\t}\n\treturn trimmed;\n}\n\nexport function parseChildPermissionsInput(value: unknown, pathLabel = \"permissions\"): ChildPermission | undefined {\n\tif (value === undefined) return undefined;\n\tif (value === \"full\" || value === \"read-only\") return value;\n\tthrow new Error(`${pathLabel} must be \"full\" or \"read-only\".`);\n}\n\nfunction optionalString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\nfunction optionalSkill(value: unknown): string | string[] | false | undefined {\n\tif (value === false) return false;\n\tif (typeof value === \"string\") return value;\n\tif (Array.isArray(value) && value.every((entry) => typeof entry === \"string\")) return value as string[];\n\treturn undefined;\n}\n\nfunction optionalOutput(value: unknown): string | false | undefined {\n\tif (value === false) return false;\n\tif (typeof value === \"string\") return value;\n\treturn undefined;\n}\n\nfunction optionalReads(value: unknown): string[] | false | undefined {\n\tif (value === false) return false;\n\tif (Array.isArray(value) && value.every((entry) => typeof entry === \"string\")) return value as string[];\n\treturn undefined;\n}\n\nfunction optionalCount(value: unknown): number | undefined {\n\tif (typeof value === \"number\" && Number.isInteger(value) && value >= 1) return value;\n\treturn undefined;\n}\n\nfunction isModelSelection(value: unknown): value is ModelSelection {\n\tif (!value || typeof value !== \"object\") return false;\n\tconst kind = (value as { kind?: unknown }).kind;\n\tif (kind === \"tier\") {\n\t\tconst tier = (value as { tier?: unknown }).tier;\n\t\treturn tier === \"light\" || tier === \"standard\" || tier === \"heavy\";\n\t}\n\treturn false;\n}\n\nexport function normalizeChildSpec(input: DelegatedTaskInput, options: NormalizeChildSpecOptions): ChildSpec {\n\tconst pathLabel = options.pathLabel ?? \"task\";\n\tconst description = validateChildDescription(input.description, `${pathLabel}.description`);\n\tconst task = typeof input.task === \"string\" && input.task.trim()\n\t\t? input.task\n\t\t: options.defaultTask;\n\tif (typeof task !== \"string\" || !task.trim()) {\n\t\tthrow new Error(`${pathLabel}.task is required.`);\n\t}\n\tconst requested = parseChildPermissionsInput(input.permissions, `${pathLabel}.permissions`);\n\tconst resolved = resolveChildPermissions(options.parentMode, requested);\n\tif (!resolved.ok) {\n\t\tthrow new Error(resolved.error || PLAN_MODE_WRITE_SPAWN_ERROR);\n\t}\n\tif (input.model !== undefined && !isModelSelection(input.modelSelection)) {\n\t\tthrow new Error(`${pathLabel}.model is not supported for executable children; choose tier: \"light\", \"standard\", or \"heavy\".`);\n\t}\n\tconst selectedTier = isModelSelection(input.modelSelection) ? input.modelSelection.tier : input.tier;\n\tif (selectedTier !== \"light\" && selectedTier !== \"standard\" && selectedTier !== \"heavy\") {\n\t\tthrow new Error(`${pathLabel}.tier is required and must be \"light\", \"standard\", or \"heavy\".`);\n\t}\n\tconst tier = selectedTier;\n\tconst outputMode = input.outputMode === \"inline\" || input.outputMode === \"file-only\" ? input.outputMode : undefined;\n\tconst modelSelection = isModelSelection(input.modelSelection)\n\t\t? input.modelSelection\n\t\t: captureModelSelection({ tier });\n\treturn {\n\t\tchildId: options.childId ?? allocateChildId(options.runId, options.index),\n\t\ttask,\n\t\tdescription,\n\t\trequestedPermissions: resolved.requested,\n\t\teffectivePermissions: resolved.effective,\n\t\tmodel: optionalString(input.model),\n\t\ttier,\n\t\tmodelSelection,\n\t\tskill: optionalSkill(input.skill),\n\t\tcwd: optionalString(input.cwd),\n\t\toutput: optionalOutput(input.output),\n\t\toutputMode,\n\t\tacceptance: input.acceptance as AcceptanceInput | undefined,\n\t\ttoolBudget: input.toolBudget as ToolBudgetConfig | undefined,\n\t\tcount: optionalCount(input.count),\n\t\treads: optionalReads(input.reads),\n\t\tprogress: typeof input.progress === \"boolean\" ? input.progress : undefined,\n\t\tlabel: optionalString(input.label),\n\t\tphase: optionalString(input.phase),\n\t\tas: optionalString(input.as),\n\t\toutputSchema: input.outputSchema && typeof input.outputSchema === \"object\"\n\t\t\t? input.outputSchema as JsonSchemaObject\n\t\t\t: undefined,\n\t\tfanoutAuthorized: options.fanoutAuthorized === true,\n\t};\n}\n\nexport function childDisplayLabel(spec: Pick<ChildSpec, \"description\" | \"label\">): string {\n\treturn spec.label?.trim() || spec.description;\n}\n\nexport function tryNormalizeChildSpec(\n\tinput: DelegatedTaskInput,\n\toptions: NormalizeChildSpecOptions,\n): { ok: true; spec: ChildSpec } | { ok: false; error: string } {\n\ttry {\n\t\treturn { ok: true, spec: normalizeChildSpec(input, options) };\n\t} catch (error) {\n\t\treturn { ok: false, error: error instanceof Error ? error.message : String(error) };\n\t}\n}\n\nexport function childIdentityFields(spec: ChildSpec): {\n\tchildId: string;\n\tdescription: string;\n\tpermissions: ChildPermission;\n\tagent: string;\n} {\n\treturn {\n\t\tchildId: spec.childId,\n\t\tdescription: spec.description,\n\t\tpermissions: spec.effectivePermissions,\n\t\tagent: spec.description,\n\t};\n}\n\nexport function childOutputCapabilities(permissions: ChildPermission): { tools: string[] } {\n\treturn permissions === \"read-only\"\n\t\t? { tools: [\"read\"] }\n\t\t: { tools: [\"read\", \"edit\", \"write\", \"bash\"] };\n}\n\nexport function childSpawnPiArgDefaults(spec: ChildSpec): {\n\tinheritProjectContext: true;\n\tinheritSkills: false;\n\tsystemPromptMode: \"append\";\n\texcludeTools: string[];\n\tchildPermission: ChildPermission;\n\tchildId: string;\n\tchildDescription: string;\n\tchildAgentName: string;\n} {\n\treturn {\n\t\tinheritProjectContext: true,\n\t\tinheritSkills: false,\n\t\tsystemPromptMode: \"append\",\n\t\texcludeTools: resolveChildExcludeTools({\n\t\t\tpermissions: spec.effectivePermissions,\n\t\t\tfanoutAuthorized: spec.fanoutAuthorized,\n\t\t}),\n\t\tchildPermission: spec.effectivePermissions,\n\t\tchildId: spec.childId,\n\t\tchildDescription: spec.description,\n\t\tchildAgentName: spec.childId,\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"child-spec.js","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/shared/child-spec.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * Normalize model-authored delegated tasks into ChildSpec before validation,\n * rendering, persistence, or process spawning.\n */\n\nimport {\n\tPLAN_MODE_WRITE_SPAWN_ERROR,\n\tresolveChildPermissions,\n\ttype ChildPermission,\n} from \"../../../../core/subagent-permission-inherit.ts\";\nimport { resolveChildExcludeTools } from \"../runs/shared/child-tools.ts\";\nimport { captureModelSelection, INHERIT_MODEL } from \"../runs/shared/model-fallback.ts\";\nimport type { AcceptanceInput, ChildSpec, ChildTier, JsonSchemaObject, ModelSelection, ToolBudgetConfig } from \"./types.ts\";\nimport { THINKING_LEVELS } from \"./model-info.ts\";\n\nexport type { ChildSpec, ChildTier, ModelSelection } from \"./types.ts\";\n\nexport const CHILD_DESCRIPTION_MAX_LENGTH = 80;\n\nexport interface DelegatedTaskInput {\n\ttask?: unknown;\n\tdescription?: unknown;\n\tpermissions?: unknown;\n\tmodel?: unknown;\n\ttier?: unknown;\n\tthinking?: unknown;\n\tmodelSelection?: unknown;\n\tskill?: unknown;\n\tcwd?: unknown;\n\toutput?: unknown;\n\toutputMode?: unknown;\n\tacceptance?: unknown;\n\ttoolBudget?: unknown;\n\tcount?: unknown;\n\treads?: unknown;\n\tprogress?: unknown;\n\tlabel?: unknown;\n\tphase?: unknown;\n\tas?: unknown;\n\toutputSchema?: unknown;\n}\n\nexport interface NormalizeChildSpecOptions {\n\tparentMode?: string;\n\trunId: string;\n\tindex: number;\n\tchildId?: string;\n\tdefaultTask?: string;\n\tfanoutAuthorized?: boolean;\n\tpathLabel?: string;\n\t/** When true, `model` is a previously resolved runtime id and must not be treated as a fresh user selection. */\n\tresolvedModelIsRuntime?: boolean;\n}\n\nexport function allocateChildId(runId: string, index: number): string {\n\treturn `${runId}-${index}`;\n}\n\nexport function sanitizeChildDescription(value: string, max = CHILD_DESCRIPTION_MAX_LENGTH): string {\n\tconst collapsed = value.replace(/\\s+/g, \" \").trim();\n\tif (collapsed.length <= max) return collapsed;\n\treturn `${collapsed.slice(0, Math.max(1, max - 1))}…`;\n}\n\nexport function validateChildDescription(value: unknown, pathLabel = \"description\"): string {\n\tif (typeof value !== \"string\") {\n\t\tthrow new Error(`${pathLabel} is required and must be a concise single-line label (max ${CHILD_DESCRIPTION_MAX_LENGTH} characters).`);\n\t}\n\tif (/[\\r\\n]/.test(value)) {\n\t\tthrow new Error(`${pathLabel} must be a single line with no newlines.`);\n\t}\n\tconst trimmed = value.trim();\n\tif (!trimmed) {\n\t\tthrow new Error(`${pathLabel} is required and must be a concise single-line label (max ${CHILD_DESCRIPTION_MAX_LENGTH} characters).`);\n\t}\n\tif (trimmed.length > CHILD_DESCRIPTION_MAX_LENGTH) {\n\t\tthrow new Error(`${pathLabel} must be at most ${CHILD_DESCRIPTION_MAX_LENGTH} characters.`);\n\t}\n\treturn trimmed;\n}\n\nexport function parseChildPermissionsInput(value: unknown, pathLabel = \"permissions\"): ChildPermission | undefined {\n\tif (value === undefined) return undefined;\n\tif (value === \"full\" || value === \"read-only\") return value;\n\tthrow new Error(`${pathLabel} must be \"full\" or \"read-only\".`);\n}\n\nfunction optionalString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\nfunction optionalSkill(value: unknown): string | string[] | false | undefined {\n\tif (value === false) return false;\n\tif (typeof value === \"string\") return value;\n\tif (Array.isArray(value) && value.every((entry) => typeof entry === \"string\")) return value as string[];\n\treturn undefined;\n}\n\nfunction optionalOutput(value: unknown): string | false | undefined {\n\tif (value === false) return false;\n\tif (typeof value === \"string\") return value;\n\treturn undefined;\n}\n\nfunction optionalReads(value: unknown): string[] | false | undefined {\n\tif (value === false) return false;\n\tif (Array.isArray(value) && value.every((entry) => typeof entry === \"string\")) return value as string[];\n\treturn undefined;\n}\n\nfunction optionalCount(value: unknown): number | undefined {\n\tif (typeof value === \"number\" && Number.isInteger(value) && value >= 1) return value;\n\treturn undefined;\n}\n\nfunction isModelSelection(value: unknown): value is ModelSelection {\n\tif (!value || typeof value !== \"object\") return false;\n\tconst kind = (value as { kind?: unknown }).kind;\n\tif (kind === \"model\") return true;\n\tif (kind === \"tier\") {\n\t\tconst tier = (value as { tier?: unknown }).tier;\n\t\treturn tier === \"light\" || tier === \"standard\" || tier === \"heavy\";\n\t}\n\treturn false;\n}\n\nfunction parseThinking(value: unknown, pathLabel: string): string | undefined {\n\tif (value === undefined) return undefined;\n\tif (value === false) return \"off\";\n\tif (typeof value === \"string\" && (THINKING_LEVELS as readonly string[]).includes(value)) return value;\n\tthrow new Error(`${pathLabel}.thinking must be one of ${THINKING_LEVELS.join(\", \")}.`);\n}\n\nexport function normalizeChildSpec(input: DelegatedTaskInput, options: NormalizeChildSpecOptions): ChildSpec {\n\tconst pathLabel = options.pathLabel ?? \"task\";\n\tconst description = validateChildDescription(input.description, `${pathLabel}.description`);\n\tconst task = typeof input.task === \"string\" && input.task.trim()\n\t\t? input.task\n\t\t: options.defaultTask;\n\tif (typeof task !== \"string\" || !task.trim()) {\n\t\tthrow new Error(`${pathLabel}.task is required.`);\n\t}\n\tconst requested = parseChildPermissionsInput(input.permissions, `${pathLabel}.permissions`);\n\tconst resolved = resolveChildPermissions(options.parentMode, requested);\n\tif (!resolved.ok) {\n\t\tthrow new Error(resolved.error || PLAN_MODE_WRITE_SPAWN_ERROR);\n\t}\n\n\tconst preservedSelection = isModelSelection(input.modelSelection) ? input.modelSelection : undefined;\n\tconst rawModel = optionalString(input.model);\n\tif (rawModel === INHERIT_MODEL) {\n\t\tthrow new Error(`${pathLabel}.model \"inherit\" is not supported; choose tier or an explicit provider/model.`);\n\t}\n\n\tlet modelSelection: ModelSelection;\n\tlet tier: ChildTier | undefined;\n\tlet model: string | undefined;\n\tlet thinking: string | undefined;\n\n\tif (preservedSelection) {\n\t\tmodelSelection = preservedSelection;\n\t\tif (modelSelection.kind === \"tier\") {\n\t\t\ttier = modelSelection.tier;\n\t\t\t// Runtime-resolved models from recovery must not become a fresh user model selection.\n\t\t\tmodel = undefined;\n\t\t\tif (input.thinking !== undefined) {\n\t\t\t\tthrow new Error(`${pathLabel}.thinking is only valid with an explicit model selection.`);\n\t\t\t}\n\t\t} else {\n\t\t\tmodel = rawModel ?? optionalString(modelSelection.model);\n\t\t\tif (!model) {\n\t\t\t\tthrow new Error(`${pathLabel}.model is required when modelSelection.kind is \"model\".`);\n\t\t\t}\n\t\t\tif (!modelSelection.model) modelSelection = { kind: \"model\", model };\n\t\t\tthinking = parseThinking(input.thinking, pathLabel);\n\t\t}\n\t} else if (options.resolvedModelIsRuntime) {\n\t\t// Resume/recovery without a stored selection: keep tier routing, ignore resolved model as selection.\n\t\tconst selectedTier = input.tier === \"light\" || input.tier === \"standard\" || input.tier === \"heavy\" ? input.tier : undefined;\n\t\tif (!selectedTier) {\n\t\t\tthrow new Error(`${pathLabel}.tier is required to resume a child without a stored modelSelection.`);\n\t\t}\n\t\tmodelSelection = { kind: \"tier\", tier: selectedTier };\n\t\ttier = selectedTier;\n\t\tmodel = undefined;\n\t} else {\n\t\tmodelSelection = captureModelSelection({ model: input.model, tier: input.tier });\n\t\tif (modelSelection.kind === \"tier\") {\n\t\t\ttier = modelSelection.tier;\n\t\t\tmodel = undefined;\n\t\t\tif (input.thinking !== undefined) {\n\t\t\t\tthrow new Error(`${pathLabel}.thinking is only valid with an explicit model selection.`);\n\t\t\t}\n\t\t} else {\n\t\t\tmodel = rawModel;\n\t\t\tif (!modelSelection.model && model) modelSelection = { kind: \"model\", model };\n\t\t\tthinking = parseThinking(input.thinking, pathLabel);\n\t\t}\n\t}\n\n\tconst outputMode = input.outputMode === \"inline\" || input.outputMode === \"file-only\" ? input.outputMode : undefined;\n\treturn {\n\t\tchildId: options.childId ?? allocateChildId(options.runId, options.index),\n\t\ttask,\n\t\tdescription,\n\t\trequestedPermissions: resolved.requested,\n\t\teffectivePermissions: resolved.effective,\n\t\tmodel,\n\t\ttier,\n\t\tmodelSelection,\n\t\tthinking,\n\t\tskill: optionalSkill(input.skill),\n\t\tcwd: optionalString(input.cwd),\n\t\toutput: optionalOutput(input.output),\n\t\toutputMode,\n\t\tacceptance: input.acceptance as AcceptanceInput | undefined,\n\t\ttoolBudget: input.toolBudget as ToolBudgetConfig | undefined,\n\t\tcount: optionalCount(input.count),\n\t\treads: optionalReads(input.reads),\n\t\tprogress: typeof input.progress === \"boolean\" ? input.progress : undefined,\n\t\tlabel: optionalString(input.label),\n\t\tphase: optionalString(input.phase),\n\t\tas: optionalString(input.as),\n\t\toutputSchema: input.outputSchema && typeof input.outputSchema === \"object\"\n\t\t\t? input.outputSchema as JsonSchemaObject\n\t\t\t: undefined,\n\t\tfanoutAuthorized: options.fanoutAuthorized === true,\n\t};\n}\n\nexport function childDisplayLabel(spec: Pick<ChildSpec, \"description\" | \"label\">): string {\n\treturn spec.label?.trim() || spec.description;\n}\n\nexport function tryNormalizeChildSpec(\n\tinput: DelegatedTaskInput,\n\toptions: NormalizeChildSpecOptions,\n): { ok: true; spec: ChildSpec } | { ok: false; error: string } {\n\ttry {\n\t\treturn { ok: true, spec: normalizeChildSpec(input, options) };\n\t} catch (error) {\n\t\treturn { ok: false, error: error instanceof Error ? error.message : String(error) };\n\t}\n}\n\nexport function childIdentityFields(spec: ChildSpec): {\n\tchildId: string;\n\tdescription: string;\n\tpermissions: ChildPermission;\n\tagent: string;\n} {\n\treturn {\n\t\tchildId: spec.childId,\n\t\tdescription: spec.description,\n\t\tpermissions: spec.effectivePermissions,\n\t\tagent: spec.description,\n\t};\n}\n\nexport function childOutputCapabilities(permissions: ChildPermission): { tools: string[] } {\n\treturn permissions === \"read-only\"\n\t\t? { tools: [\"read\"] }\n\t\t: { tools: [\"read\", \"edit\", \"write\", \"bash\"] };\n}\n\nexport function childSpawnPiArgDefaults(spec: ChildSpec): {\n\tinheritProjectContext: true;\n\tinheritSkills: false;\n\tsystemPromptMode: \"append\";\n\texcludeTools: string[];\n\tchildPermission: ChildPermission;\n\tchildId: string;\n\tchildDescription: string;\n\tchildAgentName: string;\n} {\n\treturn {\n\t\tinheritProjectContext: true,\n\t\tinheritSkills: false,\n\t\tsystemPromptMode: \"append\",\n\t\texcludeTools: resolveChildExcludeTools({\n\t\t\tpermissions: spec.effectivePermissions,\n\t\t\tfanoutAuthorized: spec.fanoutAuthorized,\n\t\t}),\n\t\tchildPermission: spec.effectivePermissions,\n\t\tchildId: spec.childId,\n\t\tchildDescription: spec.description,\n\t\tchildAgentName: spec.childId,\n\t};\n}\n"]}
|
|
@@ -8,8 +8,19 @@ import type { ChainStep } from "./settings.ts";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function formatTokens(n: number): string;
|
|
10
10
|
export declare function formatModelThinking(model?: string, thinking?: string): string;
|
|
11
|
-
/** Compact/header badge: selected tier name
|
|
11
|
+
/** Compact/header badge: selected tier name, or selected/resolved model id. */
|
|
12
12
|
export declare function formatModelSelection(selection?: ModelSelection, resolvedModel?: string, thinking?: string): string;
|
|
13
|
+
export type CompactModelSelection = {
|
|
14
|
+
kind: "tier";
|
|
15
|
+
tier: string;
|
|
16
|
+
} | {
|
|
17
|
+
kind: "model";
|
|
18
|
+
model?: string;
|
|
19
|
+
} | {
|
|
20
|
+
kind: "inherit";
|
|
21
|
+
};
|
|
22
|
+
/** Compact badge: selected tier, or explicit/resolved model id. No thinking suffix. */
|
|
23
|
+
export declare function formatCompactModelBadge(selection?: CompactModelSelection, resolvedModel?: string): string;
|
|
13
24
|
/**
|
|
14
25
|
* Format usage statistics into a compact string
|
|
15
26
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/shared/formatters.ts"],"names":[],"mappings":"AACA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AASD,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ7E;AAED
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/shared/formatters.ts"],"names":[],"mappings":"AACA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AASD,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ7E;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAMlH;AAED,MAAM,MAAM,qBAAqB,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAUvB,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,SAAS,CAAC,EAAE,qBAAqB,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAMzG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAU5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,EAAE,YAAY,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAAG,QAAQ,EAC9B,UAAU,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3C,MAAM,CA8BR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,UAAQ,GAAG,MAAM,CAuBpG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAM7C","sourcesContent":["// @ts-nocheck\n/**\n * Formatting utilities for display output\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { ModelSelection, Usage, SingleResult } from \"./types.ts\";\nimport type { ChainStep } from \"./settings.ts\";\nimport { isDynamicParallelStep, isParallelStep } from \"./settings.ts\";\nimport { splitKnownThinkingSuffix, THINKING_LEVELS } from \"./model-info.ts\";\n\n/**\n * Format token count with k suffix for large numbers\n */\nexport function formatTokens(n: number): string {\n\treturn n < 1000 ? String(n) : n < 10000 ? `${(n / 1000).toFixed(1)}k` : `${Math.round(n / 1000)}k`;\n}\n\nfunction formatThinkingLabel(model?: string, thinking?: string): string | undefined {\n\tconst parsed = model ? splitKnownThinkingSuffix(model) : undefined;\n\tconst explicitThinking = THINKING_LEVELS.find((level) => level === thinking?.trim());\n\tconst displayThinking = parsed?.thinkingSuffix ? parsed.thinkingSuffix.slice(1) : explicitThinking;\n\treturn displayThinking ? `thinking ${displayThinking}` : undefined;\n}\n\nexport function formatModelThinking(model?: string, thinking?: string): string {\n\tconst parsed = model ? splitKnownThinkingSuffix(model) : undefined;\n\tlet displayModel = parsed?.baseModel ?? model;\n\tif (displayModel) {\n\t\tconst slashIdx = displayModel.lastIndexOf(\"/\");\n\t\tif (slashIdx !== -1) displayModel = displayModel.slice(slashIdx + 1);\n\t}\n\treturn [displayModel, formatThinkingLabel(model, thinking)].filter(Boolean).join(\" · \");\n}\n\n/** Compact/header badge: selected tier name, or selected/resolved model id. */\nexport function formatModelSelection(selection?: ModelSelection, resolvedModel?: string, thinking?: string): string {\n\tif (selection?.kind === \"tier\" && selection.tier) {\n\t\treturn [selection.tier, formatThinkingLabel(resolvedModel, thinking)].filter(Boolean).join(\" · \");\n\t}\n\tconst selectedModel = selection?.kind === \"model\" ? selection.model : undefined;\n\treturn formatModelThinking(selectedModel || resolvedModel, thinking);\n}\n\nexport type CompactModelSelection =\n\t| { kind: \"tier\"; tier: string }\n\t| { kind: \"model\"; model?: string }\n\t| { kind: \"inherit\" };\n\nfunction formatModelId(model?: string): string {\n\tif (!model) return \"\";\n\tlet displayModel = splitKnownThinkingSuffix(model).baseModel;\n\tconst slashIdx = displayModel.lastIndexOf(\"/\");\n\tif (slashIdx !== -1) displayModel = displayModel.slice(slashIdx + 1);\n\treturn displayModel;\n}\n\n/** Compact badge: selected tier, or explicit/resolved model id. No thinking suffix. */\nexport function formatCompactModelBadge(selection?: CompactModelSelection, resolvedModel?: string): string {\n\tif (selection?.kind === \"tier\" && selection.tier) return selection.tier;\n\tconst explicit = selection?.kind === \"model\" && typeof selection.model === \"string\" && selection.model.trim()\n\t\t? selection.model\n\t\t: undefined;\n\treturn formatModelId(explicit ?? resolvedModel);\n}\n\n/**\n * Format usage statistics into a compact string\n */\nexport function formatUsage(u: Usage, model?: string): string {\n\tconst parts: string[] = [];\n\tif (u.turns) parts.push(`${u.turns} turn${u.turns > 1 ? \"s\" : \"\"}`);\n\tif (u.input) parts.push(`in:${formatTokens(u.input)}`);\n\tif (u.output) parts.push(`out:${formatTokens(u.output)}`);\n\tif (u.cacheRead) parts.push(`R${formatTokens(u.cacheRead)}`);\n\tif (u.cacheWrite) parts.push(`W${formatTokens(u.cacheWrite)}`);\n\tif (u.cost) parts.push(`$${u.cost.toFixed(4)}`);\n\tif (model) parts.push(model);\n\treturn parts.join(\" \");\n}\n\n/**\n * Format duration in human-readable form\n */\nexport function formatDuration(ms: number): string {\n\tif (ms < 1000) return `${ms}ms`;\n\tif (ms < 60000) return `${Math.floor(ms / 1000)}s`;\n\treturn `${Math.floor(ms / 60000)}m${Math.floor((ms % 60000) / 1000)}s`;\n}\n\n/**\n * Build a summary string for a completed/failed chain\n */\nexport function buildChainSummary(\n\tsteps: ChainStep[],\n\tresults: SingleResult[],\n\tchainDir: string,\n\tstatus: \"completed\" | \"failed\",\n\tfailedStep?: { index: number; error: string },\n): string {\n\tconst stepNames = steps\n\t\t.map((step) => (isParallelStep(step) ? `parallel[${step.parallel.length}]` : isDynamicParallelStep(step) ? `expand:${step.parallel.agent}` : step.agent))\n\t\t.join(\" → \");\n\n\tconst totalDuration = results.reduce((sum, r) => sum + (r.progress?.durationMs || 0), 0);\n\tconst durationStr = formatDuration(totalDuration);\n\n\tconst progressPath = path.join(chainDir, \"progress.md\");\n\tconst hasProgress = fs.existsSync(progressPath);\n\tconst allSkills = new Set<string>();\n\tfor (const r of results) {\n\t\tif (r.skills) r.skills.forEach((s) => allSkills.add(s));\n\t}\n\tconst skillsLine = allSkills.size > 0 ? `🔧 Skills: ${[...allSkills].join(\", \")}` : \"\";\n\n\tif (status === \"completed\") {\n\t\tconst stepWord = results.length === 1 ? \"step\" : \"steps\";\n\t\treturn `✅ Chain completed: ${stepNames} (${results.length} ${stepWord}, ${durationStr})${skillsLine ? `\\n${skillsLine}` : \"\"}\n\n📋 Progress: ${hasProgress ? progressPath : \"(none)\"}\n📁 Artifacts: ${chainDir}`;\n\t} else {\n\t\tconst stepInfo = failedStep ? ` at step ${failedStep.index + 1}` : \"\";\n\t\tconst errorInfo = failedStep?.error ? `: ${failedStep.error}` : \"\";\n\t\treturn `❌ Chain failed${stepInfo}${errorInfo}${skillsLine ? `\\n${skillsLine}` : \"\"}\n\n📋 Progress: ${hasProgress ? progressPath : \"(none)\"}\n📁 Artifacts: ${chainDir}`;\n\t}\n}\n\n/**\n * Format a tool call for display\n */\nexport function formatToolCall(name: string, args: Record<string, unknown>, expanded = false): string {\n\tswitch (name) {\n\t\tcase \"bash\": {\n\t\t\tconst command = typeof args.command === \"string\" ? args.command : \"\";\n\t\t\tconst maxLength = expanded ? 240 : 60;\n\t\t\treturn `$ ${command.slice(0, maxLength)}${command.length > maxLength ? \"...\" : \"\"}`;\n\t\t}\n\t\tcase \"read\":\n\t\tcase \"write\":\n\t\tcase \"edit\": {\n\t\t\tconst target = typeof args.path === \"string\"\n\t\t\t\t? args.path\n\t\t\t\t: typeof args.file_path === \"string\"\n\t\t\t\t\t? args.file_path\n\t\t\t\t\t: \"\";\n\t\t\treturn `${name} ${shortenPath(target)}`;\n\t\t}\n\t\tdefault: {\n\t\t\tconst s = JSON.stringify(args);\n\t\t\tconst maxLength = expanded ? 160 : 40;\n\t\t\treturn `${name} ${s.slice(0, maxLength)}${s.length > maxLength ? \"...\" : \"\"}`;\n\t\t}\n\t}\n}\n\n/**\n * Shorten a path by replacing home directory with ~\n */\nexport function shortenPath(p: string): string {\n\tconst home = process.env.HOME;\n\tif (home && p.startsWith(home)) {\n\t\treturn `~${p.slice(home.length)}`;\n\t}\n\treturn p;\n}\n"]}
|
|
@@ -28,12 +28,31 @@ export function formatModelThinking(model, thinking) {
|
|
|
28
28
|
}
|
|
29
29
|
return [displayModel, formatThinkingLabel(model, thinking)].filter(Boolean).join(" · ");
|
|
30
30
|
}
|
|
31
|
-
/** Compact/header badge: selected tier name
|
|
31
|
+
/** Compact/header badge: selected tier name, or selected/resolved model id. */
|
|
32
32
|
export function formatModelSelection(selection, resolvedModel, thinking) {
|
|
33
33
|
if (selection?.kind === "tier" && selection.tier) {
|
|
34
34
|
return [selection.tier, formatThinkingLabel(resolvedModel, thinking)].filter(Boolean).join(" · ");
|
|
35
35
|
}
|
|
36
|
-
|
|
36
|
+
const selectedModel = selection?.kind === "model" ? selection.model : undefined;
|
|
37
|
+
return formatModelThinking(selectedModel || resolvedModel, thinking);
|
|
38
|
+
}
|
|
39
|
+
function formatModelId(model) {
|
|
40
|
+
if (!model)
|
|
41
|
+
return "";
|
|
42
|
+
let displayModel = splitKnownThinkingSuffix(model).baseModel;
|
|
43
|
+
const slashIdx = displayModel.lastIndexOf("/");
|
|
44
|
+
if (slashIdx !== -1)
|
|
45
|
+
displayModel = displayModel.slice(slashIdx + 1);
|
|
46
|
+
return displayModel;
|
|
47
|
+
}
|
|
48
|
+
/** Compact badge: selected tier, or explicit/resolved model id. No thinking suffix. */
|
|
49
|
+
export function formatCompactModelBadge(selection, resolvedModel) {
|
|
50
|
+
if (selection?.kind === "tier" && selection.tier)
|
|
51
|
+
return selection.tier;
|
|
52
|
+
const explicit = selection?.kind === "model" && typeof selection.model === "string" && selection.model.trim()
|
|
53
|
+
? selection.model
|
|
54
|
+
: undefined;
|
|
55
|
+
return formatModelId(explicit ?? resolvedModel);
|
|
37
56
|
}
|
|
38
57
|
/**
|
|
39
58
|
* Format usage statistics into a compact string
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/shared/formatters.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * Formatting utilities for display output\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { ModelSelection, Usage, SingleResult } from \"./types.ts\";\nimport type { ChainStep } from \"./settings.ts\";\nimport { isDynamicParallelStep, isParallelStep } from \"./settings.ts\";\nimport { splitKnownThinkingSuffix, THINKING_LEVELS } from \"./model-info.ts\";\n\n/**\n * Format token count with k suffix for large numbers\n */\nexport function formatTokens(n: number): string {\n\treturn n < 1000 ? String(n) : n < 10000 ? `${(n / 1000).toFixed(1)}k` : `${Math.round(n / 1000)}k`;\n}\n\nfunction formatThinkingLabel(model?: string, thinking?: string): string | undefined {\n\tconst parsed = model ? splitKnownThinkingSuffix(model) : undefined;\n\tconst explicitThinking = THINKING_LEVELS.find((level) => level === thinking?.trim());\n\tconst displayThinking = parsed?.thinkingSuffix ? parsed.thinkingSuffix.slice(1) : explicitThinking;\n\treturn displayThinking ? `thinking ${displayThinking}` : undefined;\n}\n\nexport function formatModelThinking(model?: string, thinking?: string): string {\n\tconst parsed = model ? splitKnownThinkingSuffix(model) : undefined;\n\tlet displayModel = parsed?.baseModel ?? model;\n\tif (displayModel) {\n\t\tconst slashIdx = displayModel.lastIndexOf(\"/\");\n\t\tif (slashIdx !== -1) displayModel = displayModel.slice(slashIdx + 1);\n\t}\n\treturn [displayModel, formatThinkingLabel(model, thinking)].filter(Boolean).join(\" · \");\n}\n\n/** Compact/header badge: selected tier name plus its effective thinking level. */\nexport function formatModelSelection(selection?: ModelSelection, resolvedModel?: string, thinking?: string): string {\n\tif (selection?.kind === \"tier\" && selection.tier) {\n\t\treturn [selection.tier, formatThinkingLabel(resolvedModel, thinking)].filter(Boolean).join(\" · \");\n\t}\n\treturn formatModelThinking(resolvedModel, thinking);\n}\n\n/**\n * Format usage statistics into a compact string\n */\nexport function formatUsage(u: Usage, model?: string): string {\n\tconst parts: string[] = [];\n\tif (u.turns) parts.push(`${u.turns} turn${u.turns > 1 ? \"s\" : \"\"}`);\n\tif (u.input) parts.push(`in:${formatTokens(u.input)}`);\n\tif (u.output) parts.push(`out:${formatTokens(u.output)}`);\n\tif (u.cacheRead) parts.push(`R${formatTokens(u.cacheRead)}`);\n\tif (u.cacheWrite) parts.push(`W${formatTokens(u.cacheWrite)}`);\n\tif (u.cost) parts.push(`$${u.cost.toFixed(4)}`);\n\tif (model) parts.push(model);\n\treturn parts.join(\" \");\n}\n\n/**\n * Format duration in human-readable form\n */\nexport function formatDuration(ms: number): string {\n\tif (ms < 1000) return `${ms}ms`;\n\tif (ms < 60000) return `${Math.floor(ms / 1000)}s`;\n\treturn `${Math.floor(ms / 60000)}m${Math.floor((ms % 60000) / 1000)}s`;\n}\n\n/**\n * Build a summary string for a completed/failed chain\n */\nexport function buildChainSummary(\n\tsteps: ChainStep[],\n\tresults: SingleResult[],\n\tchainDir: string,\n\tstatus: \"completed\" | \"failed\",\n\tfailedStep?: { index: number; error: string },\n): string {\n\tconst stepNames = steps\n\t\t.map((step) => (isParallelStep(step) ? `parallel[${step.parallel.length}]` : isDynamicParallelStep(step) ? `expand:${step.parallel.agent}` : step.agent))\n\t\t.join(\" → \");\n\n\tconst totalDuration = results.reduce((sum, r) => sum + (r.progress?.durationMs || 0), 0);\n\tconst durationStr = formatDuration(totalDuration);\n\n\tconst progressPath = path.join(chainDir, \"progress.md\");\n\tconst hasProgress = fs.existsSync(progressPath);\n\tconst allSkills = new Set<string>();\n\tfor (const r of results) {\n\t\tif (r.skills) r.skills.forEach((s) => allSkills.add(s));\n\t}\n\tconst skillsLine = allSkills.size > 0 ? `🔧 Skills: ${[...allSkills].join(\", \")}` : \"\";\n\n\tif (status === \"completed\") {\n\t\tconst stepWord = results.length === 1 ? \"step\" : \"steps\";\n\t\treturn `✅ Chain completed: ${stepNames} (${results.length} ${stepWord}, ${durationStr})${skillsLine ? `\\n${skillsLine}` : \"\"}\n\n📋 Progress: ${hasProgress ? progressPath : \"(none)\"}\n📁 Artifacts: ${chainDir}`;\n\t} else {\n\t\tconst stepInfo = failedStep ? ` at step ${failedStep.index + 1}` : \"\";\n\t\tconst errorInfo = failedStep?.error ? `: ${failedStep.error}` : \"\";\n\t\treturn `❌ Chain failed${stepInfo}${errorInfo}${skillsLine ? `\\n${skillsLine}` : \"\"}\n\n📋 Progress: ${hasProgress ? progressPath : \"(none)\"}\n📁 Artifacts: ${chainDir}`;\n\t}\n}\n\n/**\n * Format a tool call for display\n */\nexport function formatToolCall(name: string, args: Record<string, unknown>, expanded = false): string {\n\tswitch (name) {\n\t\tcase \"bash\": {\n\t\t\tconst command = typeof args.command === \"string\" ? args.command : \"\";\n\t\t\tconst maxLength = expanded ? 240 : 60;\n\t\t\treturn `$ ${command.slice(0, maxLength)}${command.length > maxLength ? \"...\" : \"\"}`;\n\t\t}\n\t\tcase \"read\":\n\t\tcase \"write\":\n\t\tcase \"edit\": {\n\t\t\tconst target = typeof args.path === \"string\"\n\t\t\t\t? args.path\n\t\t\t\t: typeof args.file_path === \"string\"\n\t\t\t\t\t? args.file_path\n\t\t\t\t\t: \"\";\n\t\t\treturn `${name} ${shortenPath(target)}`;\n\t\t}\n\t\tdefault: {\n\t\t\tconst s = JSON.stringify(args);\n\t\t\tconst maxLength = expanded ? 160 : 40;\n\t\t\treturn `${name} ${s.slice(0, maxLength)}${s.length > maxLength ? \"...\" : \"\"}`;\n\t\t}\n\t}\n}\n\n/**\n * Shorten a path by replacing home directory with ~\n */\nexport function shortenPath(p: string): string {\n\tconst home = process.env.HOME;\n\tif (home && p.startsWith(home)) {\n\t\treturn `~${p.slice(home.length)}`;\n\t}\n\treturn p;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/shared/formatters.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * Formatting utilities for display output\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { ModelSelection, Usage, SingleResult } from \"./types.ts\";\nimport type { ChainStep } from \"./settings.ts\";\nimport { isDynamicParallelStep, isParallelStep } from \"./settings.ts\";\nimport { splitKnownThinkingSuffix, THINKING_LEVELS } from \"./model-info.ts\";\n\n/**\n * Format token count with k suffix for large numbers\n */\nexport function formatTokens(n: number): string {\n\treturn n < 1000 ? String(n) : n < 10000 ? `${(n / 1000).toFixed(1)}k` : `${Math.round(n / 1000)}k`;\n}\n\nfunction formatThinkingLabel(model?: string, thinking?: string): string | undefined {\n\tconst parsed = model ? splitKnownThinkingSuffix(model) : undefined;\n\tconst explicitThinking = THINKING_LEVELS.find((level) => level === thinking?.trim());\n\tconst displayThinking = parsed?.thinkingSuffix ? parsed.thinkingSuffix.slice(1) : explicitThinking;\n\treturn displayThinking ? `thinking ${displayThinking}` : undefined;\n}\n\nexport function formatModelThinking(model?: string, thinking?: string): string {\n\tconst parsed = model ? splitKnownThinkingSuffix(model) : undefined;\n\tlet displayModel = parsed?.baseModel ?? model;\n\tif (displayModel) {\n\t\tconst slashIdx = displayModel.lastIndexOf(\"/\");\n\t\tif (slashIdx !== -1) displayModel = displayModel.slice(slashIdx + 1);\n\t}\n\treturn [displayModel, formatThinkingLabel(model, thinking)].filter(Boolean).join(\" · \");\n}\n\n/** Compact/header badge: selected tier name, or selected/resolved model id. */\nexport function formatModelSelection(selection?: ModelSelection, resolvedModel?: string, thinking?: string): string {\n\tif (selection?.kind === \"tier\" && selection.tier) {\n\t\treturn [selection.tier, formatThinkingLabel(resolvedModel, thinking)].filter(Boolean).join(\" · \");\n\t}\n\tconst selectedModel = selection?.kind === \"model\" ? selection.model : undefined;\n\treturn formatModelThinking(selectedModel || resolvedModel, thinking);\n}\n\nexport type CompactModelSelection =\n\t| { kind: \"tier\"; tier: string }\n\t| { kind: \"model\"; model?: string }\n\t| { kind: \"inherit\" };\n\nfunction formatModelId(model?: string): string {\n\tif (!model) return \"\";\n\tlet displayModel = splitKnownThinkingSuffix(model).baseModel;\n\tconst slashIdx = displayModel.lastIndexOf(\"/\");\n\tif (slashIdx !== -1) displayModel = displayModel.slice(slashIdx + 1);\n\treturn displayModel;\n}\n\n/** Compact badge: selected tier, or explicit/resolved model id. No thinking suffix. */\nexport function formatCompactModelBadge(selection?: CompactModelSelection, resolvedModel?: string): string {\n\tif (selection?.kind === \"tier\" && selection.tier) return selection.tier;\n\tconst explicit = selection?.kind === \"model\" && typeof selection.model === \"string\" && selection.model.trim()\n\t\t? selection.model\n\t\t: undefined;\n\treturn formatModelId(explicit ?? resolvedModel);\n}\n\n/**\n * Format usage statistics into a compact string\n */\nexport function formatUsage(u: Usage, model?: string): string {\n\tconst parts: string[] = [];\n\tif (u.turns) parts.push(`${u.turns} turn${u.turns > 1 ? \"s\" : \"\"}`);\n\tif (u.input) parts.push(`in:${formatTokens(u.input)}`);\n\tif (u.output) parts.push(`out:${formatTokens(u.output)}`);\n\tif (u.cacheRead) parts.push(`R${formatTokens(u.cacheRead)}`);\n\tif (u.cacheWrite) parts.push(`W${formatTokens(u.cacheWrite)}`);\n\tif (u.cost) parts.push(`$${u.cost.toFixed(4)}`);\n\tif (model) parts.push(model);\n\treturn parts.join(\" \");\n}\n\n/**\n * Format duration in human-readable form\n */\nexport function formatDuration(ms: number): string {\n\tif (ms < 1000) return `${ms}ms`;\n\tif (ms < 60000) return `${Math.floor(ms / 1000)}s`;\n\treturn `${Math.floor(ms / 60000)}m${Math.floor((ms % 60000) / 1000)}s`;\n}\n\n/**\n * Build a summary string for a completed/failed chain\n */\nexport function buildChainSummary(\n\tsteps: ChainStep[],\n\tresults: SingleResult[],\n\tchainDir: string,\n\tstatus: \"completed\" | \"failed\",\n\tfailedStep?: { index: number; error: string },\n): string {\n\tconst stepNames = steps\n\t\t.map((step) => (isParallelStep(step) ? `parallel[${step.parallel.length}]` : isDynamicParallelStep(step) ? `expand:${step.parallel.agent}` : step.agent))\n\t\t.join(\" → \");\n\n\tconst totalDuration = results.reduce((sum, r) => sum + (r.progress?.durationMs || 0), 0);\n\tconst durationStr = formatDuration(totalDuration);\n\n\tconst progressPath = path.join(chainDir, \"progress.md\");\n\tconst hasProgress = fs.existsSync(progressPath);\n\tconst allSkills = new Set<string>();\n\tfor (const r of results) {\n\t\tif (r.skills) r.skills.forEach((s) => allSkills.add(s));\n\t}\n\tconst skillsLine = allSkills.size > 0 ? `🔧 Skills: ${[...allSkills].join(\", \")}` : \"\";\n\n\tif (status === \"completed\") {\n\t\tconst stepWord = results.length === 1 ? \"step\" : \"steps\";\n\t\treturn `✅ Chain completed: ${stepNames} (${results.length} ${stepWord}, ${durationStr})${skillsLine ? `\\n${skillsLine}` : \"\"}\n\n📋 Progress: ${hasProgress ? progressPath : \"(none)\"}\n📁 Artifacts: ${chainDir}`;\n\t} else {\n\t\tconst stepInfo = failedStep ? ` at step ${failedStep.index + 1}` : \"\";\n\t\tconst errorInfo = failedStep?.error ? `: ${failedStep.error}` : \"\";\n\t\treturn `❌ Chain failed${stepInfo}${errorInfo}${skillsLine ? `\\n${skillsLine}` : \"\"}\n\n📋 Progress: ${hasProgress ? progressPath : \"(none)\"}\n📁 Artifacts: ${chainDir}`;\n\t}\n}\n\n/**\n * Format a tool call for display\n */\nexport function formatToolCall(name: string, args: Record<string, unknown>, expanded = false): string {\n\tswitch (name) {\n\t\tcase \"bash\": {\n\t\t\tconst command = typeof args.command === \"string\" ? args.command : \"\";\n\t\t\tconst maxLength = expanded ? 240 : 60;\n\t\t\treturn `$ ${command.slice(0, maxLength)}${command.length > maxLength ? \"...\" : \"\"}`;\n\t\t}\n\t\tcase \"read\":\n\t\tcase \"write\":\n\t\tcase \"edit\": {\n\t\t\tconst target = typeof args.path === \"string\"\n\t\t\t\t? args.path\n\t\t\t\t: typeof args.file_path === \"string\"\n\t\t\t\t\t? args.file_path\n\t\t\t\t\t: \"\";\n\t\t\treturn `${name} ${shortenPath(target)}`;\n\t\t}\n\t\tdefault: {\n\t\t\tconst s = JSON.stringify(args);\n\t\t\tconst maxLength = expanded ? 160 : 40;\n\t\t\treturn `${name} ${s.slice(0, maxLength)}${s.length > maxLength ? \"...\" : \"\"}`;\n\t\t}\n\t}\n}\n\n/**\n * Shorten a path by replacing home directory with ~\n */\nexport function shortenPath(p: string): string {\n\tconst home = process.env.HOME;\n\tif (home && p.startsWith(home)) {\n\t\treturn `~${p.slice(home.length)}`;\n\t}\n\treturn p;\n}\n"]}
|
|
@@ -16,6 +16,9 @@ export type ChildTier = "light" | "standard" | "heavy";
|
|
|
16
16
|
export type ModelSelection = {
|
|
17
17
|
kind: "tier";
|
|
18
18
|
tier: ChildTier;
|
|
19
|
+
} | {
|
|
20
|
+
kind: "model";
|
|
21
|
+
model?: string;
|
|
19
22
|
};
|
|
20
23
|
export interface ChildSpec {
|
|
21
24
|
childId: string;
|
|
@@ -23,9 +26,12 @@ export interface ChildSpec {
|
|
|
23
26
|
description: string;
|
|
24
27
|
requestedPermissions: ChildPermission;
|
|
25
28
|
effectivePermissions: ChildPermission;
|
|
29
|
+
/** User-requested model when modelSelection.kind is "model". Never a tier-resolved runtime id. */
|
|
26
30
|
model?: string;
|
|
27
|
-
tier
|
|
31
|
+
tier?: ChildTier;
|
|
28
32
|
modelSelection?: ModelSelection;
|
|
33
|
+
/** Explicit thinking level paired with modelSelection.kind === "model". */
|
|
34
|
+
thinking?: string;
|
|
29
35
|
skill?: string | string[] | false;
|
|
30
36
|
cwd?: string;
|
|
31
37
|
output?: string | false;
|
|
@@ -310,13 +316,13 @@ export interface SteeringRecoveryDescriptor {
|
|
|
310
316
|
sessionFile?: string;
|
|
311
317
|
cwd: string;
|
|
312
318
|
model?: string;
|
|
313
|
-
tier
|
|
319
|
+
tier?: ChildTier;
|
|
314
320
|
thinking?: string;
|
|
315
321
|
modelSelection?: ModelSelection;
|
|
316
322
|
skills?: string[];
|
|
317
323
|
outputPath?: string;
|
|
318
324
|
outputMode: "inline" | "file-only";
|
|
319
|
-
acceptance?:
|
|
325
|
+
acceptance?: ResolvedAcceptanceConfig;
|
|
320
326
|
controlConfig?: ResolvedControlConfig;
|
|
321
327
|
absoluteDeadlineAt?: number;
|
|
322
328
|
initialTurnBudget?: ResolvedTurnBudget;
|
|
@@ -351,6 +357,7 @@ export interface SubagentResultIntercomChild {
|
|
|
351
357
|
children?: PublicNestedRunSummary[];
|
|
352
358
|
}
|
|
353
359
|
export interface SubagentResultIntercomPayload {
|
|
360
|
+
ownerNotificationSessionId?: string;
|
|
354
361
|
to: string;
|
|
355
362
|
message: string;
|
|
356
363
|
requestId?: string;
|
|
@@ -634,6 +641,12 @@ export interface Details {
|
|
|
634
641
|
outputs?: ChainOutputMap;
|
|
635
642
|
totalChildUsage?: Usage;
|
|
636
643
|
totalCost?: CostSummary;
|
|
644
|
+
questionId?: string;
|
|
645
|
+
state?: string;
|
|
646
|
+
/** Resolved UI label for management actions, persisted with the tool result. */
|
|
647
|
+
displayTitle?: string;
|
|
648
|
+
answered?: boolean;
|
|
649
|
+
delivered?: boolean;
|
|
637
650
|
}
|
|
638
651
|
export interface ArtifactPaths {
|
|
639
652
|
inputPath: string;
|
|
@@ -941,6 +954,8 @@ export interface ForegroundResumeRun {
|
|
|
941
954
|
export interface SubagentState {
|
|
942
955
|
baseCwd: string;
|
|
943
956
|
currentSessionId: string | null;
|
|
957
|
+
/** Bumps on session_start / session replacement so owned supervisor questions fail closed. */
|
|
958
|
+
sessionGeneration?: number;
|
|
944
959
|
/** Live foreground `subagent` tool calls. Caps same-turn overlap. */
|
|
945
960
|
foregroundSubagentInFlight?: number;
|
|
946
961
|
subagentSpawns?: {
|
|
@@ -1100,11 +1115,13 @@ export interface ScheduledRunsConfig {
|
|
|
1100
1115
|
maxPending?: number;
|
|
1101
1116
|
}
|
|
1102
1117
|
export interface ExtensionConfig {
|
|
1118
|
+
/** @deprecated Launches now default to async regardless of this legacy value. */
|
|
1103
1119
|
asyncByDefault?: boolean;
|
|
1104
1120
|
/** Show the above-editor async runs widget. Defaults to true. */
|
|
1105
1121
|
asyncWidget?: boolean;
|
|
1106
1122
|
/** Tool description variant registered for the parent-facing subagent tool. Defaults to full. */
|
|
1107
1123
|
toolDescriptionMode?: ToolDescriptionMode;
|
|
1124
|
+
/** @deprecated Omitted async already means async; explicit async:false and clarify:true stay foreground. */
|
|
1108
1125
|
forceTopLevelAsync?: boolean;
|
|
1109
1126
|
waitTool?: WaitToolConfig;
|
|
1110
1127
|
defaultSessionDir?: string;
|
|
@@ -1154,7 +1171,7 @@ export declare const SLASH_SUBAGENT_CANCEL_EVENT = "subagent:slash:cancel";
|
|
|
1154
1171
|
export declare const POLL_INTERVAL_MS = 250;
|
|
1155
1172
|
export declare const MAX_WIDGET_JOBS = 4;
|
|
1156
1173
|
export declare const DEFAULT_SUBAGENT_MAX_DEPTH = 2;
|
|
1157
|
-
export declare const SUBAGENT_ACTIONS: readonly ["status", "interrupt", "resume", "steer", "stop", "append-step", "doctor", "watchdog.status", "watchdog.check", "watchdog.
|
|
1174
|
+
export declare const SUBAGENT_ACTIONS: readonly ["status", "interrupt", "resume", "steer", "stop", "append-step", "doctor", "watchdog.status", "watchdog.check", "watchdog.recommend-model", "schedule", "schedule-list", "schedule-status", "schedule-cancel"];
|
|
1158
1175
|
export declare const REMOVED_SUBAGENT_ACTIONS: readonly ["list", "get", "models", "create", "update", "delete", "eject", "disable", "enable", "reset"];
|
|
1159
1176
|
export declare const DEFAULT_FORK_PREAMBLE: string;
|
|
1160
1177
|
export declare function resolveTopLevelParallelMaxTasks(value: unknown): number;
|