@bastani/atomic 0.9.16-alpha.3 → 0.9.16-alpha.5
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 +62 -0
- package/README.md +11 -6
- package/dist/builtin/intercom/CHANGELOG.md +15 -0
- package/dist/builtin/intercom/README.md +6 -4
- package/dist/builtin/intercom/broker/broker.ts +34 -8
- package/dist/builtin/intercom/broker/client.ts +13 -0
- package/dist/builtin/intercom/broker/pending-question-index.ts +50 -0
- package/dist/builtin/intercom/broker/send-handler.ts +8 -0
- package/dist/builtin/intercom/index.bundle.mjs +2359 -1466
- package/dist/builtin/intercom/package.json +2 -2
- package/dist/builtin/intercom/skills/intercom/SKILL.md +20 -19
- package/dist/builtin/mcp/index.bundle.mjs +2132 -1321
- package/dist/builtin/mcp/package.json +2 -2
- package/dist/builtin/subagents/CHANGELOG.md +11 -0
- package/dist/builtin/subagents/README.md +3 -3
- package/dist/builtin/subagents/package.json +3 -3
- package/dist/builtin/subagents/skills/subagent/SKILL.md +4 -4
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +3059 -1861
- package/dist/builtin/web-access/index.bundle.mjs +2113 -1302
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +20 -0
- package/dist/builtin/workflows/README.md +1 -1
- package/dist/builtin/workflows/builtin/goal-ledger.ts +54 -10
- package/dist/builtin/workflows/builtin/goal-runner.ts +57 -12
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +13948 -12304
- package/dist/builtin/workflows/src/index.bundle.mjs +2642 -1526
- package/dist/bun/split-loader.js +2 -1
- package/dist/bun/split-loader.js.map +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +6 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +2 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/config-package-identity.d.ts +22 -0
- package/dist/config-package-identity.d.ts.map +1 -0
- package/dist/config-package-identity.js +74 -0
- package/dist/config-package-identity.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -11
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-auto-compaction.js +64 -28
- package/dist/core/agent-session-auto-compaction.js.map +1 -1
- package/dist/core/agent-session-compaction.d.ts +2 -0
- package/dist/core/agent-session-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-compaction.js +25 -5
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-custom-message-commit.d.ts.map +1 -1
- package/dist/core/agent-session-custom-message-commit.js +12 -0
- package/dist/core/agent-session-custom-message-commit.js.map +1 -1
- package/dist/core/agent-session-events.d.ts.map +1 -1
- package/dist/core/agent-session-events.js +2 -0
- package/dist/core/agent-session-events.js.map +1 -1
- package/dist/core/agent-session-export.d.ts +3 -1
- package/dist/core/agent-session-export.d.ts.map +1 -1
- package/dist/core/agent-session-export.js +22 -2
- package/dist/core/agent-session-export.js.map +1 -1
- package/dist/core/agent-session-message-queue.d.ts +3 -0
- package/dist/core/agent-session-message-queue.d.ts.map +1 -1
- package/dist/core/agent-session-message-queue.js +10 -0
- package/dist/core/agent-session-message-queue.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +15 -9
- 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 +8 -13
- package/dist/core/agent-session-models.d.ts.map +1 -1
- package/dist/core/agent-session-models.js +53 -19
- package/dist/core/agent-session-models.js.map +1 -1
- package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-post-tool-compaction.js +12 -0
- package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
- package/dist/core/agent-session-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js +3 -1
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session-tool-registry.js +3 -3
- package/dist/core/agent-session-tool-registry.js.map +1 -1
- package/dist/core/agent-session-transfer.d.ts.map +1 -1
- package/dist/core/agent-session-transfer.js +1 -0
- package/dist/core/agent-session-transfer.js.map +1 -1
- package/dist/core/agent-session-tree.d.ts.map +1 -1
- package/dist/core/agent-session-tree.js +1 -1
- package/dist/core/agent-session-tree.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +3 -0
- 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 +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/auth-storage-backends.d.ts.map +1 -1
- package/dist/core/auth-storage-backends.js +10 -6
- package/dist/core/auth-storage-backends.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +4 -3
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/builtin-packages.d.ts.map +1 -1
- package/dist/core/builtin-packages.js +2 -1
- package/dist/core/builtin-packages.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +6 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction-runner.d.ts +3 -1
- package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
- package/dist/core/compaction/compaction-runner.js +30 -4
- package/dist/core/compaction/compaction-runner.js.map +1 -1
- package/dist/core/compaction/compaction-types.d.ts +3 -1
- 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/range-planner.d.ts +3 -1
- package/dist/core/compaction/range-planner.d.ts.map +1 -1
- package/dist/core/compaction/range-planner.js +11 -1
- package/dist/core/compaction/range-planner.js.map +1 -1
- package/dist/core/compaction/session-summarization.d.ts.map +1 -1
- package/dist/core/compaction/session-summarization.js +6 -0
- package/dist/core/compaction/session-summarization.js.map +1 -1
- package/dist/core/extensions/api-types.d.ts +8 -3
- 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/index.d.ts +2 -2
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader-api.d.ts +5 -1
- package/dist/core/extensions/loader-api.d.ts.map +1 -1
- package/dist/core/extensions/loader-api.js +124 -36
- package/dist/core/extensions/loader-api.js.map +1 -1
- package/dist/core/extensions/loader-core.d.ts.map +1 -1
- package/dist/core/extensions/loader-core.js +18 -4
- package/dist/core/extensions/loader-core.js.map +1 -1
- package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
- package/dist/core/extensions/loader-runtime.js +10 -2
- package/dist/core/extensions/loader-runtime.js.map +1 -1
- package/dist/core/extensions/session-events.d.ts +11 -2
- package/dist/core/extensions/session-events.d.ts.map +1 -1
- package/dist/core/extensions/session-events.js.map +1 -1
- package/dist/core/extensions/tool-events.d.ts +13 -3
- package/dist/core/extensions/tool-events.d.ts.map +1 -1
- package/dist/core/extensions/tool-events.js +3 -0
- package/dist/core/extensions/tool-events.js.map +1 -1
- package/dist/core/extensions/types.d.ts +1 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/ui-types.d.ts +2 -2
- package/dist/core/extensions/ui-types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +1 -1
- package/dist/core/footer-data-provider.js +1 -1
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/keybindings.d.ts +17 -16
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +23 -6
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +2 -1
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-resolver-initial.d.ts +1 -0
- package/dist/core/model-resolver-initial.d.ts.map +1 -1
- package/dist/core/model-resolver-initial.js +9 -5
- package/dist/core/model-resolver-initial.js.map +1 -1
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js +2 -1
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/package-manager-git.d.ts.map +1 -1
- package/dist/core/package-manager-git.js +2 -1
- package/dist/core/package-manager-git.js.map +1 -1
- package/dist/core/package-manager-manifest.d.ts.map +1 -1
- package/dist/core/package-manager-manifest.js +2 -1
- package/dist/core/package-manager-manifest.js.map +1 -1
- package/dist/core/package-manager-npm.d.ts.map +1 -1
- package/dist/core/package-manager-npm.js +4 -3
- package/dist/core/package-manager-npm.js.map +1 -1
- package/dist/core/package-manager-operations.d.ts.map +1 -1
- package/dist/core/package-manager-operations.js +2 -1
- package/dist/core/package-manager-operations.js.map +1 -1
- package/dist/core/package-manager-resource-collector.d.ts.map +1 -1
- package/dist/core/package-manager-resource-collector.js +2 -1
- package/dist/core/package-manager-resource-collector.js.map +1 -1
- package/dist/core/package-manager-resource-files.d.ts.map +1 -1
- package/dist/core/package-manager-resource-files.js +7 -2
- package/dist/core/package-manager-resource-files.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +2 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader-context-files.d.ts.map +1 -1
- package/dist/core/resource-loader-context-files.js +3 -2
- package/dist/core/resource-loader-context-files.js.map +1 -1
- package/dist/core/sdk-exports.d.ts +5 -3
- package/dist/core/sdk-exports.d.ts.map +1 -1
- package/dist/core/sdk-exports.js +4 -2
- package/dist/core/sdk-exports.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +7 -3
- 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 +4 -4
- package/dist/core/session-manager-core.js.map +1 -1
- package/dist/core/session-manager-entries.d.ts +2 -2
- package/dist/core/session-manager-entries.d.ts.map +1 -1
- package/dist/core/session-manager-entries.js +4 -3
- package/dist/core/session-manager-entries.js.map +1 -1
- package/dist/core/session-manager-storage.d.ts.map +1 -1
- package/dist/core/session-manager-storage.js +4 -2
- package/dist/core/session-manager-storage.js.map +1 -1
- package/dist/core/session-manager-types.d.ts +2 -0
- package/dist/core/session-manager-types.d.ts.map +1 -1
- package/dist/core/session-manager-types.js.map +1 -1
- package/dist/core/settings-diagnostics.d.ts +4 -0
- package/dist/core/settings-diagnostics.d.ts.map +1 -0
- package/dist/core/settings-diagnostics.js +12 -0
- package/dist/core/settings-diagnostics.js.map +1 -0
- package/dist/core/settings-manager-basic-accessors.d.ts +4 -0
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +23 -0
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-manager-core.d.ts.map +1 -1
- package/dist/core/settings-manager-core.js +10 -2
- package/dist/core/settings-manager-core.js.map +1 -1
- package/dist/core/settings-storage.d.ts.map +1 -1
- package/dist/core/settings-storage.js +10 -3
- package/dist/core/settings-storage.js.map +1 -1
- package/dist/core/settings-types.d.ts +2 -0
- 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.map +1 -1
- package/dist/core/skills.js +51 -33
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +3 -2
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +11 -2
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/ask-user-question/config.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/config.js +2 -1
- package/dist/core/tools/ask-user-question/config.js.map +1 -1
- package/dist/core/tools/bash.d.ts +13 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +9 -5
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/index.d.ts +21 -5
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +45 -13
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/powershell.d.ts +83 -0
- package/dist/core/tools/powershell.d.ts.map +1 -0
- package/dist/core/tools/powershell.js +89 -0
- package/dist/core/tools/powershell.js.map +1 -0
- package/dist/core/usage-totals.d.ts.map +1 -1
- package/dist/core/usage-totals.js +2 -1
- package/dist/core/usage-totals.js.map +1 -1
- package/dist/extensions/llama/client.d.ts +6 -0
- package/dist/extensions/llama/client.d.ts.map +1 -1
- package/dist/extensions/llama/client.js +12 -0
- package/dist/extensions/llama/client.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +2 -0
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts +3 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +25 -8
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/index-extensions.d.ts +2 -2
- package/dist/index-extensions.d.ts.map +1 -1
- package/dist/index-extensions.js +1 -1
- package/dist/index-extensions.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/main-stdio.d.ts.map +1 -1
- package/dist/main-stdio.js +4 -2
- package/dist/main-stdio.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +10 -3
- package/dist/main.js.map +1 -1
- package/dist/migrations-config-values.d.ts.map +1 -1
- package/dist/migrations-config-values.js +2 -1
- package/dist/migrations-config-values.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +5 -4
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +2 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +2 -2
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +27 -16
- package/dist/modes/interactive/components/model-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 +67 -14
- package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.d.ts +7 -1
- package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.js +38 -3
- package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts +5 -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/components/thinking-selector.d.ts +15 -6
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +65 -27
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js +2 -1
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-agent-events.js +2 -0
- package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-login.d.ts +1 -1
- package/dist/modes/interactive/interactive-auth-login.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-auth-login.js +9 -1
- package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
- package/dist/modes/interactive/interactive-autocomplete.js +9 -0
- package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.js +2 -0
- package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-editor-actions.js +11 -10
- package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
- package/dist/modes/interactive/interactive-input-handling.js +6 -0
- package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.js +1 -0
- package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +7 -0
- package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.js +0 -1
- package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-types.d.ts +3 -0
- package/dist/modes/interactive/interactive-mode-types.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-types.js.map +1 -1
- package/dist/modes/interactive/interactive-model-routing.d.ts +16 -1
- package/dist/modes/interactive/interactive-model-routing.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-model-routing.js +62 -3
- package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-render-chat.js +18 -0
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive/interactive-selectors.js +10 -8
- package/dist/modes/interactive/interactive-selectors.js.map +1 -1
- package/dist/modes/interactive/interactive-slash-commands.js +6 -5
- package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +9 -1
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive/theme/theme-parse.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-parse.js +2 -1
- package/dist/modes/interactive/theme/theme-parse.js.map +1 -1
- package/dist/modes/json-event.d.ts +15 -18
- package/dist/modes/json-event.d.ts.map +1 -1
- package/dist/modes/json-event.js +21 -17
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/rpc/rpc-client-api.d.ts +4 -0
- package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client-api.js +3 -0
- package/dist/modes/rpc/rpc-client-api.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +2 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/management-http.d.ts +2 -0
- package/dist/utils/management-http.d.ts.map +1 -1
- package/dist/utils/management-http.js +11 -7
- package/dist/utils/management-http.js.map +1 -1
- package/dist/utils/shell.d.ts +3 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +41 -10
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/syntax-highlight.d.ts +1 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/dist/utils/syntax-highlight.js +61 -1
- package/dist/utils/syntax-highlight.js.map +1 -1
- package/dist/utils/text.d.ts +8 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +9 -0
- package/dist/utils/text.js.map +1 -0
- package/docs/changelog.mdx +1 -1
- package/docs/compaction.md +16 -3
- package/docs/containerization.md +17 -0
- package/docs/custom-provider.md +1 -1
- package/docs/environment-variables.md +3 -3
- package/docs/extensions.md +22 -5
- package/docs/index.md +12 -10
- package/docs/intercom.md +5 -3
- package/docs/keybindings.md +1 -1
- package/docs/llama-cpp.md +1 -1
- package/docs/models.md +2 -0
- package/docs/quickstart.md +80 -9
- package/docs/rpc.md +24 -1
- package/docs/sdk.md +11 -0
- package/docs/settings.md +16 -7
- package/docs/skills.md +3 -2
- package/docs/subagents.md +7 -0
- package/docs/termux.md +1 -1
- package/docs/usage.md +4 -3
- package/docs/windows.md +33 -3
- package/docs/workflows.md +20 -10
- package/examples/extensions/border-status-editor.ts +1 -1
- package/examples/extensions/git-checkpoint.ts +1 -1
- package/examples/extensions/notify.ts +1 -1
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +73 -65
- package/package.json +11 -13
package/docs/index.md
CHANGED
|
@@ -9,9 +9,7 @@ Atomic is the loop engine for all engineering work: a terminal coding-agent runt
|
|
|
9
9
|
|
|
10
10
|
## Quick start
|
|
11
11
|
|
|
12
|
-
Install
|
|
13
|
-
|
|
14
|
-
With npm:
|
|
12
|
+
Install the published package globally with npm:
|
|
15
13
|
|
|
16
14
|
```bash
|
|
17
15
|
npm install -g @bastani/atomic
|
|
@@ -29,19 +27,23 @@ With Bun:
|
|
|
29
27
|
bun add -g @bastani/atomic
|
|
30
28
|
```
|
|
31
29
|
|
|
32
|
-
Atomic does not require package install scripts
|
|
33
|
-
|
|
34
|
-
Or download an `atomic-*` archive from the Atomic GitHub Release for your platform.
|
|
30
|
+
Package installation requires Node.js. Atomic does not require package install scripts; add `--ignore-scripts` if you want to disable dependency lifecycle scripts during a package install.
|
|
35
31
|
|
|
36
|
-
|
|
32
|
+
Alternatively, install the self-contained release archive, which needs no Node.js or package manager.
|
|
37
33
|
|
|
38
|
-
|
|
34
|
+
On macOS or Linux:
|
|
39
35
|
|
|
40
36
|
```bash
|
|
41
|
-
|
|
37
|
+
curl -fsSL https://raw.githubusercontent.com/bastani-inc/atomic/main/install.sh | sh
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
On Windows PowerShell:
|
|
41
|
+
|
|
42
|
+
```powershell
|
|
43
|
+
irm https://raw.githubusercontent.com/bastani-inc/atomic/main/install.ps1 | iex
|
|
42
44
|
```
|
|
43
45
|
|
|
44
|
-
The
|
|
46
|
+
The archive installer verifies the GitHub Release checksum and installs the full payload under a versioned root. See the [Quickstart](/quickstart#release-archive) for its parameters (`ATOMIC_VERSION`, `ATOMIC_INSTALL_DIR`, `ATOMIC_BIN_DIR`, `GITHUB_TOKEN`/`GH_TOKEN`), default paths, and PATH guidance.
|
|
45
47
|
|
|
46
48
|
Then run it in a project directory:
|
|
47
49
|
|
package/docs/intercom.md
CHANGED
|
@@ -152,7 +152,7 @@ Name sessions with `/name` so they can target each other (for example `/name pla
|
|
|
152
152
|
| `leave` | Returns the session to its resolved home group from startup. It takes no `group` parameter. |
|
|
153
153
|
| `list` | Returns the current session plus other active intercom-connected sessions with name, full session ID, working directory, model, and live status (`idle`, `thinking`, or `tool:<name>`, derived from lifecycle events). Every displayed full session ID is a valid target. |
|
|
154
154
|
| `send` | Fire-and-forget delivery. Requires `to` and `message`; returns delivery confirmation or the delivery-failure reason. Cannot message the current session. |
|
|
155
|
-
| `ask` | Sends a message and blocks until the recipient replies (10-minute timeout). From a foreground child to its resolved launching parent, it instead ends the child and returns a fresh-subagent handoff through the parent `subagent` call. |
|
|
155
|
+
| `ask` | Sends a message and blocks until the recipient replies (10-minute timeout). A recipient disconnect after delivery fails the wait promptly; the timeout remains the backstop for a connected but unresponsive recipient. From a foreground child to its resolved launching parent, it instead ends the child and returns a fresh-subagent handoff through the parent `subagent` call. |
|
|
156
156
|
| `reply` | Replies to the intercom-triggered message of the current turn; otherwise falls back to the single unresolved inbound ask. With multiple pending asks, pass `to` or inspect with `pending` first. |
|
|
157
157
|
| `pending` | Lists unresolved inbound asks with sender, message ID, elapsed time, and a short preview. |
|
|
158
158
|
| `status` | Shows connection status, session ID, current group, and the count of active sessions in that group. A `group` filter remains a read-only peek. |
|
|
@@ -185,9 +185,11 @@ A session's home group is resolved with this precedence: explicit stage/task/sub
|
|
|
185
185
|
|
|
186
186
|
**`send`** is fire-and-forget — the tool returns immediately after delivery. By default it sends immediately, including in interactive sessions. If you want an approval dialog before non-reply sends, set `confirmSend: true` in config; replies that include `replyTo` still skip confirmation so reply-hint flows continue without an extra approval step.
|
|
187
187
|
|
|
188
|
-
**`ask`** normally sends the message and blocks until the recipient responds (10-minute timeout).
|
|
188
|
+
**`ask`** normally sends the message and blocks until the recipient responds (10-minute timeout). If the recipient disconnects after delivery, only the exact ask to that peer fails promptly; the timeout remains the backstop for a connected but unresponsive recipient. Up to `maxPendingAsks` waits (default: 6) may run concurrently, including same-target and mixed-target fan-out. Exact sender/message correlation keeps out-of-order replies and selective disconnects from cross-settling another call. A foreground child asking its resolved launching parent is the exception: Atomic ends the child before send or waiter admission and returns a dynamic `[TASK_CONTEXT]` handoff through the parent `subagent` call. Multiple children may hand off independently; each request is keyed by child/run identity and each request has a first-claim-wins owner.
|
|
189
189
|
|
|
190
|
-
**`
|
|
190
|
+
**`contact_supervisor`** keeps a narrower policy: one blocking decision/interview wait per child may coexist with ordinary peer asks, but a second concurrent supervisor wait receives `Already waiting for a supervisor reply`. Claimed foreground handoffs allocate no waiter. Mutual peer asks are supported, although both sessions must process inbound work to reply; the per-waiter timeout remains the backstop.
|
|
191
|
+
|
|
192
|
+
**`reply`** is receiver-side sugar for replying to an inbound ask. In the turn triggered by an incoming intercom message, `intercom({ action: "reply", message: "..." })` targets that exact sender and message automatically. If you reply later, it falls back to the single unresolved inbound ask; with multiple pending asks, use `pending` and pass `to`, or pass the listed message ID as `replyTo` to disambiguate multiple asks from the same sender. Under the hood this is still a normal `send` with the exact `replyTo` value.
|
|
191
193
|
|
|
192
194
|
### Attachments
|
|
193
195
|
|
package/docs/keybindings.md
CHANGED
|
@@ -87,7 +87,7 @@ The dedicated history actions always change history entries, regardless of the c
|
|
|
87
87
|
Interactive sessions always use this fullscreen viewport for the primary transcript scroll region. Mouse-wheel input scrolls the region under the pointer, falling back to the transcript over the fixed editor/status/footer dock. Clicking an OSC 8 hyperlink opens it in the default handler; the jump-to-bottom indicator's internal OSC 8 link returns the focused transcript surface to its live end, including an attached workflow stage chat. Dragging with the primary mouse button selects text and copies it to the clipboard. See [Terminal setup](/terminal-setup) for terminal-specific mouse and trackpad behavior.
|
|
88
88
|
|
|
89
89
|
|
|
90
|
-
Fullscreen text selection comes from the installed pi-tui 0.84.
|
|
90
|
+
Fullscreen text selection comes from the installed pi-tui 0.84.3 renderer. Drag with the primary button to select characters; double-click selects a word and triple-click selects a line. Focus changes and non-drag clicks clear transient selection state, preventing a stale highlight from appearing. A drag release reported with the generic SGR button code also ends the selection. The renderer also reduces mouse tracking in tmux, Zellij, and GNU Screen.
|
|
91
91
|
Fullscreen transcript bindings take precedence over editor bindings while the main editor has focus. The default unmodified navigation keys therefore control the transcript, while their `ctrl` variants continue to control the editor. When a fullscreen overlay or inline custom component has focus, Atomic sends matching viewport bindings to that component first. Returning `true` keeps the key local. For an in-process component, returning `false`, `undefined`, or `void` lets transcript scrolling handle it. A remote component's correlated reply falls through on `false`, failure, or timeout; `undefined` after disposal is dropped because that component no longer owns focus.
|
|
92
92
|
|
|
93
93
|
| Key | Editor action | Fullscreen action |
|
package/docs/llama-cpp.md
CHANGED
|
@@ -35,7 +35,7 @@ Run:
|
|
|
35
35
|
/login llama.cpp
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
Enter the router URL and optional API key. The default URL is `http://127.0.0.1:8080`. The same values can be supplied without `/login`:
|
|
38
|
+
Enter the router URL and optional API key. The default URL is `http://127.0.0.1:8080`. If the router uses `--no-models-autoload`, login only stores the connection; use `/llama` to load a model, then `/model` to select it. The same values can be supplied without `/login`:
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
41
|
export LLAMA_BASE_URL=http://127.0.0.1:8080
|
package/docs/models.md
CHANGED
|
@@ -334,6 +334,8 @@ Example for a model where thinking cannot be disabled:
|
|
|
334
334
|
|
|
335
335
|
Migration: older configs that used `compat.reasoningEffortMap` should move that mapping to model-level `thinkingLevelMap`. Use `null` for levels that should not appear in the UI.
|
|
336
336
|
|
|
337
|
+
`/thinking` opens the thinking-level selector. Enter applies the level to the current session only. Persist (the selector's save action) writes `settings.modelThinkingLevels` for the active model instead of replacing the global `defaultThinkingLevel`. Settings → Default thinking level per model lists those overrides.
|
|
338
|
+
|
|
337
339
|
### Context Window
|
|
338
340
|
|
|
339
341
|
`contextWindow` is the model's context size in tokens and drives local budgeting,
|
package/docs/quickstart.md
CHANGED
|
@@ -4,15 +4,15 @@ This page gets you from install to a useful first Atomic session. Atomic is the
|
|
|
4
4
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
7
|
-
- **Node.js
|
|
8
|
-
- **
|
|
9
|
-
- **Model-provider access** —
|
|
7
|
+
- **Package install:** Node.js 22.19 or newer plus npm, pnpm, Yarn, or Bun. Use Bun 1.4.0+ for Bun installs or workflow-authoring examples.
|
|
8
|
+
- **Release archive install:** macOS and Linux need `tar` and either `curl` or `wget`; Windows uses built-in PowerShell commands. This path does not need Node.js or a package manager.
|
|
9
|
+
- **Model-provider access** — use a supported subscription login or API key. Run `/login` after startup.
|
|
10
10
|
|
|
11
11
|
## Install
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
### Package managers
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Install with npm:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
npm install -g @bastani/atomic
|
|
@@ -30,7 +30,59 @@ With Bun:
|
|
|
30
30
|
bun add -g @bastani/atomic
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
Atomic does not require package install scripts.
|
|
33
|
+
Atomic does not require package install scripts. Add `--ignore-scripts` if you want to disable dependency lifecycle scripts during a package install.
|
|
34
|
+
|
|
35
|
+
### Release archive
|
|
36
|
+
|
|
37
|
+
Alternatively, install the self-contained release archive, which needs no Node.js or package manager.
|
|
38
|
+
|
|
39
|
+
On macOS or Linux:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
curl -fsSL https://raw.githubusercontent.com/bastani-inc/atomic/main/install.sh | sh
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
On Windows PowerShell:
|
|
46
|
+
|
|
47
|
+
```powershell
|
|
48
|
+
irm https://raw.githubusercontent.com/bastani-inc/atomic/main/install.ps1 | iex
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The installer downloads only the matching GitHub Release archive and `SHA256SUMS`, verifies the checksum, and keeps the complete payload in a versioned directory.
|
|
52
|
+
|
|
53
|
+
On macOS or Linux, the default paths are `~/.local/share/atomic` for versioned payloads and `~/.local/bin/atomic` for the launcher. The installer prints a paste-safe `export PATH=...` command if needed.
|
|
54
|
+
|
|
55
|
+
On Windows, the defaults are `%LOCALAPPDATA%\atomic` for payloads and `%LOCALAPPDATA%\atomic\bin\atomic.cmd` for the launcher. The installer updates the User PATH and current process, then asks you to restart the terminal.
|
|
56
|
+
|
|
57
|
+
The installer accepts these environment variables:
|
|
58
|
+
|
|
59
|
+
#### ATOMIC_VERSION
|
|
60
|
+
|
|
61
|
+
Pin an exact release tag instead of the latest release, or pass a flag that overrides it. On macOS or Linux:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
curl -fsSL https://raw.githubusercontent.com/bastani-inc/atomic/main/install.sh | sh -s -- --ref 0.9.11
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
On Windows PowerShell:
|
|
68
|
+
|
|
69
|
+
```powershell
|
|
70
|
+
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/bastani-inc/atomic/main/install.ps1))) -Ref 0.9.11
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Pins use Atomic's `MAJOR.MINOR.PATCH` or `MAJOR.MINOR.PATCH-alpha.REVISION` release tag form and are honored literally: if GitHub answers with a different release tag, the installer stops before downloading anything rather than installing a version you did not ask for.
|
|
74
|
+
|
|
75
|
+
#### ATOMIC_INSTALL_DIR
|
|
76
|
+
|
|
77
|
+
Override the install root that holds the versioned payloads (default `~/.local/share/atomic` on macOS/Linux, `%LOCALAPPDATA%\atomic` on Windows). On macOS/Linux, a relative value resolves against the physical directory where the installer starts and is used exactly as given, including any trailing whitespace or newline. The install root cannot equal or sit inside the launcher path (`ATOMIC_BIN_DIR/atomic`); impossible layouts fail before any download or filesystem change.
|
|
78
|
+
|
|
79
|
+
#### ATOMIC_BIN_DIR
|
|
80
|
+
|
|
81
|
+
Override the launcher directory (default `~/.local/bin` on macOS/Linux, `%LOCALAPPDATA%\atomic\bin` on Windows). Relative values resolve the same way as `ATOMIC_INSTALL_DIR`. It cannot sit inside the install root's `current` or `versions` directories, which the installer replaces on every install. A Unix value containing `:` cannot be one PATH entry, so the installer prints direct-run guidance instead of editing PATH.
|
|
82
|
+
|
|
83
|
+
#### GITHUB_TOKEN / GH_TOKEN
|
|
84
|
+
|
|
85
|
+
Optional; raises GitHub API limits on shared networks. Curl and GNU Wget keep the token in a protected temporary file instead of process arguments. BusyBox Wget remains supported without a token, and with a token when the latest-release redirect avoids the API; if an authenticated API fallback is needed, install curl or GNU Wget rather than exposing the token.
|
|
34
86
|
|
|
35
87
|
### Which runtime runs your workflows
|
|
36
88
|
|
|
@@ -38,7 +90,12 @@ How you install Atomic decides which runtime hosts it: a package-manager install
|
|
|
38
90
|
|
|
39
91
|
### Alpine and musl Linux archives
|
|
40
92
|
|
|
41
|
-
|
|
93
|
+
The shell installer detects Alpine and selects `atomic-linux-x64-musl.tar.gz` or `atomic-linux-arm64-musl.tar.gz`. Each archive includes its matching native search and PTY bindings plus payload-local `libgcc` and `libstdc++` runtimes, so stock Alpine needs no runtime package install.
|
|
94
|
+
|
|
95
|
+
Two features work differently on musl:
|
|
96
|
+
|
|
97
|
+
- **Clipboard:** the musl archives omit a clipboard native binding because `@mariozechner/clipboard` 0.3.9 publishes metadata-only musl stubs without a `.node` payload; Atomic uses Linux clipboard commands and OSC52 fallback instead.
|
|
98
|
+
- **Durable workflows:** the archives omit the glibc-linked `@embedded-postgres/*` binary packages, so durable workflows on Alpine require external Postgres via `DBOS_SYSTEM_DATABASE_URL` or Docker. Without a durable backend, Atomic uses a loud non-durable in-memory fallback.
|
|
42
99
|
|
|
43
100
|
Then start Atomic in the project directory you want it to work on:
|
|
44
101
|
|
|
@@ -49,15 +106,29 @@ atomic
|
|
|
49
106
|
|
|
50
107
|
## Uninstall
|
|
51
108
|
|
|
52
|
-
|
|
109
|
+
On macOS or Linux, for a default archive install, remove `~/.local/share/atomic` and the `~/.local/bin/atomic` link.
|
|
110
|
+
|
|
111
|
+
On Windows, remove `%LOCALAPPDATA%\atomic`. If you set `ATOMIC_BIN_DIR`, also remove `atomic.cmd` and the `atomic-current` junction from that directory, then remove the directory from your User PATH.
|
|
112
|
+
|
|
113
|
+
For a package install, remove the global package with the same package manager. With npm:
|
|
53
114
|
|
|
54
115
|
```bash
|
|
55
116
|
npm uninstall -g @bastani/atomic
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
With pnpm:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
56
122
|
pnpm remove -g @bastani/atomic
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
With Bun:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
57
128
|
bun remove -g @bastani/atomic
|
|
58
129
|
```
|
|
59
130
|
|
|
60
|
-
|
|
131
|
+
These commands remove the CLI only. User configuration, auth, sessions, and packages remain under `~/.atomic/agent/` unless you delete that directory yourself.
|
|
61
132
|
|
|
62
133
|
## Authenticate
|
|
63
134
|
|
package/docs/rpc.md
CHANGED
|
@@ -138,6 +138,29 @@ Response:
|
|
|
138
138
|
{"type": "response", "command": "abort", "success": true}
|
|
139
139
|
```
|
|
140
140
|
|
|
141
|
+
#### clear_queue
|
|
142
|
+
|
|
143
|
+
Remove queued steering and follow-up messages and return their text.
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
{"type": "clear_queue"}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Response:
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"type": "response",
|
|
153
|
+
"command": "clear_queue",
|
|
154
|
+
"success": true,
|
|
155
|
+
"data": {
|
|
156
|
+
"steering": ["Change direction"],
|
|
157
|
+
"followUp": ["Summarize when finished"]
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
To implement interactive Esc behavior, send `clear_queue` before `abort`, then restore the returned text in the client editor. `abort` continues queued messages when they remain in the session.
|
|
163
|
+
|
|
141
164
|
#### new_session
|
|
142
165
|
|
|
143
166
|
Start a fresh session. Can be cancelled by a `session_before_switch` extension event handler.
|
|
@@ -894,7 +917,7 @@ Events are streamed to stdout as JSON lines. Most events do not include an `id`;
|
|
|
894
917
|
| `message_start` | Message begins |
|
|
895
918
|
| `message_update` | Streaming update (text/thinking/toolcall deltas) |
|
|
896
919
|
| `message_end` | Message completes |
|
|
897
|
-
| `tool_execution_start` | Tool begins execution |
|
|
920
|
+
| `tool_execution_start` | Tool begins execution; includes `toolCallId`, `toolName`, and initial arguments |
|
|
898
921
|
| `tool_execution_update` | Tool execution progress (streaming output) |
|
|
899
922
|
| `tool_execution_end` | Tool completes |
|
|
900
923
|
| `bash_execution_update` | Correlated direct-bash stdout/stderr delta |
|
package/docs/sdk.md
CHANGED
|
@@ -608,6 +608,17 @@ const { session } = await createAgentSession({
|
|
|
608
608
|
|
|
609
609
|
Atomic's built-in `bash` tool matches upstream pi: when `bash` is enabled, commands execute through the configured shell with the Atomic process permissions. Use `tools`, `excludedTools`, or `noTools` to decide whether a session exposes the `bash` tool at all. Atomic no longer provides a command-level allow/deny option for `bash`; use an operating-system/container sandbox or a custom tool/extension when you need command allowlisting or stronger isolation.
|
|
610
610
|
|
|
611
|
+
|
|
612
|
+
#### PowerShell tool behavior
|
|
613
|
+
|
|
614
|
+
`createPowerShellTool()` and `createPowerShellToolDefinition()` provide the same tool used by interactive sessions. When their default local operations execute on native Windows, they prefer `pwsh.exe`, fall back to `powershell.exe`, and throw a clear error when neither executable is available. `createLocalPowerShellOperations()` and `getPowerShellConfig()` are also exported for custom integrations. The PowerShell factories expose the current `ATOMIC_*` and legacy `PI_*` session snapshot by default; set `exposeSessionEnvironment: false` to opt out.
|
|
615
|
+
|
|
616
|
+
```typescript
|
|
617
|
+
import { createPowerShellTool } from "@bastani/atomic";
|
|
618
|
+
|
|
619
|
+
const powershell = createPowerShellTool("C:\\path\\to\\project");
|
|
620
|
+
```
|
|
621
|
+
|
|
611
622
|
#### Tools with Custom cwd
|
|
612
623
|
|
|
613
624
|
When you pass a custom `cwd`, `createAgentSession()` builds selected built-in tools for that cwd.
|
package/docs/settings.md
CHANGED
|
@@ -7,7 +7,7 @@ Atomic uses JSON settings files with project settings overriding global settings
|
|
|
7
7
|
| `~/.atomic/agent/settings.json` | Global (all projects) |
|
|
8
8
|
| `.atomic/settings.json` | Project (current directory) |
|
|
9
9
|
|
|
10
|
-
Edit directly or use `/settings` for common options. Atomic also reads legacy `~/.pi/agent/settings.json` and `.pi/settings.json` as compatibility fallbacks, with `.atomic` paths taking precedence.
|
|
10
|
+
Edit directly or use `/settings` for common options. To save startup model defaults interactively, use `/model` and press Ctrl+S on the desired model; to save the startup thinking level, use `/thinking` and press Ctrl+S. Atomic also reads legacy `~/.pi/agent/settings.json` and `.pi/settings.json` as compatibility fallbacks, with `.atomic` paths taking precedence.
|
|
11
11
|
|
|
12
12
|
## Project Trust
|
|
13
13
|
|
|
@@ -31,12 +31,13 @@ Settings and trust JSON files may start with a UTF-8 BOM, as commonly written by
|
|
|
31
31
|
|
|
32
32
|
| Setting | Type | Default | Description |
|
|
33
33
|
|---------|------|---------|-------------|
|
|
34
|
-
| `defaultProvider` | string | - |
|
|
35
|
-
| `defaultModel` | string | - |
|
|
36
|
-
| `defaultThinkingLevel` | string | - | `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"`, `"max"`; the active model must support the selected level |
|
|
34
|
+
| `defaultProvider` | string | - | Startup provider (e.g., `"anthropic"`, `"openai"`; saved with Ctrl+S in `/model`, or edited manually) |
|
|
35
|
+
| `defaultModel` | string | - | Startup model ID (saved with Ctrl+S in `/model`, or edited manually) |
|
|
36
|
+
| `defaultThinkingLevel` | string | - | Startup thinking level (saved with Ctrl+S in `/thinking`, or edited manually): `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"`, `"max"`; the active model must support the selected level |
|
|
37
|
+
| `modelThinkingLevels` | object | - | Per-model startup thinking levels keyed by `"provider/modelId"`; configure from `/settings` → Default thinking level per model, or edit manually |
|
|
37
38
|
| `hideThinkingBlock` | boolean | `false` | Hide thinking blocks in output |
|
|
38
39
|
| `thinkingBudgets` | object | - | Custom token budgets per thinking level. Anthropic, Google, and Bedrock use these natively. OpenAI-compatible models use them when `compat.thinkingTokenBudgetField` (or `supportsThinkingTokenBudget`) is set. |
|
|
39
|
-
| `showCacheMissNotices` | boolean | `false` | Show transcript notices for significant prompt-cache misses and
|
|
40
|
+
| `showCacheMissNotices` | boolean | `false` | Show transcript notices for significant prompt-cache misses and billed compaction or branch-summary usage |
|
|
40
41
|
| `fallbackModels` | string[] | - | Ordered fallback models, written as `"provider/model"` with optional model-supported reasoning suffixes such as `:high`, `:xhigh`, or `:max`. Used by main-chat turns and, since compaction fallback rungs, borrowed for compaction planner requests |
|
|
41
42
|
|
|
42
43
|
`defaultProvider` and `defaultModel` form one exact saved selection when both are present. Atomic waits for built-in, configured, and extension provider registration before classifying that provider. If it remains unsupported, Atomic does not silently switch providers: interactive mode stays live with a generic configuration warning; print and JSON modes write the warning to stderr and exit nonzero before prompting (with JSON stdout remaining JSONL-clean); and RPC rejects `prompt` until a successful explicit `set_model` selects an available model or an explicit model cycle returns a different available model. A null or unchanged cycle does not clear the condition. If the provider is supported but its saved model is unknown or lacks configured authentication, normal automatic selection of an available authenticated model remains enabled; the same is true when either field is omitted. Valid extension-provider defaults can resolve after deferred extension loading. Update an unsupported pair or choose a model with `/model`.
|
|
@@ -327,7 +328,7 @@ On Windows, JSON paths must use forward slashes or escaped backslashes:
|
|
|
327
328
|
|---------|------|---------|-------------|
|
|
328
329
|
| `defaultTools` | string[] | - | Built-in tools enabled at startup. When omitted, Atomic uses its standard defaults |
|
|
329
330
|
|
|
330
|
-
`defaultTools` selects the built-in tools a session starts with. Extension and SDK custom tools stay enabled regardless
|
|
331
|
+
`defaultTools` selects the built-in tools a session starts with. Extension and SDK custom tools stay enabled regardless. Available built-ins are `read`, `bash`, `powershell`, `edit`, `write`, `find`, `search`, `ask_user_question`, `todo`, and `ls`:
|
|
331
332
|
|
|
332
333
|
```json
|
|
333
334
|
{
|
|
@@ -335,6 +336,14 @@ On Windows, JSON paths must use forward slashes or escaped backslashes:
|
|
|
335
336
|
}
|
|
336
337
|
```
|
|
337
338
|
|
|
339
|
+
On Windows, select `powershell` instead of `bash`, or include both:
|
|
340
|
+
|
|
341
|
+
```json
|
|
342
|
+
{
|
|
343
|
+
"defaultTools": ["read", "powershell", "edit", "write"]
|
|
344
|
+
}
|
|
345
|
+
```
|
|
346
|
+
|
|
338
347
|
An empty array starts with no built-in tools while preserving extension and custom tools. `--tools` replaces this behavior with a strict allowlist covering all tools, `--no-tools` disables all tools, and `--no-builtin-tools` disables only the built-in defaults. `--exclude-tools` filters the resulting list. A project `defaultTools` array replaces the global array.
|
|
339
348
|
|
|
340
349
|
### Sessions
|
|
@@ -374,7 +383,7 @@ When multiple sources specify a session directory, precedence is `--session-dir`
|
|
|
374
383
|
|
|
375
384
|
Mermaid code blocks render as themed Unicode diagrams in interactive transcripts when they fit the available width. `"off"` keeps the Markdown fence, `"final"` renders only finalized responses, and `"streaming"` also renders partial assistant responses. Invalid or too-wide diagrams remain as code, and rendering is display-only: stored messages and model context keep the original Markdown. LaTeX rendering is also display-only and converts supported expressions to terminal-friendly Unicode math; set `markdown.latex` to `false` to keep the source form.
|
|
376
385
|
|
|
377
|
-
The installed pi-tui 0.84.
|
|
386
|
+
The installed pi-tui 0.84.3 LaTeX renderer also handles whitespace and matrix layouts correctly.
|
|
378
387
|
|
|
379
388
|
### Resources
|
|
380
389
|
|
package/docs/skills.md
CHANGED
|
@@ -34,9 +34,10 @@ Atomic loads skills from:
|
|
|
34
34
|
- CLI: `--skill <path>` (repeatable, additive even with `--no-skills`)
|
|
35
35
|
|
|
36
36
|
Discovery rules:
|
|
37
|
-
- In `~/.atomic/agent/skills/` and `.atomic/skills/` (plus legacy `~/.pi/agent/skills/` and `.pi/skills/`), direct root `.md` files are discovered as individual skills
|
|
37
|
+
- In `~/.atomic/agent/skills/` and `.atomic/skills/` (plus legacy `~/.pi/agent/skills/` and `.pi/skills/`), direct root `.md` files are discovered as individual skills when they have valid skill frontmatter with a non-empty `description`
|
|
38
38
|
- In all skill locations, directories containing `SKILL.md` are discovered recursively
|
|
39
39
|
- In `~/.agents/skills/` and project `.agents/skills/`, root `.md` files are ignored
|
|
40
|
+
- Root Markdown files other than `SKILL.md` that do not look like skills are ignored silently
|
|
40
41
|
|
|
41
42
|
Disable discovery with `--no-skills` (explicit `--skill` paths still load).
|
|
42
43
|
|
|
@@ -211,7 +212,7 @@ Atomic validates skills against the Agent Skills standard. Most issues produce w
|
|
|
211
212
|
|
|
212
213
|
Unknown frontmatter fields are ignored.
|
|
213
214
|
|
|
214
|
-
|
|
215
|
+
Declared skills with missing descriptions are not loaded. Malformed `SKILL.md` files and `SKILL.md` files without a description produce warnings and are not loaded. Other Markdown files without valid skill frontmatter are ignored.
|
|
215
216
|
|
|
216
217
|
Name collisions (the same name from different real files) produce diagnostics and keep the existing first-winner precedence for `/skill:name`. Atomic also retains the other files as source-qualified candidates as described in [Skill Commands](#skill-commands).
|
|
217
218
|
|
package/docs/subagents.md
CHANGED
|
@@ -117,6 +117,13 @@ subagent({ agent: "codebase-analyzer", task: "Trace the auth flow with file refe
|
|
|
117
117
|
|
|
118
118
|
Use `interrupt` to stop a live child. Interrupted children are terminal for continuation; launch a fresh child with an explicit context handoff for follow-up work.
|
|
119
119
|
|
|
120
|
+
If the parent turn is cancelled while a foreground in-process child is still running, the child stops through the existing abort/interrupted state. That outcome is terminal and non-retryable: it does not count as a failure, never looks completed, and preserves any fallback metadata already recorded before abort. Parent receipts, Intercom summaries, and progress present the child as cancelled; persisted metadata records `interrupted` with abort cause rather than a new public status. Atomic recovers bounded, clearly labelled partial findings in this order:
|
|
121
|
+
1. A modified run-scoped `progress.md`
|
|
122
|
+
2. The last assistant message that contains actual text
|
|
123
|
+
3. A cancellation notice with session, progress, and output artifact references
|
|
124
|
+
|
|
125
|
+
A thinking-only aborted final message is skipped so earlier text can still be recovered. Session, Progress, and Output paths are cited only when those files exist when the cancelled envelope or receipt is built. A parallel set shares one `progress.md`; recovery attributes that file to the first progress-enabled child so siblings are not each given a copy of the same findings. A mixed parallel set that contains both a user interrupt and a parent cancellation presents the cancellation summary rather than interrupt-specific follow-up guidance.
|
|
126
|
+
|
|
120
127
|
Status and interrupt use the live Rust registry and status watch; `list` and `get` remain read-only management actions. No retained foreground-run map, resume generation, session rehydration, or bare-run-ID continuation exists. Terminal delivery remains an in-memory bounded envelope with artifacts and run history persisted once.
|
|
121
128
|
|
|
122
129
|
Inside workflow stages, completion delivery observes the stage generation boundary. A completion received before the boundary closes is queued through the stage AgentSession and processed before the stage publishes its terminal snapshot. A completion that arrives after close is routed once to the parent/main chat and cannot reopen or append to the completed stage transcript. Explicit post-mortem stage chat is still available separately.
|
package/docs/termux.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Atomic runs on Android via [Termux](https://termux.dev/), a terminal emulator and Linux environment for Android.
|
|
4
4
|
|
|
5
|
-
Termux uses Android's bionic libc, not Alpine's musl libc.
|
|
5
|
+
Termux uses Android's bionic libc, not Alpine's musl libc. Do not run the root `install.sh` there: Atomic's glibc and musl Linux release archives are not Android packages and do not provide a Termux target. Use the npm path below. Android ARM64 still has no Atomic native target, so musl support does not change Termux's native-addon limitations.
|
|
6
6
|
|
|
7
7
|
## Prerequisites
|
|
8
8
|
|
package/docs/usage.md
CHANGED
|
@@ -42,11 +42,12 @@ Type `/` in the editor to open command completion. Extensions can register custo
|
|
|
42
42
|
| Command | Description |
|
|
43
43
|
|---------|-------------|
|
|
44
44
|
| `/login`, `/logout` | Manage OAuth or API-key credentials |
|
|
45
|
-
| `/model` | Switch models |
|
|
45
|
+
| `/model` | Switch models; Ctrl+S in the picker saves the startup default |
|
|
46
|
+
| `/thinking` | Switch thinking level; Ctrl+S in the picker saves the startup default |
|
|
46
47
|
| `/scoped-models` | Enable/disable models for CTRL+P cycling |
|
|
47
48
|
| `/fast` | Toggle Codex fast mode for chat and workflow stages when supported OpenAI or shared ChatGPT Codex transport models are available |
|
|
48
49
|
| `/workflow` | List/run workflows; manage runs (connect/inspect/pause/interrupt/quit/resume); reload workflow resources |
|
|
49
|
-
| `/settings` |
|
|
50
|
+
| `/settings` | Theme, message delivery, transport, and other preferences |
|
|
50
51
|
| `/resume` | Pick from previous sessions |
|
|
51
52
|
| `/new` | Start a new session |
|
|
52
53
|
| `/name <name>` | Set session display name |
|
|
@@ -273,7 +274,7 @@ When a print-mode turn correctly finishes by calling an opt-in terminating struc
|
|
|
273
274
|
| `--no-builtin-tools`, `-nbt` | Disable built-in tools but keep extension/custom tools enabled |
|
|
274
275
|
| `--no-tools`, `-nt` | Disable all tools |
|
|
275
276
|
|
|
276
|
-
Default built-in tools: `read`, `bash`, `edit`, `write`, `find`, `search`, `ask_user_question`, `todo
|
|
277
|
+
Default built-in tools: `read`, `bash`, `edit`, `write`, `find`, `search`, `ask_user_question`, `todo`, plus `powershell` on native Windows when a PowerShell executable is available. `find.paths` accepts directories, files, or glob paths such as `*.ts` and honors `timeout`; `search` accepts `pattern`, optional `paths`, `i`, `gitignore`, and `skip` for regex content-search pagination. Use `--exclude-tools` to disable one or more tools while leaving the rest available, for example `atomic --exclude-tools ask_user_question`. The `defaultTools` setting selects which built-in tools a session starts with; `--tools` replaces that default with a strict allowlist over built-in, custom, and extension tools; `--no-builtin-tools` removes only built-ins; `--no-tools` removes all tools. `ls` remains available as an SDK compatibility tool but is not enabled by default.
|
|
277
278
|
|
|
278
279
|
### Project Trust Options
|
|
279
280
|
|
package/docs/windows.md
CHANGED
|
@@ -1,12 +1,34 @@
|
|
|
1
1
|
# Windows Setup
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Install
|
|
4
|
+
|
|
5
|
+
Install the self-contained Windows release archive with Windows PowerShell 5.1 or newer:
|
|
6
|
+
|
|
7
|
+
```powershell
|
|
8
|
+
irm https://raw.githubusercontent.com/bastani-inc/atomic/main/install.ps1 | iex
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
This path does not require Node.js or a package manager. To pin an exact release:
|
|
12
|
+
|
|
13
|
+
```powershell
|
|
14
|
+
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/bastani-inc/atomic/main/install.ps1))) -Ref 0.9.11
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
The installer verifies `SHA256SUMS` before changing an existing install. It stores versioned payloads under `%LOCALAPPDATA%\atomic` and places an ASCII-only `atomic.cmd` plus an `atomic-current` junction in `%LOCALAPPDATA%\atomic\bin` by default. The relative shim remains safe when the install path contains Unicode text or the bin directory is elsewhere. Set `ATOMIC_INSTALL_DIR`, `ATOMIC_BIN_DIR`, or `ATOMIC_VERSION` to override those values. `GITHUB_TOKEN` or `GH_TOKEN` is optional for higher GitHub API limits. Exact pins use Atomic's `MAJOR.MINOR.PATCH` or `MAJOR.MINOR.PATCH-alpha.REVISION` release tag form.
|
|
18
|
+
|
|
19
|
+
Every attempt removes its own `atomic-install-*` staging directory under the Windows temp path before it finishes. Windows can hold a file or an executable image open briefly after the process that used it exits, so the installer clears read-only attributes, retries the removal a bounded number of times, and verifies the directory is gone after each try. If it still cannot remove the directory, it reports the exact path, the number of attempts, and the last Windows error instead of leaving the residue unmentioned. A cleanup failure never replaces the original error: when an install fails for another reason, that error is still the one you see and the incomplete cleanup is reported as a warning.
|
|
20
|
+
|
|
21
|
+
After the script is fetched, it enables TLS 1.2 for its own GitHub requests and restores the caller's prior protocol setting. A downloaded script cannot repair the connection used to fetch itself: on a legacy Windows PowerShell 5.1 host where the literal `irm` command cannot reach GitHub, enable TLS 1.2 in that shell before rerunning the same one-liner.
|
|
22
|
+
|
|
23
|
+
The installer adds the bin directory to the User PATH and the current PowerShell process. Restart the terminal when it finishes so other processes see the new PATH. A custom `ATOMIC_BIN_DIR` containing `;` cannot be one Windows PATH entry, so the installer leaves PATH untouched and prints a direct-run command for `atomic.cmd` instead. If the bin directory already holds a same-stem launcher that `PATHEXT` resolves before `atomic.cmd`, such as a stale `atomic.exe` from an older Node-based install, the installer reports it and stops before downloading anything; remove that entry and rerun. Because the shim is `atomic.cmd`, `PATHEXT` must include `.CMD` for bare `atomic` to resolve; if it does not, the installer says so and stops rather than reporting a success you could not use. An unexpected regular `current` entry under `ATOMIC_INSTALL_DIR`, or a regular `atomic-current` entry under `ATOMIC_BIN_DIR`, is reported and left untouched instead of being moved or deleted. A pinned `-Ref` is honored literally: if GitHub answers with a different release tag, the install stops before downloading anything. Package-manager installation remains available but requires Node.js; see the [Quickstart](/quickstart#package-managers).
|
|
24
|
+
|
|
25
|
+
By default, Atomic uses a Bash shell for the `bash` tool and `!`/`!!` shortcuts. If you use those surfaces, Atomic checks these locations in order:
|
|
4
26
|
|
|
5
27
|
1. Custom path from `~/.atomic/agent/settings.json` (legacy `~/.pi/agent/settings.json` also supported)
|
|
6
28
|
2. Git Bash (`C:\Program Files\Git\bin\bash.exe`)
|
|
7
29
|
3. `bash.exe` on PATH (Cygwin, MSYS2, WSL)
|
|
8
30
|
|
|
9
|
-
For
|
|
31
|
+
For users who want the default Bash surfaces, [Git for Windows](https://git-scm.com/download/win) is sufficient. Native Windows users can instead enable the optional PowerShell tool described below; `!`/`!!` remain Bash-only.
|
|
10
32
|
|
|
11
33
|
## Custom Shell Path
|
|
12
34
|
|
|
@@ -28,4 +50,12 @@ On Windows, Atomic canonicalizes paths before starting native filesystem watcher
|
|
|
28
50
|
|
|
29
51
|
When self-update starts on Windows, Atomic first cleans any previous `.atomic-native-quarantine` directory under the global package root. If native add-ons from the current install are loaded by the running process, Atomic moves those files into a per-run quarantine directory and copies them back into place before invoking the package manager. This lets the package manager replace native dependency files that Windows would otherwise keep locked.
|
|
30
52
|
|
|
31
|
-
If Atomic cannot safely self-update the current installation, it exits with a clear message instead of guessing. The message explains that the install is unsupported, unmanaged, or not writable; prints the detected executable path when available; and tells you to update Atomic with the package manager, wrapper, source checkout, or release artifact that originally installed it. Standalone Bun binaries direct users to the current [Atomic releases](https://github.com/bastani-inc/atomic/releases/latest), never upstream Pi artifacts.
|
|
53
|
+
If Atomic cannot safely self-update the current installation, it exits with a clear message instead of guessing. The message explains that the install is unsupported, unmanaged, or not writable; prints the detected executable path when available; and tells you to update Atomic with the package manager, wrapper, source checkout, or release artifact that originally installed it. Archive installs are not managed by `atomic update`; rerun the PowerShell installer to replace `current` with the requested release. Standalone Bun binaries direct users to the current [Atomic releases](https://github.com/bastani-inc/atomic/releases/latest), never upstream Pi artifacts.
|
|
54
|
+
|
|
55
|
+
### PowerShell tool
|
|
56
|
+
|
|
57
|
+
On native Windows, Atomic registers the `powershell` tool by default when PowerShell 7 (`pwsh.exe`) or Windows PowerShell (`powershell.exe`) is on `PATH`. If neither executable is available, the tool is omitted so the agent is not offered a command that cannot run. Add `powershell` to `defaultTools` to enable it explicitly when you want it active alongside a narrower built-in selection. The `bash` tool and `!`/`!!` shortcuts continue to use Bash. Both `ATOMIC_*` and legacy `PI_*` session variables are available.
|
|
58
|
+
|
|
59
|
+
PowerShell calls are rendered in the transcript with a `PS>` prompt so they are never mistaken for Bash, and truncated PowerShell output is spilled to its own `atomic-powershell-*` temp file rather than the Bash one.
|
|
60
|
+
|
|
61
|
+
The package root exports `createPowerShellTool()`, `createPowerShellToolDefinition()`, `createLocalPowerShellOperations()`, their public option/input/detail types, and `getPowerShellConfig()` for SDK integrations. Factory-created tools expose the current `ATOMIC_*` and legacy `PI_*` session snapshot by default; set `exposeSessionEnvironment: false` to opt out. Executing the default local operations remains Windows-only and requires a resolvable PowerShell executable.
|