@bastani/atomic 0.9.18-alpha.4 → 0.9.18-alpha.6
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 +115 -0
- package/README.md +3 -3
- package/dist/builtin/intercom/CHANGELOG.md +41 -0
- package/dist/builtin/intercom/README.md +18 -3
- package/dist/builtin/intercom/broker/broker.ts +670 -127
- package/dist/builtin/intercom/broker/client.ts +149 -35
- package/dist/builtin/intercom/broker/delivered-message-cache.ts +497 -37
- package/dist/builtin/intercom/broker/framing.ts +4 -2
- package/dist/builtin/intercom/broker/paths.ts +10 -0
- package/dist/builtin/intercom/broker/pending-send-registry.ts +1 -2
- package/dist/builtin/intercom/broker/send-handler.ts +311 -52
- package/dist/builtin/intercom/broker/send-signature.ts +4 -2
- package/dist/builtin/intercom/broker/socket-writes.ts +103 -0
- package/dist/builtin/intercom/broker/spawn.ts +9 -4
- package/dist/builtin/intercom/index.bundle.mjs +1419 -213
- package/dist/builtin/intercom/package.json +2 -2
- package/dist/builtin/intercom/recoverable-disconnect.ts +52 -0
- package/dist/builtin/intercom/retry-policy.ts +8 -0
- package/dist/builtin/intercom/skills/intercom/SKILL.md +17 -9
- package/dist/builtin/intercom/types.ts +25 -8
- package/dist/builtin/intercom/workflow-stage-path-matching.ts +90 -0
- package/dist/builtin/intercom/workflow-stage-target.ts +57 -0
- package/dist/builtin/mcp/index.bundle.mjs +427 -126
- package/dist/builtin/mcp/package.json +2 -2
- package/dist/builtin/subagents/CHANGELOG.md +19 -0
- package/dist/builtin/subagents/README.md +3 -3
- 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 +11 -11
- 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/debugger.md +3 -3
- package/dist/builtin/subagents/agents/worker.md +2 -2
- package/dist/builtin/subagents/package.json +3 -3
- package/dist/builtin/subagents/skills/qlty/SKILL.md +29 -101
- package/dist/builtin/subagents/skills/qlty/references/manual-configuration.md +52 -0
- package/dist/builtin/subagents/skills/subagent/SKILL.md +11 -11
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +49 -132
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +44 -0
- package/dist/builtin/workflows/README.md +7 -7
- package/dist/builtin/workflows/builtin/adversarial-verification.js +2 -2
- package/dist/builtin/workflows/builtin/{chunk-szz1ajz9.js → chunk-42s7sw0b.js} +9 -2
- package/dist/builtin/workflows/builtin/{chunk-2dqb5s2q.js → chunk-79fjkcvh.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-n58a7v26.js → chunk-b0v2xab1.js} +181 -10
- package/dist/builtin/workflows/builtin/{chunk-fghhy2a5.js → chunk-ed4jfn5t.js} +23 -5
- package/dist/builtin/workflows/builtin/{chunk-h3r2vkzc.js → chunk-hqpe2cyx.js} +60 -21
- package/dist/builtin/workflows/builtin/{chunk-hzzn6adg.js → chunk-k3w87x8y.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-82ha8p41.js → chunk-n8h4yyew.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-qwzvgxnq.js → chunk-reqr3sr3.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-c53y8bdh.js → chunk-wgccch41.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-0x6e303p.js → chunk-zbekjqew.js} +20 -7
- package/dist/builtin/workflows/builtin/{chunk-29wrp38a.js → chunk-ze5x3d1r.js} +1 -1
- package/dist/builtin/workflows/builtin/classify-and-act.js +2 -2
- package/dist/builtin/workflows/builtin/fan-out-and-synthesize.js +2 -2
- package/dist/builtin/workflows/builtin/generate-and-filter.js +2 -2
- package/dist/builtin/workflows/builtin/goal.js +3 -3
- package/dist/builtin/workflows/builtin/index.js +11 -11
- package/dist/builtin/workflows/builtin/loop-until-done.js +2 -2
- package/dist/builtin/workflows/builtin/open-claude-design.js +2 -2
- package/dist/builtin/workflows/builtin/ralph.js +3 -3
- package/dist/builtin/workflows/builtin/steering-context.js +1 -1
- package/dist/builtin/workflows/builtin/tournament.js +2 -2
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/skills/prompt-engineer/SKILL.md +39 -52
- package/dist/builtin/workflows/skills/prompt-engineer/references/advanced_patterns.md +9 -37
- package/dist/builtin/workflows/skills/prompt-engineer/references/claude_fable_5.md +49 -0
- package/dist/builtin/workflows/skills/prompt-engineer/references/claude_fable_5_1.md +57 -0
- package/dist/builtin/workflows/skills/prompt-engineer/references/claude_opus_4_8.md +57 -0
- package/dist/builtin/workflows/skills/prompt-engineer/references/claude_opus_5.md +47 -0
- package/dist/builtin/workflows/skills/prompt-engineer/references/claude_sonnet_5.md +57 -0
- package/dist/builtin/workflows/skills/prompt-engineer/references/gpt_5_5.md +60 -0
- package/dist/builtin/workflows/skills/prompt-engineer/references/gpt_5_6.md +58 -0
- package/dist/builtin/workflows/skills/prompt-engineer/references/gpt_6_astra.md +58 -0
- package/dist/builtin/workflows/skills/prompt-engineer/references/quality_improvement.md +18 -4
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +3194 -737
- package/dist/builtin/workflows/src/index.js +899 -436
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +0 -10
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +4 -0
- package/dist/cli/list-models.js.map +1 -1
- package/dist/client/index.d.ts +1 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -2
- package/dist/client/index.js.map +1 -1
- package/dist/config.d.ts +0 -9
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -45
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-compaction.js +8 -6
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +1 -0
- 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.map +1 -1
- package/dist/core/agent-session-models.js +3 -4
- package/dist/core/agent-session-models.js.map +1 -1
- package/dist/core/agent-session-queue-pause.d.ts.map +1 -1
- package/dist/core/agent-session-queue-pause.js +6 -0
- package/dist/core/agent-session-queue-pause.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +15 -7
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-tool-hooks.js +1 -1
- package/dist/core/agent-session-tool-hooks.js.map +1 -1
- package/dist/core/agent-session-tree.d.ts.map +1 -1
- package/dist/core/agent-session-tree.js +8 -0
- package/dist/core/agent-session-tree.js.map +1 -1
- package/dist/core/agent-session.d.ts +2 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +2 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
- package/dist/core/anthropic-thinking-guard.js +71 -5
- package/dist/core/anthropic-thinking-guard.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 +4 -4
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/extensions/api-types.d.ts +8 -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 +12 -0
- 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/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/runner-shortcuts.d.ts.map +1 -1
- package/dist/core/extensions/runner-shortcuts.js +0 -1
- package/dist/core/extensions/runner-shortcuts.js.map +1 -1
- package/dist/core/fast-model-routing-transport.d.ts +12 -0
- package/dist/core/fast-model-routing-transport.d.ts.map +1 -0
- package/dist/core/{codex-fast-mode-transport.js → fast-model-routing-transport.js} +29 -29
- package/dist/core/fast-model-routing-transport.js.map +1 -0
- package/dist/core/fast-model-routing.d.ts +57 -0
- package/dist/core/fast-model-routing.d.ts.map +1 -0
- package/dist/core/fast-model-routing.js +201 -0
- package/dist/core/fast-model-routing.js.map +1 -0
- package/dist/core/fast-model-variants.d.ts +98 -0
- package/dist/core/fast-model-variants.d.ts.map +1 -0
- package/dist/core/fast-model-variants.js +148 -0
- package/dist/core/fast-model-variants.js.map +1 -0
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js +4 -2
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/keybindings.d.ts +0 -10
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +0 -8
- package/dist/core/keybindings.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-config.d.ts +24 -4
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +6 -2
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-resolver-initial.js +1 -1
- package/dist/core/model-resolver-initial.js.map +1 -1
- package/dist/core/model-runtime-streaming.d.ts +14 -1
- package/dist/core/model-runtime-streaming.d.ts.map +1 -1
- package/dist/core/model-runtime-streaming.js +25 -3
- package/dist/core/model-runtime-streaming.js.map +1 -1
- package/dist/core/model-runtime.d.ts +39 -2
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +91 -7
- package/dist/core/model-runtime.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 +8 -2
- package/dist/core/provider-composer-internal.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +21 -18
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager-archive.d.ts.map +1 -1
- package/dist/core/session-manager-archive.js +25 -2
- package/dist/core/session-manager-archive.js.map +1 -1
- package/dist/core/settings-manager-core.d.ts +0 -2
- package/dist/core/settings-manager-core.d.ts.map +1 -1
- package/dist/core/settings-manager-core.js +2 -9
- package/dist/core/settings-manager-core.js.map +1 -1
- package/dist/core/settings-manager-internals.d.ts +0 -1
- package/dist/core/settings-manager-internals.d.ts.map +1 -1
- package/dist/core/settings-manager-internals.js.map +1 -1
- package/dist/core/settings-manager-ui-accessors.d.ts +0 -8
- package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-ui-accessors.js +0 -53
- package/dist/core/settings-manager-ui-accessors.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/settings-types.d.ts +0 -5
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/skills.d.ts +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +4 -2
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +0 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.js +7 -7
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +10 -7
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +153 -8
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +9 -8
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +4 -3
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/hashline.d.ts +2 -2
- package/dist/core/tools/hashline.d.ts.map +1 -1
- package/dist/core/tools/hashline.js +40 -10
- package/dist/core/tools/hashline.js.map +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +2 -2
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +12 -11
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/search.d.ts.map +1 -1
- package/dist/core/tools/search.js +20 -19
- package/dist/core/tools/search.js.map +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +22 -21
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/workflow-stage-admission.d.ts +6 -0
- package/dist/core/workflow-stage-admission.d.ts.map +1 -1
- package/dist/core/workflow-stage-admission.js +14 -0
- package/dist/core/workflow-stage-admission.js.map +1 -1
- package/dist/index-extensions.d.ts +1 -1
- package/dist/index-extensions.d.ts.map +1 -1
- package/dist/index-extensions.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/components/atomic-working-status.d.ts +4 -0
- package/dist/modes/interactive/components/atomic-working-status.d.ts.map +1 -1
- package/dist/modes/interactive/components/atomic-working-status.js +26 -1
- package/dist/modes/interactive/components/atomic-working-status.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts +7 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +43 -0
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +0 -6
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +1 -2
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +0 -1
- package/dist/modes/interactive/components/index.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 +12 -25
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -5
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +16 -34
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.js +10 -5
- package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.d.ts +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.js +10 -7
- package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts +1 -2
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +6 -13
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/transcript-follow-indicator.js +3 -3
- package/dist/modes/interactive/components/transcript-follow-indicator.js.map +1 -1
- package/dist/modes/interactive/components/trust-selector.js +2 -2
- package/dist/modes/interactive/components/trust-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-agent-events.js +8 -8
- package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
- package/dist/modes/interactive/interactive-autocomplete.js +5 -16
- package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
- package/dist/modes/interactive/interactive-bash-compact.js +2 -9
- package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.js +3 -0
- package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-editor-actions.js +2 -2
- package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-custom-ui.js +1 -0
- package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-dialogs.js +7 -0
- package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-runtime.js +20 -10
- package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-hotkeys-debug.js +1 -5
- package/dist/modes/interactive/interactive-hotkeys-debug.js.map +1 -1
- package/dist/modes/interactive/interactive-initial-session-binding.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-initial-session-binding.js +3 -0
- package/dist/modes/interactive/interactive-initial-session-binding.js.map +1 -1
- package/dist/modes/interactive/interactive-input-handling.js +0 -8
- package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts +5 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +15 -9
- package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts +1 -3
- package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.js +1 -3
- package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +9 -12
- 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/interactive-model-routing.js +10 -13
- package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-render-chat.js +29 -0
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive/interactive-selectors.js +2 -32
- package/dist/modes/interactive/interactive-selectors.js.map +1 -1
- package/dist/modes/interactive/interactive-session-routing.js +1 -5
- package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-session-runtime.js +1 -5
- package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-slash-commands.js +6 -13
- package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
- package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +19 -13
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-tui.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-tui.js +27 -3
- package/dist/modes/interactive/interactive-tui.js.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.js +1 -0
- package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.js +4 -1
- package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
- package/dist/utils/child-process.d.ts.map +1 -1
- package/dist/utils/child-process.js +13 -6
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/exif-orientation.d.ts.map +1 -1
- package/dist/utils/exif-orientation.js +2 -3
- package/dist/utils/exif-orientation.js.map +1 -1
- package/dist/utils/tools-manager.d.ts +1 -0
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +33 -18
- package/dist/utils/tools-manager.js.map +1 -1
- package/docs/compaction.md +2 -0
- package/docs/custom-provider.md +4 -1
- package/docs/docs.json +14 -2
- package/docs/extensions.md +11 -4
- package/docs/intercom.md +33 -8
- package/docs/keybindings.md +8 -6
- package/docs/models/evals.md +394 -0
- package/docs/models/model-selection.md +60 -25
- package/docs/models/pareto-efficiency.md +33 -15
- package/docs/models.md +80 -1
- package/docs/packages.md +2 -2
- package/docs/providers.md +44 -20
- package/docs/quickstart.md +8 -6
- package/docs/rpc.md +3 -3
- package/docs/sdk.md +2 -16
- package/docs/settings.md +19 -22
- package/docs/skills.md +4 -2
- package/docs/subagents.md +9 -3
- package/docs/terminal-setup.md +15 -0
- package/docs/tools/edit.md +373 -0
- package/docs/tools.md +3 -7
- package/docs/tui.md +2 -1
- package/docs/usage.md +3 -5
- package/docs/workflows/api-reference.md +1395 -0
- package/docs/workflows/authoring.md +678 -0
- package/docs/workflows/builtins.md +245 -0
- package/docs/workflows/operations.md +811 -0
- package/docs/workflows/reliable-design.md +2099 -0
- package/docs/workflows/verification.md +62 -0
- package/docs/workflows.md +15 -5183
- package/npm-shrinkwrap.json +584 -69
- package/package.json +7 -7
- package/dist/client/remote-session.d.ts +0 -64
- package/dist/client/remote-session.d.ts.map +0 -1
- package/dist/client/remote-session.js +0 -351
- package/dist/client/remote-session.js.map +0 -1
- package/dist/client/transcript.d.ts +0 -12
- package/dist/client/transcript.d.ts.map +0 -1
- package/dist/client/transcript.js +0 -98
- package/dist/client/transcript.js.map +0 -1
- package/dist/core/codex-fast-mode-transport.d.ts +0 -12
- package/dist/core/codex-fast-mode-transport.d.ts.map +0 -1
- package/dist/core/codex-fast-mode-transport.js.map +0 -1
- package/dist/core/codex-fast-mode.d.ts +0 -53
- package/dist/core/codex-fast-mode.d.ts.map +0 -1
- package/dist/core/codex-fast-mode.js +0 -249
- package/dist/core/codex-fast-mode.js.map +0 -1
- package/dist/modes/interactive/components/fast-mode-selector.d.ts +0 -27
- package/dist/modes/interactive/components/fast-mode-selector.d.ts.map +0 -1
- package/dist/modes/interactive/components/fast-mode-selector.js +0 -107
- package/dist/modes/interactive/components/fast-mode-selector.js.map +0 -1
- package/dist/server/create-harness.d.ts +0 -53
- package/dist/server/create-harness.d.ts.map +0 -1
- package/dist/server/create-harness.js +0 -360
- package/dist/server/create-harness.js.map +0 -1
- package/docs/models/artificial-analysis-index.md +0 -83
|
@@ -12,11 +12,14 @@ import type {
|
|
|
12
12
|
SessionDirectory,
|
|
13
13
|
WorkflowStageRosterAnnouncement,
|
|
14
14
|
WorkflowStageRosterEntry,
|
|
15
|
+
WorkflowFutureStageRosterEntry,
|
|
16
|
+
WorkflowPossibleStageAnnouncement,
|
|
15
17
|
} from "../types.js";
|
|
16
18
|
import { buildSendSignature, PendingSendRegistry } from "./pending-send-registry.js";
|
|
17
19
|
import { readSubagentMessageSource } from "../source-ownership.js";
|
|
18
20
|
import { isMessage, isSessionInfo } from "./client-message-validation.js";
|
|
19
21
|
import { normalizeGroups } from "../group.js";
|
|
22
|
+
import { IntercomClientDisconnectedError } from "../recoverable-disconnect.js";
|
|
20
23
|
|
|
21
24
|
const BROKER_SOCKET = getBrokerSocketPath();
|
|
22
25
|
const GROUP_REQUEST_TIMEOUT_MS = 5000;
|
|
@@ -30,6 +33,10 @@ export interface SendOptions {
|
|
|
30
33
|
expectsReply?: boolean;
|
|
31
34
|
replyError?: string;
|
|
32
35
|
messageId?: string;
|
|
36
|
+
/** Internal caller-issued target identity; transport still uses the `to` argument. */
|
|
37
|
+
logicalTarget?: string;
|
|
38
|
+
/** Public reply must use the broker's exact pending reverse question route. */
|
|
39
|
+
requirePendingReply?: true;
|
|
33
40
|
}
|
|
34
41
|
|
|
35
42
|
export interface SendResult {
|
|
@@ -37,23 +44,32 @@ export interface SendResult {
|
|
|
37
44
|
delivered: boolean;
|
|
38
45
|
queued?: boolean;
|
|
39
46
|
reason?: string;
|
|
40
|
-
reasonCode?: "message_id_conflict";
|
|
41
|
-
|
|
42
|
-
stageKey?: string;
|
|
47
|
+
reasonCode?: "message_id_conflict" | "session_not_found";
|
|
48
|
+
target?: string;
|
|
43
49
|
position?: number;
|
|
50
|
+
/** D4 speculative accept: the sticky target is not in the run's persisted possible-stage set. */
|
|
51
|
+
notInKnownSet?: true;
|
|
44
52
|
}
|
|
45
53
|
|
|
46
54
|
export interface PendingStageMessageRequest {
|
|
47
55
|
readonly requestId: string;
|
|
48
56
|
readonly from: SessionInfo;
|
|
49
57
|
readonly runId: string;
|
|
50
|
-
readonly
|
|
58
|
+
readonly target: string;
|
|
51
59
|
readonly message: Message;
|
|
52
60
|
readonly senderRegistrationName?: string;
|
|
53
61
|
readonly senderReturnAddress?: string;
|
|
54
62
|
readonly live?: boolean;
|
|
55
63
|
}
|
|
56
64
|
|
|
65
|
+
/** Broker → route owner: the live stage targets a sticky broadcast was actually written to. */
|
|
66
|
+
export interface StickyLiveDeliveredNotice {
|
|
67
|
+
readonly runId: string;
|
|
68
|
+
readonly messageId: string;
|
|
69
|
+
readonly target: string;
|
|
70
|
+
readonly deliveredTargets: readonly string[];
|
|
71
|
+
}
|
|
72
|
+
|
|
57
73
|
export interface PendingStageNotificationRequest {
|
|
58
74
|
readonly requestId: string;
|
|
59
75
|
readonly from: SessionInfo;
|
|
@@ -61,9 +77,14 @@ export interface PendingStageNotificationRequest {
|
|
|
61
77
|
}
|
|
62
78
|
|
|
63
79
|
export type PendingStageMessageResult =
|
|
64
|
-
| {
|
|
80
|
+
| {
|
|
81
|
+
readonly outcome: "queued";
|
|
82
|
+
readonly position: number;
|
|
83
|
+
readonly notInKnownSet?: true;
|
|
84
|
+
readonly forwardTargets?: readonly string[];
|
|
85
|
+
}
|
|
65
86
|
| { readonly outcome: "delivered" }
|
|
66
|
-
| { readonly outcome: "forward" }
|
|
87
|
+
| { readonly outcome: "forward"; readonly target: string }
|
|
67
88
|
| { readonly outcome: "refused"; readonly reason: string; readonly reasonCode?: "message_id_conflict" };
|
|
68
89
|
export interface PresenceUpdates {
|
|
69
90
|
name?: string;
|
|
@@ -83,6 +104,24 @@ function toError(error: unknown): Error {
|
|
|
83
104
|
}
|
|
84
105
|
|
|
85
106
|
|
|
107
|
+
|
|
108
|
+
function isWorkflowFutureStageRosterEntries(value: unknown): value is WorkflowFutureStageRosterEntry[] {
|
|
109
|
+
return (
|
|
110
|
+
Array.isArray(value) &&
|
|
111
|
+
value.every(
|
|
112
|
+
(entry) =>
|
|
113
|
+
typeof entry === "object" &&
|
|
114
|
+
entry !== null &&
|
|
115
|
+
(entry as WorkflowFutureStageRosterEntry).kind === "workflow-future-stage" &&
|
|
116
|
+
typeof (entry as WorkflowFutureStageRosterEntry).runId === "string" &&
|
|
117
|
+
typeof (entry as WorkflowFutureStageRosterEntry).target === "string" &&
|
|
118
|
+
typeof (entry as WorkflowFutureStageRosterEntry).queuedCount === "number" &&
|
|
119
|
+
Number.isInteger((entry as WorkflowFutureStageRosterEntry).queuedCount) &&
|
|
120
|
+
(entry as WorkflowFutureStageRosterEntry).queuedCount >= 0 &&
|
|
121
|
+
typeof (entry as WorkflowFutureStageRosterEntry).group === "string",
|
|
122
|
+
)
|
|
123
|
+
);
|
|
124
|
+
}
|
|
86
125
|
function isWorkflowStageRosterEntries(value: unknown): value is WorkflowStageRosterEntry[] {
|
|
87
126
|
return (
|
|
88
127
|
Array.isArray(value) &&
|
|
@@ -181,7 +220,7 @@ export class IntercomClient extends EventEmitter {
|
|
|
181
220
|
}
|
|
182
221
|
|
|
183
222
|
if (socket.destroyed || socket.writableEnded || !socket.writable) {
|
|
184
|
-
throw new
|
|
223
|
+
throw new IntercomClientDisconnectedError();
|
|
185
224
|
}
|
|
186
225
|
|
|
187
226
|
return socket;
|
|
@@ -240,7 +279,7 @@ export class IntercomClient extends EventEmitter {
|
|
|
240
279
|
const onClose = () => {
|
|
241
280
|
const wasConnecting = !settled && !this._sessionId;
|
|
242
281
|
const wasDisconnecting = this.disconnecting;
|
|
243
|
-
const disconnectError = this.disconnectError ?? new
|
|
282
|
+
const disconnectError = this.disconnectError ?? new IntercomClientDisconnectedError();
|
|
244
283
|
this.disconnecting = false;
|
|
245
284
|
cleanupConnectionAttempt();
|
|
246
285
|
cleanupSocketListeners();
|
|
@@ -262,7 +301,21 @@ export class IntercomClient extends EventEmitter {
|
|
|
262
301
|
|
|
263
302
|
const onSocketError = (err: Error) => {
|
|
264
303
|
if (connectionEstablished) {
|
|
265
|
-
|
|
304
|
+
// A transport error on an already-registered socket (ECONNRESET, EPIPE,
|
|
305
|
+
// ETIMEDOUT, or a write-after-end from our own write) is a *recoverable*
|
|
306
|
+
// disconnect: the broker connection is gone, and the lightweight wrapper
|
|
307
|
+
// re-imports and reconnects on the next call. Record it as the typed
|
|
308
|
+
// recoverable error so `onClose` rejects pending work and emits
|
|
309
|
+
// `disconnected` with something the classifier recognizes, and keep the
|
|
310
|
+
// raw transport error as `cause` so the code is still diagnosable.
|
|
311
|
+
//
|
|
312
|
+
// `??=`, not `=`: `onReaderError` records a protocol error and then
|
|
313
|
+
// destroys the socket, and a socket 'error' can still follow. Overwriting
|
|
314
|
+
// would silently downgrade a non-recoverable protocol failure into a
|
|
315
|
+
// recoverable one. First error recorded wins.
|
|
316
|
+
this.disconnectError ??= new IntercomClientDisconnectedError({ cause: err });
|
|
317
|
+
// The raw error keeps flowing to `error` listeners: that channel exists for
|
|
318
|
+
// diagnosis, and the transport code is what a debugger wants to see.
|
|
266
319
|
this.emit("error", err);
|
|
267
320
|
}
|
|
268
321
|
};
|
|
@@ -359,19 +412,24 @@ export class IntercomClient extends EventEmitter {
|
|
|
359
412
|
break;
|
|
360
413
|
}
|
|
361
414
|
case "sessions": {
|
|
362
|
-
const { requestId, sessions, workflowStages } = brokerMessage;
|
|
415
|
+
const { requestId, sessions, workflowStages, workflowFutureStages } = brokerMessage;
|
|
363
416
|
if (
|
|
364
417
|
typeof requestId !== "string" ||
|
|
365
418
|
!Array.isArray(sessions) ||
|
|
366
419
|
!sessions.every(isSessionInfo) ||
|
|
367
|
-
(workflowStages !== undefined && !isWorkflowStageRosterEntries(workflowStages))
|
|
420
|
+
(workflowStages !== undefined && !isWorkflowStageRosterEntries(workflowStages)) ||
|
|
421
|
+
(workflowFutureStages !== undefined && !isWorkflowFutureStageRosterEntries(workflowFutureStages))
|
|
368
422
|
) {
|
|
369
423
|
throw new Error("Invalid sessions message");
|
|
370
424
|
}
|
|
371
425
|
const pending = this.pendingLists.get(requestId);
|
|
372
426
|
if (!pending) return;
|
|
373
427
|
this.pendingLists.delete(requestId);
|
|
374
|
-
pending.resolve({
|
|
428
|
+
pending.resolve({
|
|
429
|
+
sessions,
|
|
430
|
+
workflowStages: workflowStages ?? [],
|
|
431
|
+
workflowFutureStages: workflowFutureStages ?? [],
|
|
432
|
+
});
|
|
375
433
|
break;
|
|
376
434
|
}
|
|
377
435
|
case "groups": {
|
|
@@ -416,14 +474,14 @@ export class IntercomClient extends EventEmitter {
|
|
|
416
474
|
break;
|
|
417
475
|
}
|
|
418
476
|
case "pending_stage_message": {
|
|
419
|
-
const { requestId, from, senderRegistrationName, senderReturnAddress, runId,
|
|
477
|
+
const { requestId, from, senderRegistrationName, senderReturnAddress, runId, target, message, live } = brokerMessage;
|
|
420
478
|
if (
|
|
421
479
|
typeof requestId !== "string" ||
|
|
422
480
|
!isSessionInfo(from) ||
|
|
423
481
|
(senderRegistrationName !== undefined && typeof senderRegistrationName !== "string") ||
|
|
424
482
|
(senderReturnAddress !== undefined && typeof senderReturnAddress !== "string") ||
|
|
425
483
|
typeof runId !== "string" ||
|
|
426
|
-
typeof
|
|
484
|
+
typeof target !== "string" ||
|
|
427
485
|
!isMessage(message) ||
|
|
428
486
|
(live !== undefined && typeof live !== "boolean")
|
|
429
487
|
) {
|
|
@@ -435,7 +493,7 @@ export class IntercomClient extends EventEmitter {
|
|
|
435
493
|
...(senderRegistrationName === undefined ? {} : { senderRegistrationName }),
|
|
436
494
|
...(senderReturnAddress === undefined ? {} : { senderReturnAddress }),
|
|
437
495
|
runId,
|
|
438
|
-
|
|
496
|
+
target,
|
|
439
497
|
message,
|
|
440
498
|
...(live === true ? { live: true } : {}),
|
|
441
499
|
} satisfies PendingStageMessageRequest);
|
|
@@ -453,6 +511,25 @@ export class IntercomClient extends EventEmitter {
|
|
|
453
511
|
} satisfies PendingStageNotificationRequest);
|
|
454
512
|
break;
|
|
455
513
|
}
|
|
514
|
+
case "sticky_live_delivered": {
|
|
515
|
+
const { runId, messageId, target, deliveredTargets } = brokerMessage;
|
|
516
|
+
if (
|
|
517
|
+
typeof runId !== "string" ||
|
|
518
|
+
typeof messageId !== "string" ||
|
|
519
|
+
typeof target !== "string" ||
|
|
520
|
+
!Array.isArray(deliveredTargets) ||
|
|
521
|
+
!deliveredTargets.every((entry) => typeof entry === "string")
|
|
522
|
+
) {
|
|
523
|
+
throw new Error("Invalid sticky live-delivery event");
|
|
524
|
+
}
|
|
525
|
+
this.emit("sticky_live_delivered", {
|
|
526
|
+
runId,
|
|
527
|
+
messageId,
|
|
528
|
+
target,
|
|
529
|
+
deliveredTargets,
|
|
530
|
+
} satisfies StickyLiveDeliveredNotice);
|
|
531
|
+
break;
|
|
532
|
+
}
|
|
456
533
|
case "live_workflow_stage_route_registered": {
|
|
457
534
|
const { requestId } = brokerMessage;
|
|
458
535
|
if (typeof requestId !== "string") throw new Error("Invalid live workflow-stage route registration");
|
|
@@ -463,18 +540,25 @@ export class IntercomClient extends EventEmitter {
|
|
|
463
540
|
break;
|
|
464
541
|
}
|
|
465
542
|
case "queued": {
|
|
466
|
-
|
|
543
|
+
const { messageId, attemptId, target, position, notInKnownSet } = brokerMessage;
|
|
467
544
|
if (
|
|
468
545
|
typeof messageId !== "string" ||
|
|
469
546
|
(attemptId !== undefined && typeof attemptId !== "string") ||
|
|
470
|
-
|
|
471
|
-
typeof stageKey !== "string" ||
|
|
547
|
+
typeof target !== "string" ||
|
|
472
548
|
typeof position !== "number" ||
|
|
473
|
-
position < 1
|
|
549
|
+
position < 1 ||
|
|
550
|
+
(notInKnownSet !== undefined && notInKnownSet !== true)
|
|
474
551
|
) {
|
|
475
552
|
throw new Error("Invalid queued message");
|
|
476
553
|
}
|
|
477
|
-
|
|
554
|
+
const result = {
|
|
555
|
+
id: messageId,
|
|
556
|
+
delivered: false,
|
|
557
|
+
queued: true,
|
|
558
|
+
target,
|
|
559
|
+
position,
|
|
560
|
+
...(notInKnownSet === true ? { notInKnownSet: true as const } : {}),
|
|
561
|
+
} as const;
|
|
478
562
|
if (attemptId === undefined) this.pendingSends.resolveLegacy(messageId, result);
|
|
479
563
|
else this.pendingSends.resolve(messageId, attemptId, result);
|
|
480
564
|
break;
|
|
@@ -495,7 +579,7 @@ export class IntercomClient extends EventEmitter {
|
|
|
495
579
|
typeof messageId !== "string" ||
|
|
496
580
|
(attemptId !== undefined && typeof attemptId !== "string") ||
|
|
497
581
|
typeof reason !== "string" ||
|
|
498
|
-
(reasonCode !== undefined && reasonCode !== "message_id_conflict")
|
|
582
|
+
(reasonCode !== undefined && reasonCode !== "message_id_conflict" && reasonCode !== "session_not_found")
|
|
499
583
|
) {
|
|
500
584
|
throw new Error("Invalid delivery_failed message");
|
|
501
585
|
}
|
|
@@ -603,7 +687,7 @@ export class IntercomClient extends EventEmitter {
|
|
|
603
687
|
}
|
|
604
688
|
this.disconnecting = true;
|
|
605
689
|
this.disconnectError = null;
|
|
606
|
-
this.failPending(new
|
|
690
|
+
this.failPending(new IntercomClientDisconnectedError());
|
|
607
691
|
await new Promise<void>((resolve) => {
|
|
608
692
|
let settled = false;
|
|
609
693
|
const finish = () => {
|
|
@@ -768,8 +852,16 @@ export class IntercomClient extends EventEmitter {
|
|
|
768
852
|
group: string,
|
|
769
853
|
capability: string,
|
|
770
854
|
stages?: WorkflowStageRosterAnnouncement[],
|
|
855
|
+
possibleStages?: WorkflowPossibleStageAnnouncement[],
|
|
771
856
|
): void {
|
|
772
|
-
writeMessage(this.requireActiveSocket(), {
|
|
857
|
+
writeMessage(this.requireActiveSocket(), {
|
|
858
|
+
type: "register_pending_stage_route",
|
|
859
|
+
runId,
|
|
860
|
+
group,
|
|
861
|
+
capability,
|
|
862
|
+
stages,
|
|
863
|
+
possibleStages,
|
|
864
|
+
});
|
|
773
865
|
}
|
|
774
866
|
|
|
775
867
|
registerLiveWorkflowStageRoute(runId: string, stageKeys: readonly string[], capability: string): Promise<void> {
|
|
@@ -802,16 +894,25 @@ export class IntercomClient extends EventEmitter {
|
|
|
802
894
|
writeMessage(
|
|
803
895
|
socket,
|
|
804
896
|
result.outcome === "queued"
|
|
805
|
-
? {
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
897
|
+
? {
|
|
898
|
+
type: "pending_stage_message_result",
|
|
899
|
+
requestId,
|
|
900
|
+
outcome: "queued",
|
|
901
|
+
position: result.position,
|
|
902
|
+
...(result.notInKnownSet === true ? { notInKnownSet: true as const } : {}),
|
|
903
|
+
...(result.forwardTargets === undefined ? {} : { forwardTargets: [...result.forwardTargets] }),
|
|
904
|
+
}
|
|
905
|
+
: result.outcome === "forward"
|
|
906
|
+
? { type: "pending_stage_message_result", requestId, outcome: "forward", target: result.target }
|
|
907
|
+
: result.outcome === "refused"
|
|
908
|
+
? {
|
|
909
|
+
type: "pending_stage_message_result",
|
|
910
|
+
requestId,
|
|
911
|
+
outcome: "refused",
|
|
912
|
+
reason: result.reason,
|
|
913
|
+
...(result.reasonCode === undefined ? {} : { reasonCode: result.reasonCode }),
|
|
914
|
+
}
|
|
915
|
+
: { type: "pending_stage_message_result", requestId, outcome: result.outcome },
|
|
815
916
|
);
|
|
816
917
|
}
|
|
817
918
|
|
|
@@ -863,7 +964,12 @@ export class IntercomClient extends EventEmitter {
|
|
|
863
964
|
const messageId = options.messageId ?? randomUUID();
|
|
864
965
|
let acquired;
|
|
865
966
|
try {
|
|
866
|
-
|
|
967
|
+
const pendingSignature = JSON.stringify({
|
|
968
|
+
transportTarget: to,
|
|
969
|
+
logicalSignature: buildSendSignature(options.logicalTarget ?? to, options),
|
|
970
|
+
requirePendingReply: options.requirePendingReply ?? false,
|
|
971
|
+
});
|
|
972
|
+
acquired = this.pendingSends.acquire(messageId, pendingSignature, 10000);
|
|
867
973
|
} catch (error) {
|
|
868
974
|
return Promise.reject(toError(error));
|
|
869
975
|
}
|
|
@@ -878,7 +984,15 @@ export class IntercomClient extends EventEmitter {
|
|
|
878
984
|
content: { text: options.text, attachments: options.attachments },
|
|
879
985
|
};
|
|
880
986
|
try {
|
|
881
|
-
writeMessage(socket, {
|
|
987
|
+
writeMessage(socket, {
|
|
988
|
+
type,
|
|
989
|
+
to,
|
|
990
|
+
...(options.logicalTarget === undefined ? {} : { logicalTarget: options.logicalTarget }),
|
|
991
|
+
...(options.requirePendingReply === undefined ? {} : { requirePendingReply: options.requirePendingReply }),
|
|
992
|
+
message,
|
|
993
|
+
attemptId: acquired.attempt.attemptId,
|
|
994
|
+
...extra,
|
|
995
|
+
});
|
|
882
996
|
} catch (error) {
|
|
883
997
|
this.pendingSends.reject(acquired.attempt, toError(error));
|
|
884
998
|
}
|