@bastani/atomic 0.9.14 → 0.9.15-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/README.md +1 -1
- package/dist/builtin/intercom/package.json +2 -2
- package/dist/builtin/mcp/CHANGELOG.md +6 -0
- package/dist/builtin/mcp/package.json +4 -4
- package/dist/builtin/mcp/sampling-handler.ts +2 -2
- package/dist/builtin/mcp/types.ts +1 -1
- package/dist/builtin/subagents/CHANGELOG.md +21 -0
- package/dist/builtin/subagents/README.md +5 -22
- package/dist/builtin/subagents/agents/code-simplifier.md +2 -2
- package/dist/builtin/subagents/agents/codebase-analyzer.md +2 -2
- package/dist/builtin/subagents/agents/codebase-locator.md +2 -2
- package/dist/builtin/subagents/agents/codebase-online-researcher.md +2 -2
- package/dist/builtin/subagents/agents/codebase-pattern-finder.md +2 -2
- package/dist/builtin/subagents/agents/codebase-research-analyzer.md +2 -2
- package/dist/builtin/subagents/agents/codebase-research-locator.md +2 -2
- package/dist/builtin/subagents/agents/worker.md +2 -2
- package/dist/builtin/subagents/package.json +4 -4
- package/dist/builtin/subagents/skills/subagent/SKILL.md +6 -6
- package/dist/builtin/subagents/src/agents/agent-loaders.ts +0 -4
- package/dist/builtin/subagents/src/agents/agent-management-helpers.ts +1 -12
- package/dist/builtin/subagents/src/agents/agent-management.ts +0 -1
- package/dist/builtin/subagents/src/agents/agent-serializer.ts +7 -6
- package/dist/builtin/subagents/src/agents/agent-types.ts +0 -1
- package/dist/builtin/subagents/src/extension/schemas.ts +2 -2
- package/dist/builtin/subagents/src/extension/startup-maintenance.ts +2 -2
- package/dist/builtin/subagents/src/intercom/result-intercom.ts +0 -127
- package/dist/builtin/subagents/src/runs/foreground/inprocess-run-sync.ts +1 -3
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +15 -106
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +0 -3
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +2 -13
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +2 -12
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +1 -20
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +0 -6
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +10 -21
- package/dist/builtin/subagents/src/runs/inprocess/attempt-handles.ts +104 -0
- package/dist/builtin/subagents/src/runs/inprocess/index.ts +10 -21
- package/dist/builtin/subagents/src/runs/inprocess/prompt-behavior.ts +2 -3
- package/dist/builtin/subagents/src/runs/inprocess/runner.ts +11 -32
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/temp-cleanup.ts +69 -0
- package/dist/builtin/subagents/src/shared/model-resolution.ts +1 -1
- package/dist/builtin/subagents/src/shared/types-config.ts +0 -4
- package/dist/builtin/subagents/src/shared/types-depth.ts +15 -103
- package/dist/builtin/subagents/src/shared/types-foreground-state.ts +56 -0
- package/dist/builtin/subagents/src/shared/types-results.ts +1 -59
- package/dist/builtin/subagents/src/shared/types-runtime.ts +0 -2
- package/dist/builtin/subagents/src/shared/types.ts +1 -1
- package/dist/builtin/subagents/src/shared/utils.ts +1 -1
- package/dist/builtin/subagents/src/slash/slash-live-state.ts +1 -1
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/web-access/summary-review.ts +2 -2
- package/dist/builtin/web-access/web-search-summary.ts +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +14 -0
- package/dist/builtin/workflows/README.md +2 -2
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +60473 -401
- package/dist/builtin/workflows/src/extension/public-types.ts +1 -1
- package/dist/builtin/workflows/src/extension/wiring.ts +1 -1
- package/dist/builtin/workflows/src/extension/workflow-heartbeat-delivery.ts +48 -4
- package/dist/builtin/workflows/src/extension/workflow-tool.ts +1 -1
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +5 -0
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +35 -2
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-options.ts +1 -1
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-pause.ts +6 -0
- package/dist/builtin/workflows/src/tui/chat-surface-message.ts +15 -13
- package/dist/builtin/workflows/src/tui/store-widget-installer.ts +25 -2
- package/dist/bun/cli.js +1 -1
- package/dist/bun/cli.js.map +1 -1
- package/dist/bun/register-bedrock.js +2 -2
- package/dist/bun/register-bedrock.js.map +1 -1
- package/dist/cli/auth-check.d.ts +1 -1
- package/dist/cli/auth-check.d.ts.map +1 -1
- package/dist/cli/auth-check.js +1 -1
- package/dist/cli/auth-check.js.map +1 -1
- package/dist/cli/credential-print.d.ts +1 -1
- package/dist/cli/credential-print.d.ts.map +1 -1
- package/dist/cli/credential-print.js +2 -2
- package/dist/cli/credential-print.js.map +1 -1
- package/dist/cli/file-processor.d.ts +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/initial-message.d.ts +1 -1
- package/dist/cli/initial-message.d.ts.map +1 -1
- package/dist/cli/initial-message.js.map +1 -1
- package/dist/cli/list-models.js.map +1 -1
- package/dist/core/agent-session-auto-compaction.d.ts +1 -1
- package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-auto-compaction.js +1 -1
- package/dist/core/agent-session-auto-compaction.js.map +1 -1
- package/dist/core/agent-session-events.d.ts +1 -1
- package/dist/core/agent-session-events.d.ts.map +1 -1
- package/dist/core/agent-session-events.js +1 -1
- package/dist/core/agent-session-events.js.map +1 -1
- package/dist/core/agent-session-export.js.map +1 -1
- package/dist/core/agent-session-extension-bindings.js +1 -1
- package/dist/core/agent-session-extension-bindings.js.map +1 -1
- package/dist/core/agent-session-message-queue.d.ts +1 -1
- package/dist/core/agent-session-message-queue.d.ts.map +1 -1
- package/dist/core/agent-session-message-queue.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +2 -2
- package/dist/core/agent-session-methods.d.ts.map +1 -1
- package/dist/core/agent-session-methods.js.map +1 -1
- package/dist/core/agent-session-models.d.ts +2 -2
- package/dist/core/agent-session-models.d.ts.map +1 -1
- package/dist/core/agent-session-models.js +2 -2
- package/dist/core/agent-session-models.js.map +1 -1
- package/dist/core/agent-session-prompt.d.ts +1 -1
- package/dist/core/agent-session-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session-retry.d.ts +1 -1
- package/dist/core/agent-session-retry.d.ts.map +1 -1
- package/dist/core/agent-session-retry.js +1 -1
- package/dist/core/agent-session-retry.js.map +1 -1
- package/dist/core/agent-session-runtime-auth.js +1 -1
- package/dist/core/agent-session-runtime-auth.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts +1 -1
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +1 -1
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +1 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session-state.d.ts +1 -1
- package/dist/core/agent-session-state.d.ts.map +1 -1
- package/dist/core/agent-session-state.js.map +1 -1
- package/dist/core/agent-session-tree.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +1 -1
- package/dist/core/agent-session-types.d.ts.map +1 -1
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/agent-session.d.ts +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/anthropic-thinking-guard.d.ts +1 -1
- package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
- package/dist/core/anthropic-thinking-guard.js +1 -1
- package/dist/core/anthropic-thinking-guard.js.map +1 -1
- package/dist/core/auth-storage.d.ts +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/cache-stats.d.ts +1 -1
- package/dist/core/cache-stats.d.ts.map +1 -1
- package/dist/core/cache-stats.js.map +1 -1
- package/dist/core/cloudflare-gateway-binding.d.ts +1 -1
- package/dist/core/cloudflare-gateway-binding.d.ts.map +1 -1
- package/dist/core/cloudflare-gateway-binding.js +1 -1
- package/dist/core/cloudflare-gateway-binding.js.map +1 -1
- package/dist/core/codex-fast-mode.d.ts +2 -2
- package/dist/core/codex-fast-mode.d.ts.map +1 -1
- package/dist/core/codex-fast-mode.js +3 -2
- package/dist/core/codex-fast-mode.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +2 -2
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +2 -2
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction-runner.d.ts +2 -2
- package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
- package/dist/core/compaction/compaction-runner.js.map +1 -1
- package/dist/core/compaction/compaction-types.d.ts +2 -2
- package/dist/core/compaction/compaction-types.d.ts.map +1 -1
- package/dist/core/compaction/compaction-types.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +1 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/fallback-planner.d.ts +1 -1
- package/dist/core/compaction/fallback-planner.d.ts.map +1 -1
- package/dist/core/compaction/fallback-planner.js.map +1 -1
- package/dist/core/compaction/planner-outcome.d.ts +1 -1
- package/dist/core/compaction/planner-outcome.d.ts.map +1 -1
- package/dist/core/compaction/planner-outcome.js +1 -1
- package/dist/core/compaction/planner-outcome.js.map +1 -1
- package/dist/core/compaction/range-planner-diagnostics.d.ts +1 -1
- package/dist/core/compaction/range-planner-diagnostics.d.ts.map +1 -1
- package/dist/core/compaction/range-planner-diagnostics.js +1 -1
- package/dist/core/compaction/range-planner-diagnostics.js.map +1 -1
- package/dist/core/compaction/range-planner.d.ts +2 -2
- package/dist/core/compaction/range-planner.d.ts.map +1 -1
- package/dist/core/compaction/range-planner.js +2 -2
- package/dist/core/compaction/range-planner.js.map +1 -1
- package/dist/core/compaction/session-summarization.d.ts +2 -2
- package/dist/core/compaction/session-summarization.d.ts.map +1 -1
- package/dist/core/compaction/session-summarization.js +2 -2
- package/dist/core/compaction/session-summarization.js.map +1 -1
- package/dist/core/compaction/transcript-serialization.d.ts +1 -1
- package/dist/core/compaction/transcript-serialization.d.ts.map +1 -1
- package/dist/core/compaction/transcript-serialization.js.map +1 -1
- package/dist/core/compaction/utils.d.ts +1 -1
- package/dist/core/compaction/utils.d.ts.map +1 -1
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/experimental.d.ts +1 -1
- package/dist/core/experimental.d.ts.map +1 -1
- package/dist/core/experimental.js.map +1 -1
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensions/agent-events.d.ts +2 -2
- package/dist/core/extensions/agent-events.d.ts.map +1 -1
- package/dist/core/extensions/agent-events.js.map +1 -1
- package/dist/core/extensions/api-types.d.ts +2 -2
- package/dist/core/extensions/api-types.d.ts.map +1 -1
- package/dist/core/extensions/api-types.js.map +1 -1
- package/dist/core/extensions/context-types.d.ts +1 -7
- package/dist/core/extensions/context-types.d.ts.map +1 -1
- package/dist/core/extensions/context-types.js.map +1 -1
- package/dist/core/extensions/event-results.d.ts +1 -1
- package/dist/core/extensions/event-results.d.ts.map +1 -1
- package/dist/core/extensions/event-results.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader-api.js.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.js +21 -9
- package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
- package/dist/core/extensions/provider-types.d.ts +2 -2
- package/dist/core/extensions/provider-types.d.ts.map +1 -1
- package/dist/core/extensions/provider-types.js.map +1 -1
- package/dist/core/extensions/reactive-widget.d.ts +6 -0
- package/dist/core/extensions/reactive-widget.d.ts.map +1 -1
- package/dist/core/extensions/reactive-widget.js +62 -6
- package/dist/core/extensions/reactive-widget.js.map +1 -1
- package/dist/core/extensions/runner-context.d.ts +1 -1
- package/dist/core/extensions/runner-context.d.ts.map +1 -1
- package/dist/core/extensions/runner-context.js.map +1 -1
- package/dist/core/extensions/runner-events.d.ts +1 -1
- package/dist/core/extensions/runner-events.d.ts.map +1 -1
- package/dist/core/extensions/runner-events.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +2 -2
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/runtime-types.d.ts +2 -2
- package/dist/core/extensions/runtime-types.d.ts.map +1 -1
- package/dist/core/extensions/runtime-types.js.map +1 -1
- package/dist/core/extensions/tool-events.d.ts +1 -1
- package/dist/core/extensions/tool-events.d.ts.map +1 -1
- package/dist/core/extensions/tool-events.js.map +1 -1
- package/dist/core/extensions/tool-types.d.ts +2 -2
- package/dist/core/extensions/tool-types.d.ts.map +1 -1
- package/dist/core/extensions/tool-types.js.map +1 -1
- package/dist/core/extensions/ui-types.d.ts +2 -0
- package/dist/core/extensions/ui-types.d.ts.map +1 -1
- package/dist/core/extensions/ui-types.js.map +1 -1
- package/dist/core/fallback-models.d.ts +1 -1
- package/dist/core/fallback-models.d.ts.map +1 -1
- package/dist/core/fallback-models.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js +14 -0
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/messages.d.ts +1 -1
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-capabilities.d.ts +1 -1
- package/dist/core/model-capabilities.d.ts.map +1 -1
- package/dist/core/model-capabilities.js.map +1 -1
- package/dist/core/model-fallback-failures.d.ts.map +1 -1
- package/dist/core/model-fallback-failures.js +18 -1
- package/dist/core/model-fallback-failures.js.map +1 -1
- package/dist/core/model-registry.d.ts +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver-cli.js.map +1 -1
- package/dist/core/model-resolver-defaults.d.ts +1 -1
- package/dist/core/model-resolver-defaults.d.ts.map +1 -1
- package/dist/core/model-resolver-defaults.js +1 -1
- package/dist/core/model-resolver-defaults.js.map +1 -1
- package/dist/core/model-resolver-initial.d.ts +1 -1
- package/dist/core/model-resolver-initial.d.ts.map +1 -1
- package/dist/core/model-resolver-initial.js.map +1 -1
- package/dist/core/model-resolver-patterns.d.ts +1 -1
- package/dist/core/model-resolver-patterns.d.ts.map +1 -1
- package/dist/core/model-resolver-patterns.js.map +1 -1
- package/dist/core/model-resolver-scope.d.ts +1 -1
- package/dist/core/model-resolver-scope.d.ts.map +1 -1
- package/dist/core/model-resolver-scope.js +1 -1
- package/dist/core/model-resolver-scope.js.map +1 -1
- package/dist/core/model-resolver-types.d.ts +1 -1
- package/dist/core/model-resolver-types.d.ts.map +1 -1
- package/dist/core/model-resolver-types.js.map +1 -1
- package/dist/core/model-runtime-auth.d.ts +1 -1
- package/dist/core/model-runtime-auth.d.ts.map +1 -1
- package/dist/core/model-runtime-auth.js.map +1 -1
- package/dist/core/model-runtime-providers.d.ts +2 -2
- package/dist/core/model-runtime-providers.d.ts.map +1 -1
- package/dist/core/model-runtime-providers.js +2 -2
- package/dist/core/model-runtime-providers.js.map +1 -1
- package/dist/core/model-runtime-restoration.d.ts +1 -1
- package/dist/core/model-runtime-restoration.d.ts.map +1 -1
- package/dist/core/model-runtime-restoration.js.map +1 -1
- package/dist/core/model-runtime-snapshot.d.ts +1 -1
- package/dist/core/model-runtime-snapshot.d.ts.map +1 -1
- package/dist/core/model-runtime-snapshot.js.map +1 -1
- package/dist/core/model-runtime-streaming.d.ts +1 -1
- package/dist/core/model-runtime-streaming.d.ts.map +1 -1
- package/dist/core/model-runtime-streaming.js +1 -1
- package/dist/core/model-runtime-streaming.js.map +1 -1
- package/dist/core/model-runtime-types.d.ts +1 -1
- package/dist/core/model-runtime-types.d.ts.map +1 -1
- package/dist/core/model-runtime-types.js.map +1 -1
- package/dist/core/model-runtime.d.ts +8 -1
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +15 -3
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/models-store.d.ts +1 -1
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/oauth-login.d.ts +1 -1
- package/dist/core/oauth-login.d.ts.map +1 -1
- package/dist/core/oauth-login.js.map +1 -1
- package/dist/core/oauth-provider-metadata.d.ts +1 -1
- package/dist/core/oauth-provider-metadata.d.ts.map +1 -1
- package/dist/core/oauth-provider-metadata.js.map +1 -1
- package/dist/core/openai-responses-payload-sanitizer.d.ts +1 -1
- package/dist/core/openai-responses-payload-sanitizer.d.ts.map +1 -1
- package/dist/core/openai-responses-payload-sanitizer.js.map +1 -1
- package/dist/core/provider-attribution.d.ts +1 -1
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/provider-composer-internal.d.ts +1 -1
- package/dist/core/provider-composer-internal.d.ts.map +1 -1
- package/dist/core/provider-composer-internal.js.map +1 -1
- package/dist/core/provider-composer.d.ts +1 -1
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js +2 -2
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/provider-context-usage.d.ts.map +1 -1
- package/dist/core/provider-context-usage.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/runtime-credentials.d.ts +1 -1
- package/dist/core/runtime-credentials.d.ts.map +1 -1
- package/dist/core/runtime-credentials.js.map +1 -1
- package/dist/core/sdk-types.d.ts +1 -1
- package/dist/core/sdk-types.d.ts.map +1 -1
- package/dist/core/sdk-types.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +30 -6
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager-core.d.ts +2 -2
- package/dist/core/session-manager-core.d.ts.map +1 -1
- package/dist/core/session-manager-core.js.map +1 -1
- package/dist/core/session-manager-entries.d.ts +1 -1
- package/dist/core/session-manager-entries.d.ts.map +1 -1
- package/dist/core/session-manager-entries.js.map +1 -1
- package/dist/core/session-manager-list.js.map +1 -1
- package/dist/core/session-manager-types.d.ts +1 -1
- package/dist/core/session-manager-types.d.ts.map +1 -1
- package/dist/core/session-manager-types.js.map +1 -1
- package/dist/core/session-manager-validation.js +1 -1
- package/dist/core/session-manager-validation.js.map +1 -1
- package/dist/core/settings-manager-basic-accessors.d.ts +1 -0
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +11 -0
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-types.d.ts +2 -1
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/summarization-retry.d.ts +1 -1
- package/dist/core/summarization-retry.d.ts.map +1 -1
- package/dist/core/summarization-retry.js.map +1 -1
- package/dist/core/tools/bash-session-environment.d.ts +1 -1
- package/dist/core/tools/bash-session-environment.d.ts.map +1 -1
- package/dist/core/tools/bash-session-environment.js.map +1 -1
- package/dist/core/tools/oversized-tool-result.d.ts +1 -1
- package/dist/core/tools/oversized-tool-result.d.ts.map +1 -1
- package/dist/core/tools/oversized-tool-result.js.map +1 -1
- package/dist/core/tools/read-url.d.ts +1 -1
- package/dist/core/tools/read-url.d.ts.map +1 -1
- package/dist/core/tools/read-url.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts +1 -1
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/resource-selectors.d.ts +1 -1
- package/dist/core/tools/resource-selectors.d.ts.map +1 -1
- package/dist/core/tools/resource-selectors.js +2 -7
- package/dist/core/tools/resource-selectors.js.map +1 -1
- package/dist/core/typebox-compat.js +1 -1
- package/dist/core/typebox-compat.js.map +1 -1
- package/dist/core/usage-totals.d.ts +1 -1
- package/dist/core/usage-totals.d.ts.map +1 -1
- package/dist/core/usage-totals.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +1 -1
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/main-app-mode.d.ts +1 -1
- package/dist/main-app-mode.d.ts.map +1 -1
- package/dist/main-app-mode.js.map +1 -1
- package/dist/main-session-options.js +1 -1
- package/dist/main-session-options.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +1 -1
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts +1 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-routing.js +1 -1
- package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.js +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-context.js +26 -0
- package/dist/modes/interactive/interactive-extension-context.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-runtime.js +7 -2
- package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +1 -0
- package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.js +1 -1
- package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-helpers.js +1 -1
- package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +2 -0
- package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
- package/dist/modes/interactive/model-catalog-refresh.d.ts +1 -1
- package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
- package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
- package/dist/modes/interactive/streaming-assistant-message.d.ts +1 -1
- package/dist/modes/interactive/streaming-assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/streaming-assistant-message.js.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.d.ts +3 -0
- package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.js +26 -3
- package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
- package/dist/modes/interactive-engine/remote-component.d.ts +2 -1
- package/dist/modes/interactive-engine/remote-component.d.ts.map +1 -1
- package/dist/modes/interactive-engine/remote-component.js +14 -0
- package/dist/modes/interactive-engine/remote-component.js.map +1 -1
- package/dist/modes/interactive-engine/remote-model-catalog.js.map +1 -1
- package/dist/modes/json-event.d.ts +1 -1
- package/dist/modes/json-event.d.ts.map +1 -1
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/print-mode.d.ts +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client-api.d.ts +2 -2
- package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client-api.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +1 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-extension-ui.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-extension-ui.js +4 -1
- package/dist/modes/rpc/rpc-extension-ui.js.map +1 -1
- package/dist/modes/rpc/rpc-provider-auth.d.ts +1 -1
- package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +2 -2
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/utils/tool-result-images.d.ts +1 -1
- package/dist/utils/tool-result-images.d.ts.map +1 -1
- package/dist/utils/tool-result-images.js.map +1 -1
- package/docs/custom-provider.md +11 -8
- package/docs/development.md +0 -2
- package/docs/extensions.md +2 -2
- package/docs/json.md +1 -1
- package/docs/models/artificial-analysis-index.md +2 -2
- package/docs/models/model-selection.md +8 -8
- package/docs/models/pareto-efficiency.md +10 -10
- package/docs/models.md +9 -3
- package/docs/packages.md +1 -1
- package/docs/providers.md +5 -3
- package/docs/quickstart.md +1 -1
- package/docs/rpc.md +1 -1
- package/docs/sdk.md +2 -2
- package/docs/session-format.md +2 -2
- package/docs/settings.md +2 -1
- package/docs/subagents.md +5 -6
- package/docs/tui.md +3 -0
- package/docs/workflows.md +3 -1
- package/examples/extensions/README.md +1 -1
- package/examples/extensions/custom-footer.ts +1 -1
- package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
- package/examples/extensions/handoff.ts +2 -2
- package/examples/extensions/hello.ts +1 -1
- package/examples/extensions/plan-mode/index.ts +1 -1
- package/examples/extensions/preset.ts +1 -1
- package/examples/extensions/qna.ts +1 -1
- package/examples/extensions/subagent/display.ts +1 -1
- package/examples/extensions/subagent/runner.ts +1 -1
- package/examples/extensions/subagent/types.ts +1 -1
- package/examples/extensions/summarize.ts +2 -2
- package/examples/extensions/tool-override.ts +1 -1
- package/examples/sdk/02-custom-model.ts +1 -1
- package/examples/sdk/12-full-control.ts +1 -1
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +54 -31
- package/package.json +3 -3
- package/dist/builtin/subagents/src/extension/fanout-child.ts +0 -259
- package/dist/builtin/subagents/src/runs/inprocess/nested-routing.ts +0 -218
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-api.ts +0 -55
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-control.ts +0 -178
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-core.ts +0 -187
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-paths.ts +0 -57
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-projection.ts +0 -42
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-registry.ts +0 -352
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-rendering.ts +0 -136
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-sanitize.ts +0 -252
- package/dist/builtin/subagents/src/shared/types-nested.ts +0 -127
- package/dist/core/copilot-env-routing.d.ts +0 -36
- package/dist/core/copilot-env-routing.d.ts.map +0 -1
- package/dist/core/copilot-env-routing.js +0 -94
- package/dist/core/copilot-env-routing.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.9.15-alpha.1] - 2026-08-21
|
|
6
|
+
|
|
7
|
+
### Breaking Changes
|
|
8
|
+
|
|
9
|
+
- Two exported SDK types each lose a field, because subagent delegation is now a fixed one-level rule rather than a configurable depth. `WorkflowStageOrchestrationContext.constraints` no longer has the required nesting-depth number and is now `{ disableWorkflowTool: true }`; `SubagentChildPolicy` no longer has the optional inherited delegation limit and keeps `depth` alone. Code that constructs a stage orchestration context must drop the removed required field.
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- `@bastani/pi-ai` now refreshes its models.dev catalog at package build, matching upstream pi-ai, instead of shipping the frozen v0.84.2 snapshot.
|
|
14
|
+
|
|
15
|
+
- Vendored `@earendil-works/pi-ai` into `packages/ai` as `@bastani/pi-ai` and switched Atomic onto the workspace package. First-party imports, extension loader aliases, shrinkwrap, and the release publisher now use `@bastani/pi-ai`. Extensions that still import `@earendil-works/pi-ai` keep resolving through the loader. The first npm version of `@bastani/pi-ai` must be published by hand before a tagged Atomic release can publish it via trusted publishing.
|
|
16
|
+
|
|
17
|
+
- Moved `COPILOT_GITHUB_TOKEN` env-token host routing into `@bastani/pi-ai/providers/github-copilot-env`, preserving `models.json` endpoint overrides ([#2522](https://github.com/bastani-inc/atomic/issues/2522)).
|
|
18
|
+
|
|
19
|
+
- SQLite resource selectors now load `node:sqlite` exclusively; the `bun:sqlite` fallback for Bun releases before 1.4.0 was removed. `node:sqlite` ships unflagged in Node ≥ 22.13 and Bun ≥ 1.4.0, which is now the repository's Bun floor (engines, CI pins, and release binaries all moved to Bun 1.4.0).
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- Fixed the `400 checking third-party user token: bad request: Personal Access Tokens are not supported for this endpoint` failure for fine-grained PATs supplied through `COPILOT_GITHUB_TOKEN`. Raw tokens now send `Copilot-Integration-Id: copilot-developer-cli`; exchanged OAuth tokens containing a `tid=` segment remain unchanged, and per-request or `models.json` provider/model header overrides win. Catalog default headers are no longer promoted into the per-request override layer, while remaining visible to `before_provider_headers` extension hooks ([#2522](https://github.com/bastani-inc/atomic/issues/2522)).
|
|
24
|
+
- Fixed workflow stages staying `running` forever when GitHub Copilot on the default `transport: "auto"` hit a repeated `Library error: zlib error: incorrect header check`. The stalled provider stream never settled, so retry and model fallback never advanced and the stage transcript kept only its user prompt. Such a failure now settles as a transient transport error and fails over, and a new `streamDeadlineMs` setting (default `300000`; accepts durations such as `30s` and `5m`; `0`/`"disabled"` disables it) bounds the idle gap between provider stream events below the HTTP layer ([#2553](https://github.com/bastani-inc/atomic/issues/2553)).
|
|
25
|
+
- Extension widgets now recover after the interactive host clears or disposes a live widget: reactive controllers receive a release signal, remount exactly once on the next refresh, and preserve in-place updates without flicker. Isolated-engine widgets also discard stale remote mounts before reopening ([#2556](https://github.com/bastani-inc/atomic/issues/2556)).
|
|
26
|
+
- Ported unreleased `packages/ai` commits from `earendil-works/pi` main after the vendored v0.84.2 snapshot into `@bastani/pi-ai`: Copilot login rate-limit handling, Kimi cached-token accounting, Google thinking-level maps, Bedrock response headers and redacted reasoning, Anthropic fallback pricing, Azure Responses `toolChoice`, OpenAI Completions reasoning-details replay, catalog fixes for Xiaomi, China ZAI Coding Plan, Qwen Token Plan Individual, Baseten GLM-5.2, and DeepSeek V4 Flash `low` thinking, plus xAI Responses routing, simple `toolChoice`, generalized thinking-token budgets, adapter User-Agent headers, and dropping the unused OpenTelemetry dependency. Cerebras now defaults to `gpt-oss-120b`.
|
|
27
|
+
|
|
5
28
|
## [0.9.14] - 2026-08-19
|
|
6
29
|
|
|
7
30
|
Cumulative release of the `0.9.14-alpha.1` – `0.9.14-alpha.5` prereleases. The summary below covers the user-visible outcome of that work; the per-change detail remains in the prerelease sections below.
|
package/README.md
CHANGED
|
@@ -673,6 +673,6 @@ MIT
|
|
|
673
673
|
|
|
674
674
|
## See Also
|
|
675
675
|
|
|
676
|
-
- [@
|
|
676
|
+
- [@bastani/pi-ai](https://www.npmjs.com/package/@bastani/pi-ai): Core LLM toolkit
|
|
677
677
|
- [@earendil-works/pi-agent-core](https://www.npmjs.com/package/@earendil-works/pi-agent-core): Agent framework
|
|
678
678
|
- [@earendil-works/pi-tui](https://www.npmjs.com/package/@earendil-works/pi-tui): Terminal UI components
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bastani/intercom",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.15-alpha.1",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Atomic extension providing a private coordination channel between parent and child agent sessions. Fork of: https://github.com/nicobailon/pi-intercom",
|
|
6
6
|
"contributors": [
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"type": "module",
|
|
12
12
|
"engines": {
|
|
13
|
-
"bun": ">=1.
|
|
13
|
+
"bun": ">=1.4.0"
|
|
14
14
|
},
|
|
15
15
|
"main": "./index.ts",
|
|
16
16
|
"types": "./index.ts",
|
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.9.15-alpha.1] - 2026-08-21
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Switched the optional peer from `@earendil-works/pi-ai` to `@bastani/pi-ai`.
|
|
15
|
+
|
|
10
16
|
## [0.9.14] - 2026-08-19
|
|
11
17
|
|
|
12
18
|
Cumulative release of the `0.9.14-alpha.3` prerelease. The summary below covers the user-visible outcome of that work; the per-change detail remains in the prerelease section below.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bastani/mcp",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.15-alpha.1",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Atomic extension that adapts MCP (Model Context Protocol) servers into the coding agent. Fork of: https://github.com/nicobailon/pi-mcp-adapter",
|
|
6
6
|
"contributors": [
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"type": "module",
|
|
12
12
|
"engines": {
|
|
13
|
-
"bun": ">=1.
|
|
13
|
+
"bun": ">=1.4.0"
|
|
14
14
|
},
|
|
15
15
|
"main": "./index.ts",
|
|
16
16
|
"types": "./index.ts",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@bastani/atomic": "*",
|
|
35
|
-
"@
|
|
35
|
+
"@bastani/pi-ai": "*",
|
|
36
36
|
"@earendil-works/pi-tui": "^0.84.2",
|
|
37
37
|
"zod": "^3.25.0 || ^4.0.0"
|
|
38
38
|
},
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@bastani/atomic": {
|
|
41
41
|
"optional": true
|
|
42
42
|
},
|
|
43
|
-
"@
|
|
43
|
+
"@bastani/pi-ai": {
|
|
44
44
|
"optional": true
|
|
45
45
|
},
|
|
46
46
|
"@earendil-works/pi-tui": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ProviderHeaders } from "@
|
|
2
|
-
import { complete, type Api, type AssistantMessage, type Message, type Model, type TextContent } from "@
|
|
1
|
+
import type { ProviderHeaders } from "@bastani/pi-ai";
|
|
2
|
+
import { complete, type Api, type AssistantMessage, type Message, type Model, type TextContent } from "@bastani/pi-ai/compat";
|
|
3
3
|
import { truncateAtWord } from "./utils.js";
|
|
4
4
|
import type { ExtensionUIContext, ModelRegistry } from "@bastani/atomic";
|
|
5
5
|
import type { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import type { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
3
3
|
import type { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
|
|
4
4
|
import type { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
|
|
5
|
-
import type { TextContent, ImageContent } from "@
|
|
5
|
+
import type { TextContent, ImageContent } from "@bastani/pi-ai/compat";
|
|
6
6
|
import type { UiStreamMode } from "./ui-stream-types.ts";
|
|
7
7
|
|
|
8
8
|
// Transport type (stdio + HTTP)
|
|
@@ -2,6 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.9.15-alpha.1] - 2026-08-21
|
|
6
|
+
|
|
7
|
+
### Breaking Changes
|
|
8
|
+
|
|
9
|
+
- Subagent delegation is now exactly one level deep and is no longer configurable. A top-level session — main chat or a workflow stage — may call the `subagent` tool; a session that was itself admitted as a subagent child may not. Every launch, `resume`, and `interrupt` attempted from inside a child is refused with a single fixed message; the observing actions `list`, `get`, `status`, and `doctor` remain available to a child. Workflow stages are unchanged and still delegate once. The Rust `SubagentControl` admission door now refuses any child deeper than the single permitted level, and the executor refuses a child before any run starts, so the rule holds at both doors.
|
|
10
|
+
|
|
11
|
+
### Removed
|
|
12
|
+
|
|
13
|
+
- Removed the extension config option that set the delegation ceiling. Existing `config.json` files that still declare it are ignored rather than rejected.
|
|
14
|
+
- Removed the per-agent nesting-depth frontmatter field. An agent `.md` file that still declares the key parses and loads normally rather than being rejected; the key is no longer read, no longer re-emitted, and no longer printed in `subagent({ action: "get" })` output, and `create`/`update` no longer validate or clamp it. An agent-management rewrite of such a file strips the stale key, matching how earlier removed frontmatter keys are handled.
|
|
15
|
+
- Removed the nesting-depth clause from the `subagent` tool's `config` parameter description.
|
|
16
|
+
- Removed the per-child delegation limit from the typed admission policy, the in-process child spec, retained foreground resume records, and the run options. Admitted depth alone now decides whether a session may delegate.
|
|
17
|
+
- Removed the multi-level nested-run pipeline: the temp-directory route, its event sink and control inbox, the run registry and its recursive projection, and the recursive status renderer. Its inherited-route resolvers had already been permanently disabled, so no event could reach any of it and `subagent({ action: "status" })` never printed a nested line; live and retained status output for a parent's own direct children is unchanged. Delegating no longer creates a per-run temp route directory. Startup still reaps route directories left by earlier versions.
|
|
18
|
+
- Removed the nested run summary, run address, step summary, and route types, along with their public projections, from the subagent result payload. `SubagentResultIntercomChild` no longer carries a `children` array and `ControlEvent` no longer carries a nested run id or nesting path; result receipts no longer contain a "Nested subagents:" section. A parent still receives one entry per direct child.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Switched the optional peer from `@earendil-works/pi-ai` to `@bastani/pi-ai`.
|
|
23
|
+
- The fanout-child boundary prompt no longer tells an authorized child that it may delegate, because no child can.
|
|
24
|
+
- Replaced built-in `gpt-5.6-luna:max` primary and fallback pins with `gpt-5.6-sol` at the same thinking level as each agent's `gpt-5.5` fallback: `:medium` for `worker`, `code-simplifier`, `codebase-analyzer`, `codebase-online-researcher`, and `codebase-research-analyzer`; `:low` for `codebase-locator`, `codebase-pattern-finder`, and `codebase-research-locator`.
|
|
25
|
+
|
|
5
26
|
## [0.9.14] - 2026-08-19
|
|
6
27
|
|
|
7
28
|
Cumulative release of the `0.9.14-alpha.2` – `0.9.14-alpha.5` prereleases. The summary below covers the user-visible outcome of that work; the per-change detail remains in the prerelease sections below.
|
|
@@ -193,7 +193,7 @@ Use the optional prompt shortcuts below when you want the pattern to be repeatab
|
|
|
193
193
|
|
|
194
194
|
Packaged `worker` defaults to forked context when a launch omits `context`; every other builtin runs fresh. Pass `context: "fresh"` when you intentionally want a fresh `worker` run.
|
|
195
195
|
|
|
196
|
-
Child-safety boundaries are enforced at runtime by typed admission policy. In-process child sessions load bundled extensions through normal discovery. The `subagent` tool may therefore be registered when the child's active tool selection permits it, including the default no-allowlist case; an explicit allowlist may omit it. Tool presence does not grant fanout: fanout is authorized only when the resolved builtin `tools` list includes `subagent`. Typed admission policy lets a non-fanout child use only `list`, `get`, `status`, and `doctor`; delegation, `resume`, and `interrupt` receive the fanout refusal. A management-restricted child is also refused `create`, `update`, and `delete`. The bundled `pi-subagents` skill remains parent-only and is stripped from child prompts, including fanout-authorized children.
|
|
196
|
+
Child-safety boundaries are enforced at runtime by typed admission policy. In-process child sessions load bundled extensions through normal discovery. The `subagent` tool may therefore be registered when the child's active tool selection permits it, including the default no-allowlist case; an explicit allowlist may omit it. Tool presence does not grant fanout: fanout is authorized only when the resolved builtin `tools` list includes `subagent`. Typed admission policy lets a non-fanout child use only `list`, `get`, `status`, and `doctor`; delegation, `resume`, and `interrupt` receive the fanout refusal. A management-restricted child is also refused `create`, `update`, and `delete`. The bundled `pi-subagents` skill remains parent-only and is stripped from child prompts, including fanout-authorized children. No admitted child may delegate: launches, `resume`, and `interrupt` are refused for every child regardless of its fanout authorization. Children receive boundary instructions that they are not the parent orchestrator and must complete their assigned task directly. Forked child context filtering also removes parent-only subagent artifacts (including old hidden orchestration-instruction messages, slash/status/control messages, and prior parent `subagent` tool-call/tool-result history) while preserving ordinary prose and unrelated tool calls/results.
|
|
197
197
|
|
|
198
198
|
## Optional shortcuts
|
|
199
199
|
|
|
@@ -400,7 +400,6 @@ output: context.md
|
|
|
400
400
|
defaultReads: context.md
|
|
401
401
|
defaultProgress: true
|
|
402
402
|
interactive: true
|
|
403
|
-
maxSubagentDepth: 1
|
|
404
403
|
---
|
|
405
404
|
|
|
406
405
|
Your system prompt goes here.
|
|
@@ -427,7 +426,6 @@ Important fields:
|
|
|
427
426
|
| `defaultReads` | Files to read before running in single or parallel behavior. |
|
|
428
427
|
| `defaultProgress` | Maintain `progress.md`. |
|
|
429
428
|
| `interactive` | Parsed for compatibility but not enforced in v1. |
|
|
430
|
-
| `maxSubagentDepth` | Tightens nested delegation for this agent’s children. |
|
|
431
429
|
|
|
432
430
|
### Tool and extension selection
|
|
433
431
|
|
|
@@ -648,7 +646,7 @@ After a worktree parallel step completes, per-agent diff stats are appended to t
|
|
|
648
646
|
|
|
649
647
|
Atomic subagents read optional JSON config from `~/.atomic/agent/extensions/subagent/config.json` and still check the legacy `~/.pi/agent/extensions/subagent/config.json` path for compatibility.
|
|
650
648
|
|
|
651
|
-
Subagent configuration controls discovery, parallel limits, session storage,
|
|
649
|
+
Subagent configuration controls discovery, parallel limits, session storage, control notices, and intercom delivery. There are no execution-mode toggles; every execution request is foreground.
|
|
652
650
|
|
|
653
651
|
### `parallel`
|
|
654
652
|
|
|
@@ -671,14 +669,6 @@ Subagent configuration controls discovery, parallel limits, session storage, dep
|
|
|
671
669
|
|
|
672
670
|
Session directory precedence is: `params.sessionDir`, then `config.defaultSessionDir`, then a directory derived from the parent session. Sessions are always enabled.
|
|
673
671
|
|
|
674
|
-
### `maxSubagentDepth`
|
|
675
|
-
|
|
676
|
-
```json
|
|
677
|
-
{ "maxSubagentDepth": 1 }
|
|
678
|
-
```
|
|
679
|
-
|
|
680
|
-
Controls nested delegation through typed admission policy. Accepted values are `0` through `5`; higher values are refused at the hard ceiling. Per-agent `maxSubagentDepth` can tighten the limit for that agent’s child runs, but cannot relax an inherited stricter limit.
|
|
681
|
-
|
|
682
672
|
### `intercomBridge`
|
|
683
673
|
|
|
684
674
|
```json
|
|
@@ -780,18 +770,11 @@ Pass `share: true` to export a full session to HTML, upload it to a secret GitHu
|
|
|
780
770
|
|
|
781
771
|
This is disabled by default. Session data may contain source code, paths, environment variables, credentials, or other sensitive output. You need `gh` installed and authenticated.
|
|
782
772
|
|
|
783
|
-
##
|
|
784
|
-
|
|
785
|
-
Subagents can call `subagent`, which can get expensive and hard to observe. A depth guard prevents unbounded nesting.
|
|
786
|
-
|
|
787
|
-
By default, nesting is capped at five delegated subagent levels below the main session. Deeper calls are blocked with guidance to complete the current task directly.
|
|
788
|
-
|
|
789
|
-
Configure a lower or equal limit with:
|
|
773
|
+
## Delegation boundary
|
|
790
774
|
|
|
791
|
-
|
|
792
|
-
2. `maxSubagentDepth` in agent frontmatter, which can only tighten the admitted limit
|
|
775
|
+
Delegation is exactly one level deep, and nothing configures it. A top-level session — main chat or a workflow stage — may call `subagent`. A session that was itself admitted as a subagent child may not: every launch, `resume`, and `interrupt` it attempts is refused with guidance to complete its assigned task directly. The observing actions `list`, `get`, `status`, and `doctor` stay available to a child.
|
|
793
776
|
|
|
794
|
-
The depth
|
|
777
|
+
There is no configuration option, agent frontmatter field, or tool parameter for the delegation level. The rule is enforced twice: the subagent executor refuses a child before any run starts, and the Rust `SubagentControl` admission door refuses a child deeper than the single permitted level. Admitted depth is typed admission state and is not inherited through an environment variable.
|
|
795
778
|
|
|
796
779
|
Completion and intercom events:
|
|
797
780
|
|
|
@@ -8,8 +8,8 @@ description: |
|
|
|
8
8
|
- Production-quality refinement of a working draft ("ugly but working CSV parser").
|
|
9
9
|
- Code that has gotten messy after several iterations.
|
|
10
10
|
tools: read, edit, write, search, find, ls, bash, todo
|
|
11
|
-
model: openai-codex/gpt-5.6-
|
|
12
|
-
fallbackModels: github-copilot/gpt-5.6-
|
|
11
|
+
model: openai-codex/gpt-5.6-sol:medium
|
|
12
|
+
fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6
|
|
13
13
|
skills: tdd, playwright-cli, tmux
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: codebase-analyzer
|
|
3
3
|
description: Analyzes codebase implementation details. Call the codebase-analyzer agent when you need to find detailed information about specific components.
|
|
4
4
|
tools: read, search, find, ls, todo
|
|
5
|
-
model: openai-codex/gpt-5.6-
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-
|
|
5
|
+
model: openai-codex/gpt-5.6-sol:medium
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6
|
|
7
7
|
skills: tdd, playwright-cli, tmux
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: codebase-locator
|
|
3
3
|
description: Locates files, directories, and components relevant to a feature or task. Basically a "super search/find/ls tool."
|
|
4
4
|
tools: read, search, find, ls
|
|
5
|
-
model: openai-codex/gpt-5.6-
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-
|
|
5
|
+
model: openai-codex/gpt-5.6-sol:low
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-sol:low, openai/gpt-5.6-sol:low, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:low, github-copilot/gpt-5.5:low, openai/gpt-5.5:low, anthropic/claude-opus-4-8:low, github-copilot/claude-opus-4.8:low, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-sol:low, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:low, openrouter/anthropic/claude-opus-4-8:low, openrouter/x-ai/grok-4.6
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Role and goal
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: codebase-online-researcher
|
|
3
3
|
description: Online research for up-to-date documentation and library-source knowledge. Use when you need authoritative external information — official docs, ecosystem context, version-specific behavior, GitHub permalinks into open-source libraries, or video tutorials.
|
|
4
4
|
tools: read, search, find, ls, bash, web_search, fetch_content, get_search_content, todo
|
|
5
|
-
model: openai-codex/gpt-5.6-
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-
|
|
5
|
+
model: openai-codex/gpt-5.6-sol:medium
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6
|
|
7
7
|
skills: playwright-cli
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: codebase-pattern-finder
|
|
3
3
|
description: Find similar implementations, usage examples, or existing patterns in the codebase that can be modeled after.
|
|
4
4
|
tools: read, search, find, ls
|
|
5
|
-
model: openai-codex/gpt-5.6-
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-
|
|
5
|
+
model: openai-codex/gpt-5.6-sol:low
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-sol:low, openai/gpt-5.6-sol:low, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:low, github-copilot/gpt-5.5:low, openai/gpt-5.5:low, anthropic/claude-opus-4-8:low, github-copilot/claude-opus-4.8:low, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-sol:low, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:low, openrouter/anthropic/claude-opus-4-8:low, openrouter/x-ai/grok-4.6
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Role and goal
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: codebase-research-analyzer
|
|
3
3
|
description: Analyzes local research documents to extract high-value insights, decisions, and technical details while filtering out noise. Use this when you want to deep dive on a research topic or understand the rationale behind decisions.
|
|
4
4
|
tools: read, search, find, ls, todo
|
|
5
|
-
model: openai-codex/gpt-5.6-
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-
|
|
5
|
+
model: openai-codex/gpt-5.6-sol:medium
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Role and goal
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: codebase-research-locator
|
|
3
3
|
description: Discovers local research documents that are relevant to the current research task.
|
|
4
4
|
tools: read, search, find, ls
|
|
5
|
-
model: openai-codex/gpt-5.6-
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-
|
|
5
|
+
model: openai-codex/gpt-5.6-sol:low
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-sol:low, openai/gpt-5.6-sol:low, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:low, github-copilot/gpt-5.5:low, openai/gpt-5.5:low, anthropic/claude-opus-4-8:low, github-copilot/claude-opus-4.8:low, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-sol:low, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:low, openrouter/anthropic/claude-opus-4-8:low, openrouter/x-ai/grok-4.6
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Role and goal
|
|
@@ -5,8 +5,8 @@ systemPromptMode: replace
|
|
|
5
5
|
inheritProjectContext: true
|
|
6
6
|
inheritSkills: false
|
|
7
7
|
tools: read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo
|
|
8
|
-
model: openai-codex/gpt-5.6-
|
|
9
|
-
fallbackModels: github-copilot/gpt-5.6-
|
|
8
|
+
model: openai-codex/gpt-5.6-sol:medium
|
|
9
|
+
fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6
|
|
10
10
|
skills: tdd, playwright-cli, tmux
|
|
11
11
|
defaultContext: fork
|
|
12
12
|
defaultProgress: true
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bastani/subagents",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.15-alpha.1",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Atomic extension for delegating tasks to subagents with parallel execution. Fork of: https://github.com/nicobailon/pi-subagents",
|
|
6
6
|
"contributors": [
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"type": "module",
|
|
12
12
|
"engines": {
|
|
13
|
-
"bun": ">=1.
|
|
13
|
+
"bun": ">=1.4.0"
|
|
14
14
|
},
|
|
15
15
|
"main": "./src/extension/index.ts",
|
|
16
16
|
"types": "./src/extension/index.ts",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"@bastani/atomic": "*",
|
|
41
41
|
"@earendil-works/pi-agent-core": "^0.84.2",
|
|
42
|
-
"@
|
|
42
|
+
"@bastani/pi-ai": "*",
|
|
43
43
|
"@earendil-works/pi-tui": "^0.84.2"
|
|
44
44
|
},
|
|
45
45
|
"peerDependenciesMeta": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@earendil-works/pi-agent-core": {
|
|
50
50
|
"optional": true
|
|
51
51
|
},
|
|
52
|
-
"@
|
|
52
|
+
"@bastani/pi-ai": {
|
|
53
53
|
"optional": true
|
|
54
54
|
},
|
|
55
55
|
"@earendil-works/pi-tui": {
|
|
@@ -120,7 +120,7 @@ Builtin agents load at the lowest priority. Project agents override user agents,
|
|
|
120
120
|
| `codebase-online-researcher` | Web research with authoritative sources | `openai/gpt-5.5` | low | read, search, find, ls, bash, write, web_search, fetch_content, get_search_content | Has the `playwright-cli` skill. Persists keepers to `research/web/`. |
|
|
121
121
|
| `code-simplifier` | Clean up recently changed code without changing behavior | `openai/gpt-5.5` | low | read, edit, write, search, find, ls, bash | **Writer.** Scopes to recently modified code by default; preserves all observable behavior. |
|
|
122
122
|
| `debugger` | Reproduce, diagnose, and fix failing behavior | `openai-codex/gpt-5.6-sol:xhigh` | xhigh | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Can coordinate with the parent; inspect-only mode requires an explicit instruction. |
|
|
123
|
-
| `worker` | Implement normal tasks and approved orchestrator handoffs | `openai-codex/gpt-5.6-
|
|
123
|
+
| `worker` | Implement normal tasks and approved orchestrator handoffs | `openai-codex/gpt-5.6-sol:medium` | medium | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Defaults to forked context; escalates unapproved decisions instead of guessing. |
|
|
124
124
|
|
|
125
125
|
Each builtin declares an explicit `model` and `fallbackModels` sequence (typically `github-copilot/<same>`, then `anthropic/claude-opus-4-8`, then `github-copilot/claude-opus-4.7`). The current user-selected model is automatically appended as the last fallback and de-duplicated. Override per run with inline config:
|
|
126
126
|
|
|
@@ -448,7 +448,6 @@ That is only a starting point. Omit `package` for the traditional unqualified ru
|
|
|
448
448
|
- `defaultReads`
|
|
449
449
|
- `defaultContext`
|
|
450
450
|
- `output`
|
|
451
|
-
- `maxSubagentDepth`
|
|
452
451
|
|
|
453
452
|
For many customizations, builtin overrides in settings are lower-friction than copying a full builtin file.
|
|
454
453
|
|
|
@@ -462,7 +461,7 @@ If a prompt-template extension is installed, additional user prompt templates ca
|
|
|
462
461
|
|
|
463
462
|
- **Forking requires a persisted parent session.** If the current session does not have a persisted session file, forked runs fail.
|
|
464
463
|
- **Forked runs inherit parent history.** They are branched threads, not fresh filtered contexts. Use fresh context for adversarial review unless the user explicitly asks for forked context.
|
|
465
|
-
- **
|
|
464
|
+
- **Delegation is one level deep and not configurable.** A subagent cannot call `subagent`: every launch, `resume`, and `interrupt` from inside a child is refused. Only `list`, `get`, `status`, and `doctor` stay available to a child.
|
|
466
465
|
- **Attention signals are not lifecycle state.** `needs_attention` means no activity has been observed past the configured threshold. `paused` means the child turn was intentionally interrupted or is awaiting direction; it is not the same as `failed`.
|
|
467
466
|
- **Builtin coordination varies by agent.** `debugger` and `worker` declare `intercom` and `contact_supervisor`; the other builtin specialists do not. For agents without bridge tools, decide the task up front or use a custom agent when mid-run coordination is required.
|
|
468
467
|
- **Intercom asks are blocking.** A session can only maintain one pending outbound ask wait state at a time.
|
|
@@ -551,7 +550,7 @@ For complex or risky changes, increase review and validation fanout when user in
|
|
|
551
550
|
|
|
552
551
|
For very large work, split into serial milestones instead of launching a swarm of writers. Each milestone gets one writer, a validation contract, fresh-context review, a fix pass, and parent approval before the next milestone starts. Use parallel subagents inside a milestone for read-only context, research, and review only.
|
|
553
552
|
|
|
554
|
-
Keep orchestration authority in the parent session. Child subagents
|
|
553
|
+
Keep orchestration authority in the parent session. Child subagents cannot launch more subagents or run their own orchestration loops: delegation is one level deep and nothing configures it. This skill is parent-only and is stripped from every child prompt. A child may still have the `subagent` extension tool registered, because bundled extensions load through normal discovery; registration is not authority. Typed admission policy lets a child use only `list`, `get`, `status`, and `doctor`, and refuses delegation, `resume`, and `interrupt`. Spawned children also do not receive parent-only status/control/slash messages or prior parent `subagent` tool-call/tool-result artifacts, and child context filtering strips old hidden orchestration-instruction messages when they appear in inherited history. Every child also receives a boundary instruction that says the parent owns orchestration, that the `subagent` tool refuses every launch, `resume`, and `interrupt` from inside a subagent, and that writer children must call real edit/write tools instead of printing pseudo tool calls. Pass children concrete role-specific work instead.
|
|
555
554
|
|
|
556
555
|
1. Clarify only when needed. Use existing context first; gather missing code or research context selectively, then ask only unresolved questions that materially affect scope, completion criteria, constraints, or non-goals.
|
|
557
556
|
2. Define the validation contract. State completion expectations before implementation: expected behavior, checks to run, user flows to exercise, and evidence required in the writer handoff. For UI, CLI, integration, or workflow changes, include at least one validator angle that uses the product the way a user would rather than only reading code.
|
|
@@ -631,10 +630,11 @@ subagent({ action: "doctor" })
|
|
|
631
630
|
// Check runtime paths, execution support, discovery counts, current session, and intercom bridge state.
|
|
632
631
|
```
|
|
633
632
|
|
|
634
|
-
**"
|
|
633
|
+
**"Subagent delegation is not available inside a subagent"**
|
|
635
634
|
|
|
636
635
|
```typescript
|
|
637
|
-
//
|
|
636
|
+
// Do the work in this session. Only a top-level session — main chat or a
|
|
637
|
+
// workflow stage — can delegate, and the one-level rule is not configurable.
|
|
638
638
|
```
|
|
639
639
|
|
|
640
640
|
**"Session manager did not return a session file"**
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
|
-
import { normalizeMaxSubagentDepth } from "../shared/types.js";
|
|
4
3
|
import { splitToolList } from "./agent-overrides.js";
|
|
5
4
|
import { shouldPreserveAgentExtraField } from "./agent-serializer.js";
|
|
6
5
|
import {
|
|
@@ -181,8 +180,6 @@ export function loadAgentsFromDirWithDiagnostics(dir: string, source: AgentSourc
|
|
|
181
180
|
if (shouldPreserveAgentExtraField(key)) extraFields[key] = value;
|
|
182
181
|
}
|
|
183
182
|
|
|
184
|
-
const parsedMaxSubagentDepth = normalizeMaxSubagentDepth(frontmatter.maxSubagentDepth);
|
|
185
|
-
|
|
186
183
|
agents.push({
|
|
187
184
|
name: runtimeName,
|
|
188
185
|
localName,
|
|
@@ -207,7 +204,6 @@ export function loadAgentsFromDirWithDiagnostics(dir: string, source: AgentSourc
|
|
|
207
204
|
defaultReads,
|
|
208
205
|
defaultProgress: frontmatterBoolean(frontmatter.defaultProgress) === true,
|
|
209
206
|
interactive: frontmatterBoolean(frontmatter.interactive) === true,
|
|
210
|
-
maxSubagentDepth: parsedMaxSubagentDepth,
|
|
211
207
|
extraFields: Object.keys(extraFields).length > 0 ? extraFields : undefined,
|
|
212
208
|
});
|
|
213
209
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SkillCatalog } from "@bastani/atomic";
|
|
2
|
-
import {
|
|
2
|
+
import type { SubagentToolResult } from "../shared/types.js";
|
|
3
3
|
import type { ManagementContext, ManagementScope } from "./agent-management.js";
|
|
4
4
|
import type { AgentConfig, AgentScope } from "./agents.js";
|
|
5
5
|
import { discoverAgentsAll, parsePackageName } from "./agents.js";
|
|
@@ -217,16 +217,5 @@ export function applyAgentConfig(target: AgentConfig, cfg: Record<string, unknow
|
|
|
217
217
|
if (typeof cfg.progress !== "boolean") return "config.progress must be a boolean when provided.";
|
|
218
218
|
target.defaultProgress = cfg.progress;
|
|
219
219
|
}
|
|
220
|
-
if (hasKey(cfg, "maxSubagentDepth")) {
|
|
221
|
-
if (cfg.maxSubagentDepth === false || cfg.maxSubagentDepth === "") target.maxSubagentDepth = undefined;
|
|
222
|
-
else if (
|
|
223
|
-
typeof cfg.maxSubagentDepth === "number" &&
|
|
224
|
-
Number.isInteger(cfg.maxSubagentDepth) &&
|
|
225
|
-
cfg.maxSubagentDepth >= 0
|
|
226
|
-
) {
|
|
227
|
-
target.maxSubagentDepth = Math.min(cfg.maxSubagentDepth, MAX_SUBAGENT_NESTING_DEPTH);
|
|
228
|
-
} else
|
|
229
|
-
return `config.maxSubagentDepth must be an integer >= 0 or false when provided; values above ${MAX_SUBAGENT_NESTING_DEPTH} are clamped.`;
|
|
230
|
-
}
|
|
231
220
|
return undefined;
|
|
232
221
|
}
|
|
@@ -125,7 +125,6 @@ function formatAgentDetail(agent: AgentConfig): string {
|
|
|
125
125
|
if (agent.output) lines.push(`Output: ${agent.output}`);
|
|
126
126
|
if (agent.defaultReads?.length) lines.push(`Reads: ${agent.defaultReads.join(", ")}`);
|
|
127
127
|
if (agent.defaultProgress) lines.push("Progress: true");
|
|
128
|
-
if (agent.maxSubagentDepth !== undefined) lines.push(`Max subagent depth: ${agent.maxSubagentDepth}`);
|
|
129
128
|
if (agent.systemPrompt.trim()) lines.push("", "System Prompt:", agent.systemPrompt);
|
|
130
129
|
return lines.join("\n");
|
|
131
130
|
}
|
|
@@ -23,10 +23,15 @@ export const KNOWN_FIELDS = new Set([
|
|
|
23
23
|
"defaultReads",
|
|
24
24
|
"defaultProgress",
|
|
25
25
|
"interactive",
|
|
26
|
-
"maxSubagentDepth",
|
|
27
26
|
]);
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Frontmatter keys whose feature is gone. They are neither preserved on load nor
|
|
30
|
+
* re-emitted on serialize, so an agent-management rewrite strips a stale key from
|
|
31
|
+
* the file. Each is spelled with a splice so the removed identifier never appears
|
|
32
|
+
* as contiguous source text.
|
|
33
|
+
*/
|
|
34
|
+
const REMOVED_AGENT_FRONTMATTER_FIELDS = new Set<string>([`completion${"Guard"}`, `maxSubagent${"Depth"}`]);
|
|
30
35
|
|
|
31
36
|
export function shouldPreserveAgentExtraField(key: string): boolean {
|
|
32
37
|
return !KNOWN_FIELDS.has(key) && !REMOVED_AGENT_FRONTMATTER_FIELDS.has(key);
|
|
@@ -93,10 +98,6 @@ export function serializeAgent(config: AgentConfig): string {
|
|
|
93
98
|
|
|
94
99
|
if (config.defaultProgress) lines.push("defaultProgress: true");
|
|
95
100
|
if (config.interactive) lines.push("interactive: true");
|
|
96
|
-
const maxSubagentDepth = config.maxSubagentDepth;
|
|
97
|
-
if (typeof maxSubagentDepth === "number" && Number.isInteger(maxSubagentDepth) && maxSubagentDepth >= 0) {
|
|
98
|
-
lines.push(`maxSubagentDepth: ${maxSubagentDepth}`);
|
|
99
|
-
}
|
|
100
101
|
|
|
101
102
|
if (config.extraFields) {
|
|
102
103
|
for (const [key, value] of Object.entries(config.extraFields)) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import { Type } from "typebox";
|
|
6
|
-
import { MAX_PARALLEL_TASKS,
|
|
6
|
+
import { MAX_PARALLEL_TASKS, SUBAGENT_ACTIONS } from "../shared/types.js";
|
|
7
7
|
|
|
8
8
|
const SkillOverride = Type.Unsafe({
|
|
9
9
|
anyOf: [{ type: "array", items: { type: "string" } }, { type: "boolean" }, { type: "string" }],
|
|
@@ -146,7 +146,7 @@ export const SubagentParams = Type.Object(
|
|
|
146
146
|
config: Type.Optional(
|
|
147
147
|
Type.Unsafe({
|
|
148
148
|
anyOf: [{ type: "object", additionalProperties: true }, { type: "string" }],
|
|
149
|
-
description: `Agent config for create/update. Agent: name, package (optional namespace; runtime name becomes package.name), description, scope ('user'|'project', default 'user'), systemPrompt, systemPromptMode, inheritProjectContext, inheritSkills, defaultContext ('fresh'|'fork'), model, tools (comma-separated), extensions (comma-separated), skills (comma-separated), thinking, output, reads, progress
|
|
149
|
+
description: `Agent config for create/update. Agent: name, package (optional namespace; runtime name becomes package.name), description, scope ('user'|'project', default 'user'), systemPrompt, systemPromptMode, inheritProjectContext, inheritSkills, defaultContext ('fresh'|'fork'), model, tools (comma-separated), extensions (comma-separated), skills (comma-separated), thinking, output, reads, progress. String values must be valid JSON.`,
|
|
150
150
|
}),
|
|
151
151
|
),
|
|
152
152
|
tasks: Type.Optional(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as path from "node:path";
|
|
2
2
|
import type { ExtensionContext } from "@bastani/atomic";
|
|
3
|
-
import {
|
|
3
|
+
import { cleanupOldSubagentRuntimeDirs } from "../runs/inprocess/runtime-support/temp-cleanup.js";
|
|
4
4
|
import { cleanupAllArtifactDirs, cleanupOldArtifacts, getArtifactsDir } from "../shared/artifacts.js";
|
|
5
5
|
import type { SubagentState } from "../shared/types.js";
|
|
6
6
|
|
|
@@ -105,7 +105,7 @@ export function createSubagentStartupMaintenance(
|
|
|
105
105
|
return {
|
|
106
106
|
scheduleStartupCleanup() {
|
|
107
107
|
schedule(() => {
|
|
108
|
-
swallowCleanup(() =>
|
|
108
|
+
swallowCleanup(() => cleanupOldSubagentRuntimeDirs(options.artifactCleanupDays));
|
|
109
109
|
scheduleDelayed(
|
|
110
110
|
() => swallowCleanup(() => cleanupAllArtifactDirs(options.artifactCleanupDays, contextSessionsRoots)),
|
|
111
111
|
STARTUP_ARTIFACT_SCAN_DELAY_MS,
|