@bastani/atomic 0.9.19-alpha.3 → 0.9.19-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 +35 -0
- package/dist/builtin/intercom/CHANGELOG.md +8 -0
- package/dist/builtin/intercom/index.bundle.mjs +117 -26
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/CHANGELOG.md +18 -0
- package/dist/builtin/subagents/README.md +15 -15
- package/dist/builtin/subagents/agents/debugger.md +2 -2
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/subagents/skills/subagent/SKILL.md +26 -26
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +140 -58
- package/dist/builtin/web-access/package.json +1 -1
- package/dist/builtin/workflows/CHANGELOG.md +27 -0
- package/dist/builtin/workflows/README.md +14 -15
- package/dist/builtin/workflows/builtin/{chunk-mygmtz6e.js → chunk-1nbq96fh.js} +19 -19
- package/dist/builtin/workflows/builtin/{chunk-zggjyg5z.js → chunk-n8zysf1t.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-r9qq7xfj.js → chunk-vhmnzdj9.js} +37 -37
- package/dist/builtin/workflows/builtin/{chunk-62v3gg9f.js → chunk-yeee2jrc.js} +11 -11
- package/dist/builtin/workflows/builtin/goal.js +2 -2
- package/dist/builtin/workflows/builtin/index.js +4 -4
- package/dist/builtin/workflows/builtin/open-claude-design.js +1 -1
- package/dist/builtin/workflows/builtin/ralph.js +2 -2
- package/dist/builtin/workflows/package.json +5 -5
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +180 -239
- package/dist/builtin/workflows/src/index.js +19 -2
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +2 -1
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +1 -1
- package/dist/core/agent-session-auto-compaction.js +1 -1
- package/dist/core/agent-session-auto-compaction.js.map +1 -1
- package/dist/core/agent-session-compaction.js +1 -1
- 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 +33 -2
- package/dist/core/agent-session-custom-message-commit.js.map +1 -1
- package/dist/core/agent-session-message-queue.d.ts +1 -1
- package/dist/core/agent-session-message-queue.d.ts.map +1 -1
- package/dist/core/agent-session-message-queue.js +20 -6
- package/dist/core/agent-session-message-queue.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +4 -1
- 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-persistent-custom-messages.d.ts +1 -1
- package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -1
- package/dist/core/agent-session-persistent-custom-messages.js +13 -3
- package/dist/core/agent-session-persistent-custom-messages.js.map +1 -1
- package/dist/core/agent-session-post-tool-compaction.js +1 -1
- 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 +83 -0
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session-queue-pause.d.ts.map +1 -1
- package/dist/core/agent-session-queue-pause.js +11 -0
- package/dist/core/agent-session-queue-pause.js.map +1 -1
- package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
- package/dist/core/agent-session-tool-hooks.js +2 -0
- package/dist/core/agent-session-tool-hooks.js.map +1 -1
- package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
- package/dist/core/agent-session-tool-registry.js +12 -0
- 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 +7 -0
- package/dist/core/agent-session-transfer.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +2 -0
- package/dist/core/agent-session-types.d.ts.map +1 -1
- package/dist/core/agent-session-types.js +2 -0
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/agent-session.d.ts +4 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +22 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/extensions/context-types.d.ts +6 -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/loader-virtual-modules.js +3 -3
- package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
- package/dist/core/extensions/runner-context.d.ts +1 -1
- package/dist/core/extensions/runner-context.d.ts.map +1 -1
- package/dist/core/extensions/runner-context.js +9 -3
- package/dist/core/extensions/runner-context.js.map +1 -1
- package/dist/core/extensions/runner.js +1 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/workflow-events.d.ts +1 -1
- package/dist/core/extensions/workflow-events.d.ts.map +1 -1
- package/dist/core/extensions/workflow-events.js.map +1 -1
- package/dist/core/sdk-exports.d.ts +1 -1
- package/dist/core/sdk-exports.d.ts.map +1 -1
- package/dist/core/sdk-exports.js +1 -1
- package/dist/core/sdk-exports.js.map +1 -1
- package/dist/core/settings-manager-basic-accessors.d.ts +5 -3
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +23 -8
- package/dist/core/settings-manager-basic-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 +5 -0
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +4 -5
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/tasks/agent-adapter.d.ts +5 -2
- package/dist/core/tasks/agent-adapter.d.ts.map +1 -1
- package/dist/core/tasks/agent-adapter.js +10 -3
- package/dist/core/tasks/agent-adapter.js.map +1 -1
- package/dist/core/tasks/completion.d.ts.map +1 -1
- package/dist/core/tasks/completion.js +5 -1
- package/dist/core/tasks/completion.js.map +1 -1
- package/dist/core/tools/bash-pty-native.d.ts +16 -2
- package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
- package/dist/core/tools/bash-pty-native.js +82 -0
- package/dist/core/tools/bash-pty-native.js.map +1 -1
- package/dist/core/tools/bash.d.ts +13 -2
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +48 -3
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/index.d.ts +4 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +12 -0
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/kill.d.ts +17 -0
- package/dist/core/tools/kill.d.ts.map +1 -0
- package/dist/core/tools/kill.js +49 -0
- package/dist/core/tools/kill.js.map +1 -0
- package/dist/core/tools/powershell.d.ts +84 -28
- package/dist/core/tools/powershell.d.ts.map +1 -1
- package/dist/core/tools/powershell.js +10 -3
- package/dist/core/tools/powershell.js.map +1 -1
- package/dist/core/workflow-stage-admission.d.ts +14 -0
- package/dist/core/workflow-stage-admission.d.ts.map +1 -1
- package/dist/core/workflow-stage-admission.js +63 -3
- package/dist/core/workflow-stage-admission.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/components/task-row.d.ts.map +1 -1
- package/dist/modes/interactive/components/task-row.js +8 -1
- package/dist/modes/interactive/components/task-row.js.map +1 -1
- package/docs/background-tasks.md +24 -1
- package/docs/compaction.md +20 -0
- package/docs/computer-use.md +390 -0
- package/docs/docs.json +1 -0
- package/docs/extensions.md +11 -1
- package/docs/herdr.md +2 -0
- package/docs/index.md +1 -0
- package/docs/intercom.md +10 -2
- package/docs/providers.md +1 -1
- package/docs/quickstart.md +1 -1
- package/docs/sdk.md +11 -1
- package/docs/settings.md +20 -0
- package/docs/subagents.md +8 -6
- package/docs/tmux.md +2 -0
- package/docs/tools.md +7 -1
- package/docs/usage.md +1 -1
- package/docs/workflows/api-reference.md +4 -3
- package/docs/workflows/authoring.md +3 -3
- package/docs/workflows/builtins.md +9 -6
- package/docs/workflows/operations.md +36 -30
- package/docs/workflows/reliable-design.md +3 -3
- package/docs/workflows/verification.md +99 -40
- package/docs/workflows.md +4 -2
- package/npm-shrinkwrap.json +32 -32
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-manager-basic-accessors.js","sourceRoot":"","sources":["../../src/core/settings-manager-basic-accessors.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { DEFAULT_MAX_AGENT_RETRY_DELAY_MS } from \"@bastani/pi-ai\";\nimport { normalizePath } from \"../utils/paths.ts\";\nimport { DEFAULT_HTTP_IDLE_TIMEOUT_MS, parseHttpIdleTimeoutMs } from \"./http-dispatcher.ts\";\nimport { SettingsManager } from \"./settings-manager-core.ts\";\nimport { settingsInternals } from \"./settings-manager-internals.ts\";\nimport type { TransportSetting } from \"./settings-types.ts\";\n\ninterface SettingsManagerBasicAccessors {\n\tgetLastChangelogVersion(): string | undefined;\n\tsetLastChangelogVersion(version: string): void;\n\tgetFirstRunOnboardingStartedVersion(): string | undefined;\n\tsetFirstRunOnboardingStartedVersion(version: string): void;\n\tgetOnboardedVersion(): string | undefined;\n\tsetOnboardedVersion(version: string): void;\n\tgetSessionDir(): string | undefined;\n\tgetDefaultProvider(): string | undefined;\n\tgetDefaultModel(): string | undefined;\n\tsetDefaultProvider(provider: string): void;\n\tsetDefaultModel(modelId: string): void;\n\tsetDefaultModelAndProvider(provider: string, modelId: string): void;\n\tgetSteeringMode(): \"all\" | \"one-at-a-time\";\n\tsetSteeringMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tgetFollowUpMode(): \"all\" | \"one-at-a-time\";\n\tsetFollowUpMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tgetThemeSetting(): string | undefined;\n\tgetTheme(): string | undefined;\n\tsetTheme(theme: string): void;\n\tgetEnableAnalytics(): boolean | undefined;\n\tsetEnableAnalytics(enabled: boolean): void;\n\tgetTrackingId(): string | undefined;\n\tgetShowCacheMissNotices(): boolean;\n\tsetShowCacheMissNotices(enabled: boolean): void;\n\tgetDefaultThinkingLevel(): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined;\n\tsetDefaultThinkingLevel(level: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\"): void;\n\tgetModelThinkingLevel(\n\t\tprovider: string,\n\t\tmodelId: string,\n\t): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined;\n\tgetAllModelThinkingLevels(): Record<string, \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\">;\n\tsetModelThinkingLevel(\n\t\tprovider: string,\n\t\tmodelId: string,\n\t\tlevel: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\",\n\t): void;\n\tremoveModelThinkingLevel(provider: string, modelId: string): void;\n\tgetDefaultTools(): string[] | undefined;\n\tgetFallbackModels(): string[];\n\tgetTransport(): TransportSetting;\n\tsetTransport(transport: TransportSetting): void;\n\tgetCompactionEnabled(): boolean;\n\tsetCompactionEnabled(enabled: boolean): void;\n\tgetCompactionReserveTokens(): number;\n\tgetCompactionCompressionRatio(): number;\n\tgetCompactionPreserveRecent(): number;\n\tgetCompactionQuery(): string | undefined;\n\tgetCompactionSettings(): {\n\t\tenabled: boolean;\n\t\treserveTokens: number;\n\t\tcompression_ratio: number;\n\t\tpreserve_recent: number;\n\t\tquery?: string;\n\t};\n\tgetBranchSummarySettings(): { reserveTokens: number; skipPrompt: boolean };\n\tgetBranchSummarySkipPrompt(): boolean;\n\tgetSessionSummarySettings(): { enabled: boolean };\n\tgetRetryEnabled(): boolean;\n\tsetRetryEnabled(enabled: boolean): void;\n\tgetRetrySettings(): { enabled: boolean; maxRetries: number; baseDelayMs: number; maxAgentDelayMs: number };\n\tgetHttpProxy(): string | undefined;\n\tsetHttpProxy(proxy: string | undefined): void;\n\tgetHttpIdleTimeoutMs(): number;\n\tsetHttpIdleTimeoutMs(timeoutMs: number): void;\n\tgetWebSocketConnectTimeoutMs(): number | undefined;\n\tgetStreamDeadlineMs(): number | undefined;\n\tgetProviderRetrySettings(): { timeoutMs?: number; maxRetries?: number; maxRetryDelayMs: number };\n}\n\ndeclare module \"./settings-manager-core.ts\" {\n\tinterface SettingsManager extends SettingsManagerBasicAccessors {}\n}\n\nconst basicAccessors: SettingsManagerBasicAccessors = {\n\tgetLastChangelogVersion() {\n\t\treturn settingsInternals(this).settings.lastChangelogVersion;\n\t},\n\n\tsetLastChangelogVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.lastChangelogVersion = version;\n\t\tstate.markModified(\"lastChangelogVersion\");\n\t\tstate.save();\n\t},\n\n\tgetFirstRunOnboardingStartedVersion() {\n\t\treturn settingsInternals(this).settings.firstRunOnboardingStartedVersion;\n\t},\n\n\tsetFirstRunOnboardingStartedVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.firstRunOnboardingStartedVersion = version;\n\t\tstate.markModified(\"firstRunOnboardingStartedVersion\");\n\t\tstate.save();\n\t},\n\n\tgetOnboardedVersion() {\n\t\treturn settingsInternals(this).settings.onboardedVersion;\n\t},\n\n\tsetOnboardedVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.onboardedVersion = version;\n\t\tstate.markModified(\"onboardedVersion\");\n\t\tstate.save();\n\t},\n\n\tgetSessionDir() {\n\t\tconst sessionDir = settingsInternals(this).settings.sessionDir;\n\t\treturn sessionDir ? normalizePath(sessionDir) : sessionDir;\n\t},\n\n\tgetDefaultProvider() {\n\t\treturn settingsInternals(this).settings.defaultProvider;\n\t},\n\n\tgetDefaultModel() {\n\t\treturn settingsInternals(this).settings.defaultModel;\n\t},\n\n\tsetDefaultProvider(provider) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultProvider = provider;\n\t\tstate.markModified(\"defaultProvider\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultModel(modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultModel = modelId;\n\t\tstate.markModified(\"defaultModel\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultModelAndProvider(provider, modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultProvider = provider;\n\t\tstate.globalSettings.defaultModel = modelId;\n\t\tstate.markModified(\"defaultProvider\");\n\t\tstate.markModified(\"defaultModel\");\n\t\tstate.save();\n\t},\n\n\tgetSteeringMode() {\n\t\treturn settingsInternals(this).settings.steeringMode || \"one-at-a-time\";\n\t},\n\n\tsetSteeringMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.steeringMode = mode;\n\t\tstate.markModified(\"steeringMode\");\n\t\tstate.save();\n\t},\n\n\tgetFollowUpMode() {\n\t\treturn settingsInternals(this).settings.followUpMode || \"one-at-a-time\";\n\t},\n\n\tsetFollowUpMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.followUpMode = mode;\n\t\tstate.markModified(\"followUpMode\");\n\t\tstate.save();\n\t},\n\n\tgetThemeSetting() {\n\t\tconst value = settingsInternals(this).settings.theme;\n\t\tif (typeof value === \"string\") return value;\n\t\treturn undefined;\n\t},\n\n\tgetTheme() {\n\t\tconst theme = this.getThemeSetting();\n\t\treturn theme?.includes(\"/\") ? undefined : theme;\n\t},\n\n\tsetTheme(theme) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.theme = theme;\n\t\tstate.markModified(\"theme\");\n\t\tstate.save();\n\t},\n\n\tgetEnableAnalytics() {\n\t\treturn settingsInternals(this).settings.enableAnalytics;\n\t},\n\n\tsetEnableAnalytics(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.enableAnalytics = enabled;\n\t\tstate.markModified(\"enableAnalytics\");\n\t\tif (enabled && !state.globalSettings.trackingId) {\n\t\t\tstate.globalSettings.trackingId = randomUUID();\n\t\t\tstate.markModified(\"trackingId\");\n\t\t}\n\t\tstate.save();\n\t},\n\n\tgetTrackingId() {\n\t\treturn settingsInternals(this).settings.trackingId;\n\t},\n\n\tgetShowCacheMissNotices() {\n\t\treturn settingsInternals(this).settings.showCacheMissNotices ?? false;\n\t},\n\n\tsetShowCacheMissNotices(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.showCacheMissNotices = enabled;\n\t\tstate.markModified(\"showCacheMissNotices\");\n\t\tstate.save();\n\t},\n\n\tgetDefaultThinkingLevel() {\n\t\treturn settingsInternals(this).settings.defaultThinkingLevel;\n\t},\n\n\tsetDefaultThinkingLevel(level) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultThinkingLevel = level;\n\t\tstate.markModified(\"defaultThinkingLevel\");\n\t\tstate.save();\n\t},\n\n\tgetModelThinkingLevel(provider, modelId) {\n\t\treturn settingsInternals(this).settings.modelThinkingLevels?.[`${provider}/${modelId}`];\n\t},\n\n\tgetAllModelThinkingLevels() {\n\t\treturn { ...(settingsInternals(this).settings.modelThinkingLevels ?? {}) };\n\t},\n\n\tsetModelThinkingLevel(provider, modelId, level) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.modelThinkingLevels ??= {};\n\t\tstate.globalSettings.modelThinkingLevels[`${provider}/${modelId}`] = level;\n\t\tstate.markModified(\"modelThinkingLevels\");\n\t\tstate.save();\n\t},\n\n\tremoveModelThinkingLevel(provider, modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.modelThinkingLevels) return;\n\t\tdelete state.globalSettings.modelThinkingLevels[`${provider}/${modelId}`];\n\t\tif (Object.keys(state.globalSettings.modelThinkingLevels).length === 0)\n\t\t\tdelete state.globalSettings.modelThinkingLevels;\n\t\tstate.markModified(\"modelThinkingLevels\");\n\t\tstate.save();\n\t},\n\n\tgetDefaultTools() {\n\t\t// Settings load unvalidated from disk, so guard the shape here the same\n\t\t// way getFallbackModels() does: a non-array (or null) reads as unset,\n\t\t// and non-string entries are dropped rather than passed through to the\n\t\t// initial tool selection.\n\t\tconst tools = settingsInternals(this).settings.defaultTools;\n\t\treturn Array.isArray(tools) ? tools.filter((tool): tool is string => typeof tool === \"string\") : undefined;\n\t},\n\n\tgetFallbackModels() {\n\t\treturn (settingsInternals(this).settings.fallbackModels ?? [])\n\t\t\t.filter((model): model is string => typeof model === \"string\")\n\t\t\t.map((model) => model.trim())\n\t\t\t.filter((model) => model.length > 0);\n\t},\n\n\tgetTransport() {\n\t\treturn settingsInternals(this).settings.transport ?? \"auto\";\n\t},\n\n\tsetTransport(transport) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.transport = transport;\n\t\tstate.markModified(\"transport\");\n\t\tstate.save();\n\t},\n\n\tgetCompactionEnabled() {\n\t\treturn settingsInternals(this).settings.compaction?.enabled ?? true;\n\t},\n\n\tsetCompactionEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.compaction) {\n\t\t\tstate.globalSettings.compaction = {};\n\t\t}\n\t\tstate.globalSettings.compaction.enabled = enabled;\n\t\tstate.markModified(\"compaction\", \"enabled\");\n\t\tstate.save();\n\t},\n\n\tgetCompactionReserveTokens() {\n\t\treturn settingsInternals(this).settings.compaction?.reserveTokens ?? 16384;\n\t},\n\n\tgetCompactionCompressionRatio() {\n\t\tconst value = settingsInternals(this).settings.compaction?.compression_ratio;\n\t\treturn typeof value === \"number\" && Number.isFinite(value) && value > 0 && value < 1 ? value : 0.5;\n\t},\n\n\tgetCompactionPreserveRecent() {\n\t\tconst value = settingsInternals(this).settings.compaction?.preserve_recent;\n\t\treturn typeof value === \"number\" && Number.isFinite(value) ? Math.max(0, Math.floor(value)) : 2;\n\t},\n\n\tgetCompactionQuery() {\n\t\tconst query = settingsInternals(this).settings.compaction?.query?.trim();\n\t\treturn query && query.length > 0 ? query : undefined;\n\t},\n\n\tgetCompactionSettings() {\n\t\tconst query = this.getCompactionQuery();\n\t\treturn {\n\t\t\tenabled: this.getCompactionEnabled(),\n\t\t\treserveTokens: this.getCompactionReserveTokens(),\n\t\t\tcompression_ratio: this.getCompactionCompressionRatio(),\n\t\t\tpreserve_recent: this.getCompactionPreserveRecent(),\n\t\t\t...(query === undefined ? {} : { query }),\n\t\t};\n\t},\n\n\tgetBranchSummarySettings() {\n\t\treturn {\n\t\t\treserveTokens: settingsInternals(this).settings.branchSummary?.reserveTokens ?? 16384,\n\t\t\tskipPrompt: settingsInternals(this).settings.branchSummary?.skipPrompt ?? false,\n\t\t};\n\t},\n\n\tgetBranchSummarySkipPrompt() {\n\t\treturn settingsInternals(this).settings.branchSummary?.skipPrompt ?? false;\n\t},\n\n\tgetSessionSummarySettings() {\n\t\treturn {\n\t\t\tenabled: settingsInternals(this).settings.sessionSummary?.enabled ?? true,\n\t\t};\n\t},\n\n\tgetRetryEnabled() {\n\t\treturn settingsInternals(this).settings.retry?.enabled ?? true;\n\t},\n\n\tsetRetryEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.retry) {\n\t\t\tstate.globalSettings.retry = {};\n\t\t}\n\t\tstate.globalSettings.retry.enabled = enabled;\n\t\tstate.markModified(\"retry\", \"enabled\");\n\t\tstate.save();\n\t},\n\n\tgetRetrySettings() {\n\t\treturn {\n\t\t\tenabled: this.getRetryEnabled(),\n\t\t\tmaxRetries: settingsInternals(this).settings.retry?.maxRetries ?? 3,\n\t\t\tbaseDelayMs: settingsInternals(this).settings.retry?.baseDelayMs ?? 2000,\n\t\t\tmaxAgentDelayMs: settingsInternals(this).settings.retry?.maxAgentDelayMs ?? DEFAULT_MAX_AGENT_RETRY_DELAY_MS,\n\t\t};\n\t},\n\n\tgetHttpProxy() {\n\t\treturn settingsInternals(this).globalSettings.httpProxy;\n\t},\n\n\tsetHttpProxy(proxy) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.httpProxy = proxy;\n\t\tstate.markModified(\"httpProxy\");\n\t\tstate.save();\n\t},\n\n\tgetHttpIdleTimeoutMs() {\n\t\tconst value = settingsInternals(this).settings.httpIdleTimeoutMs;\n\t\tconst timeoutMs = parseHttpIdleTimeoutMs(value);\n\t\tif (timeoutMs !== undefined) {\n\t\t\treturn timeoutMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid httpIdleTimeoutMs setting: ${String(value)}`);\n\t\t}\n\t\treturn DEFAULT_HTTP_IDLE_TIMEOUT_MS;\n\t},\n\n\tsetHttpIdleTimeoutMs(timeoutMs) {\n\t\tconst normalizedTimeoutMs = parseHttpIdleTimeoutMs(timeoutMs);\n\t\tif (normalizedTimeoutMs === undefined) {\n\t\t\tthrow new Error(`Invalid httpIdleTimeoutMs setting: ${String(timeoutMs)}`);\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.httpIdleTimeoutMs = normalizedTimeoutMs;\n\t\tstate.markModified(\"httpIdleTimeoutMs\");\n\t\tstate.save();\n\t},\n\n\tgetWebSocketConnectTimeoutMs() {\n\t\tconst value = settingsInternals(this).settings.websocketConnectTimeoutMs;\n\t\tconst timeoutMs = parseHttpIdleTimeoutMs(value);\n\t\tif (timeoutMs !== undefined) {\n\t\t\treturn timeoutMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid websocketConnectTimeoutMs setting: ${String(value)}`);\n\t\t}\n\t\treturn undefined;\n\t},\n\n\tgetStreamDeadlineMs() {\n\t\tconst value = settingsInternals(this).settings.streamDeadlineMs;\n\t\tconst deadlineMs = parseHttpIdleTimeoutMs(value);\n\t\tif (deadlineMs !== undefined) {\n\t\t\treturn deadlineMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid streamDeadlineMs setting: ${String(value)}`);\n\t\t}\n\t\treturn undefined;\n\t},\n\n\tgetProviderRetrySettings() {\n\t\treturn {\n\t\t\ttimeoutMs: settingsInternals(this).settings.retry?.provider?.timeoutMs,\n\t\t\tmaxRetries: settingsInternals(this).settings.retry?.provider?.maxRetries,\n\t\t\tmaxRetryDelayMs: settingsInternals(this).settings.retry?.provider?.maxRetryDelayMs ?? 60000,\n\t\t};\n\t},\n};\n\nObject.assign(SettingsManager.prototype, basicAccessors);\n"]}
|
|
1
|
+
{"version":3,"file":"settings-manager-basic-accessors.js","sourceRoot":"","sources":["../../src/core/settings-manager-basic-accessors.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { DEFAULT_MAX_AGENT_RETRY_DELAY_MS, type Model } from \"@bastani/pi-ai\";\nimport { normalizePath } from \"../utils/paths.ts\";\nimport { DEFAULT_HTTP_IDLE_TIMEOUT_MS, parseHttpIdleTimeoutMs } from \"./http-dispatcher.ts\";\nimport { SettingsManager } from \"./settings-manager-core.ts\";\nimport { settingsInternals } from \"./settings-manager-internals.ts\";\nimport type { CompactionModelOverride, CompactionSettings, TransportSetting } from \"./settings-types.ts\";\n\ntype CompactionModel = Pick<Model<string>, \"provider\" | \"id\">;\n\nfunction resolveCompactionSetting(\n\tcompaction: CompactionSettings | undefined,\n\tfield: keyof CompactionModelOverride,\n\tmodel?: CompactionModel,\n): number {\n\tconst ordinary = compaction?.[field];\n\tif (ordinary !== undefined && (typeof ordinary !== \"number\" || !Number.isSafeInteger(ordinary) || ordinary < 0)) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.${field} setting: ${String(ordinary)}. Expected a non-negative safe integer.`,\n\t\t);\n\t}\n\tconst modelKey = model ? `${model.provider}/${model.id}` : undefined;\n\tconst entry = modelKey === undefined ? undefined : compaction?.modelOverrides?.[modelKey];\n\tif (entry !== undefined && (entry === null || typeof entry !== \"object\" || Array.isArray(entry))) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.modelOverrides[\"${modelKey}\"] setting: ${String(entry)}. Expected an object.`,\n\t\t);\n\t}\n\tconst override = entry?.[field];\n\tif (override !== undefined && (typeof override !== \"number\" || !Number.isSafeInteger(override) || override < 0)) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.modelOverrides[\"${modelKey}\"].${field} setting: ${String(override)}. Expected a non-negative safe integer.`,\n\t\t);\n\t}\n\treturn override ?? ordinary ?? (field === \"reserveTokens\" ? 16384 : 2);\n}\n\ninterface SettingsManagerBasicAccessors {\n\tgetLastChangelogVersion(): string | undefined;\n\tsetLastChangelogVersion(version: string): void;\n\tgetFirstRunOnboardingStartedVersion(): string | undefined;\n\tsetFirstRunOnboardingStartedVersion(version: string): void;\n\tgetOnboardedVersion(): string | undefined;\n\tsetOnboardedVersion(version: string): void;\n\tgetSessionDir(): string | undefined;\n\tgetDefaultProvider(): string | undefined;\n\tgetDefaultModel(): string | undefined;\n\tsetDefaultProvider(provider: string): void;\n\tsetDefaultModel(modelId: string): void;\n\tsetDefaultModelAndProvider(provider: string, modelId: string): void;\n\tgetSteeringMode(): \"all\" | \"one-at-a-time\";\n\tsetSteeringMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tgetFollowUpMode(): \"all\" | \"one-at-a-time\";\n\tsetFollowUpMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tgetThemeSetting(): string | undefined;\n\tgetTheme(): string | undefined;\n\tsetTheme(theme: string): void;\n\tgetEnableAnalytics(): boolean | undefined;\n\tsetEnableAnalytics(enabled: boolean): void;\n\tgetTrackingId(): string | undefined;\n\tgetShowCacheMissNotices(): boolean;\n\tsetShowCacheMissNotices(enabled: boolean): void;\n\tgetDefaultThinkingLevel(): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined;\n\tsetDefaultThinkingLevel(level: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\"): void;\n\tgetModelThinkingLevel(\n\t\tprovider: string,\n\t\tmodelId: string,\n\t): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined;\n\tgetAllModelThinkingLevels(): Record<string, \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\">;\n\tsetModelThinkingLevel(\n\t\tprovider: string,\n\t\tmodelId: string,\n\t\tlevel: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\",\n\t): void;\n\tremoveModelThinkingLevel(provider: string, modelId: string): void;\n\tgetDefaultTools(): string[] | undefined;\n\tgetFallbackModels(): string[];\n\tgetTransport(): TransportSetting;\n\tsetTransport(transport: TransportSetting): void;\n\tgetCompactionEnabled(): boolean;\n\tsetCompactionEnabled(enabled: boolean): void;\n\tgetCompactionReserveTokens(model?: CompactionModel): number;\n\tgetCompactionCompressionRatio(): number;\n\tgetCompactionPreserveRecent(model?: CompactionModel): number;\n\tgetCompactionQuery(): string | undefined;\n\tgetCompactionSettings(model?: CompactionModel): {\n\t\tenabled: boolean;\n\t\treserveTokens: number;\n\t\tcompression_ratio: number;\n\t\tpreserve_recent: number;\n\t\tquery?: string;\n\t};\n\tgetBranchSummarySettings(): { reserveTokens: number; skipPrompt: boolean };\n\tgetBranchSummarySkipPrompt(): boolean;\n\tgetSessionSummarySettings(): { enabled: boolean };\n\tgetRetryEnabled(): boolean;\n\tsetRetryEnabled(enabled: boolean): void;\n\tgetRetrySettings(): { enabled: boolean; maxRetries: number; baseDelayMs: number; maxAgentDelayMs: number };\n\tgetHttpProxy(): string | undefined;\n\tsetHttpProxy(proxy: string | undefined): void;\n\tgetHttpIdleTimeoutMs(): number;\n\tsetHttpIdleTimeoutMs(timeoutMs: number): void;\n\tgetWebSocketConnectTimeoutMs(): number | undefined;\n\tgetStreamDeadlineMs(): number | undefined;\n\tgetProviderRetrySettings(): { timeoutMs?: number; maxRetries?: number; maxRetryDelayMs: number };\n}\n\ndeclare module \"./settings-manager-core.ts\" {\n\tinterface SettingsManager extends SettingsManagerBasicAccessors {}\n}\n\nconst basicAccessors: SettingsManagerBasicAccessors = {\n\tgetLastChangelogVersion() {\n\t\treturn settingsInternals(this).settings.lastChangelogVersion;\n\t},\n\n\tsetLastChangelogVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.lastChangelogVersion = version;\n\t\tstate.markModified(\"lastChangelogVersion\");\n\t\tstate.save();\n\t},\n\n\tgetFirstRunOnboardingStartedVersion() {\n\t\treturn settingsInternals(this).settings.firstRunOnboardingStartedVersion;\n\t},\n\n\tsetFirstRunOnboardingStartedVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.firstRunOnboardingStartedVersion = version;\n\t\tstate.markModified(\"firstRunOnboardingStartedVersion\");\n\t\tstate.save();\n\t},\n\n\tgetOnboardedVersion() {\n\t\treturn settingsInternals(this).settings.onboardedVersion;\n\t},\n\n\tsetOnboardedVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.onboardedVersion = version;\n\t\tstate.markModified(\"onboardedVersion\");\n\t\tstate.save();\n\t},\n\n\tgetSessionDir() {\n\t\tconst sessionDir = settingsInternals(this).settings.sessionDir;\n\t\treturn sessionDir ? normalizePath(sessionDir) : sessionDir;\n\t},\n\n\tgetDefaultProvider() {\n\t\treturn settingsInternals(this).settings.defaultProvider;\n\t},\n\n\tgetDefaultModel() {\n\t\treturn settingsInternals(this).settings.defaultModel;\n\t},\n\n\tsetDefaultProvider(provider) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultProvider = provider;\n\t\tstate.markModified(\"defaultProvider\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultModel(modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultModel = modelId;\n\t\tstate.markModified(\"defaultModel\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultModelAndProvider(provider, modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultProvider = provider;\n\t\tstate.globalSettings.defaultModel = modelId;\n\t\tstate.markModified(\"defaultProvider\");\n\t\tstate.markModified(\"defaultModel\");\n\t\tstate.save();\n\t},\n\n\tgetSteeringMode() {\n\t\treturn settingsInternals(this).settings.steeringMode || \"one-at-a-time\";\n\t},\n\n\tsetSteeringMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.steeringMode = mode;\n\t\tstate.markModified(\"steeringMode\");\n\t\tstate.save();\n\t},\n\n\tgetFollowUpMode() {\n\t\treturn settingsInternals(this).settings.followUpMode || \"one-at-a-time\";\n\t},\n\n\tsetFollowUpMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.followUpMode = mode;\n\t\tstate.markModified(\"followUpMode\");\n\t\tstate.save();\n\t},\n\n\tgetThemeSetting() {\n\t\tconst value = settingsInternals(this).settings.theme;\n\t\tif (typeof value === \"string\") return value;\n\t\treturn undefined;\n\t},\n\n\tgetTheme() {\n\t\tconst theme = this.getThemeSetting();\n\t\treturn theme?.includes(\"/\") ? undefined : theme;\n\t},\n\n\tsetTheme(theme) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.theme = theme;\n\t\tstate.markModified(\"theme\");\n\t\tstate.save();\n\t},\n\n\tgetEnableAnalytics() {\n\t\treturn settingsInternals(this).settings.enableAnalytics;\n\t},\n\n\tsetEnableAnalytics(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.enableAnalytics = enabled;\n\t\tstate.markModified(\"enableAnalytics\");\n\t\tif (enabled && !state.globalSettings.trackingId) {\n\t\t\tstate.globalSettings.trackingId = randomUUID();\n\t\t\tstate.markModified(\"trackingId\");\n\t\t}\n\t\tstate.save();\n\t},\n\n\tgetTrackingId() {\n\t\treturn settingsInternals(this).settings.trackingId;\n\t},\n\n\tgetShowCacheMissNotices() {\n\t\treturn settingsInternals(this).settings.showCacheMissNotices ?? false;\n\t},\n\n\tsetShowCacheMissNotices(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.showCacheMissNotices = enabled;\n\t\tstate.markModified(\"showCacheMissNotices\");\n\t\tstate.save();\n\t},\n\n\tgetDefaultThinkingLevel() {\n\t\treturn settingsInternals(this).settings.defaultThinkingLevel;\n\t},\n\n\tsetDefaultThinkingLevel(level) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultThinkingLevel = level;\n\t\tstate.markModified(\"defaultThinkingLevel\");\n\t\tstate.save();\n\t},\n\n\tgetModelThinkingLevel(provider, modelId) {\n\t\treturn settingsInternals(this).settings.modelThinkingLevels?.[`${provider}/${modelId}`];\n\t},\n\n\tgetAllModelThinkingLevels() {\n\t\treturn { ...(settingsInternals(this).settings.modelThinkingLevels ?? {}) };\n\t},\n\n\tsetModelThinkingLevel(provider, modelId, level) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.modelThinkingLevels ??= {};\n\t\tstate.globalSettings.modelThinkingLevels[`${provider}/${modelId}`] = level;\n\t\tstate.markModified(\"modelThinkingLevels\");\n\t\tstate.save();\n\t},\n\n\tremoveModelThinkingLevel(provider, modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.modelThinkingLevels) return;\n\t\tdelete state.globalSettings.modelThinkingLevels[`${provider}/${modelId}`];\n\t\tif (Object.keys(state.globalSettings.modelThinkingLevels).length === 0)\n\t\t\tdelete state.globalSettings.modelThinkingLevels;\n\t\tstate.markModified(\"modelThinkingLevels\");\n\t\tstate.save();\n\t},\n\n\tgetDefaultTools() {\n\t\t// Settings load unvalidated from disk, so guard the shape here the same\n\t\t// way getFallbackModels() does: a non-array (or null) reads as unset,\n\t\t// and non-string entries are dropped rather than passed through to the\n\t\t// initial tool selection.\n\t\tconst tools = settingsInternals(this).settings.defaultTools;\n\t\treturn Array.isArray(tools) ? tools.filter((tool): tool is string => typeof tool === \"string\") : undefined;\n\t},\n\n\tgetFallbackModels() {\n\t\treturn (settingsInternals(this).settings.fallbackModels ?? [])\n\t\t\t.filter((model): model is string => typeof model === \"string\")\n\t\t\t.map((model) => model.trim())\n\t\t\t.filter((model) => model.length > 0);\n\t},\n\n\tgetTransport() {\n\t\treturn settingsInternals(this).settings.transport ?? \"auto\";\n\t},\n\n\tsetTransport(transport) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.transport = transport;\n\t\tstate.markModified(\"transport\");\n\t\tstate.save();\n\t},\n\n\tgetCompactionEnabled() {\n\t\treturn settingsInternals(this).settings.compaction?.enabled ?? true;\n\t},\n\n\tsetCompactionEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.compaction) {\n\t\t\tstate.globalSettings.compaction = {};\n\t\t}\n\t\tstate.globalSettings.compaction.enabled = enabled;\n\t\tstate.markModified(\"compaction\", \"enabled\");\n\t\tstate.save();\n\t},\n\n\tgetCompactionReserveTokens(model) {\n\t\treturn resolveCompactionSetting(settingsInternals(this).settings.compaction, \"reserveTokens\", model);\n\t},\n\n\tgetCompactionCompressionRatio() {\n\t\tconst value = settingsInternals(this).settings.compaction?.compression_ratio;\n\t\treturn typeof value === \"number\" && Number.isFinite(value) && value > 0 && value < 1 ? value : 0.5;\n\t},\n\n\tgetCompactionPreserveRecent(model) {\n\t\treturn resolveCompactionSetting(settingsInternals(this).settings.compaction, \"preserve_recent\", model);\n\t},\n\n\tgetCompactionQuery() {\n\t\tconst query = settingsInternals(this).settings.compaction?.query?.trim();\n\t\treturn query && query.length > 0 ? query : undefined;\n\t},\n\n\tgetCompactionSettings(model) {\n\t\tconst query = this.getCompactionQuery();\n\t\treturn {\n\t\t\tenabled: this.getCompactionEnabled(),\n\t\t\treserveTokens: this.getCompactionReserveTokens(model),\n\t\t\tcompression_ratio: this.getCompactionCompressionRatio(),\n\t\t\tpreserve_recent: this.getCompactionPreserveRecent(model),\n\t\t\t...(query === undefined ? {} : { query }),\n\t\t};\n\t},\n\n\tgetBranchSummarySettings() {\n\t\treturn {\n\t\t\treserveTokens: settingsInternals(this).settings.branchSummary?.reserveTokens ?? 16384,\n\t\t\tskipPrompt: settingsInternals(this).settings.branchSummary?.skipPrompt ?? false,\n\t\t};\n\t},\n\n\tgetBranchSummarySkipPrompt() {\n\t\treturn settingsInternals(this).settings.branchSummary?.skipPrompt ?? false;\n\t},\n\n\tgetSessionSummarySettings() {\n\t\treturn {\n\t\t\tenabled: settingsInternals(this).settings.sessionSummary?.enabled ?? true,\n\t\t};\n\t},\n\n\tgetRetryEnabled() {\n\t\treturn settingsInternals(this).settings.retry?.enabled ?? true;\n\t},\n\n\tsetRetryEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.retry) {\n\t\t\tstate.globalSettings.retry = {};\n\t\t}\n\t\tstate.globalSettings.retry.enabled = enabled;\n\t\tstate.markModified(\"retry\", \"enabled\");\n\t\tstate.save();\n\t},\n\n\tgetRetrySettings() {\n\t\treturn {\n\t\t\tenabled: this.getRetryEnabled(),\n\t\t\tmaxRetries: settingsInternals(this).settings.retry?.maxRetries ?? 3,\n\t\t\tbaseDelayMs: settingsInternals(this).settings.retry?.baseDelayMs ?? 2000,\n\t\t\tmaxAgentDelayMs: settingsInternals(this).settings.retry?.maxAgentDelayMs ?? DEFAULT_MAX_AGENT_RETRY_DELAY_MS,\n\t\t};\n\t},\n\n\tgetHttpProxy() {\n\t\treturn settingsInternals(this).globalSettings.httpProxy;\n\t},\n\n\tsetHttpProxy(proxy) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.httpProxy = proxy;\n\t\tstate.markModified(\"httpProxy\");\n\t\tstate.save();\n\t},\n\n\tgetHttpIdleTimeoutMs() {\n\t\tconst value = settingsInternals(this).settings.httpIdleTimeoutMs;\n\t\tconst timeoutMs = parseHttpIdleTimeoutMs(value);\n\t\tif (timeoutMs !== undefined) {\n\t\t\treturn timeoutMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid httpIdleTimeoutMs setting: ${String(value)}`);\n\t\t}\n\t\treturn DEFAULT_HTTP_IDLE_TIMEOUT_MS;\n\t},\n\n\tsetHttpIdleTimeoutMs(timeoutMs) {\n\t\tconst normalizedTimeoutMs = parseHttpIdleTimeoutMs(timeoutMs);\n\t\tif (normalizedTimeoutMs === undefined) {\n\t\t\tthrow new Error(`Invalid httpIdleTimeoutMs setting: ${String(timeoutMs)}`);\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.httpIdleTimeoutMs = normalizedTimeoutMs;\n\t\tstate.markModified(\"httpIdleTimeoutMs\");\n\t\tstate.save();\n\t},\n\n\tgetWebSocketConnectTimeoutMs() {\n\t\tconst value = settingsInternals(this).settings.websocketConnectTimeoutMs;\n\t\tconst timeoutMs = parseHttpIdleTimeoutMs(value);\n\t\tif (timeoutMs !== undefined) {\n\t\t\treturn timeoutMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid websocketConnectTimeoutMs setting: ${String(value)}`);\n\t\t}\n\t\treturn undefined;\n\t},\n\n\tgetStreamDeadlineMs() {\n\t\tconst value = settingsInternals(this).settings.streamDeadlineMs;\n\t\tconst deadlineMs = parseHttpIdleTimeoutMs(value);\n\t\tif (deadlineMs !== undefined) {\n\t\t\treturn deadlineMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid streamDeadlineMs setting: ${String(value)}`);\n\t\t}\n\t\treturn undefined;\n\t},\n\n\tgetProviderRetrySettings() {\n\t\treturn {\n\t\t\ttimeoutMs: settingsInternals(this).settings.retry?.provider?.timeoutMs,\n\t\t\tmaxRetries: settingsInternals(this).settings.retry?.provider?.maxRetries,\n\t\t\tmaxRetryDelayMs: settingsInternals(this).settings.retry?.provider?.maxRetryDelayMs ?? 60000,\n\t\t};\n\t},\n};\n\nObject.assign(SettingsManager.prototype, basicAccessors);\n"]}
|
|
@@ -4,5 +4,5 @@ import "./settings-manager-ui-accessors.ts";
|
|
|
4
4
|
export type { ScrollViewScrollbar } from "@earendil-works/pi-tui";
|
|
5
5
|
export { SettingsManager } from "./settings-manager-core.ts";
|
|
6
6
|
export { FileSettingsStorage, InMemorySettingsStorage } from "./settings-storage.ts";
|
|
7
|
-
export type { BranchSummarySettings, CompactionSettings, DefaultProjectTrust, FullscreenExitOutput, ImageSettings, MarkdownSettings, MermaidRenderingMode, PackageSource, ProviderRetrySettings, RetrySettings, SessionSummarySettings, Settings, SettingsError, SettingsManagerCreateOptions, SettingsScope, SettingsStorage, TerminalSettings, ThinkingBudgetsSettings, TransportSetting, WarningSettings, } from "./settings-types.ts";
|
|
7
|
+
export type { BranchSummarySettings, CompactionModelOverride, CompactionSettings, DefaultProjectTrust, FullscreenExitOutput, ImageSettings, MarkdownSettings, MermaidRenderingMode, PackageSource, ProviderRetrySettings, RetrySettings, SessionSummarySettings, Settings, SettingsError, SettingsManagerCreateOptions, SettingsScope, SettingsStorage, TerminalSettings, ThinkingBudgetsSettings, TransportSetting, WarningSettings, } from "./settings-types.ts";
|
|
8
8
|
//# sourceMappingURL=settings-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-manager.d.ts","sourceRoot":"","sources":["../../src/core/settings-manager.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,0CAA0C,CAAC;AAClD,OAAO,oCAAoC,CAAC;AAE5C,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrF,YAAY,EACX,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,QAAQ,EACR,aAAa,EACb,4BAA4B,EAC5B,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,GACf,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"settings-manager.d.ts","sourceRoot":"","sources":["../../src/core/settings-manager.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,0CAA0C,CAAC;AAClD,OAAO,oCAAoC,CAAC;AAE5C,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrF,YAAY,EACX,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,QAAQ,EACR,aAAa,EACb,4BAA4B,EAC5B,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,GACf,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-manager.js","sourceRoot":"","sources":["../../src/core/settings-manager.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,0CAA0C,CAAC;AAClD,OAAO,oCAAoC,CAAC;AAI5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["import \"./settings-manager-basic-accessors.ts\";\nimport \"./settings-manager-resource-accessors.ts\";\nimport \"./settings-manager-ui-accessors.ts\";\n\nexport type { ScrollViewScrollbar } from \"@earendil-works/pi-tui\";\n\nexport { SettingsManager } from \"./settings-manager-core.ts\";\nexport { FileSettingsStorage, InMemorySettingsStorage } from \"./settings-storage.ts\";\nexport type {\n\tBranchSummarySettings,\n\tCompactionSettings,\n\tDefaultProjectTrust,\n\tFullscreenExitOutput,\n\tImageSettings,\n\tMarkdownSettings,\n\tMermaidRenderingMode,\n\tPackageSource,\n\tProviderRetrySettings,\n\tRetrySettings,\n\tSessionSummarySettings,\n\tSettings,\n\tSettingsError,\n\tSettingsManagerCreateOptions,\n\tSettingsScope,\n\tSettingsStorage,\n\tTerminalSettings,\n\tThinkingBudgetsSettings,\n\tTransportSetting,\n\tWarningSettings,\n} from \"./settings-types.ts\";\n"]}
|
|
1
|
+
{"version":3,"file":"settings-manager.js","sourceRoot":"","sources":["../../src/core/settings-manager.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,0CAA0C,CAAC;AAClD,OAAO,oCAAoC,CAAC;AAI5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["import \"./settings-manager-basic-accessors.ts\";\nimport \"./settings-manager-resource-accessors.ts\";\nimport \"./settings-manager-ui-accessors.ts\";\n\nexport type { ScrollViewScrollbar } from \"@earendil-works/pi-tui\";\n\nexport { SettingsManager } from \"./settings-manager-core.ts\";\nexport { FileSettingsStorage, InMemorySettingsStorage } from \"./settings-storage.ts\";\nexport type {\n\tBranchSummarySettings,\n\tCompactionModelOverride,\n\tCompactionSettings,\n\tDefaultProjectTrust,\n\tFullscreenExitOutput,\n\tImageSettings,\n\tMarkdownSettings,\n\tMermaidRenderingMode,\n\tPackageSource,\n\tProviderRetrySettings,\n\tRetrySettings,\n\tSessionSummarySettings,\n\tSettings,\n\tSettingsError,\n\tSettingsManagerCreateOptions,\n\tSettingsScope,\n\tSettingsStorage,\n\tTerminalSettings,\n\tThinkingBudgetsSettings,\n\tTransportSetting,\n\tWarningSettings,\n} from \"./settings-types.ts\";\n"]}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import type { Transport } from "@bastani/pi-ai/compat";
|
|
2
2
|
import type { ScrollViewScrollbar } from "@earendil-works/pi-tui";
|
|
3
|
+
export interface CompactionModelOverride {
|
|
4
|
+
reserveTokens?: number;
|
|
5
|
+
preserve_recent?: number;
|
|
6
|
+
}
|
|
3
7
|
export interface CompactionSettings {
|
|
4
8
|
enabled?: boolean;
|
|
5
9
|
reserveTokens?: number;
|
|
6
10
|
compression_ratio?: number;
|
|
7
11
|
preserve_recent?: number;
|
|
8
12
|
query?: string;
|
|
13
|
+
modelOverrides?: Record<string, CompactionModelOverride>;
|
|
9
14
|
}
|
|
10
15
|
export interface BranchSummarySettings {
|
|
11
16
|
reserveTokens?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-types.d.ts","sourceRoot":"","sources":["../../src/core/settings-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,kBAAkB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"settings-types.d.ts","sourceRoot":"","sources":["../../src/core/settings-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-types.js","sourceRoot":"","sources":["../../src/core/settings-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Transport } from \"@bastani/pi-ai/compat\";\nimport type { ScrollViewScrollbar } from \"@earendil-works/pi-tui\";\n\nexport interface CompactionSettings {\n\tenabled?: boolean; // default: true\n\treserveTokens?: number; // default: 16384\n\tcompression_ratio?: number; // default: 0.5 (fraction of compactable context to keep)\n\tpreserve_recent?: number; // default: 2 (recent context-eligible messages to keep)\n\tquery?: string; // default: auto-detected from session context\n}\n\nexport interface BranchSummarySettings {\n\treserveTokens?: number; // default: 16384 (tokens reserved for prompt + LLM response)\n\tskipPrompt?: boolean; // default: false - when true, skips \"Summarize branch?\" prompt and defaults to no summary\n}\n\nexport interface SessionSummarySettings {\n\tenabled?: boolean; // default: true - generate a one-line resume-picker summary once the agent goes idle\n}\n\nexport interface ProviderRetrySettings {\n\ttimeoutMs?: number; // SDK/provider request timeout in milliseconds\n\tmaxRetries?: number; // SDK/provider retry attempts\n\tmaxRetryDelayMs?: number; // default: 60000 (max server-requested delay before failing)\n}\n\nexport interface RetrySettings {\n\tenabled?: boolean; // default: true\n\tmaxRetries?: number; // default: 3\n\tbaseDelayMs?: number; // default: 2000 (exponential backoff: 2s, 4s, 8s)\n\tmaxAgentDelayMs?: number; // default: 60000\n\tprovider?: ProviderRetrySettings;\n}\n\nexport interface TerminalSettings {\n\tshowImages?: boolean; // default: true (only relevant if terminal supports images)\n\timageWidthCells?: number; // default: 60 (preferred inline image width in terminal cells)\n\tclearOnShrink?: boolean; // default: false (clear empty rows when content shrinks)\n\tshowTerminalProgress?: boolean; // default: false (OSC 9;4 terminal progress indicators)\n\thyperlinks?: boolean | \"auto\";\n\timages?: \"kitty\" | \"iterm2\" | \"auto\" | false;\n\ttrueColor?: boolean | \"auto\";\n}\n\nexport interface ImageSettings {\n\tautoResize?: boolean; // default: true (resize images to 2000x2000 max for better model compatibility)\n\tblockImages?: boolean; // default: false - when true, prevents all images from being sent to LLM providers\n}\n\nexport interface SearchSettings {\n\tcontextBefore?: number;\n\tcontextAfter?: number;\n}\nexport interface ThinkingBudgetsSettings {\n\tminimal?: number;\n\tlow?: number;\n\tmedium?: number;\n\thigh?: number;\n}\n\nexport type MermaidRenderingMode = \"off\" | \"final\" | \"streaming\";\n\nexport interface MarkdownSettings {\n\tcodeBlockIndent?: string; // default: \" \"\n\tmermaid?: MermaidRenderingMode; // default: \"streaming\"\n\tlatex?: boolean; // default: true\n}\n\nexport interface WarningSettings {\n\tanthropicExtraUsage?: boolean; // default: true\n}\n\nexport type DefaultProjectTrust = \"ask\" | \"always\" | \"never\";\n\nexport type TransportSetting = Transport;\n\n/** What the terminal keeps when Atomic's fullscreen session exits. */\nexport type FullscreenExitOutput = \"transcript\" | \"resume-hint\";\n\n/**\n * Package source for npm/git packages.\n * - String form: load all resources from the package\n * - Object form: filter which resources to load\n * - autoload=false: start empty and apply only explicit resource patterns\n */\nexport type PackageSource =\n\t| string\n\t| {\n\t\t\tsource: string;\n\t\t\tautoload?: boolean;\n\t\t\textensions?: string[];\n\t\t\tskills?: string[];\n\t\t\tprompts?: string[];\n\t\t\tthemes?: string[];\n\t\t\tworkflows?: string[];\n\t };\n\nexport interface BashInterceptorSettings {\n\tenabled?: boolean; // default: false\n}\n\nexport interface Settings {\n\tlastChangelogVersion?: string;\n\tfirstRunOnboardingStartedVersion?: string;\n\tonboardedVersion?: string;\n\tdefaultProvider?: string;\n\tdefaultModel?: string;\n\tdefaultThinkingLevel?: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\n\tmodelThinkingLevels?: Record<string, \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\">;\n\tfallbackModels?: string[]; // Ordered main-chat fallback models, optionally suffixed with :thinkingLevel\n\ttransport?: TransportSetting; // default: \"auto\"\n\tsteeringMode?: \"all\" | \"one-at-a-time\";\n\tfollowUpMode?: \"all\" | \"one-at-a-time\";\n\ttheme?: string;\n\tenableAnalytics?: boolean; // storage only; no analytics transmission is performed\n\ttrackingId?: string; // stable UUID generated on first analytics opt-in\n\tshowCacheMissNotices?: boolean; // default: false - show cache costs and provider recovery diagnostics\n\tcompaction?: CompactionSettings;\n\tbranchSummary?: BranchSummarySettings;\n\tsessionSummary?: SessionSummarySettings;\n\tretry?: RetrySettings;\n\thideThinkingBlock?: boolean;\n\texternalEditor?: string; // Command for Ctrl+G external editor; takes precedence over VISUAL/EDITOR\n\tshellPath?: string; // Custom shell path (e.g., for Cygwin users on Windows)\n\tquietStartup?: boolean;\n\tdefaultProjectTrust?: DefaultProjectTrust; // default: \"ask\"; global setting only\n\tshellCommandPrefix?: string; // Prefix prepended to every bash command (e.g., \"shopt -s expand_aliases\" for alias support)\n\tbashInterceptor?: BashInterceptorSettings; // default: disabled; when enabled, user_bash handlers can intercept bash tool execution\n\tsearch?: SearchSettings; // Context lines for search results; defaults: before=1, after=3\n\tnpmCommand?: string[]; // Command used for npm package lookup/install operations, argv-style (e.g., [\"mise\", \"exec\", \"node@20\", \"--\", \"npm\"])\n\tcollapseChangelog?: boolean; // Show condensed changelog after update (use /changelog for full)\n\tenableInstallTelemetry?: boolean; // default: true - anonymous version/update ping after changelog-detected updates\n\tpackages?: PackageSource[]; // Array of npm/git package sources (string or object with filtering)\n\textensions?: string[]; // Array of local extension file paths or directories\n\tskills?: string[]; // Array of local skill file paths or directories\n\tprompts?: string[]; // Array of local prompt template paths or directories\n\tthemes?: string[]; // Array of local theme file paths or directories\n\tworkflows?: string[]; // Array of local workflow file paths or directories\n\tenableSkillCommands?: boolean; // default: true - register skills as /skill:name commands\n\tterminal?: TerminalSettings;\n\therdr?: { enabled?: boolean }; // default: true, only inside an interactive Herdr pane\n\timages?: ImageSettings;\n\tenabledModels?: string[]; // Model patterns for cycling (same format as --models CLI flag)\n\tdefaultTools?: string[]; // Initial built-in tool selection; extension and SDK custom tools stay enabled\n\tdoubleEscapeAction?: \"fork\" | \"tree\" | \"none\"; // Action for double-escape with empty editor (default: \"tree\")\n\ttreeFilterMode?: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\"; // Default filter when opening /tree\n\tthinkingBudgets?: ThinkingBudgetsSettings; // Custom token budgets for thinking levels\n\teditorPaddingX?: number; // Horizontal padding for input editor (default: 0)\n\toutputPad?: 0 | 1; // Horizontal padding for chat message output (default: 1)\n\tautocompleteMaxVisible?: number; // Max visible items in autocomplete dropdown (default: 5)\n\tshowHardwareCursor?: boolean; // Show terminal cursor while still positioning it for IME\n\tfullscreenScrollbar?: ScrollViewScrollbar; // default: \"auto\"\n\tfullscreenExitOutput?: FullscreenExitOutput; // default: \"transcript\"\n\tfullscreenCopyOnSelect?: boolean; // default: true\n\tmarkdown?: MarkdownSettings;\n\twarnings?: WarningSettings;\n\tsessionDir?: string; // Custom session storage directory (same format as --session-dir CLI flag)\n\thttpProxy?: string; // Proxy URL applied as HTTP_PROXY and HTTPS_PROXY; global setting only\n\thttpIdleTimeoutMs?: number | string; // HTTP idle timeout; 0 or \"disabled\" disables it\n\twebsocketConnectTimeoutMs?: number | string; // WebSocket connect timeout; 0 or \"disabled\" disables it\n\tstreamDeadlineMs?: number | string; // Max idle gap between provider stream events; 0 or \"disabled\" disables it\n}\n\nexport type SettingsScope = \"global\" | \"project\";\n\nexport interface SettingsManagerCreateOptions {\n\tprojectTrusted?: boolean;\n}\n\nexport type SettingsFieldOrigin = \"primary\" | \"legacy\";\n\nexport interface SettingsStorage {\n\twithLock(scope: SettingsScope, fn: (current: string | undefined) => string | undefined): void;\n\t/**\n\t * Optional write-specific lock whose callback receives the current primary\n\t * document rather than a layered effective view. Storage implementations\n\t * without a distinct primary document can omit this method; layered storage\n\t * implementations must provide it to keep fallback fields out of the primary\n\t * document.\n\t */\n\twithPrimaryWriteLock?(scope: SettingsScope, fn: (currentPrimary: string | undefined) => string | undefined): void;\n\tgetFieldOrigin?(scope: SettingsScope, field: keyof Settings): SettingsFieldOrigin | undefined;\n}\n\nexport interface SettingsError {\n\tscope: SettingsScope;\n\tpath?: string;\n\terror: Error;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"settings-types.js","sourceRoot":"","sources":["../../src/core/settings-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Transport } from \"@bastani/pi-ai/compat\";\nimport type { ScrollViewScrollbar } from \"@earendil-works/pi-tui\";\n\nexport interface CompactionModelOverride {\n\treserveTokens?: number;\n\tpreserve_recent?: number;\n}\n\nexport interface CompactionSettings {\n\tenabled?: boolean; // default: true\n\treserveTokens?: number; // default: 16384\n\tcompression_ratio?: number; // default: 0.5 (fraction of compactable context to keep)\n\tpreserve_recent?: number; // default: 2 (recent context-eligible messages to keep)\n\tquery?: string; // default: auto-detected from session context\n\tmodelOverrides?: Record<string, CompactionModelOverride>; // exact \"provider/modelId\" keys\n}\n\nexport interface BranchSummarySettings {\n\treserveTokens?: number; // default: 16384 (tokens reserved for prompt + LLM response)\n\tskipPrompt?: boolean; // default: false - when true, skips \"Summarize branch?\" prompt and defaults to no summary\n}\n\nexport interface SessionSummarySettings {\n\tenabled?: boolean; // default: true - generate a one-line resume-picker summary once the agent goes idle\n}\n\nexport interface ProviderRetrySettings {\n\ttimeoutMs?: number; // SDK/provider request timeout in milliseconds\n\tmaxRetries?: number; // SDK/provider retry attempts\n\tmaxRetryDelayMs?: number; // default: 60000 (max server-requested delay before failing)\n}\n\nexport interface RetrySettings {\n\tenabled?: boolean; // default: true\n\tmaxRetries?: number; // default: 3\n\tbaseDelayMs?: number; // default: 2000 (exponential backoff: 2s, 4s, 8s)\n\tmaxAgentDelayMs?: number; // default: 60000\n\tprovider?: ProviderRetrySettings;\n}\n\nexport interface TerminalSettings {\n\tshowImages?: boolean; // default: true (only relevant if terminal supports images)\n\timageWidthCells?: number; // default: 60 (preferred inline image width in terminal cells)\n\tclearOnShrink?: boolean; // default: false (clear empty rows when content shrinks)\n\tshowTerminalProgress?: boolean; // default: false (OSC 9;4 terminal progress indicators)\n\thyperlinks?: boolean | \"auto\";\n\timages?: \"kitty\" | \"iterm2\" | \"auto\" | false;\n\ttrueColor?: boolean | \"auto\";\n}\n\nexport interface ImageSettings {\n\tautoResize?: boolean; // default: true (resize images to 2000x2000 max for better model compatibility)\n\tblockImages?: boolean; // default: false - when true, prevents all images from being sent to LLM providers\n}\n\nexport interface SearchSettings {\n\tcontextBefore?: number;\n\tcontextAfter?: number;\n}\nexport interface ThinkingBudgetsSettings {\n\tminimal?: number;\n\tlow?: number;\n\tmedium?: number;\n\thigh?: number;\n}\n\nexport type MermaidRenderingMode = \"off\" | \"final\" | \"streaming\";\n\nexport interface MarkdownSettings {\n\tcodeBlockIndent?: string; // default: \" \"\n\tmermaid?: MermaidRenderingMode; // default: \"streaming\"\n\tlatex?: boolean; // default: true\n}\n\nexport interface WarningSettings {\n\tanthropicExtraUsage?: boolean; // default: true\n}\n\nexport type DefaultProjectTrust = \"ask\" | \"always\" | \"never\";\n\nexport type TransportSetting = Transport;\n\n/** What the terminal keeps when Atomic's fullscreen session exits. */\nexport type FullscreenExitOutput = \"transcript\" | \"resume-hint\";\n\n/**\n * Package source for npm/git packages.\n * - String form: load all resources from the package\n * - Object form: filter which resources to load\n * - autoload=false: start empty and apply only explicit resource patterns\n */\nexport type PackageSource =\n\t| string\n\t| {\n\t\t\tsource: string;\n\t\t\tautoload?: boolean;\n\t\t\textensions?: string[];\n\t\t\tskills?: string[];\n\t\t\tprompts?: string[];\n\t\t\tthemes?: string[];\n\t\t\tworkflows?: string[];\n\t };\n\nexport interface BashInterceptorSettings {\n\tenabled?: boolean; // default: false\n}\n\nexport interface Settings {\n\tlastChangelogVersion?: string;\n\tfirstRunOnboardingStartedVersion?: string;\n\tonboardedVersion?: string;\n\tdefaultProvider?: string;\n\tdefaultModel?: string;\n\tdefaultThinkingLevel?: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\n\tmodelThinkingLevels?: Record<string, \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\">;\n\tfallbackModels?: string[]; // Ordered main-chat fallback models, optionally suffixed with :thinkingLevel\n\ttransport?: TransportSetting; // default: \"auto\"\n\tsteeringMode?: \"all\" | \"one-at-a-time\";\n\tfollowUpMode?: \"all\" | \"one-at-a-time\";\n\ttheme?: string;\n\tenableAnalytics?: boolean; // storage only; no analytics transmission is performed\n\ttrackingId?: string; // stable UUID generated on first analytics opt-in\n\tshowCacheMissNotices?: boolean; // default: false - show cache costs and provider recovery diagnostics\n\tcompaction?: CompactionSettings;\n\tbranchSummary?: BranchSummarySettings;\n\tsessionSummary?: SessionSummarySettings;\n\tretry?: RetrySettings;\n\thideThinkingBlock?: boolean;\n\texternalEditor?: string; // Command for Ctrl+G external editor; takes precedence over VISUAL/EDITOR\n\tshellPath?: string; // Custom shell path (e.g., for Cygwin users on Windows)\n\tquietStartup?: boolean;\n\tdefaultProjectTrust?: DefaultProjectTrust; // default: \"ask\"; global setting only\n\tshellCommandPrefix?: string; // Prefix prepended to every bash command (e.g., \"shopt -s expand_aliases\" for alias support)\n\tbashInterceptor?: BashInterceptorSettings; // default: disabled; when enabled, user_bash handlers can intercept bash tool execution\n\tsearch?: SearchSettings; // Context lines for search results; defaults: before=1, after=3\n\tnpmCommand?: string[]; // Command used for npm package lookup/install operations, argv-style (e.g., [\"mise\", \"exec\", \"node@20\", \"--\", \"npm\"])\n\tcollapseChangelog?: boolean; // Show condensed changelog after update (use /changelog for full)\n\tenableInstallTelemetry?: boolean; // default: true - anonymous version/update ping after changelog-detected updates\n\tpackages?: PackageSource[]; // Array of npm/git package sources (string or object with filtering)\n\textensions?: string[]; // Array of local extension file paths or directories\n\tskills?: string[]; // Array of local skill file paths or directories\n\tprompts?: string[]; // Array of local prompt template paths or directories\n\tthemes?: string[]; // Array of local theme file paths or directories\n\tworkflows?: string[]; // Array of local workflow file paths or directories\n\tenableSkillCommands?: boolean; // default: true - register skills as /skill:name commands\n\tterminal?: TerminalSettings;\n\therdr?: { enabled?: boolean }; // default: true, only inside an interactive Herdr pane\n\timages?: ImageSettings;\n\tenabledModels?: string[]; // Model patterns for cycling (same format as --models CLI flag)\n\tdefaultTools?: string[]; // Initial built-in tool selection; extension and SDK custom tools stay enabled\n\tdoubleEscapeAction?: \"fork\" | \"tree\" | \"none\"; // Action for double-escape with empty editor (default: \"tree\")\n\ttreeFilterMode?: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\"; // Default filter when opening /tree\n\tthinkingBudgets?: ThinkingBudgetsSettings; // Custom token budgets for thinking levels\n\teditorPaddingX?: number; // Horizontal padding for input editor (default: 0)\n\toutputPad?: 0 | 1; // Horizontal padding for chat message output (default: 1)\n\tautocompleteMaxVisible?: number; // Max visible items in autocomplete dropdown (default: 5)\n\tshowHardwareCursor?: boolean; // Show terminal cursor while still positioning it for IME\n\tfullscreenScrollbar?: ScrollViewScrollbar; // default: \"auto\"\n\tfullscreenExitOutput?: FullscreenExitOutput; // default: \"transcript\"\n\tfullscreenCopyOnSelect?: boolean; // default: true\n\tmarkdown?: MarkdownSettings;\n\twarnings?: WarningSettings;\n\tsessionDir?: string; // Custom session storage directory (same format as --session-dir CLI flag)\n\thttpProxy?: string; // Proxy URL applied as HTTP_PROXY and HTTPS_PROXY; global setting only\n\thttpIdleTimeoutMs?: number | string; // HTTP idle timeout; 0 or \"disabled\" disables it\n\twebsocketConnectTimeoutMs?: number | string; // WebSocket connect timeout; 0 or \"disabled\" disables it\n\tstreamDeadlineMs?: number | string; // Max idle gap between provider stream events; 0 or \"disabled\" disables it\n}\n\nexport type SettingsScope = \"global\" | \"project\";\n\nexport interface SettingsManagerCreateOptions {\n\tprojectTrusted?: boolean;\n}\n\nexport type SettingsFieldOrigin = \"primary\" | \"legacy\";\n\nexport interface SettingsStorage {\n\twithLock(scope: SettingsScope, fn: (current: string | undefined) => string | undefined): void;\n\t/**\n\t * Optional write-specific lock whose callback receives the current primary\n\t * document rather than a layered effective view. Storage implementations\n\t * without a distinct primary document can omit this method; layered storage\n\t * implementations must provide it to keep fallback fields out of the primary\n\t * document.\n\t */\n\twithPrimaryWriteLock?(scope: SettingsScope, fn: (currentPrimary: string | undefined) => string | undefined): void;\n\tgetFieldOrigin?(scope: SettingsScope, field: keyof Settings): SettingsFieldOrigin | undefined;\n}\n\nexport interface SettingsError {\n\tscope: SettingsScope;\n\tpath?: string;\n\terror: Error;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,gBAAgB,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;CACpH;
|
|
1
|
+
{"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,gBAAgB,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;CACpH;AAgPD,wBAAgB,qCAAqC,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAgDvG;AAED,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,mBAAmB,CA0BrE,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,aAAa,CAAC,mBAAmB,CAe/E,CAAC"}
|
|
@@ -4,9 +4,8 @@ const WORKFLOW_ADMIN_COMPLETIONS = [
|
|
|
4
4
|
{ value: "attach ", label: "attach", description: "Open the in-place attach pane on a node" },
|
|
5
5
|
{ value: "list ", label: "list", description: "List registered workflows" },
|
|
6
6
|
{ value: "status ", label: "status", description: "List current-session active and retained terminal runs" },
|
|
7
|
-
{ value: "
|
|
7
|
+
{ value: "pause ", label: "pause", description: "Pause a run" },
|
|
8
8
|
{ value: "quit ", label: "quit", description: "Quit a run and keep it resumable" },
|
|
9
|
-
{ value: "pause ", label: "pause", description: "Pause a run or stage" },
|
|
10
9
|
{ value: "resume ", label: "resume", description: "Re-open overlay for a run" },
|
|
11
10
|
{ value: "inputs ", label: "inputs", description: "Show a workflow's input schema" },
|
|
12
11
|
{ value: "reload ", label: "reload", description: "Reload workflow resources" },
|
|
@@ -212,9 +211,9 @@ export function getBundledWorkflowArgumentCompletions(argumentPrefix) {
|
|
|
212
211
|
}
|
|
213
212
|
if (subcommand === "inputs")
|
|
214
213
|
return completeWorkflowToken(argumentPrefix, workflowItems);
|
|
215
|
-
if (subcommand === "
|
|
214
|
+
if (subcommand === "pause") {
|
|
216
215
|
return completeWorkflowToken(argumentPrefix, [
|
|
217
|
-
{ value: "--all ", label: "--all", description: "
|
|
216
|
+
{ value: "--all ", label: "--all", description: "Pause all in-flight runs" },
|
|
218
217
|
{ value: "--yes ", label: "--yes", description: "Skip confirmation" },
|
|
219
218
|
{ value: "-y ", label: "-y", description: "Skip confirmation" },
|
|
220
219
|
]);
|
|
@@ -285,7 +284,7 @@ export const BUNDLED_EXTENSION_SLASH_COMMANDS = [
|
|
|
285
284
|
{ name: "agents", description: "Browse available subagents and inspect their configuration" },
|
|
286
285
|
{
|
|
287
286
|
name: "workflow",
|
|
288
|
-
description: "Run or inspect Atomic workflows. Usage: /workflow <name> [key=value…] | /workflow [list|status|connect|attach|
|
|
287
|
+
description: "Run or inspect Atomic workflows. Usage: /workflow <name> [key=value…] | /workflow [list|status|connect|attach|quit|pause|resume|inputs|reload] [args]",
|
|
289
288
|
getArgumentCompletions: getBundledWorkflowArgumentCompletions,
|
|
290
289
|
},
|
|
291
290
|
{ name: "mcp", description: "Show MCP server status" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AutocompleteItem } from \"@earendil-works/pi-tui\";\nimport { APP_NAME } from \"../config.js\";\nimport type { SourceInfo } from \"./source-info.ts\";\n\nexport type SlashCommandSource = \"extension\" | \"prompt\" | \"skill\";\n\nexport interface SlashCommandInfo {\n\tname: string;\n\tdescription?: string;\n\tsource: SlashCommandSource;\n\tsourceInfo: SourceInfo;\n}\n\nexport interface BuiltinSlashCommand {\n\tname: string;\n\tdescription: string;\n\targumentHint?: string;\n\tgetArgumentCompletions?: (argumentPrefix: string) => AutocompleteItem[] | null | Promise<AutocompleteItem[] | null>;\n}\n\ntype WorkflowInputCompletionMetadata = {\n\tdescription: string;\n\tkind?: \"boolean\" | \"number\" | \"string\";\n};\n\ntype WorkflowCompletionMetadata = {\n\tname: string;\n\tdescription: string;\n\tinputs: Record<string, WorkflowInputCompletionMetadata>;\n};\n\nconst WORKFLOW_ADMIN_COMPLETIONS: AutocompleteItem[] = [\n\t{ value: \"connect \", label: \"connect\", description: \"Attach to a run (picker if no id)\" },\n\t{ value: \"attach \", label: \"attach\", description: \"Open the in-place attach pane on a node\" },\n\t{ value: \"list \", label: \"list\", description: \"List registered workflows\" },\n\t{ value: \"status \", label: \"status\", description: \"List current-session active and retained terminal runs\" },\n\t{ value: \"interrupt \", label: \"interrupt\", description: \"Interrupt a run\" },\n\t{ value: \"quit \", label: \"quit\", description: \"Quit a run and keep it resumable\" },\n\t{ value: \"pause \", label: \"pause\", description: \"Pause a run or stage\" },\n\t{ value: \"resume \", label: \"resume\", description: \"Re-open overlay for a run\" },\n\t{ value: \"inputs \", label: \"inputs\", description: \"Show a workflow's input schema\" },\n\t{ value: \"reload \", label: \"reload\", description: \"Reload workflow resources\" },\n];\n\nconst BUNDLED_WORKFLOW_COMPLETION_METADATA: WorkflowCompletionMetadata[] = [\n\t{\n\t\tname: \"adversarial-verification\",\n\t\tdescription:\n\t\t\t\"Produce a candidate, score independent per-criterion verifier reports, and apply a deterministic mean-and-veto gate with bounded repairs.\",\n\t\tinputs: {\n\t\t\ttask: { description: \"Task whose candidate result must be independently verified.\", kind: \"string\" },\n\t\t\tverifier_count: {\n\t\t\t\tdescription: \"Number of independent verifiers for each criterion per round.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tmax_repairs: { description: \"Maximum candidate repair rounds before rejection.\", kind: \"number\" },\n\t\t\tcriteria: { description: \"Criteria record of name-to-description entries, or criteria.md markdown.\" },\n\t\t\taccept_mean: {\n\t\t\t\tdescription: \"Mean score required for acceptance on the 1–20 verification scale.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\treask_limit: { description: \"Maximum bounded re-ask waves for invalid criterion reports.\", kind: \"number\" },\n\t\t},\n\t},\n\t{\n\t\tname: \"classify-and-act\",\n\t\tdescription:\n\t\t\t\"Classify a task with structured confidence, route deterministically to an isolated category action, and ask for human selection when confidence is low.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Task to classify and execute.\", kind: \"string\" },\n\t\t\tcategories: { description: \"Ordered action categories available to the classifier and fallback chooser.\" },\n\t\t\tconfidence_threshold: {\n\t\t\t\tdescription: \"Minimum structured confidence required to route without human selection.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"fan-out-and-synthesize\",\n\t\tdescription:\n\t\t\t\"Partition a task, run bounded independent artifact branches, then synthesize all evidence at an explicit barrier.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Task to partition, investigate, and synthesize.\", kind: \"string\" },\n\t\t\tmax_branches: {\n\t\t\t\tdescription: \"Maximum number of independent partitions produced and executed.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tmax_concurrency: { description: \"Maximum number of branch agents running concurrently.\", kind: \"number\" },\n\t\t},\n\t},\n\t{\n\t\tname: \"generate-and-filter\",\n\t\tdescription:\n\t\t\t\"Generate more independent candidates than needed, deduplicate and filter them by rubric, optionally judge them, and return a parent-consumable shortlist.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Prompt for candidate generation and selection.\", kind: \"string\" },\n\t\t\tnum_candidates: { description: \"Number of independent candidates to generate.\", kind: \"number\" },\n\t\t\tshortlist_size: { description: \"Maximum number of candidates in the final shortlist.\", kind: \"number\" },\n\t\t\tuse_judge: { description: \"Whether an independent judge reviews the filtered shortlist.\", kind: \"boolean\" },\n\t\t\tmax_concurrency: { description: \"Maximum simultaneous generator stages.\", kind: \"number\" },\n\t\t},\n\t},\n\t{\n\t\tname: \"goal\",\n\t\tdescription:\n\t\t\t\"Goal Runner workflow with bounded sub-agent orchestration turns, immutable acceptance criteria, ledger artifacts, parallel reviewers, and reducer-gated completion. When launching follow-up goal runs from review findings, pass the ORIGINAL task text as acceptance_criteria so deltas cannot drift from the literal contract. If the task includes submitting a pull request (or MR/review), remove that final action from the objective text and set create_pr=true instead when preparing the workflow inputs.\",\n\t\tinputs: {\n\t\t\tobjective: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"The objective or delta for this Goal Runner workflow run. Do not include PR/MR submission instructions here; strip them from the task text and request them via create_pr=true instead.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tacceptance_criteria: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Original immutable task contract this run must remain consistent with. Defaults to objective. Orchestrators launching follow-up runs from reviewer findings should pass the ORIGINAL task text here.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tmax_turns: {\n\t\t\t\tdescription: \"Maximum orchestrator/review turns before Goal Runner stops as needs_human.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tbase_branch: {\n\t\t\t\tdescription: \"Optional branch reviewers compare the current code delta against (default origin/main).\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tgit_worktree_dir: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Optional Git worktree path. Leave at the default unless the user explicitly requested worktree isolation — stages never create git worktrees on their own. Must start inside a Git repo; absolute paths are used as-is, relative paths resolve from the repo root, existing Git worktrees from the invoking repository are reused/shared as-is, and missing paths are created from base_branch.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tcreate_pr: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Whether to run the final pull-request creation stage after reviewer/reducer approval. Defaults to false; prompt text alone does not opt in. If the task asks to submit a PR/MR/review, remove that from the objective text and set this to true — only the final stage then attempts provider-appropriate PR/MR/review creation after Goal completes.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"loop-until-done\",\n\t\tdescription:\n\t\t\t\"Repeat evidence-producing work and independent completion evaluation against a durable ledger until done or an inspectable iteration-limit failure.\",\n\t\tinputs: {\n\t\t\tprompt: {\n\t\t\t\tdescription: \"Objective whose explicit completion condition controls the bounded loop.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tmax_iterations: {\n\t\t\t\tdescription: \"Maximum work/evaluation iterations before returning an inspectable failed status (1-20).\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tprogress_scoring: {\n\t\t\t\tdescription: \"Enable advisory progress scoring after each completed iteration.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t\tprogress_repeats: {\n\t\t\t\tdescription: \"Number of advisory progress-scoring repeats per iteration.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"open-claude-design\",\n\t\tdescription:\n\t\t\t\"AI-powered design workflow: combined discovery/init → design-system/reference research → curated reference discovery → HTML generation → one live review session → rich HTML handoff. The discovery stage asks what to build, the output type, and which references to emulate, then runs impeccable init for PRODUCT.md/DESIGN.md (references take precedence over project context). The user reviews the generated HTML in one live session.\",\n\t\tinputs: {\n\t\t\tprompt: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"What to design (for example, a dashboard, page, component, or prototype). The discovery stage refines this into a confirmed brief and asks for the output type and references.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tdiscover_references: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Discover beautiful, current reference designs from notable design websites (Awwwards, recent.design, Dribbble, Monet, Motionsites) and feed them to generation. Set false to skip the network/browser reference pass.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"ralph\",\n\t\tdescription:\n\t\t\t\"Raw prompt → research-prompt-refinement → research → orchestrate → multi-model parallel review loop with bounded iteration and immutable acceptance criteria. When launching follow-up ralph runs from review findings, pass the ORIGINAL task text as acceptance_criteria so deltas cannot drift from the literal contract. If the task includes submitting a pull request (or MR/review), remove that final action from the prompt text and set create_pr=true instead when preparing the workflow inputs.\",\n\t\tinputs: {\n\t\t\tprompt: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"The task or goal to research, execute, and refine. Do not include PR/MR submission instructions here; strip them from the task text and request them via create_pr=true instead.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tacceptance_criteria: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Original immutable task contract this run must remain consistent with. Defaults to prompt. Orchestrators launching follow-up runs from reviewer findings should pass the ORIGINAL task text here.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tmax_loops: { description: \"Maximum research/orchestrate/review iterations (default 10).\", kind: \"number\" },\n\t\t\tbase_branch: {\n\t\t\t\tdescription: \"Branch reviewers compare the current code delta against (default origin/main).\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tgit_worktree_dir: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Optional Git worktree path. Leave at the default unless the user explicitly requested worktree isolation — stages never create git worktrees on their own. Must start inside a Git repo; absolute paths are used as-is, relative paths resolve from the repo root, existing Git worktrees from the invoking repository are reused/shared as-is, and missing paths are created from base_branch.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tcreate_pr: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Whether to run the final pull-request creation stage. Defaults to false; prompt text alone does not opt in. If the task asks to submit a PR/MR/review, remove that from the prompt text and set this to true — only the final stage then attempts provider-appropriate PR/MR/review creation.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"tournament\",\n\t\tdescription:\n\t\t\t\"Run independent whole-task attempts through a soft-scored pivot-pairing schedule and return an auditable ranking.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Task every competing agent must attempt independently.\", kind: \"string\" },\n\t\t\tnum_attempts: { description: \"Number of independent whole-task attempts (2-8).\", kind: \"number\" },\n\t\t\tmax_concurrency: {\n\t\t\t\tdescription: \"Maximum simultaneously active attempts or pairwise judges (1-8).\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tn_evaluations: {\n\t\t\t\tdescription: \"Number of repeated evaluations per criterion and directed pair.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tpivots: {\n\t\t\t\tdescription: \"Number of pivot candidates used for the second comparison phase.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tseed: { description: \"Seed for the deterministic comparison schedule.\", kind: \"number\" },\n\t\t\tcriteria: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Optional V1 judge criteria; accepts a markdown rubric, record, string list, or CriterionInput list; omitted uses the default three-criterion rubric.\",\n\t\t\t},\n\t\t\tmodels: { description: \"Optional ordered model ids assigned round-robin to attempt slots.\" },\n\t\t},\n\t},\n];\n\nfunction completeWorkflowToken(argumentText: string, candidates: AutocompleteItem[]): AutocompleteItem[] | null {\n\tconst tokenStart = /\\s$/.test(argumentText)\n\t\t? argumentText.length\n\t\t: Math.max(argumentText.lastIndexOf(\" \"), argumentText.lastIndexOf(\"\\t\")) + 1;\n\tconst head = argumentText.slice(0, tokenStart);\n\tconst token = argumentText.slice(tokenStart);\n\tconst normalizedToken = token.trimEnd();\n\tconst filtered = candidates\n\t\t.filter((candidate) => candidate.value.startsWith(token) && candidate.value.trimEnd() !== normalizedToken)\n\t\t.map((candidate) => ({ ...candidate, value: `${head}${candidate.value}` }));\n\treturn filtered.length > 0 ? filtered : null;\n}\n\nfunction bundledWorkflowNameItems(): AutocompleteItem[] {\n\treturn BUNDLED_WORKFLOW_COMPLETION_METADATA.map((workflow) => ({\n\t\tvalue: `${workflow.name} `,\n\t\tlabel: workflow.name,\n\t\tdescription: `Run workflow: ${workflow.name}`,\n\t}));\n}\n\nexport function getBundledWorkflowArgumentCompletions(argumentPrefix: string): AutocompleteItem[] | null {\n\tconst parts = argumentPrefix.trim().split(/\\s+/).filter(Boolean);\n\tconst subcommand = parts[0] ?? \"\";\n\tconst workflowItems = bundledWorkflowNameItems();\n\tif (!argumentPrefix.includes(\" \")) {\n\t\treturn completeWorkflowToken(argumentPrefix, [...WORKFLOW_ADMIN_COMPLETIONS, ...workflowItems]);\n\t}\n\tif (subcommand === \"inputs\") return completeWorkflowToken(argumentPrefix, workflowItems);\n\tif (subcommand === \"interrupt\") {\n\t\treturn completeWorkflowToken(argumentPrefix, [\n\t\t\t{ value: \"--all \", label: \"--all\", description: \"Interrupt all in-flight runs\" },\n\t\t\t{ value: \"--yes \", label: \"--yes\", description: \"Skip confirmation\" },\n\t\t\t{ value: \"-y \", label: \"-y\", description: \"Skip confirmation\" },\n\t\t]);\n\t}\n\tif (subcommand === \"quit\") {\n\t\treturn completeWorkflowToken(argumentPrefix, [\n\t\t\t{ value: \"--all \", label: \"--all\", description: \"Quit and keep all in-flight runs resumable\" },\n\t\t]);\n\t}\n\tif (!subcommand) return completeWorkflowToken(argumentPrefix, [...WORKFLOW_ADMIN_COMPLETIONS, ...workflowItems]);\n\n\tconst workflow = BUNDLED_WORKFLOW_COMPLETION_METADATA.find((candidate) => candidate.name === subcommand);\n\tif (!workflow) return null;\n\tconst tokenStart = /\\s$/.test(argumentPrefix)\n\t\t? argumentPrefix.length\n\t\t: Math.max(argumentPrefix.lastIndexOf(\" \"), argumentPrefix.lastIndexOf(\"\\t\")) + 1;\n\tconst token = argumentPrefix.slice(tokenStart);\n\tconst equalsIndex = token.indexOf(\"=\");\n\tif (equalsIndex > 0) {\n\t\tconst inputName = token.slice(0, equalsIndex);\n\t\tconst input = workflow.inputs[inputName];\n\t\tif (input?.kind !== \"boolean\") return null;\n\t\treturn completeWorkflowToken(argumentPrefix, [\n\t\t\t{ value: `${inputName}=true `, label: \"true\", description: inputName },\n\t\t\t{ value: `${inputName}=false `, label: \"false\", description: inputName },\n\t\t]);\n\t}\n\n\treturn completeWorkflowToken(argumentPrefix, [\n\t\t{ value: \"--no-picker \", label: \"--no-picker\", description: \"Skip interactive input picker\" },\n\t\t{ value: \"--help \", label: \"--help\", description: \"Show this workflow's input schema\" },\n\t\t...Object.entries(workflow.inputs).map(([name, input]) => ({\n\t\t\tvalue: `${name}=`,\n\t\t\tlabel: name,\n\t\t\tdescription: input.description,\n\t\t})),\n\t]);\n}\n\nexport const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [\n\t{ name: \"settings\", description: \"Open settings menu\" },\n\t{ name: \"model\", description: \"Select model (opens selector UI)\", argumentHint: \"<provider/model>\" },\n\t{ name: \"tree\", description: \"Navigate session tree (switch branches)\" },\n\t{ name: \"thinking\", description: \"Set thinking level\", argumentHint: \"<level>\" },\n\t{ name: \"scoped-models\", description: \"Enable/disable models for ctrl+p cycling\" },\n\t{ name: \"export\", description: \"Export session (HTML default, or specify path: .html/.jsonl)\" },\n\t{ name: \"import\", description: \"Import and resume a session from a JSONL file\" },\n\t{ name: \"share\", description: \"Share session as a secret GitHub gist\" },\n\t{ name: \"copy\", description: \"Copy last agent message to clipboard\" },\n\t{ name: \"name\", description: \"Set session display name\" },\n\t{ name: \"session\", description: \"Show session info and stats\" },\n\t{ name: \"tasks\", description: \"Inspect agents and shells, view output, and manage running tasks\" },\n\t{ name: \"changelog\", description: \"Show changelog entries\" },\n\t{ name: \"hotkeys\", description: \"Show all keyboard shortcuts\" },\n\t{ name: \"fork\", description: \"Create a new fork from a previous user message\" },\n\t{ name: \"clone\", description: \"Duplicate the current session at the current position\" },\n\t{ name: \"trust\", description: \"Save project trust decision for future sessions\" },\n\t{ name: \"login\", description: \"Configure provider authentication\", argumentHint: \"<provider>\" },\n\t{ name: \"logout\", description: \"Remove provider authentication\" },\n\t{ name: \"new\", description: \"Start a new session\" },\n\t{ name: \"compact\", description: \"Compact older context with verbatim line ranges\" },\n\t{ name: \"resume\", description: \"Resume a different session\" },\n\t{ name: \"reload\", description: \"Reload keybindings, extensions, skills, prompts, and themes\" },\n\t{ name: \"exit\", description: `Exit ${APP_NAME}` },\n\t{ name: \"quit\", description: `Quit ${APP_NAME}` },\n];\n\nexport const BUNDLED_EXTENSION_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [\n\t{ name: \"agents\", description: \"Browse available subagents and inspect their configuration\" },\n\t{\n\t\tname: \"workflow\",\n\t\tdescription:\n\t\t\t\"Run or inspect Atomic workflows. Usage: /workflow <name> [key=value…] | /workflow [list|status|connect|attach|interrupt|quit|pause|resume|inputs|reload] [args]\",\n\t\tgetArgumentCompletions: getBundledWorkflowArgumentCompletions,\n\t},\n\t{ name: \"mcp\", description: \"Show MCP server status\" },\n\t{ name: \"mcp-auth\", description: \"Authenticate with an MCP server (OAuth)\" },\n\t{ name: \"curator\", description: \"Toggle or configure the search curator workflow\" },\n\t{ name: \"google-account\", description: \"Show the active Google account for Gemini Web\" },\n\t{ name: \"search\", description: \"Browse stored web search results\" },\n\t{ name: \"websearch\", description: \"Open web search curator\" },\n\t{ name: \"intercom\", description: \"Open session intercom overlay\" },\n];\n"]}
|
|
1
|
+
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AutocompleteItem } from \"@earendil-works/pi-tui\";\nimport { APP_NAME } from \"../config.js\";\nimport type { SourceInfo } from \"./source-info.ts\";\n\nexport type SlashCommandSource = \"extension\" | \"prompt\" | \"skill\";\n\nexport interface SlashCommandInfo {\n\tname: string;\n\tdescription?: string;\n\tsource: SlashCommandSource;\n\tsourceInfo: SourceInfo;\n}\n\nexport interface BuiltinSlashCommand {\n\tname: string;\n\tdescription: string;\n\targumentHint?: string;\n\tgetArgumentCompletions?: (argumentPrefix: string) => AutocompleteItem[] | null | Promise<AutocompleteItem[] | null>;\n}\n\ntype WorkflowInputCompletionMetadata = {\n\tdescription: string;\n\tkind?: \"boolean\" | \"number\" | \"string\";\n};\n\ntype WorkflowCompletionMetadata = {\n\tname: string;\n\tdescription: string;\n\tinputs: Record<string, WorkflowInputCompletionMetadata>;\n};\n\nconst WORKFLOW_ADMIN_COMPLETIONS: AutocompleteItem[] = [\n\t{ value: \"connect \", label: \"connect\", description: \"Attach to a run (picker if no id)\" },\n\t{ value: \"attach \", label: \"attach\", description: \"Open the in-place attach pane on a node\" },\n\t{ value: \"list \", label: \"list\", description: \"List registered workflows\" },\n\t{ value: \"status \", label: \"status\", description: \"List current-session active and retained terminal runs\" },\n\t{ value: \"pause \", label: \"pause\", description: \"Pause a run\" },\n\t{ value: \"quit \", label: \"quit\", description: \"Quit a run and keep it resumable\" },\n\t{ value: \"resume \", label: \"resume\", description: \"Re-open overlay for a run\" },\n\t{ value: \"inputs \", label: \"inputs\", description: \"Show a workflow's input schema\" },\n\t{ value: \"reload \", label: \"reload\", description: \"Reload workflow resources\" },\n];\n\nconst BUNDLED_WORKFLOW_COMPLETION_METADATA: WorkflowCompletionMetadata[] = [\n\t{\n\t\tname: \"adversarial-verification\",\n\t\tdescription:\n\t\t\t\"Produce a candidate, score independent per-criterion verifier reports, and apply a deterministic mean-and-veto gate with bounded repairs.\",\n\t\tinputs: {\n\t\t\ttask: { description: \"Task whose candidate result must be independently verified.\", kind: \"string\" },\n\t\t\tverifier_count: {\n\t\t\t\tdescription: \"Number of independent verifiers for each criterion per round.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tmax_repairs: { description: \"Maximum candidate repair rounds before rejection.\", kind: \"number\" },\n\t\t\tcriteria: { description: \"Criteria record of name-to-description entries, or criteria.md markdown.\" },\n\t\t\taccept_mean: {\n\t\t\t\tdescription: \"Mean score required for acceptance on the 1–20 verification scale.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\treask_limit: { description: \"Maximum bounded re-ask waves for invalid criterion reports.\", kind: \"number\" },\n\t\t},\n\t},\n\t{\n\t\tname: \"classify-and-act\",\n\t\tdescription:\n\t\t\t\"Classify a task with structured confidence, route deterministically to an isolated category action, and ask for human selection when confidence is low.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Task to classify and execute.\", kind: \"string\" },\n\t\t\tcategories: { description: \"Ordered action categories available to the classifier and fallback chooser.\" },\n\t\t\tconfidence_threshold: {\n\t\t\t\tdescription: \"Minimum structured confidence required to route without human selection.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"fan-out-and-synthesize\",\n\t\tdescription:\n\t\t\t\"Partition a task, run bounded independent artifact branches, then synthesize all evidence at an explicit barrier.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Task to partition, investigate, and synthesize.\", kind: \"string\" },\n\t\t\tmax_branches: {\n\t\t\t\tdescription: \"Maximum number of independent partitions produced and executed.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tmax_concurrency: { description: \"Maximum number of branch agents running concurrently.\", kind: \"number\" },\n\t\t},\n\t},\n\t{\n\t\tname: \"generate-and-filter\",\n\t\tdescription:\n\t\t\t\"Generate more independent candidates than needed, deduplicate and filter them by rubric, optionally judge them, and return a parent-consumable shortlist.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Prompt for candidate generation and selection.\", kind: \"string\" },\n\t\t\tnum_candidates: { description: \"Number of independent candidates to generate.\", kind: \"number\" },\n\t\t\tshortlist_size: { description: \"Maximum number of candidates in the final shortlist.\", kind: \"number\" },\n\t\t\tuse_judge: { description: \"Whether an independent judge reviews the filtered shortlist.\", kind: \"boolean\" },\n\t\t\tmax_concurrency: { description: \"Maximum simultaneous generator stages.\", kind: \"number\" },\n\t\t},\n\t},\n\t{\n\t\tname: \"goal\",\n\t\tdescription:\n\t\t\t\"Goal Runner workflow with bounded sub-agent orchestration turns, immutable acceptance criteria, ledger artifacts, parallel reviewers, and reducer-gated completion. When launching follow-up goal runs from review findings, pass the ORIGINAL task text as acceptance_criteria so deltas cannot drift from the literal contract. If the task includes submitting a pull request (or MR/review), remove that final action from the objective text and set create_pr=true instead when preparing the workflow inputs.\",\n\t\tinputs: {\n\t\t\tobjective: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"The objective or delta for this Goal Runner workflow run. Do not include PR/MR submission instructions here; strip them from the task text and request them via create_pr=true instead.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tacceptance_criteria: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Original immutable task contract this run must remain consistent with. Defaults to objective. Orchestrators launching follow-up runs from reviewer findings should pass the ORIGINAL task text here.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tmax_turns: {\n\t\t\t\tdescription: \"Maximum orchestrator/review turns before Goal Runner stops as needs_human.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tbase_branch: {\n\t\t\t\tdescription: \"Optional branch reviewers compare the current code delta against (default origin/main).\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tgit_worktree_dir: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Optional Git worktree path. Leave at the default unless the user explicitly requested worktree isolation — stages never create git worktrees on their own. Must start inside a Git repo; absolute paths are used as-is, relative paths resolve from the repo root, existing Git worktrees from the invoking repository are reused/shared as-is, and missing paths are created from base_branch.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tcreate_pr: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Whether to run the final pull-request creation stage after reviewer/reducer approval. Defaults to false; prompt text alone does not opt in. If the task asks to submit a PR/MR/review, remove that from the objective text and set this to true — only the final stage then attempts provider-appropriate PR/MR/review creation after Goal completes.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"loop-until-done\",\n\t\tdescription:\n\t\t\t\"Repeat evidence-producing work and independent completion evaluation against a durable ledger until done or an inspectable iteration-limit failure.\",\n\t\tinputs: {\n\t\t\tprompt: {\n\t\t\t\tdescription: \"Objective whose explicit completion condition controls the bounded loop.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tmax_iterations: {\n\t\t\t\tdescription: \"Maximum work/evaluation iterations before returning an inspectable failed status (1-20).\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tprogress_scoring: {\n\t\t\t\tdescription: \"Enable advisory progress scoring after each completed iteration.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t\tprogress_repeats: {\n\t\t\t\tdescription: \"Number of advisory progress-scoring repeats per iteration.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"open-claude-design\",\n\t\tdescription:\n\t\t\t\"AI-powered design workflow: combined discovery/init → design-system/reference research → curated reference discovery → HTML generation → one live review session → rich HTML handoff. The discovery stage asks what to build, the output type, and which references to emulate, then runs impeccable init for PRODUCT.md/DESIGN.md (references take precedence over project context). The user reviews the generated HTML in one live session.\",\n\t\tinputs: {\n\t\t\tprompt: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"What to design (for example, a dashboard, page, component, or prototype). The discovery stage refines this into a confirmed brief and asks for the output type and references.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tdiscover_references: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Discover beautiful, current reference designs from notable design websites (Awwwards, recent.design, Dribbble, Monet, Motionsites) and feed them to generation. Set false to skip the network/browser reference pass.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"ralph\",\n\t\tdescription:\n\t\t\t\"Raw prompt → research-prompt-refinement → research → orchestrate → multi-model parallel review loop with bounded iteration and immutable acceptance criteria. When launching follow-up ralph runs from review findings, pass the ORIGINAL task text as acceptance_criteria so deltas cannot drift from the literal contract. If the task includes submitting a pull request (or MR/review), remove that final action from the prompt text and set create_pr=true instead when preparing the workflow inputs.\",\n\t\tinputs: {\n\t\t\tprompt: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"The task or goal to research, execute, and refine. Do not include PR/MR submission instructions here; strip them from the task text and request them via create_pr=true instead.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tacceptance_criteria: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Original immutable task contract this run must remain consistent with. Defaults to prompt. Orchestrators launching follow-up runs from reviewer findings should pass the ORIGINAL task text here.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tmax_loops: { description: \"Maximum research/orchestrate/review iterations (default 10).\", kind: \"number\" },\n\t\t\tbase_branch: {\n\t\t\t\tdescription: \"Branch reviewers compare the current code delta against (default origin/main).\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tgit_worktree_dir: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Optional Git worktree path. Leave at the default unless the user explicitly requested worktree isolation — stages never create git worktrees on their own. Must start inside a Git repo; absolute paths are used as-is, relative paths resolve from the repo root, existing Git worktrees from the invoking repository are reused/shared as-is, and missing paths are created from base_branch.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tcreate_pr: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Whether to run the final pull-request creation stage. Defaults to false; prompt text alone does not opt in. If the task asks to submit a PR/MR/review, remove that from the prompt text and set this to true — only the final stage then attempts provider-appropriate PR/MR/review creation.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"tournament\",\n\t\tdescription:\n\t\t\t\"Run independent whole-task attempts through a soft-scored pivot-pairing schedule and return an auditable ranking.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Task every competing agent must attempt independently.\", kind: \"string\" },\n\t\t\tnum_attempts: { description: \"Number of independent whole-task attempts (2-8).\", kind: \"number\" },\n\t\t\tmax_concurrency: {\n\t\t\t\tdescription: \"Maximum simultaneously active attempts or pairwise judges (1-8).\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tn_evaluations: {\n\t\t\t\tdescription: \"Number of repeated evaluations per criterion and directed pair.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tpivots: {\n\t\t\t\tdescription: \"Number of pivot candidates used for the second comparison phase.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tseed: { description: \"Seed for the deterministic comparison schedule.\", kind: \"number\" },\n\t\t\tcriteria: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Optional V1 judge criteria; accepts a markdown rubric, record, string list, or CriterionInput list; omitted uses the default three-criterion rubric.\",\n\t\t\t},\n\t\t\tmodels: { description: \"Optional ordered model ids assigned round-robin to attempt slots.\" },\n\t\t},\n\t},\n];\n\nfunction completeWorkflowToken(argumentText: string, candidates: AutocompleteItem[]): AutocompleteItem[] | null {\n\tconst tokenStart = /\\s$/.test(argumentText)\n\t\t? argumentText.length\n\t\t: Math.max(argumentText.lastIndexOf(\" \"), argumentText.lastIndexOf(\"\\t\")) + 1;\n\tconst head = argumentText.slice(0, tokenStart);\n\tconst token = argumentText.slice(tokenStart);\n\tconst normalizedToken = token.trimEnd();\n\tconst filtered = candidates\n\t\t.filter((candidate) => candidate.value.startsWith(token) && candidate.value.trimEnd() !== normalizedToken)\n\t\t.map((candidate) => ({ ...candidate, value: `${head}${candidate.value}` }));\n\treturn filtered.length > 0 ? filtered : null;\n}\n\nfunction bundledWorkflowNameItems(): AutocompleteItem[] {\n\treturn BUNDLED_WORKFLOW_COMPLETION_METADATA.map((workflow) => ({\n\t\tvalue: `${workflow.name} `,\n\t\tlabel: workflow.name,\n\t\tdescription: `Run workflow: ${workflow.name}`,\n\t}));\n}\n\nexport function getBundledWorkflowArgumentCompletions(argumentPrefix: string): AutocompleteItem[] | null {\n\tconst parts = argumentPrefix.trim().split(/\\s+/).filter(Boolean);\n\tconst subcommand = parts[0] ?? \"\";\n\tconst workflowItems = bundledWorkflowNameItems();\n\tif (!argumentPrefix.includes(\" \")) {\n\t\treturn completeWorkflowToken(argumentPrefix, [...WORKFLOW_ADMIN_COMPLETIONS, ...workflowItems]);\n\t}\n\tif (subcommand === \"inputs\") return completeWorkflowToken(argumentPrefix, workflowItems);\n\tif (subcommand === \"pause\") {\n\t\treturn completeWorkflowToken(argumentPrefix, [\n\t\t\t{ value: \"--all \", label: \"--all\", description: \"Pause all in-flight runs\" },\n\t\t\t{ value: \"--yes \", label: \"--yes\", description: \"Skip confirmation\" },\n\t\t\t{ value: \"-y \", label: \"-y\", description: \"Skip confirmation\" },\n\t\t]);\n\t}\n\tif (subcommand === \"quit\") {\n\t\treturn completeWorkflowToken(argumentPrefix, [\n\t\t\t{ value: \"--all \", label: \"--all\", description: \"Quit and keep all in-flight runs resumable\" },\n\t\t]);\n\t}\n\tif (!subcommand) return completeWorkflowToken(argumentPrefix, [...WORKFLOW_ADMIN_COMPLETIONS, ...workflowItems]);\n\n\tconst workflow = BUNDLED_WORKFLOW_COMPLETION_METADATA.find((candidate) => candidate.name === subcommand);\n\tif (!workflow) return null;\n\tconst tokenStart = /\\s$/.test(argumentPrefix)\n\t\t? argumentPrefix.length\n\t\t: Math.max(argumentPrefix.lastIndexOf(\" \"), argumentPrefix.lastIndexOf(\"\\t\")) + 1;\n\tconst token = argumentPrefix.slice(tokenStart);\n\tconst equalsIndex = token.indexOf(\"=\");\n\tif (equalsIndex > 0) {\n\t\tconst inputName = token.slice(0, equalsIndex);\n\t\tconst input = workflow.inputs[inputName];\n\t\tif (input?.kind !== \"boolean\") return null;\n\t\treturn completeWorkflowToken(argumentPrefix, [\n\t\t\t{ value: `${inputName}=true `, label: \"true\", description: inputName },\n\t\t\t{ value: `${inputName}=false `, label: \"false\", description: inputName },\n\t\t]);\n\t}\n\n\treturn completeWorkflowToken(argumentPrefix, [\n\t\t{ value: \"--no-picker \", label: \"--no-picker\", description: \"Skip interactive input picker\" },\n\t\t{ value: \"--help \", label: \"--help\", description: \"Show this workflow's input schema\" },\n\t\t...Object.entries(workflow.inputs).map(([name, input]) => ({\n\t\t\tvalue: `${name}=`,\n\t\t\tlabel: name,\n\t\t\tdescription: input.description,\n\t\t})),\n\t]);\n}\n\nexport const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [\n\t{ name: \"settings\", description: \"Open settings menu\" },\n\t{ name: \"model\", description: \"Select model (opens selector UI)\", argumentHint: \"<provider/model>\" },\n\t{ name: \"tree\", description: \"Navigate session tree (switch branches)\" },\n\t{ name: \"thinking\", description: \"Set thinking level\", argumentHint: \"<level>\" },\n\t{ name: \"scoped-models\", description: \"Enable/disable models for ctrl+p cycling\" },\n\t{ name: \"export\", description: \"Export session (HTML default, or specify path: .html/.jsonl)\" },\n\t{ name: \"import\", description: \"Import and resume a session from a JSONL file\" },\n\t{ name: \"share\", description: \"Share session as a secret GitHub gist\" },\n\t{ name: \"copy\", description: \"Copy last agent message to clipboard\" },\n\t{ name: \"name\", description: \"Set session display name\" },\n\t{ name: \"session\", description: \"Show session info and stats\" },\n\t{ name: \"tasks\", description: \"Inspect agents and shells, view output, and manage running tasks\" },\n\t{ name: \"changelog\", description: \"Show changelog entries\" },\n\t{ name: \"hotkeys\", description: \"Show all keyboard shortcuts\" },\n\t{ name: \"fork\", description: \"Create a new fork from a previous user message\" },\n\t{ name: \"clone\", description: \"Duplicate the current session at the current position\" },\n\t{ name: \"trust\", description: \"Save project trust decision for future sessions\" },\n\t{ name: \"login\", description: \"Configure provider authentication\", argumentHint: \"<provider>\" },\n\t{ name: \"logout\", description: \"Remove provider authentication\" },\n\t{ name: \"new\", description: \"Start a new session\" },\n\t{ name: \"compact\", description: \"Compact older context with verbatim line ranges\" },\n\t{ name: \"resume\", description: \"Resume a different session\" },\n\t{ name: \"reload\", description: \"Reload keybindings, extensions, skills, prompts, and themes\" },\n\t{ name: \"exit\", description: `Exit ${APP_NAME}` },\n\t{ name: \"quit\", description: `Quit ${APP_NAME}` },\n];\n\nexport const BUNDLED_EXTENSION_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [\n\t{ name: \"agents\", description: \"Browse available subagents and inspect their configuration\" },\n\t{\n\t\tname: \"workflow\",\n\t\tdescription:\n\t\t\t\"Run or inspect Atomic workflows. Usage: /workflow <name> [key=value…] | /workflow [list|status|connect|attach|quit|pause|resume|inputs|reload] [args]\",\n\t\tgetArgumentCompletions: getBundledWorkflowArgumentCompletions,\n\t},\n\t{ name: \"mcp\", description: \"Show MCP server status\" },\n\t{ name: \"mcp-auth\", description: \"Authenticate with an MCP server (OAuth)\" },\n\t{ name: \"curator\", description: \"Toggle or configure the search curator workflow\" },\n\t{ name: \"google-account\", description: \"Show the active Google account for Gemini Web\" },\n\t{ name: \"search\", description: \"Browse stored web search results\" },\n\t{ name: \"websearch\", description: \"Open web search curator\" },\n\t{ name: \"intercom\", description: \"Open session intercom overlay\" },\n];\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as C from "./contracts.js";
|
|
2
|
-
import { type FakeExecution, type FakeRunnerContext, type OwnerLease, type TaskLease, TaskSupervisor, type TrustedTaskHost } from "./supervisor.js";
|
|
2
|
+
import { type FakeExecution, type FakeRunnerContext, type OwnerLease, type TaskLease, TaskSupervisor, type TrustedTaskHost, type WaitLease } from "./supervisor.js";
|
|
3
3
|
export type AgentTaskRunnerFactory = (context: FakeRunnerContext, intent: C.AgentIntent) => FakeExecution;
|
|
4
4
|
export type AgentTaskHostBinding = Omit<TrustedTaskHost, "createRunner">;
|
|
5
5
|
/** Internal trusted-host seam. Bind actual host identity, never model-supplied scope. */
|
|
@@ -14,6 +14,7 @@ export declare class AgentTaskHost {
|
|
|
14
14
|
get ownerBinding(): {
|
|
15
15
|
supervisor: TaskSupervisor;
|
|
16
16
|
owner: OwnerLease;
|
|
17
|
+
waitForTask: AgentTaskHost["waitForTask"];
|
|
17
18
|
};
|
|
18
19
|
constructor(binding: AgentTaskHostBinding);
|
|
19
20
|
startAgentTask(intent: C.AgentIntent, operation: C.OperationId, runner: AgentTaskRunnerFactory, schedule?: (dispatch: () => Promise<void>) => void): Promise<C.Result<{
|
|
@@ -22,7 +23,9 @@ export declare class AgentTaskHost {
|
|
|
22
23
|
}, C.StartFailure>>;
|
|
23
24
|
resolveTask(taskId: C.TaskId): C.Result<TaskLease, C.WaitError>;
|
|
24
25
|
observeAgentLaunch(taskId: C.TaskId, policy?: C.WaitPolicy, onRegistered?: (yieldWait: (reason: C.YieldReason) => C.Result<C.WaitOutcome, C.YieldError>) => void): Promise<C.Result<C.WaitOutcome, C.WaitError>>;
|
|
25
|
-
waitForTask(taskId: C.TaskId, budgetMs?: number): Promise<C.Result<C.WaitOutcome, C.WaitError>>;
|
|
26
|
+
waitForTask(taskId: C.TaskId, budgetMs?: number, onRegistered?: (wait: WaitLease) => void): Promise<C.Result<C.WaitOutcome, C.WaitError>>;
|
|
27
|
+
/** Let inbound routing reach SDK admission instead of waiting for this owner to become idle. */
|
|
28
|
+
get hasActiveTaskWaits(): boolean;
|
|
26
29
|
/** Incoming owner messages release observation only, never the child execution. */
|
|
27
30
|
yieldTaskWaits(reason: C.YieldReason): void;
|
|
28
31
|
private trackMessageWait;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-adapter.d.ts","sourceRoot":"","sources":["../../../src/core/tasks/agent-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAGzC,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,cAAc,EACd,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"agent-adapter.d.ts","sourceRoot":"","sources":["../../../src/core/tasks/agent-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAGzC,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW,KAAK,aAAa,CAAC;AAC1G,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AAKzE,yFAAyF;AACzF,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IACvB,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,+EAA+E;IAC/E,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,GAAG,IAAI,CAEhE;IACD,qFAAqF;IACrF,IAAI,YAAY,IAAI;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC;QAAC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;KAAE,CAE/G;IAED,YAAY,OAAO,EAAE,oBAAoB,EAsBxC;IAEK,cAAc,CACnB,MAAM,EAAE,CAAC,CAAC,WAAW,EACrB,SAAS,EAAE,CAAC,CAAC,WAAW,EACxB,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,GAChD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAY3E;IACD,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAE9D;IAED,kBAAkB,CACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAChB,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,EACrB,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,iDASpG;IAED,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,iDAKxF;IAED,gGAAgG;IAChG,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,mFAAmF;IACnF,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,GAAG,IAAI,CAE1C;IAED,OAAO,CAAC,gBAAgB;IAMxB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW;;;2DAGhD;IAED,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,sEAEhC;IAED,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,eAAe,wDAE7B;IAED,OAAO,CAAC,WAAW,CAAS;IAC5B,mFAAmF;IACnF,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAG1B;IACD,WAAW,IAAI,IAAI,CAElB;IACD,OAAO,CAAC,mBAAmB;CAG3B"}
|
|
@@ -12,7 +12,7 @@ export class AgentTaskHost {
|
|
|
12
12
|
}
|
|
13
13
|
/** Internal projection binding; never serialize these native-backed capabilities. */
|
|
14
14
|
get ownerBinding() {
|
|
15
|
-
return { supervisor: this.supervisor, owner: this.owner };
|
|
15
|
+
return { supervisor: this.supervisor, owner: this.owner, waitForTask: this.waitForTask.bind(this) };
|
|
16
16
|
}
|
|
17
17
|
constructor(binding) {
|
|
18
18
|
this.supervisor = new TaskSupervisor();
|
|
@@ -66,8 +66,15 @@ export class AgentTaskHost {
|
|
|
66
66
|
})
|
|
67
67
|
: Promise.resolve(task);
|
|
68
68
|
}
|
|
69
|
-
waitForTask(taskId, budgetMs) {
|
|
70
|
-
return this.supervisor.waitForTaskId(this.owner, taskId, budgetMs, (wait) =>
|
|
69
|
+
waitForTask(taskId, budgetMs, onRegistered) {
|
|
70
|
+
return this.supervisor.waitForTaskId(this.owner, taskId, budgetMs, (wait) => {
|
|
71
|
+
this.trackMessageWait(wait);
|
|
72
|
+
onRegistered?.(wait);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/** Let inbound routing reach SDK admission instead of waiting for this owner to become idle. */
|
|
76
|
+
get hasActiveTaskWaits() {
|
|
77
|
+
return this.messageWaits.size > 0;
|
|
71
78
|
}
|
|
72
79
|
/** Incoming owner messages release observation only, never the child execution. */
|
|
73
80
|
yieldTaskWaits(reason) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-adapter.js","sourceRoot":"","sources":["../../../src/core/tasks/agent-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type * as C from \"./contracts.js\";\nimport { trackAdmittedAgentTask } from \"./execution-scope.js\";\nimport { cancelPausedOwnerTasks } from \"./pause.js\";\nimport {\n\ttype FakeExecution,\n\ttype FakeRunnerContext,\n\ttype OwnerLease,\n\ttype TaskLease,\n\tTaskSupervisor,\n\ttype TrustedTaskHost,\n\ttype WaitLease,\n} from \"./supervisor.js\";\n\nexport type AgentTaskRunnerFactory = (context: FakeRunnerContext, intent: C.AgentIntent) => FakeExecution;\nexport type AgentTaskHostBinding = Omit<TrustedTaskHost, \"createRunner\">;\n\n// S1 converges repeated live-scope bindings on one owner, so dispatch context is shared too.\nconst runners = new AsyncLocalStorage<AgentTaskRunnerFactory>();\n\n/** Internal trusted-host seam. Bind actual host identity, never model-supplied scope. */\nexport class AgentTaskHost {\n\tprivate readonly supervisor = new TaskSupervisor();\n\tprivate readonly owner;\n\tprivate binding: AgentTaskHostBinding;\n\tprivate readonly messageWaits = new Set<WaitLease>();\n\t/** Stage replacement updates callbacks, never native identity or ownership. */\n\tupdateBinding(binding: Omit<AgentTaskHostBinding, \"scope\">): void {\n\t\tthis.binding = { ...this.binding, ...binding };\n\t}\n\t/** Internal projection binding; never serialize these native-backed capabilities. */\n\tget ownerBinding(): { supervisor: TaskSupervisor; owner: OwnerLease } {\n\t\treturn { supervisor: this.supervisor, owner: this.owner };\n\t}\n\n\tconstructor(binding: AgentTaskHostBinding) {\n\t\tthis.binding = binding;\n\t\tconst host = this.supervisor.bindHostSession({\n\t\t\t...binding,\n\t\t\tauthorizeLaunch: (intent) => {\n\t\t\t\tthis.authorizeTaskLaunch();\n\t\t\t\tthis.binding.authorizeLaunch(intent);\n\t\t\t},\n\t\t\tauthorizeCommandLaunch: (intent) => {\n\t\t\t\tthis.authorizeTaskLaunch();\n\t\t\t\tthis.binding.authorizeCommandLaunch?.(intent);\n\t\t\t},\n\t\t\tonTaskSettled: (ref, receipt) => this.binding.onTaskSettled?.(ref, receipt),\n\t\t\tcreateRunner: (context, intent) => {\n\t\t\t\tconst runner = runners.getStore();\n\t\t\t\tif (!runner) throw new Error(\"Agent runner factory missing from launch context\");\n\t\t\t\treturn runner(context, intent);\n\t\t\t},\n\t\t});\n\t\tconst opened = this.supervisor.openTaskOwner(host, binding.scope);\n\t\tif (!opened.ok) throw new Error(`${opened.error.code}: ${opened.error.message}`);\n\t\tthis.owner = opened.value;\n\t}\n\n\tasync startAgentTask(\n\t\tintent: C.AgentIntent,\n\t\toperation: C.OperationId,\n\t\trunner: AgentTaskRunnerFactory,\n\t\tschedule?: (dispatch: () => Promise<void>) => void,\n\t): Promise<C.Result<{ taskId: C.TaskId; lease: TaskLease }, C.StartFailure>> {\n\t\tconst started = await runners.run(runner, () =>\n\t\t\tthis.supervisor.startAgentTask(this.owner, intent, operation, schedule),\n\t\t);\n\t\tif (started.ok)\n\t\t\ttrackAdmittedAgentTask({ host: this, taskId: this.supervisor.taskReference(started.value).taskId });\n\t\treturn started.ok\n\t\t\t? {\n\t\t\t\t\tok: true as const,\n\t\t\t\t\tvalue: { taskId: this.supervisor.taskReference(started.value).taskId, lease: started.value },\n\t\t\t\t}\n\t\t\t: started;\n\t}\n\tresolveTask(taskId: C.TaskId): C.Result<TaskLease, C.WaitError> {\n\t\treturn this.supervisor.lookupTask(this.owner, taskId);\n\t}\n\n\tobserveAgentLaunch(\n\t\ttaskId: C.TaskId,\n\t\tpolicy?: C.WaitPolicy,\n\t\tonRegistered?: (yieldWait: (reason: C.YieldReason) => C.Result<C.WaitOutcome, C.YieldError>) => void,\n\t) {\n\t\tconst task = this.resolveTask(taskId);\n\t\treturn task.ok\n\t\t\t? this.supervisor.initialObservation(task.value, policy, (wait) => {\n\t\t\t\t\tif (policy?.kind === \"foreground\") this.trackMessageWait(wait);\n\t\t\t\t\tonRegistered?.((reason) => this.supervisor.yieldTaskWait(wait, reason));\n\t\t\t\t})\n\t\t\t: Promise.resolve(task);\n\t}\n\n\twaitForTask(taskId: C.TaskId, budgetMs?: number) {\n\t\treturn this.supervisor.waitForTaskId(this.owner, taskId, budgetMs, (wait) => this.trackMessageWait(wait));\n\t}\n\n\t/** Incoming owner messages release observation only, never the child execution. */\n\tyieldTaskWaits(reason: C.YieldReason): void {\n\t\tfor (const wait of this.messageWaits) this.supervisor.yieldTaskWait(wait, reason);\n\t}\n\n\tprivate trackMessageWait(wait: WaitLease): void {\n\t\tthis.messageWaits.add(wait);\n\t\tconst remove = () => this.messageWaits.delete(wait);\n\t\tvoid this.supervisor.observeTaskWait(wait).then(remove, remove);\n\t}\n\n\tcancelTask(taskId: C.TaskId, cause: C.CancelCause) {\n\t\tconst task = this.resolveTask(taskId);\n\t\treturn task.ok ? this.supervisor.cancelTask(task.value, cause) : Promise.resolve(task);\n\t}\n\n\twatchOwnerTasks(cursor?: C.Cursor) {\n\t\treturn this.supervisor.watchOwnerTasks(this.owner, cursor);\n\t}\n\n\tclose(cause: C.OwnerCloseCause) {\n\t\treturn this.supervisor.closeTaskOwner(this.owner, cause);\n\t}\n\n\tprivate tasksPaused = false;\n\t/** Reversible execution hold; message admission and owner identity remain open. */\n\tpauseTasks(): Promise<void> {\n\t\tthis.tasksPaused = true;\n\t\treturn cancelPausedOwnerTasks(this);\n\t}\n\tresumeTasks(): void {\n\t\tthis.tasksPaused = false;\n\t}\n\tprivate authorizeTaskLaunch(): void {\n\t\tif (this.tasksPaused) throw new Error(\"Workflow stage tasks are paused\");\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"agent-adapter.js","sourceRoot":"","sources":["../../../src/core/tasks/agent-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type * as C from \"./contracts.js\";\nimport { trackAdmittedAgentTask } from \"./execution-scope.js\";\nimport { cancelPausedOwnerTasks } from \"./pause.js\";\nimport {\n\ttype FakeExecution,\n\ttype FakeRunnerContext,\n\ttype OwnerLease,\n\ttype TaskLease,\n\tTaskSupervisor,\n\ttype TrustedTaskHost,\n\ttype WaitLease,\n} from \"./supervisor.js\";\n\nexport type AgentTaskRunnerFactory = (context: FakeRunnerContext, intent: C.AgentIntent) => FakeExecution;\nexport type AgentTaskHostBinding = Omit<TrustedTaskHost, \"createRunner\">;\n\n// S1 converges repeated live-scope bindings on one owner, so dispatch context is shared too.\nconst runners = new AsyncLocalStorage<AgentTaskRunnerFactory>();\n\n/** Internal trusted-host seam. Bind actual host identity, never model-supplied scope. */\nexport class AgentTaskHost {\n\tprivate readonly supervisor = new TaskSupervisor();\n\tprivate readonly owner;\n\tprivate binding: AgentTaskHostBinding;\n\tprivate readonly messageWaits = new Set<WaitLease>();\n\t/** Stage replacement updates callbacks, never native identity or ownership. */\n\tupdateBinding(binding: Omit<AgentTaskHostBinding, \"scope\">): void {\n\t\tthis.binding = { ...this.binding, ...binding };\n\t}\n\t/** Internal projection binding; never serialize these native-backed capabilities. */\n\tget ownerBinding(): { supervisor: TaskSupervisor; owner: OwnerLease; waitForTask: AgentTaskHost[\"waitForTask\"] } {\n\t\treturn { supervisor: this.supervisor, owner: this.owner, waitForTask: this.waitForTask.bind(this) };\n\t}\n\n\tconstructor(binding: AgentTaskHostBinding) {\n\t\tthis.binding = binding;\n\t\tconst host = this.supervisor.bindHostSession({\n\t\t\t...binding,\n\t\t\tauthorizeLaunch: (intent) => {\n\t\t\t\tthis.authorizeTaskLaunch();\n\t\t\t\tthis.binding.authorizeLaunch(intent);\n\t\t\t},\n\t\t\tauthorizeCommandLaunch: (intent) => {\n\t\t\t\tthis.authorizeTaskLaunch();\n\t\t\t\tthis.binding.authorizeCommandLaunch?.(intent);\n\t\t\t},\n\t\t\tonTaskSettled: (ref, receipt) => this.binding.onTaskSettled?.(ref, receipt),\n\t\t\tcreateRunner: (context, intent) => {\n\t\t\t\tconst runner = runners.getStore();\n\t\t\t\tif (!runner) throw new Error(\"Agent runner factory missing from launch context\");\n\t\t\t\treturn runner(context, intent);\n\t\t\t},\n\t\t});\n\t\tconst opened = this.supervisor.openTaskOwner(host, binding.scope);\n\t\tif (!opened.ok) throw new Error(`${opened.error.code}: ${opened.error.message}`);\n\t\tthis.owner = opened.value;\n\t}\n\n\tasync startAgentTask(\n\t\tintent: C.AgentIntent,\n\t\toperation: C.OperationId,\n\t\trunner: AgentTaskRunnerFactory,\n\t\tschedule?: (dispatch: () => Promise<void>) => void,\n\t): Promise<C.Result<{ taskId: C.TaskId; lease: TaskLease }, C.StartFailure>> {\n\t\tconst started = await runners.run(runner, () =>\n\t\t\tthis.supervisor.startAgentTask(this.owner, intent, operation, schedule),\n\t\t);\n\t\tif (started.ok)\n\t\t\ttrackAdmittedAgentTask({ host: this, taskId: this.supervisor.taskReference(started.value).taskId });\n\t\treturn started.ok\n\t\t\t? {\n\t\t\t\t\tok: true as const,\n\t\t\t\t\tvalue: { taskId: this.supervisor.taskReference(started.value).taskId, lease: started.value },\n\t\t\t\t}\n\t\t\t: started;\n\t}\n\tresolveTask(taskId: C.TaskId): C.Result<TaskLease, C.WaitError> {\n\t\treturn this.supervisor.lookupTask(this.owner, taskId);\n\t}\n\n\tobserveAgentLaunch(\n\t\ttaskId: C.TaskId,\n\t\tpolicy?: C.WaitPolicy,\n\t\tonRegistered?: (yieldWait: (reason: C.YieldReason) => C.Result<C.WaitOutcome, C.YieldError>) => void,\n\t) {\n\t\tconst task = this.resolveTask(taskId);\n\t\treturn task.ok\n\t\t\t? this.supervisor.initialObservation(task.value, policy, (wait) => {\n\t\t\t\t\tif (policy?.kind === \"foreground\") this.trackMessageWait(wait);\n\t\t\t\t\tonRegistered?.((reason) => this.supervisor.yieldTaskWait(wait, reason));\n\t\t\t\t})\n\t\t\t: Promise.resolve(task);\n\t}\n\n\twaitForTask(taskId: C.TaskId, budgetMs?: number, onRegistered?: (wait: WaitLease) => void) {\n\t\treturn this.supervisor.waitForTaskId(this.owner, taskId, budgetMs, (wait) => {\n\t\t\tthis.trackMessageWait(wait);\n\t\t\tonRegistered?.(wait);\n\t\t});\n\t}\n\n\t/** Let inbound routing reach SDK admission instead of waiting for this owner to become idle. */\n\tget hasActiveTaskWaits(): boolean {\n\t\treturn this.messageWaits.size > 0;\n\t}\n\n\t/** Incoming owner messages release observation only, never the child execution. */\n\tyieldTaskWaits(reason: C.YieldReason): void {\n\t\tfor (const wait of this.messageWaits) this.supervisor.yieldTaskWait(wait, reason);\n\t}\n\n\tprivate trackMessageWait(wait: WaitLease): void {\n\t\tthis.messageWaits.add(wait);\n\t\tconst remove = () => this.messageWaits.delete(wait);\n\t\tvoid this.supervisor.observeTaskWait(wait).then(remove, remove);\n\t}\n\n\tcancelTask(taskId: C.TaskId, cause: C.CancelCause) {\n\t\tconst task = this.resolveTask(taskId);\n\t\treturn task.ok ? this.supervisor.cancelTask(task.value, cause) : Promise.resolve(task);\n\t}\n\n\twatchOwnerTasks(cursor?: C.Cursor) {\n\t\treturn this.supervisor.watchOwnerTasks(this.owner, cursor);\n\t}\n\n\tclose(cause: C.OwnerCloseCause) {\n\t\treturn this.supervisor.closeTaskOwner(this.owner, cause);\n\t}\n\n\tprivate tasksPaused = false;\n\t/** Reversible execution hold; message admission and owner identity remain open. */\n\tpauseTasks(): Promise<void> {\n\t\tthis.tasksPaused = true;\n\t\treturn cancelPausedOwnerTasks(this);\n\t}\n\tresumeTasks(): void {\n\t\tthis.tasksPaused = false;\n\t}\n\tprivate authorizeTaskLaunch(): void {\n\t\tif (this.tasksPaused) throw new Error(\"Workflow stage tasks are paused\");\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../src/core/tasks/completion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3G,eAAO,MAAM,4BAA4B,oBAAoB,CAAC;AAC9D,MAAM,MAAM,sBAAsB,GAAG;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,sBAAsB,EAChC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC,EAC9E,MAAM,CAAC,EAAE,MAAM,GACb,oBAAoB,CAetB;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,sBAAsB,EAChC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC,EACvD,MAAM,CAAC,EAAE,MAAM,GACb,MAAM,
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../src/core/tasks/completion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3G,eAAO,MAAM,4BAA4B,oBAAoB,CAAC;AAC9D,MAAM,MAAM,sBAAsB,GAAG;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,sBAAsB,EAChC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC,EAC9E,MAAM,CAAC,EAAE,MAAM,GACb,oBAAoB,CAetB;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,sBAAsB,EAChC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC,EACvD,MAAM,CAAC,EAAE,MAAM,GACb,MAAM,CAgCR;AAED,6FAA6F;AAC7F,qBAAa,oBAAoB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsD;IAE5E,YACC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,OAAO,EACrB,KAAK,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,EAe1D;IACD,IAAI,OAAO,IAAI,sBAAsB,EAAE,CAEtC;IAED,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAWzD;IAED,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAKrB;YAEa,OAAO;CAwBrB"}
|