@bastani/atomic 0.9.43 → 0.9.44-alpha.2
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 +42 -0
- package/dist/builtin/intercom/CHANGELOG.md +22 -0
- package/dist/builtin/intercom/broker/broker.ts +31 -7
- package/dist/builtin/intercom/broker/client-message-validation.ts +6 -0
- package/dist/builtin/intercom/broker/client.ts +69 -0
- package/dist/builtin/intercom/broker/send-signature.ts +4 -1
- package/dist/builtin/intercom/index.bundle.mjs +309 -109
- package/dist/builtin/intercom/live-route-refusal.ts +20 -0
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/intercom/skills/intercom/SKILL.md +11 -6
- package/dist/builtin/intercom/types.ts +28 -1
- package/dist/builtin/mcp/CHANGELOG.md +7 -0
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/CHANGELOG.md +9 -0
- package/dist/builtin/subagents/README.md +8 -8
- package/dist/builtin/subagents/agents/worker.md +1 -1
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/subagents/skills/agent-browser/SKILL.md +1 -1
- package/dist/builtin/subagents/skills/cua-driver/EMBEDDING.md +21 -2
- package/dist/builtin/subagents/skills/cua-driver/LINUX.md +2 -2
- package/dist/builtin/subagents/skills/cua-driver/MACOS.md +342 -10
- package/dist/builtin/subagents/skills/cua-driver/README.md +4 -3
- package/dist/builtin/subagents/skills/cua-driver/RUNTIME.md +3 -1
- package/dist/builtin/subagents/skills/cua-driver/SKILL.md +7 -4
- package/dist/builtin/subagents/skills/cua-driver/WINDOWS.md +6 -5
- package/dist/builtin/subagents/skills/cua-driver/WORKFLOW.md +15 -0
- package/dist/builtin/subagents/skills/herdr/SKILL.md +22 -10
- package/dist/builtin/subagents/skills/subagent/SKILL.md +8 -5
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +6 -6
- package/dist/builtin/web-access/package.json +1 -1
- package/dist/builtin/workflows/CHANGELOG.md +20 -0
- package/dist/builtin/workflows/README.md +1 -1
- package/dist/builtin/workflows/builtin/{chunk-frqxd4d1.js → chunk-k8d7ehjx.js} +22 -0
- package/dist/builtin/workflows/builtin/{chunk-3s95f7ry.js → chunk-qxpymnaf.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-edhf30ef.js → chunk-zjecnjxx.js} +1 -1
- package/dist/builtin/workflows/builtin/goal.js +2 -2
- package/dist/builtin/workflows/builtin/index.js +3 -3
- package/dist/builtin/workflows/builtin/ralph.js +2 -2
- package/dist/builtin/workflows/package.json +1 -1
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +1844 -603
- package/dist/builtin/workflows/src/extension/local-worker-entry.mjs +1880 -605
- package/dist/builtin/workflows/src/index.js +1896 -655
- package/dist/builtin/workflows/src/local-worker-entry.mjs +1880 -605
- package/dist/cli/args.js +1 -1
- package/dist/cli/args.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 +59 -0
- package/dist/core/agent-session-custom-message-commit.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +1 -0
- package/dist/core/agent-session-methods.d.ts.map +1 -1
- package/dist/core/agent-session-methods.js.map +1 -1
- package/dist/core/agent-session-prompt.d.ts +4 -0
- package/dist/core/agent-session-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js +10 -2
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session.d.ts +2 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +9 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/builtin-packages.d.ts.map +1 -1
- package/dist/core/builtin-packages.js +13 -13
- package/dist/core/builtin-packages.js.map +1 -1
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js +11 -2
- package/dist/core/exec.js.map +1 -1
- package/dist/core/package-manager-resolver.d.ts.map +1 -1
- package/dist/core/package-manager-resolver.js +25 -14
- package/dist/core/package-manager-resolver.js.map +1 -1
- package/dist/core/package-manager-types.d.ts +8 -0
- package/dist/core/package-manager-types.d.ts.map +1 -1
- package/dist/core/package-manager-types.js.map +1 -1
- package/dist/core/package-manager.d.ts +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/resource-loader-extension-warnings.d.ts +4 -1
- package/dist/core/resource-loader-extension-warnings.d.ts.map +1 -1
- package/dist/core/resource-loader-extension-warnings.js +15 -0
- package/dist/core/resource-loader-extension-warnings.js.map +1 -1
- package/dist/core/resource-loader-package-resources.d.ts.map +1 -1
- package/dist/core/resource-loader-package-resources.js +1 -0
- package/dist/core/resource-loader-package-resources.js.map +1 -1
- package/dist/core/resource-loader-reload.d.ts.map +1 -1
- package/dist/core/resource-loader-reload.js +5 -3
- package/dist/core/resource-loader-reload.js.map +1 -1
- package/dist/extensions/mcp/client/oauth/flow.d.ts.map +1 -1
- package/dist/extensions/mcp/client/oauth/flow.js +4 -1
- package/dist/extensions/mcp/client/oauth/flow.js.map +1 -1
- package/dist/extensions/mcp/client/oauth/types.d.ts +1 -0
- package/dist/extensions/mcp/client/oauth/types.d.ts.map +1 -1
- package/dist/extensions/mcp/client/oauth/types.js +8 -4
- package/dist/extensions/mcp/client/oauth/types.js.map +1 -1
- package/dist/extensions/mcp/client/transports/streamable-http.d.ts.map +1 -1
- package/dist/extensions/mcp/client/transports/streamable-http.js +2 -1
- package/dist/extensions/mcp/client/transports/streamable-http.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +20 -10
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +4 -2
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +4 -2
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +6 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +11 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/model-search.d.ts +10 -0
- package/dist/modes/interactive/model-search.d.ts.map +1 -1
- package/dist/modes/interactive/model-search.js +21 -0
- package/dist/modes/interactive/model-search.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +5 -0
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +30 -35
- package/dist/utils/tools-manager.js.map +1 -1
- package/docs/computer-use.md +5 -5
- package/docs/custom-provider/streaming.md +9 -14
- package/docs/environment-variables.md +1 -0
- package/docs/intercom/operations.md +1 -1
- package/docs/intercom.md +16 -2
- package/docs/packages.md +2 -0
- package/docs/settings.md +2 -2
- package/docs/skills.md +2 -2
- package/docs/subagents.md +47 -10
- package/docs/workflows/api-reference.md +1 -1
- package/docs/workflows/authoring.md +1 -1
- package/docs/workflows/operations.md +8 -6
- package/docs/workflows/reliable-design.md +23 -5
- package/examples/extensions/custom-provider-anthropic/index.ts +31 -31
- package/examples/extensions/todo.ts +7 -0
- package/npm-shrinkwrap.json +32 -32
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -182,6 +182,8 @@ class AgentSessionBase {
|
|
|
182
182
|
_tempStorageLease;
|
|
183
183
|
_workflowStageAdmission;
|
|
184
184
|
_subagentMessageAdmission;
|
|
185
|
+
/** A fresh workflow stage whose own prompt has not started its first run (#3919). */
|
|
186
|
+
_workflowStageAwaitingFirstPrompt = false;
|
|
185
187
|
_agentTaskHost;
|
|
186
188
|
_parentCommandTaskOwner;
|
|
187
189
|
_resourceAdmission;
|
|
@@ -264,6 +266,13 @@ class AgentSessionBase {
|
|
|
264
266
|
this._workflowStageAdmission =
|
|
265
267
|
stageContext?.messageAdmission?.boundary ??
|
|
266
268
|
(stageContext ? WorkflowStageAdmissionBoundary.restore(this.sessionManager.getBranch()) : undefined);
|
|
269
|
+
// #3919: a fresh stage is live before its runner dispatches the stage prompt. Turn-starting
|
|
270
|
+
// input that arrives in that gap is startup context for the prompt's turn, not a turn of its own.
|
|
271
|
+
this._workflowStageAwaitingFirstPrompt =
|
|
272
|
+
stageContext !== undefined &&
|
|
273
|
+
!this.sessionManager
|
|
274
|
+
.getBranch()
|
|
275
|
+
.some((entry) => entry.type === "message" || entry.type === "custom_message" || entry.type === "custom");
|
|
267
276
|
if (stageContext) {
|
|
268
277
|
this._workflowStageAdmission?.bindTaskIdentity(this.sessionManager.getSessionId(), stageContext.workflowRunId, stageContext.workflowStageId);
|
|
269
278
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AgentSession - Core abstraction for agent lifecycle and session management.\n *\n * The historical import path is preserved here as a facade. Responsibilities are\n * implemented in sibling modules by lifecycle area so each authored source file\n * stays focused.\n */\n\nimport { join } from \"node:path\";\nimport type { Api, AssistantMessage, Model } from \"@bastani/pi-ai/compat\";\nimport type { Agent, AgentMessage, AgentTool, ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport { installAgentSessionAccessors } from \"./agent-session-accessors.ts\";\nimport { agentSessionAutoCompactionMethods } from \"./agent-session-auto-compaction.ts\";\nimport { agentSessionBashMethods } from \"./agent-session-bash.ts\";\nimport { agentSessionBoundaryMethods } from \"./agent-session-boundaries.ts\";\nimport { agentSessionCompactionMethods } from \"./agent-session-compaction.ts\";\nimport { agentSessionCustomMessageCommitMethods } from \"./agent-session-custom-message-commit.ts\";\nimport { agentSessionEventsMethods } from \"./agent-session-events.ts\";\nimport { agentSessionExportMethods } from \"./agent-session-export.ts\";\nimport { agentSessionExtensionBindingsMethods } from \"./agent-session-extension-bindings.ts\";\nimport { agentSessionMessageQueueMethods } from \"./agent-session-message-queue.ts\";\nimport type { AgentSessionInternalSurface, AgentSessionPublicSurface } from \"./agent-session-methods.ts\";\nimport { agentSessionModelsMethods } from \"./agent-session-models.ts\";\nimport type { PendingPostToolCompactionGuard } from \"./agent-session-post-tool-compaction.ts\";\nimport { agentSessionPostToolCompactionMethods } from \"./agent-session-post-tool-compaction.ts\";\nimport { agentSessionPromptMethods } from \"./agent-session-prompt.ts\";\nimport { agentSessionRecoveryMethods } from \"./agent-session-recovery.ts\";\nimport { agentSessionRetryMethods } from \"./agent-session-retry.ts\";\nimport { agentSessionStateMethods } from \"./agent-session-state.ts\";\nimport { agentSessionSummaryMethods, type SessionSummaryRun } from \"./agent-session-summary.ts\";\nimport { agentSessionTaskMethods, isSubagentChildSession } from \"./agent-session-tasks.js\";\nimport { agentSessionToolHooksMethods } from \"./agent-session-tool-hooks.ts\";\nimport { agentSessionToolRegistryMethods } from \"./agent-session-tool-registry.ts\";\nimport { agentSessionTreeMethods } from \"./agent-session-tree.ts\";\nimport type {\n\tAgentSessionConfig,\n\tAgentSessionEventListener,\n\tInterruptQueueHold,\n\tToolDefinitionEntry,\n} from \"./agent-session-types.js\";\nimport type { VerbatimCompactionResult } from \"./compaction/index.ts\";\nimport type {\n\tAgentActivityOutcome,\n\tExtensionCommandContextActions,\n\tExtensionErrorListener,\n\tExtensionMode,\n\tExtensionRunner,\n\tExtensionUIContext,\n\tOrchestrationContext,\n\tSessionStartEvent,\n\tSubagentChildPolicy,\n\tToolDefinition,\n} from \"./extensions/index.js\";\nimport type { BashExecutionMessage, CustomMessage } from \"./messages.ts\";\nimport type { ModelRuntime } from \"./model-runtime.js\";\nimport type { ResourceLoader } from \"./resource-loader.ts\";\nimport type { SessionManager } from \"./session-manager.ts\";\nimport type { SettingsManager } from \"./settings-manager.ts\";\nimport { applyToolModifiers } from \"./settings-merge.js\";\nimport type { NormalizedBuildSystemPromptOptions } from \"./system-prompt.ts\";\nimport { ChildTaskWaits } from \"./tasks/child-command-owner.js\";\nimport { createToolNameMatcher } from \"./tool-selection.ts\";\nimport { getDefaultToolNames } from \"./tools/index.js\";\nimport { scheduleSessionTempCleanup } from \"./tools/session-temp-cleanup.ts\";\nimport { acquireProtectedPaths, type ProtectedPathLease, setActiveSessionTempId } from \"./tools/session-temp-dir.ts\";\nimport { ToolExecutionScheduler } from \"./tools/tool-concurrency.ts\";\nimport { TOOL_RESULTS_SUBDIR } from \"./tools/tool-limits.js\";\nimport { WorkflowStageAdmissionBoundary } from \"./workflow-stage-admission.ts\";\n\nexport type { SessionCompactOptions } from \"./agent-session-methods.ts\";\nexport type { ParsedSkillBlock } from \"./agent-session-skill-block.ts\";\nexport { parseSkillBlock } from \"./agent-session-skill-block.ts\";\nexport type {\n\tAgentSessionConfig,\n\tAgentSessionEvent,\n\tAgentSessionEventListener,\n\tCompactionReason,\n\tExtensionBindings,\n\tModelCycleResult,\n\tPromptDisposition,\n\tPromptOptions,\n\tQueuedInputDisposition,\n\tSessionRecoveryReport,\n\tSessionStats,\n} from \"./agent-session-types.js\";\n\nclass AgentSessionBase {\n\treadonly agent: Agent;\n\treadonly sessionManager: SessionManager;\n\treadonly settingsManager: SettingsManager;\n\n\tprotected _scopedModels: Array<{ model: Model<Api>; thinkingLevel?: ThinkingLevel }>;\n\tprotected _fallbackModels: string[];\n\tprotected _isFallbackModelAllowed?: (model: Model<Api>, effort: string | undefined) => boolean;\n\tprotected _fallbackAttemptedKeys: Set<string> = new Set();\n\t/** Models condemned for this turn by a failure retrying them cannot repair. */\n\tprotected _fallbackBlockedModels: Array<Model<Api>> = [];\n\tprotected _fallbackOriginModel: Model<Api> | undefined;\n\tprotected _fallbackOriginThinkingLevel: ThinkingLevel | undefined;\n\tprotected _fallbackScopeGeneration = 0;\n\tprotected _fallbackOriginGeneration: number | undefined;\n\tprotected _fallbackRestoreError: string | undefined;\n\tprotected _unsubscribeAgent?: () => void;\n\tprotected _eventListeners: AgentSessionEventListener[] = [];\n\tprotected _agentEventQueue: Promise<void> = Promise.resolve();\n\tprotected _steeringMessages: string[] = [];\n\tprotected _followUpMessages: string[] = [];\n\tprotected _interruptDeliveryQueue: Promise<void> = Promise.resolve();\n\tprotected _pendingInterruptDeliveries = 0;\n\tprotected _activeInterruptQueueHold: InterruptQueueHold | undefined = undefined;\n\tprotected _queuedMessagesPaused = false;\n\tprotected _queuedMessagesPauseAbortBoundary: Promise<void> | undefined = undefined;\n\t/**\n\t * Text of a queued steering/follow-up message the agent loop already admitted\n\t * into the transcript and that has not received an assistant reply yet. The\n\t * pause hold cannot reach such a message, so an interrupt would otherwise\n\t * strand it (issue #2362).\n\t */\n\tprotected _admittedQueuedMessageAwaitingReply: string | undefined = undefined;\n\t/**\n\t * Settlement boundary for the recovery turn that answers an already-admitted\n\t * queued message. It starts after the pause abort boundary resolves, so the\n\t * resume path must wait for it too or an ordinary submission made while it\n\t * streams is rejected by the streaming guard (issue #2362).\n\t */\n\tprotected _admittedRecoveryTurn: Promise<void> | undefined = undefined;\n\tprotected _workflowStageDeliveryForwardTarget: AgentSessionInternalSurface | undefined = undefined;\n\tprotected _activeInterruptAbortMessage: string | undefined = undefined;\n\t/** Priority input cancels the native operation, not the host-owned task. */\n\tprotected _priorityInterruptPending = false;\n\tprotected _activePromptCount = 0;\n\tprotected _isPreparingRun: false | \"user\" | \"custom\" = false;\n\tprotected _agentRunAbortRequested = false;\n\tprotected _pendingNextTurnMessages: CustomMessage[] = [];\n\t/** Context-only custom messages queued during a run, flushed after the current turn's tool results. */\n\tprotected _pendingCustomMessages: CustomMessage[] = [];\n\tprotected _protectedStreamingCustomMessages: Array<{\n\t\tmessage: CustomMessage;\n\t\tdelivery: \"steer\" | \"followUp\";\n\t\tphase: \"queued\" | \"consumed-unpersisted\" | \"persistence-failed\";\n\t}> = [];\n\tprotected _compactionAbortController: AbortController | undefined = undefined;\n\tprotected _compactionReason: import(\"./agent-session-types.js\").CompactionReason | undefined = undefined;\n\tprotected _manualCompactionPromise: Promise<VerbatimCompactionResult> | undefined = undefined;\n\tprotected _autoCompactionAbortController: AbortController | undefined = undefined;\n\t/** Resolves when the current automatic compaction has settled. */\n\tprotected _autoCompactionCompletion: Promise<void> | undefined = undefined;\n\tprotected _overflowRecoveryAttempted = false;\n\tprotected _recoverableLengthRecoveryAttempted = false;\n\t/** Set when compaction cannot recover a context overflow on the current model. */\n\tprotected _contextOverflowUnresolved = false;\n\tprotected _pendingPostCompactionContinuation: Promise<void> | undefined = undefined;\n\tprotected _postCompactionContinuationToken = 0;\n\tprotected _lengthContinuationAttempts = 0;\n\tprotected _outputBudgetErrorContinuationAttempts = 0;\n\tprotected _postToolCompactionPreflightError: string | undefined = undefined;\n\tprotected _pendingPostToolCompactionGuard: PendingPostToolCompactionGuard | undefined = undefined;\n\tprotected _terminatingToolCallIds = new Set<string>();\n\t/** A positive stop callback keeps queued work pending until an explicit new run. */\n\tprotected _stopAfterTurnBlockedContinuation = false;\n\tprotected _disposed = false;\n\tprotected _branchSummaryAbortController: AbortController | undefined = undefined;\n\t/** Settles after the currently active branch-summary navigation finishes cleanup. */\n\tprotected _branchSummaryCompletion: Promise<void> | undefined = undefined;\n\tprotected _sessionSummaryAbortController: AbortController | undefined = undefined;\n\tprotected _sessionSummaryToken = 0;\n\t/** The summary request currently in flight, published so a later launch can join it. */\n\tprotected _sessionSummaryRun: SessionSummaryRun | undefined = undefined;\n\tprotected _lastSummarizedMessageId: string | undefined = undefined;\n\tprotected _retryAbortController: AbortController | undefined = undefined;\n\tprotected _retryAttempt = 0;\n\tprotected _retryPromise: Promise<void> | undefined = undefined;\n\tprotected _retryResolve: (() => void) | undefined = undefined;\n\tprotected _bashAbortControllers = new Map<string | symbol, Set<AbortController>>();\n\tprotected _pendingBashMessages: BashExecutionMessage[] = [];\n\tprotected _extensionRunner!: ExtensionRunner;\n\tprotected _turnIndex = 0;\n\t/** Source entry IDs for projected messages, so boundaries and omissions resolve provenance. */\n\tprotected readonly _entryIdsByMessage = new WeakMap<object, string>();\n\t/** Assistant messages whose actionable turn_end already ran from finishTurn. */\n\tprotected readonly _boundaryDispatchedMessages = new WeakSet<object>();\n\tprotected readonly _messagesAwaitingPersistence = new WeakSet<object>();\n\tprotected _lastAssistantToolResults: AgentMessage[] = [];\n\tprotected _lastActivityOutcome: AgentActivityOutcome = \"completed\";\n\tprotected _isBeforeSettle = false;\n\tprotected _abortDuringBeforeSettle = false;\n\tprotected _isEmittingAgentSettled = false;\n\tprotected readonly _deferredSettledActions: Array<() => Promise<void>> = [];\n\t/** Set when a caller's prepareNextTurnWithContext replaced the next request's context. */\n\tprotected _callerReplacedNextRequestContext = false;\n\tprotected _resourceLoader: ResourceLoader;\n\tprotected _customTools: ToolDefinition[];\n\tprotected _baseToolDefinitions: Map<string, ToolDefinition> = new Map();\n\tprotected _cwd: string;\n\tprotected _extensionRunnerRef?: { current?: ExtensionRunner };\n\tprotected _initialActiveToolNames?: string[];\n\tprotected _pendingToolNames = new Set<string>();\n\tprotected _usesDefaultTools: boolean;\n\tprotected _defaultToolModifiers: string[];\n\t/** Resolved defaults last applied here, independent of shared settings publication. */\n\tprotected _appliedDefaultTools: Set<string>;\n\tprotected _subagentPolicy?: SubagentChildPolicy;\n\tprotected _allowedToolNames?: Set<string>;\n\tprotected _excludedToolNames?: Set<string>;\n\tprotected _allowedTools?: (name: string) => boolean;\n\tprotected _excludedTools?: (name: string) => boolean;\n\tprotected _childSessionOptions?: import(\"./child-session-options.ts\").ChildSessionOptionsResolver;\n\tprotected _workflowJournal?: import(\"./storage/provider.js\").RunJournalOption;\n\tprotected _storageAgentDir?: string;\n\tprotected _baseToolsOverride?: Record<string, AgentTool>;\n\tprotected _sessionStartEvent: SessionStartEvent;\n\tprotected _orchestrationContext?: OrchestrationContext;\n\tprotected _extensionUIContext?: ExtensionUIContext;\n\tprotected _extensionHumanInput?: import(\"./extensions/host-input.js\").HostInput | null;\n\tprotected _extensionDiagnosticListener?: (diagnostic: import(\"./extensions/host-input.js\").HostDiagnostic) => void;\n\tprotected _extensionMode: ExtensionMode = \"print\";\n\tprotected _extensionCommandContextActions?: ExtensionCommandContextActions;\n\tprotected _extensionShutdownHandler?: () => void;\n\tprotected _extensionErrorListener?: ExtensionErrorListener;\n\tprotected _extensionErrorUnsubscriber?: () => void;\n\tprotected _modelRuntime: ModelRuntime;\n\tprotected _extensionProviderIds = new Set<string>();\n\tprotected _toolRegistry: Map<string, AgentTool> = new Map();\n\tprotected readonly _toolExecutionScheduler = new ToolExecutionScheduler();\n\tprotected _toolDefinitions: Map<string, ToolDefinitionEntry> = new Map();\n\tprotected _toolPromptSnippets: Map<string, string> = new Map();\n\tprotected _toolPromptGuidelines: Map<string, string[]> = new Map();\n\tprotected _baseSystemPromptOptions!: NormalizedBuildSystemPromptOptions;\n\tprotected _systemPromptTransform?: (prompt: string) => string;\n\tprotected _contextProjectionTransform?: (messages: AgentMessage[]) => AgentMessage[];\n\tprotected _runSystemPromptOptions?: NormalizedBuildSystemPromptOptions;\n\tprotected _lastAssistantMessage: AssistantMessage | undefined = undefined;\n\t/** Protection claim on this session's temp tree and tool-results directory. */\n\tprotected _tempStorageLease: ProtectedPathLease | undefined;\n\tprotected _workflowStageAdmission: WorkflowStageAdmissionBoundary | undefined;\n\tprotected _subagentMessageAdmission: WorkflowStageAdmissionBoundary | undefined;\n\tprotected _agentTaskHost: import(\"./tasks/agent-adapter.js\").AgentTaskHost | undefined;\n\tprotected _parentCommandTaskOwner: import(\"./tasks/child-command-owner.js\").ChildCommandTaskOwner | undefined;\n\tprotected _resourceAdmission: import(\"./sdk-types.ts\").ResourceAdmission | undefined;\n\tprotected _childTaskWaits = new ChildTaskWaits();\n\tprotected _taskCompletionOutbox: import(\"./tasks/completion.js\").TaskCompletionOutbox | undefined;\n\tprotected _taskAdmission: WorkflowStageAdmissionBoundary | undefined;\n\tprotected _cacheWarmer?: import(\"./cache-warmer.ts\").CacheWarmer;\n\tget cacheWarmingStatus(): import(\"./cache-warmer.ts\").CacheWarmingStatus | undefined {\n\t\treturn this._cacheWarmer?.status;\n\t}\n\tsetCacheWarmingMode(mode: import(\"./settings-manager.ts\").CacheWarmingMode): void {\n\t\tthis.settingsManager.setCacheWarmingMode(mode);\n\t\tthis._cacheWarmer?.onModeChanged();\n\t}\n\n\tconstructor(config: AgentSessionConfig) {\n\t\tthis.agent = config.agent;\n\t\tthis.sessionManager = config.sessionManager;\n\t\tthis.settingsManager = config.settingsManager;\n\t\tthis._scopedModels = config.scopedModels ?? [];\n\t\tthis._fallbackModels = config.fallbackModels ?? [];\n\t\tthis._isFallbackModelAllowed = config.isFallbackModelAllowed;\n\t\tthis._resourceLoader = config.resourceLoader;\n\t\tthis._customTools = config.customTools ?? [];\n\t\tthis._cwd = config.cwd;\n\t\tthis._modelRuntime = config.modelRuntime;\n\t\tthis._cacheWarmer = config.cacheWarmer;\n\t\tif (this._cacheWarmer)\n\t\t\tthis._cacheWarmer.onWarmed = (entry) =>\n\t\t\t\t(this as unknown as import(\"./agent-session-methods.ts\").AgentSessionInternalSurface)._emit({\n\t\t\t\t\ttype: \"entry_appended\",\n\t\t\t\t\tentry,\n\t\t\t\t});\n\t\tthis._extensionProviderIds = new Set(config.resourceLoader.getExtensions().runtime.extensionProviderIds);\n\t\tthis._extensionRunnerRef = config.extensionRunnerRef;\n\t\tthis._initialActiveToolNames = config.initialActiveToolNames;\n\t\tthis._usesDefaultTools = config.usesDefaultTools ?? false;\n\t\tthis._defaultToolModifiers = config.defaultToolModifiers ?? [];\n\t\tthis._appliedDefaultTools = new Set(\n\t\t\tthis._usesDefaultTools\n\t\t\t\t? applyToolModifiers(\n\t\t\t\t\t\tthis.settingsManager.getDefaultTools() ?? getDefaultToolNames(),\n\t\t\t\t\t\tthis._defaultToolModifiers,\n\t\t\t\t\t)\n\t\t\t\t: [],\n\t\t);\n\t\tthis._allowedToolNames = config.allowedToolNames ? new Set(config.allowedToolNames) : undefined;\n\t\tthis._excludedToolNames = config.excludedToolNames ? new Set(config.excludedToolNames) : undefined;\n\t\tthis._allowedTools = config.allowedToolNames ? createToolNameMatcher(config.allowedToolNames) : undefined;\n\t\tthis._excludedTools = config.excludedToolNames ? createToolNameMatcher(config.excludedToolNames) : undefined;\n\t\tthis._childSessionOptions = config.childSessionOptions;\n\t\tthis._workflowJournal = config.workflowJournal;\n\t\tthis._storageAgentDir = config.storageAgentDir;\n\t\tthis._baseToolsOverride = config.baseToolsOverride;\n\t\tthis._sessionStartEvent = config.sessionStartEvent ?? { type: \"session_start\", reason: \"startup\" };\n\t\tthis._orchestrationContext = config.orchestrationContext;\n\t\tthis._subagentPolicy = config.subagentPolicy;\n\t\tthis._parentCommandTaskOwner = config.parentCommandTaskOwner;\n\t\tthis._resourceAdmission = config.resourceAdmission;\n\t\tlet removeExecutionEndedListener: (() => void) | undefined;\n\t\ttry {\n\t\t\tif (config.subagentPolicy?.executionEnded !== undefined) {\n\t\t\t\t// Reuse the stable-key admission/drain primitive, not workflow identity or task ownership.\n\t\t\t\tconst admission = WorkflowStageAdmissionBoundary.restore(this.sessionManager.getBranch());\n\t\t\t\tthis._subagentMessageAdmission = admission;\n\t\t\t\tthis._subagentPolicy = {\n\t\t\t\t\t...config.subagentPolicy,\n\t\t\t\t\tmessageAdmission: {\n\t\t\t\t\t\tisOpen: () => admission.isOpen(),\n\t\t\t\t\t\trun: (deliver) =>\n\t\t\t\t\t\t\tadmission.runMessageDelivery(deliver, () => {\n\t\t\t\t\t\t\t\tthrow new Error(\"Subagent execution is terminal and cannot accept messages\");\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tconst ended = config.subagentPolicy.executionEnded;\n\t\t\t\tif (ended.aborted) admission.seal();\n\t\t\t\telse {\n\t\t\t\t\tconst seal = () => admission.seal();\n\t\t\t\t\tended.addEventListener(\"abort\", seal, { once: true });\n\t\t\t\t\tremoveExecutionEndedListener = () => ended.removeEventListener(\"abort\", seal);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._systemPromptTransform = config.systemPromptTransform;\n\t\t\tthis._contextProjectionTransform = config.contextProjectionTransform;\n\t\t\tconst stageContext =\n\t\t\t\tconfig.orchestrationContext?.kind === \"workflow-stage\" ? config.orchestrationContext : undefined;\n\t\t\tthis._workflowStageAdmission =\n\t\t\t\tstageContext?.messageAdmission?.boundary ??\n\t\t\t\t(stageContext ? WorkflowStageAdmissionBoundary.restore(this.sessionManager.getBranch()) : undefined);\n\t\t\tif (stageContext) {\n\t\t\t\tthis._workflowStageAdmission?.bindTaskIdentity(\n\t\t\t\t\tthis.sessionManager.getSessionId(),\n\t\t\t\t\tstageContext.workflowRunId,\n\t\t\t\t\tstageContext.workflowStageId,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (this._workflowStageAdmission && stageContext && stageContext.messageAdmission === undefined) {\n\t\t\t\t(\n\t\t\t\t\tstageContext as {\n\t\t\t\t\t\tmessageAdmission?: {\n\t\t\t\t\t\t\tboundary: WorkflowStageAdmissionBoundary;\n\t\t\t\t\t\t\textensionState: Map<string, object>;\n\t\t\t\t\t\t\tisOpen(): boolean;\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t).messageAdmission = {\n\t\t\t\t\tboundary: this._workflowStageAdmission,\n\t\t\t\t\textensionState: new Map(),\n\t\t\t\t\tisOpen: () => this._workflowStageAdmission?.isOpen() === true,\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Claim this session's storage before any tool can spill into it, so the\n\t\t\t// sweeper below never reaps a directory this process is still writing to.\n\t\t\t// The claim is a lease, released in dispose(): a session that is gone must\n\t\t\t// stop protecting a tree the startup sweep exists to collect.\n\t\t\ttry {\n\t\t\t\tconst sessionId = this.sessionManager.getSessionId();\n\t\t\t\tconst sessionDir = this.sessionManager.getSessionDir() || undefined;\n\t\t\t\tthis._tempStorageLease = acquireProtectedPaths([\n\t\t\t\t\tsetActiveSessionTempId(sessionId),\n\t\t\t\t\t// A disk-backed session's results are read back by path, and a replayed\n\t\t\t\t\t// result reuses an old file without touching its mtime, so age alone\n\t\t\t\t\t// cannot keep it alive.\n\t\t\t\t\t...(sessionDir ? [join(sessionDir, TOOL_RESULTS_SUBDIR)] : []),\n\t\t\t\t]);\n\t\t\t\t// A custom `--session-dir` keeps its tool results directly under that\n\t\t\t\t// directory, outside the project-nested roots the default sweep walks,\n\t\t\t\t// so it has to be named as its own target.\n\t\t\t\tconst customSessionDir = this.sessionManager.usesDefaultSessionDir() ? undefined : sessionDir;\n\t\t\t\tscheduleSessionTempCleanup(customSessionDir ? { sessionDirs: [customSessionDir] } : {});\n\t\t\t} catch {\n\t\t\t\t// Temp-storage housekeeping must never block session construction.\n\t\t\t}\n\t\t\tconst internals = this as unknown as AgentSessionInternalSurface;\n\t\t\tinternals._handleAgentEvent = internals._handleAgentEvent.bind(this);\n\t\t\tthis._unsubscribeAgent = this.agent.subscribe(internals._handleAgentEvent);\n\t\t\tinternals._installAgentToolHooks();\n\t\t\tinternals._installAgentNextTurnRefresh();\n\t\t\tinternals._installAgentRequestProjection();\n\t\t\tinternals._installAgentBoundaryHooks();\n\t\t\tinternals._buildRuntime({\n\t\t\t\tactiveToolNames: this._initialActiveToolNames,\n\t\t\t\tincludeAllExtensionTools: true,\n\t\t\t});\n\t\t\tinternals._restoreToolsFromTranscript({ startup: true });\n\t\t\tif (this._workflowStageAdmission?.hasAgentTaskHost() && !isSubagentChildSession(internals))\n\t\t\t\tinternals.getAgentTaskHost();\n\t\t} catch (error) {\n\t\t\t// No session escapes a failed constructor to release these acquisitions later.\n\t\t\tconst failures: unknown[] = [];\n\t\t\tfor (const release of [\n\t\t\t\t() => removeExecutionEndedListener?.(),\n\t\t\t\t() => this._unsubscribeAgent?.(),\n\t\t\t\t() => this._tempStorageLease?.release(),\n\t\t\t\t() => this._extensionRunner?.invalidate(\"Session construction failed\"),\n\t\t\t]) {\n\t\t\t\ttry {\n\t\t\t\t\trelease();\n\t\t\t\t} catch (cause) {\n\t\t\t\t\tfailures.push(cause);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._extensionRunnerRef) this._extensionRunnerRef.current = undefined;\n\t\t\tif (failures.length)\n\t\t\t\tthrow Object.assign(new AggregateError([error, ...failures], \"Session construction cleanup failed\"), {\n\t\t\t\t\tcode: \"ShutdownFailed\",\n\t\t\t\t});\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n\nexport interface AgentSession extends AgentSessionBase, AgentSessionPublicSurface {}\n\nexport const AgentSession = AgentSessionBase as unknown as {\n\tnew (config: AgentSessionConfig): AgentSession;\n\treadonly prototype: AgentSession;\n};\n\ninstallAgentSessionAccessors(AgentSession.prototype as unknown as AgentSessionInternalSurface);\nObject.assign(\n\tAgentSession.prototype,\n\tagentSessionToolHooksMethods,\n\tagentSessionBoundaryMethods,\n\tagentSessionEventsMethods,\n\tagentSessionStateMethods,\n\tagentSessionPromptMethods,\n\tagentSessionCustomMessageCommitMethods,\n\tagentSessionMessageQueueMethods,\n\tagentSessionModelsMethods,\n\tagentSessionCompactionMethods,\n\tagentSessionAutoCompactionMethods,\n\tagentSessionPostToolCompactionMethods,\n\tagentSessionExtensionBindingsMethods,\n\tagentSessionRecoveryMethods,\n\tagentSessionToolRegistryMethods,\n\tagentSessionRetryMethods,\n\tagentSessionBashMethods,\n\tagentSessionTreeMethods,\n\tagentSessionExportMethods,\n\tagentSessionSummaryMethods,\n\tagentSessionTaskMethods,\n);\n"]}
|
|
1
|
+
{"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AgentSession - Core abstraction for agent lifecycle and session management.\n *\n * The historical import path is preserved here as a facade. Responsibilities are\n * implemented in sibling modules by lifecycle area so each authored source file\n * stays focused.\n */\n\nimport { join } from \"node:path\";\nimport type { Api, AssistantMessage, Model } from \"@bastani/pi-ai/compat\";\nimport type { Agent, AgentMessage, AgentTool, ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport { installAgentSessionAccessors } from \"./agent-session-accessors.ts\";\nimport { agentSessionAutoCompactionMethods } from \"./agent-session-auto-compaction.ts\";\nimport { agentSessionBashMethods } from \"./agent-session-bash.ts\";\nimport { agentSessionBoundaryMethods } from \"./agent-session-boundaries.ts\";\nimport { agentSessionCompactionMethods } from \"./agent-session-compaction.ts\";\nimport { agentSessionCustomMessageCommitMethods } from \"./agent-session-custom-message-commit.ts\";\nimport { agentSessionEventsMethods } from \"./agent-session-events.ts\";\nimport { agentSessionExportMethods } from \"./agent-session-export.ts\";\nimport { agentSessionExtensionBindingsMethods } from \"./agent-session-extension-bindings.ts\";\nimport { agentSessionMessageQueueMethods } from \"./agent-session-message-queue.ts\";\nimport type { AgentSessionInternalSurface, AgentSessionPublicSurface } from \"./agent-session-methods.ts\";\nimport { agentSessionModelsMethods } from \"./agent-session-models.ts\";\nimport type { PendingPostToolCompactionGuard } from \"./agent-session-post-tool-compaction.ts\";\nimport { agentSessionPostToolCompactionMethods } from \"./agent-session-post-tool-compaction.ts\";\nimport { agentSessionPromptMethods } from \"./agent-session-prompt.ts\";\nimport { agentSessionRecoveryMethods } from \"./agent-session-recovery.ts\";\nimport { agentSessionRetryMethods } from \"./agent-session-retry.ts\";\nimport { agentSessionStateMethods } from \"./agent-session-state.ts\";\nimport { agentSessionSummaryMethods, type SessionSummaryRun } from \"./agent-session-summary.ts\";\nimport { agentSessionTaskMethods, isSubagentChildSession } from \"./agent-session-tasks.js\";\nimport { agentSessionToolHooksMethods } from \"./agent-session-tool-hooks.ts\";\nimport { agentSessionToolRegistryMethods } from \"./agent-session-tool-registry.ts\";\nimport { agentSessionTreeMethods } from \"./agent-session-tree.ts\";\nimport type {\n\tAgentSessionConfig,\n\tAgentSessionEventListener,\n\tInterruptQueueHold,\n\tToolDefinitionEntry,\n} from \"./agent-session-types.js\";\nimport type { VerbatimCompactionResult } from \"./compaction/index.ts\";\nimport type {\n\tAgentActivityOutcome,\n\tExtensionCommandContextActions,\n\tExtensionErrorListener,\n\tExtensionMode,\n\tExtensionRunner,\n\tExtensionUIContext,\n\tOrchestrationContext,\n\tSessionStartEvent,\n\tSubagentChildPolicy,\n\tToolDefinition,\n} from \"./extensions/index.js\";\nimport type { BashExecutionMessage, CustomMessage } from \"./messages.ts\";\nimport type { ModelRuntime } from \"./model-runtime.js\";\nimport type { ResourceLoader } from \"./resource-loader.ts\";\nimport type { SessionManager } from \"./session-manager.ts\";\nimport type { SettingsManager } from \"./settings-manager.ts\";\nimport { applyToolModifiers } from \"./settings-merge.js\";\nimport type { NormalizedBuildSystemPromptOptions } from \"./system-prompt.ts\";\nimport { ChildTaskWaits } from \"./tasks/child-command-owner.js\";\nimport { createToolNameMatcher } from \"./tool-selection.ts\";\nimport { getDefaultToolNames } from \"./tools/index.js\";\nimport { scheduleSessionTempCleanup } from \"./tools/session-temp-cleanup.ts\";\nimport { acquireProtectedPaths, type ProtectedPathLease, setActiveSessionTempId } from \"./tools/session-temp-dir.ts\";\nimport { ToolExecutionScheduler } from \"./tools/tool-concurrency.ts\";\nimport { TOOL_RESULTS_SUBDIR } from \"./tools/tool-limits.js\";\nimport { WorkflowStageAdmissionBoundary } from \"./workflow-stage-admission.ts\";\n\nexport type { SessionCompactOptions } from \"./agent-session-methods.ts\";\nexport type { ParsedSkillBlock } from \"./agent-session-skill-block.ts\";\nexport { parseSkillBlock } from \"./agent-session-skill-block.ts\";\nexport type {\n\tAgentSessionConfig,\n\tAgentSessionEvent,\n\tAgentSessionEventListener,\n\tCompactionReason,\n\tExtensionBindings,\n\tModelCycleResult,\n\tPromptDisposition,\n\tPromptOptions,\n\tQueuedInputDisposition,\n\tSessionRecoveryReport,\n\tSessionStats,\n} from \"./agent-session-types.js\";\n\nclass AgentSessionBase {\n\treadonly agent: Agent;\n\treadonly sessionManager: SessionManager;\n\treadonly settingsManager: SettingsManager;\n\n\tprotected _scopedModels: Array<{ model: Model<Api>; thinkingLevel?: ThinkingLevel }>;\n\tprotected _fallbackModels: string[];\n\tprotected _isFallbackModelAllowed?: (model: Model<Api>, effort: string | undefined) => boolean;\n\tprotected _fallbackAttemptedKeys: Set<string> = new Set();\n\t/** Models condemned for this turn by a failure retrying them cannot repair. */\n\tprotected _fallbackBlockedModels: Array<Model<Api>> = [];\n\tprotected _fallbackOriginModel: Model<Api> | undefined;\n\tprotected _fallbackOriginThinkingLevel: ThinkingLevel | undefined;\n\tprotected _fallbackScopeGeneration = 0;\n\tprotected _fallbackOriginGeneration: number | undefined;\n\tprotected _fallbackRestoreError: string | undefined;\n\tprotected _unsubscribeAgent?: () => void;\n\tprotected _eventListeners: AgentSessionEventListener[] = [];\n\tprotected _agentEventQueue: Promise<void> = Promise.resolve();\n\tprotected _steeringMessages: string[] = [];\n\tprotected _followUpMessages: string[] = [];\n\tprotected _interruptDeliveryQueue: Promise<void> = Promise.resolve();\n\tprotected _pendingInterruptDeliveries = 0;\n\tprotected _activeInterruptQueueHold: InterruptQueueHold | undefined = undefined;\n\tprotected _queuedMessagesPaused = false;\n\tprotected _queuedMessagesPauseAbortBoundary: Promise<void> | undefined = undefined;\n\t/**\n\t * Text of a queued steering/follow-up message the agent loop already admitted\n\t * into the transcript and that has not received an assistant reply yet. The\n\t * pause hold cannot reach such a message, so an interrupt would otherwise\n\t * strand it (issue #2362).\n\t */\n\tprotected _admittedQueuedMessageAwaitingReply: string | undefined = undefined;\n\t/**\n\t * Settlement boundary for the recovery turn that answers an already-admitted\n\t * queued message. It starts after the pause abort boundary resolves, so the\n\t * resume path must wait for it too or an ordinary submission made while it\n\t * streams is rejected by the streaming guard (issue #2362).\n\t */\n\tprotected _admittedRecoveryTurn: Promise<void> | undefined = undefined;\n\tprotected _workflowStageDeliveryForwardTarget: AgentSessionInternalSurface | undefined = undefined;\n\tprotected _activeInterruptAbortMessage: string | undefined = undefined;\n\t/** Priority input cancels the native operation, not the host-owned task. */\n\tprotected _priorityInterruptPending = false;\n\tprotected _activePromptCount = 0;\n\tprotected _isPreparingRun: false | \"user\" | \"custom\" = false;\n\tprotected _agentRunAbortRequested = false;\n\tprotected _pendingNextTurnMessages: CustomMessage[] = [];\n\t/** Context-only custom messages queued during a run, flushed after the current turn's tool results. */\n\tprotected _pendingCustomMessages: CustomMessage[] = [];\n\tprotected _protectedStreamingCustomMessages: Array<{\n\t\tmessage: CustomMessage;\n\t\tdelivery: \"steer\" | \"followUp\";\n\t\tphase: \"queued\" | \"consumed-unpersisted\" | \"persistence-failed\";\n\t}> = [];\n\tprotected _compactionAbortController: AbortController | undefined = undefined;\n\tprotected _compactionReason: import(\"./agent-session-types.js\").CompactionReason | undefined = undefined;\n\tprotected _manualCompactionPromise: Promise<VerbatimCompactionResult> | undefined = undefined;\n\tprotected _autoCompactionAbortController: AbortController | undefined = undefined;\n\t/** Resolves when the current automatic compaction has settled. */\n\tprotected _autoCompactionCompletion: Promise<void> | undefined = undefined;\n\tprotected _overflowRecoveryAttempted = false;\n\tprotected _recoverableLengthRecoveryAttempted = false;\n\t/** Set when compaction cannot recover a context overflow on the current model. */\n\tprotected _contextOverflowUnresolved = false;\n\tprotected _pendingPostCompactionContinuation: Promise<void> | undefined = undefined;\n\tprotected _postCompactionContinuationToken = 0;\n\tprotected _lengthContinuationAttempts = 0;\n\tprotected _outputBudgetErrorContinuationAttempts = 0;\n\tprotected _postToolCompactionPreflightError: string | undefined = undefined;\n\tprotected _pendingPostToolCompactionGuard: PendingPostToolCompactionGuard | undefined = undefined;\n\tprotected _terminatingToolCallIds = new Set<string>();\n\t/** A positive stop callback keeps queued work pending until an explicit new run. */\n\tprotected _stopAfterTurnBlockedContinuation = false;\n\tprotected _disposed = false;\n\tprotected _branchSummaryAbortController: AbortController | undefined = undefined;\n\t/** Settles after the currently active branch-summary navigation finishes cleanup. */\n\tprotected _branchSummaryCompletion: Promise<void> | undefined = undefined;\n\tprotected _sessionSummaryAbortController: AbortController | undefined = undefined;\n\tprotected _sessionSummaryToken = 0;\n\t/** The summary request currently in flight, published so a later launch can join it. */\n\tprotected _sessionSummaryRun: SessionSummaryRun | undefined = undefined;\n\tprotected _lastSummarizedMessageId: string | undefined = undefined;\n\tprotected _retryAbortController: AbortController | undefined = undefined;\n\tprotected _retryAttempt = 0;\n\tprotected _retryPromise: Promise<void> | undefined = undefined;\n\tprotected _retryResolve: (() => void) | undefined = undefined;\n\tprotected _bashAbortControllers = new Map<string | symbol, Set<AbortController>>();\n\tprotected _pendingBashMessages: BashExecutionMessage[] = [];\n\tprotected _extensionRunner!: ExtensionRunner;\n\tprotected _turnIndex = 0;\n\t/** Source entry IDs for projected messages, so boundaries and omissions resolve provenance. */\n\tprotected readonly _entryIdsByMessage = new WeakMap<object, string>();\n\t/** Assistant messages whose actionable turn_end already ran from finishTurn. */\n\tprotected readonly _boundaryDispatchedMessages = new WeakSet<object>();\n\tprotected readonly _messagesAwaitingPersistence = new WeakSet<object>();\n\tprotected _lastAssistantToolResults: AgentMessage[] = [];\n\tprotected _lastActivityOutcome: AgentActivityOutcome = \"completed\";\n\tprotected _isBeforeSettle = false;\n\tprotected _abortDuringBeforeSettle = false;\n\tprotected _isEmittingAgentSettled = false;\n\tprotected readonly _deferredSettledActions: Array<() => Promise<void>> = [];\n\t/** Set when a caller's prepareNextTurnWithContext replaced the next request's context. */\n\tprotected _callerReplacedNextRequestContext = false;\n\tprotected _resourceLoader: ResourceLoader;\n\tprotected _customTools: ToolDefinition[];\n\tprotected _baseToolDefinitions: Map<string, ToolDefinition> = new Map();\n\tprotected _cwd: string;\n\tprotected _extensionRunnerRef?: { current?: ExtensionRunner };\n\tprotected _initialActiveToolNames?: string[];\n\tprotected _pendingToolNames = new Set<string>();\n\tprotected _usesDefaultTools: boolean;\n\tprotected _defaultToolModifiers: string[];\n\t/** Resolved defaults last applied here, independent of shared settings publication. */\n\tprotected _appliedDefaultTools: Set<string>;\n\tprotected _subagentPolicy?: SubagentChildPolicy;\n\tprotected _allowedToolNames?: Set<string>;\n\tprotected _excludedToolNames?: Set<string>;\n\tprotected _allowedTools?: (name: string) => boolean;\n\tprotected _excludedTools?: (name: string) => boolean;\n\tprotected _childSessionOptions?: import(\"./child-session-options.ts\").ChildSessionOptionsResolver;\n\tprotected _workflowJournal?: import(\"./storage/provider.js\").RunJournalOption;\n\tprotected _storageAgentDir?: string;\n\tprotected _baseToolsOverride?: Record<string, AgentTool>;\n\tprotected _sessionStartEvent: SessionStartEvent;\n\tprotected _orchestrationContext?: OrchestrationContext;\n\tprotected _extensionUIContext?: ExtensionUIContext;\n\tprotected _extensionHumanInput?: import(\"./extensions/host-input.js\").HostInput | null;\n\tprotected _extensionDiagnosticListener?: (diagnostic: import(\"./extensions/host-input.js\").HostDiagnostic) => void;\n\tprotected _extensionMode: ExtensionMode = \"print\";\n\tprotected _extensionCommandContextActions?: ExtensionCommandContextActions;\n\tprotected _extensionShutdownHandler?: () => void;\n\tprotected _extensionErrorListener?: ExtensionErrorListener;\n\tprotected _extensionErrorUnsubscriber?: () => void;\n\tprotected _modelRuntime: ModelRuntime;\n\tprotected _extensionProviderIds = new Set<string>();\n\tprotected _toolRegistry: Map<string, AgentTool> = new Map();\n\tprotected readonly _toolExecutionScheduler = new ToolExecutionScheduler();\n\tprotected _toolDefinitions: Map<string, ToolDefinitionEntry> = new Map();\n\tprotected _toolPromptSnippets: Map<string, string> = new Map();\n\tprotected _toolPromptGuidelines: Map<string, string[]> = new Map();\n\tprotected _baseSystemPromptOptions!: NormalizedBuildSystemPromptOptions;\n\tprotected _systemPromptTransform?: (prompt: string) => string;\n\tprotected _contextProjectionTransform?: (messages: AgentMessage[]) => AgentMessage[];\n\tprotected _runSystemPromptOptions?: NormalizedBuildSystemPromptOptions;\n\tprotected _lastAssistantMessage: AssistantMessage | undefined = undefined;\n\t/** Protection claim on this session's temp tree and tool-results directory. */\n\tprotected _tempStorageLease: ProtectedPathLease | undefined;\n\tprotected _workflowStageAdmission: WorkflowStageAdmissionBoundary | undefined;\n\tprotected _subagentMessageAdmission: WorkflowStageAdmissionBoundary | undefined;\n\t/** A fresh workflow stage whose own prompt has not started its first run (#3919). */\n\tprotected _workflowStageAwaitingFirstPrompt = false;\n\tprotected _agentTaskHost: import(\"./tasks/agent-adapter.js\").AgentTaskHost | undefined;\n\tprotected _parentCommandTaskOwner: import(\"./tasks/child-command-owner.js\").ChildCommandTaskOwner | undefined;\n\tprotected _resourceAdmission: import(\"./sdk-types.ts\").ResourceAdmission | undefined;\n\tprotected _childTaskWaits = new ChildTaskWaits();\n\tprotected _taskCompletionOutbox: import(\"./tasks/completion.js\").TaskCompletionOutbox | undefined;\n\tprotected _taskAdmission: WorkflowStageAdmissionBoundary | undefined;\n\tprotected _cacheWarmer?: import(\"./cache-warmer.ts\").CacheWarmer;\n\tget cacheWarmingStatus(): import(\"./cache-warmer.ts\").CacheWarmingStatus | undefined {\n\t\treturn this._cacheWarmer?.status;\n\t}\n\tsetCacheWarmingMode(mode: import(\"./settings-manager.ts\").CacheWarmingMode): void {\n\t\tthis.settingsManager.setCacheWarmingMode(mode);\n\t\tthis._cacheWarmer?.onModeChanged();\n\t}\n\n\tconstructor(config: AgentSessionConfig) {\n\t\tthis.agent = config.agent;\n\t\tthis.sessionManager = config.sessionManager;\n\t\tthis.settingsManager = config.settingsManager;\n\t\tthis._scopedModels = config.scopedModels ?? [];\n\t\tthis._fallbackModels = config.fallbackModels ?? [];\n\t\tthis._isFallbackModelAllowed = config.isFallbackModelAllowed;\n\t\tthis._resourceLoader = config.resourceLoader;\n\t\tthis._customTools = config.customTools ?? [];\n\t\tthis._cwd = config.cwd;\n\t\tthis._modelRuntime = config.modelRuntime;\n\t\tthis._cacheWarmer = config.cacheWarmer;\n\t\tif (this._cacheWarmer)\n\t\t\tthis._cacheWarmer.onWarmed = (entry) =>\n\t\t\t\t(this as unknown as import(\"./agent-session-methods.ts\").AgentSessionInternalSurface)._emit({\n\t\t\t\t\ttype: \"entry_appended\",\n\t\t\t\t\tentry,\n\t\t\t\t});\n\t\tthis._extensionProviderIds = new Set(config.resourceLoader.getExtensions().runtime.extensionProviderIds);\n\t\tthis._extensionRunnerRef = config.extensionRunnerRef;\n\t\tthis._initialActiveToolNames = config.initialActiveToolNames;\n\t\tthis._usesDefaultTools = config.usesDefaultTools ?? false;\n\t\tthis._defaultToolModifiers = config.defaultToolModifiers ?? [];\n\t\tthis._appliedDefaultTools = new Set(\n\t\t\tthis._usesDefaultTools\n\t\t\t\t? applyToolModifiers(\n\t\t\t\t\t\tthis.settingsManager.getDefaultTools() ?? getDefaultToolNames(),\n\t\t\t\t\t\tthis._defaultToolModifiers,\n\t\t\t\t\t)\n\t\t\t\t: [],\n\t\t);\n\t\tthis._allowedToolNames = config.allowedToolNames ? new Set(config.allowedToolNames) : undefined;\n\t\tthis._excludedToolNames = config.excludedToolNames ? new Set(config.excludedToolNames) : undefined;\n\t\tthis._allowedTools = config.allowedToolNames ? createToolNameMatcher(config.allowedToolNames) : undefined;\n\t\tthis._excludedTools = config.excludedToolNames ? createToolNameMatcher(config.excludedToolNames) : undefined;\n\t\tthis._childSessionOptions = config.childSessionOptions;\n\t\tthis._workflowJournal = config.workflowJournal;\n\t\tthis._storageAgentDir = config.storageAgentDir;\n\t\tthis._baseToolsOverride = config.baseToolsOverride;\n\t\tthis._sessionStartEvent = config.sessionStartEvent ?? { type: \"session_start\", reason: \"startup\" };\n\t\tthis._orchestrationContext = config.orchestrationContext;\n\t\tthis._subagentPolicy = config.subagentPolicy;\n\t\tthis._parentCommandTaskOwner = config.parentCommandTaskOwner;\n\t\tthis._resourceAdmission = config.resourceAdmission;\n\t\tlet removeExecutionEndedListener: (() => void) | undefined;\n\t\ttry {\n\t\t\tif (config.subagentPolicy?.executionEnded !== undefined) {\n\t\t\t\t// Reuse the stable-key admission/drain primitive, not workflow identity or task ownership.\n\t\t\t\tconst admission = WorkflowStageAdmissionBoundary.restore(this.sessionManager.getBranch());\n\t\t\t\tthis._subagentMessageAdmission = admission;\n\t\t\t\tthis._subagentPolicy = {\n\t\t\t\t\t...config.subagentPolicy,\n\t\t\t\t\tmessageAdmission: {\n\t\t\t\t\t\tisOpen: () => admission.isOpen(),\n\t\t\t\t\t\trun: (deliver) =>\n\t\t\t\t\t\t\tadmission.runMessageDelivery(deliver, () => {\n\t\t\t\t\t\t\t\tthrow new Error(\"Subagent execution is terminal and cannot accept messages\");\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tconst ended = config.subagentPolicy.executionEnded;\n\t\t\t\tif (ended.aborted) admission.seal();\n\t\t\t\telse {\n\t\t\t\t\tconst seal = () => admission.seal();\n\t\t\t\t\tended.addEventListener(\"abort\", seal, { once: true });\n\t\t\t\t\tremoveExecutionEndedListener = () => ended.removeEventListener(\"abort\", seal);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._systemPromptTransform = config.systemPromptTransform;\n\t\t\tthis._contextProjectionTransform = config.contextProjectionTransform;\n\t\t\tconst stageContext =\n\t\t\t\tconfig.orchestrationContext?.kind === \"workflow-stage\" ? config.orchestrationContext : undefined;\n\t\t\tthis._workflowStageAdmission =\n\t\t\t\tstageContext?.messageAdmission?.boundary ??\n\t\t\t\t(stageContext ? WorkflowStageAdmissionBoundary.restore(this.sessionManager.getBranch()) : undefined);\n\t\t\t// #3919: a fresh stage is live before its runner dispatches the stage prompt. Turn-starting\n\t\t\t// input that arrives in that gap is startup context for the prompt's turn, not a turn of its own.\n\t\t\tthis._workflowStageAwaitingFirstPrompt =\n\t\t\t\tstageContext !== undefined &&\n\t\t\t\t!this.sessionManager\n\t\t\t\t\t.getBranch()\n\t\t\t\t\t.some((entry) => entry.type === \"message\" || entry.type === \"custom_message\" || entry.type === \"custom\");\n\t\t\tif (stageContext) {\n\t\t\t\tthis._workflowStageAdmission?.bindTaskIdentity(\n\t\t\t\t\tthis.sessionManager.getSessionId(),\n\t\t\t\t\tstageContext.workflowRunId,\n\t\t\t\t\tstageContext.workflowStageId,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (this._workflowStageAdmission && stageContext && stageContext.messageAdmission === undefined) {\n\t\t\t\t(\n\t\t\t\t\tstageContext as {\n\t\t\t\t\t\tmessageAdmission?: {\n\t\t\t\t\t\t\tboundary: WorkflowStageAdmissionBoundary;\n\t\t\t\t\t\t\textensionState: Map<string, object>;\n\t\t\t\t\t\t\tisOpen(): boolean;\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t).messageAdmission = {\n\t\t\t\t\tboundary: this._workflowStageAdmission,\n\t\t\t\t\textensionState: new Map(),\n\t\t\t\t\tisOpen: () => this._workflowStageAdmission?.isOpen() === true,\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Claim this session's storage before any tool can spill into it, so the\n\t\t\t// sweeper below never reaps a directory this process is still writing to.\n\t\t\t// The claim is a lease, released in dispose(): a session that is gone must\n\t\t\t// stop protecting a tree the startup sweep exists to collect.\n\t\t\ttry {\n\t\t\t\tconst sessionId = this.sessionManager.getSessionId();\n\t\t\t\tconst sessionDir = this.sessionManager.getSessionDir() || undefined;\n\t\t\t\tthis._tempStorageLease = acquireProtectedPaths([\n\t\t\t\t\tsetActiveSessionTempId(sessionId),\n\t\t\t\t\t// A disk-backed session's results are read back by path, and a replayed\n\t\t\t\t\t// result reuses an old file without touching its mtime, so age alone\n\t\t\t\t\t// cannot keep it alive.\n\t\t\t\t\t...(sessionDir ? [join(sessionDir, TOOL_RESULTS_SUBDIR)] : []),\n\t\t\t\t]);\n\t\t\t\t// A custom `--session-dir` keeps its tool results directly under that\n\t\t\t\t// directory, outside the project-nested roots the default sweep walks,\n\t\t\t\t// so it has to be named as its own target.\n\t\t\t\tconst customSessionDir = this.sessionManager.usesDefaultSessionDir() ? undefined : sessionDir;\n\t\t\t\tscheduleSessionTempCleanup(customSessionDir ? { sessionDirs: [customSessionDir] } : {});\n\t\t\t} catch {\n\t\t\t\t// Temp-storage housekeeping must never block session construction.\n\t\t\t}\n\t\t\tconst internals = this as unknown as AgentSessionInternalSurface;\n\t\t\tinternals._handleAgentEvent = internals._handleAgentEvent.bind(this);\n\t\t\tthis._unsubscribeAgent = this.agent.subscribe(internals._handleAgentEvent);\n\t\t\tinternals._installAgentToolHooks();\n\t\t\tinternals._installAgentNextTurnRefresh();\n\t\t\tinternals._installAgentRequestProjection();\n\t\t\tinternals._installAgentBoundaryHooks();\n\t\t\tinternals._buildRuntime({\n\t\t\t\tactiveToolNames: this._initialActiveToolNames,\n\t\t\t\tincludeAllExtensionTools: true,\n\t\t\t});\n\t\t\tinternals._restoreToolsFromTranscript({ startup: true });\n\t\t\tif (this._workflowStageAdmission?.hasAgentTaskHost() && !isSubagentChildSession(internals))\n\t\t\t\tinternals.getAgentTaskHost();\n\t\t} catch (error) {\n\t\t\t// No session escapes a failed constructor to release these acquisitions later.\n\t\t\tconst failures: unknown[] = [];\n\t\t\tfor (const release of [\n\t\t\t\t() => removeExecutionEndedListener?.(),\n\t\t\t\t() => this._unsubscribeAgent?.(),\n\t\t\t\t() => this._tempStorageLease?.release(),\n\t\t\t\t() => this._extensionRunner?.invalidate(\"Session construction failed\"),\n\t\t\t]) {\n\t\t\t\ttry {\n\t\t\t\t\trelease();\n\t\t\t\t} catch (cause) {\n\t\t\t\t\tfailures.push(cause);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._extensionRunnerRef) this._extensionRunnerRef.current = undefined;\n\t\t\tif (failures.length)\n\t\t\t\tthrow Object.assign(new AggregateError([error, ...failures], \"Session construction cleanup failed\"), {\n\t\t\t\t\tcode: \"ShutdownFailed\",\n\t\t\t\t});\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n\nexport interface AgentSession extends AgentSessionBase, AgentSessionPublicSurface {}\n\nexport const AgentSession = AgentSessionBase as unknown as {\n\tnew (config: AgentSessionConfig): AgentSession;\n\treadonly prototype: AgentSession;\n};\n\ninstallAgentSessionAccessors(AgentSession.prototype as unknown as AgentSessionInternalSurface);\nObject.assign(\n\tAgentSession.prototype,\n\tagentSessionToolHooksMethods,\n\tagentSessionBoundaryMethods,\n\tagentSessionEventsMethods,\n\tagentSessionStateMethods,\n\tagentSessionPromptMethods,\n\tagentSessionCustomMessageCommitMethods,\n\tagentSessionMessageQueueMethods,\n\tagentSessionModelsMethods,\n\tagentSessionCompactionMethods,\n\tagentSessionAutoCompactionMethods,\n\tagentSessionPostToolCompactionMethods,\n\tagentSessionExtensionBindingsMethods,\n\tagentSessionRecoveryMethods,\n\tagentSessionToolRegistryMethods,\n\tagentSessionRetryMethods,\n\tagentSessionBashMethods,\n\tagentSessionTreeMethods,\n\tagentSessionExportMethods,\n\tagentSessionSummaryMethods,\n\tagentSessionTaskMethods,\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-packages.d.ts","sourceRoot":"","sources":["../../src/core/builtin-packages.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,qBAAqB,EAA6B,MAAM,6BAA6B,CAAC;AACpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"builtin-packages.d.ts","sourceRoot":"","sources":["../../src/core/builtin-packages.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,qBAAqB,EAA6B,MAAM,6BAA6B,CAAC;AACpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAiBpD,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAsFD,iFAAiF;AACjF,wBAAgB,0BAA0B,CACzC,QAAQ,UAAQ,EAChB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,GAChD,sBAAsB,EAAE,CAiB1B;AAED,kGAAkG;AAClG,wBAAgB,6BAA6B,IAAI,sBAAsB,EAAE,CAcxE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,EAAE,CAEnG;AAED,uFAAuF;AACvF,wBAAgB,+BAA+B,IAAI,MAAM,EAAE,CAS1D;AAED,mFAAmF;AACnF,wBAAgB,iCAAiC,IAAI,MAAM,EAAE,CAc5D"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { join, resolve } from "node:path";
|
|
3
|
-
import { getPackageDir } from "../config.js";
|
|
3
|
+
import { getPackageDir, isBunBinary } from "../config.js";
|
|
4
4
|
import { moduleDirFromMetaUrl } from "../utils/split-launcher.js";
|
|
5
5
|
import { stripBom } from "../utils/text.js";
|
|
6
6
|
import { requiredEntriesForBuiltin } from "./builtin-install-layout.js";
|
|
@@ -17,7 +17,10 @@ const BUILTIN_PACKAGES = WORKSPACE_BUILTINS.map((spec) => ({
|
|
|
17
17
|
mandatory: spec.mandatory === true,
|
|
18
18
|
requiredEntries: requiredEntriesForBuiltin(spec.distDirName),
|
|
19
19
|
sourceCandidates: ({ here, packageDir, isSourceCheckout }) => isSourceCheckout
|
|
20
|
-
? [
|
|
20
|
+
? [
|
|
21
|
+
join(packageDir, "..", spec.workspaceDirName),
|
|
22
|
+
...(here === undefined ? [] : [join(here, "..", "..", "..", spec.workspaceDirName)]),
|
|
23
|
+
]
|
|
21
24
|
: [],
|
|
22
25
|
}));
|
|
23
26
|
function readPackageName(packageJsonPath) {
|
|
@@ -50,24 +53,21 @@ function firstExistingPackageDir(candidates, descriptor) {
|
|
|
50
53
|
function distCandidates(context, descriptor) {
|
|
51
54
|
const { here, packageDir } = context;
|
|
52
55
|
return [
|
|
53
|
-
join(here, "..", "builtin", descriptor.distDirName),
|
|
56
|
+
...(here === undefined ? [] : [join(here, "..", "builtin", descriptor.distDirName)]),
|
|
54
57
|
join(packageDir, "builtin", descriptor.distDirName),
|
|
55
58
|
join(packageDir, "dist", "builtin", descriptor.distDirName),
|
|
56
59
|
];
|
|
57
60
|
}
|
|
58
61
|
function getBuiltinPackageCandidateContext() {
|
|
59
62
|
const packageDir = getPackageDir();
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
//
|
|
63
|
-
const
|
|
64
|
-
here: moduleDirFromMetaUrl(import.meta.url),
|
|
65
|
-
packageDir,
|
|
66
|
-
isSourceCheckout: false,
|
|
67
|
-
};
|
|
63
|
+
// A compiled binary's app.js keeps the build machine's module URL. Where that
|
|
64
|
+
// build tree still exists it would win over the shipped `builtin/` beside the
|
|
65
|
+
// executable, so binaries resolve builtins from the package dir only (#3917).
|
|
66
|
+
const here = isBunBinary ? undefined : moduleDirFromMetaUrl(import.meta.url);
|
|
68
67
|
return {
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
here,
|
|
69
|
+
packageDir,
|
|
70
|
+
isSourceCheckout: existsSync(join(packageDir, "src", "main.ts")),
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
/** Atomic-owned builtin package roots paired with their verified descriptors. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-packages.js","sourceRoot":"","sources":["../../src/core/builtin-packages.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { getPackageDir } from \"../config.js\";\nimport { moduleDirFromMetaUrl } from \"../utils/split-launcher.ts\";\nimport { stripBom } from \"../utils/text.ts\";\nimport { type BuiltinPackageDirName, requiredEntriesForBuiltin } from \"./builtin-install-layout.ts\";\nimport type { AtomicBuiltin } from \"./sdk-types.ts\";\n\ninterface BuiltinPackageDescriptor {\n\treadonly packageName: string;\n\treadonly distDirName: BuiltinPackageDirName;\n\treadonly mandatory: boolean;\n\treadonly requiredEntries: readonly string[];\n\treadonly sourceCandidates: (context: BuiltinPackageCandidateContext) => string[];\n}\n\ninterface BuiltinPackageCandidateContext {\n\treadonly here: string;\n\treadonly packageDir: string;\n\treadonly isSourceCheckout: boolean;\n}\n\nexport interface BuiltinPackageLocation {\n\treadonly packageName: string;\n\treadonly distDirName: BuiltinPackageDirName;\n\treadonly packageDir: string;\n}\n\ninterface WorkspaceBuiltinSpec {\n\treadonly packageName: string;\n\treadonly workspaceDirName: BuiltinPackageDirName;\n\treadonly distDirName: BuiltinPackageDirName;\n}\n\nconst WORKSPACE_BUILTINS: readonly (WorkspaceBuiltinSpec & { mandatory?: boolean })[] = [\n\t{ packageName: \"@bastani/workflows\", workspaceDirName: \"workflows\", distDirName: \"workflows\" },\n\t{ packageName: \"@bastani/subagents\", workspaceDirName: \"subagents\", distDirName: \"subagents\" },\n\t{ packageName: \"@bastani/mcp\", workspaceDirName: \"mcp\", distDirName: \"mcp\" },\n\t{ packageName: \"@bastani/web-access\", workspaceDirName: \"web-access\", distDirName: \"web-access\" },\n\t{ packageName: \"@bastani/intercom\", workspaceDirName: \"intercom\", distDirName: \"intercom\", mandatory: true },\n];\n\nconst BUILTIN_PACKAGES: readonly BuiltinPackageDescriptor[] = WORKSPACE_BUILTINS.map(\n\t(spec): BuiltinPackageDescriptor => ({\n\t\tpackageName: spec.packageName,\n\t\tdistDirName: spec.distDirName,\n\t\tmandatory: spec.mandatory === true,\n\t\trequiredEntries: requiredEntriesForBuiltin(spec.distDirName),\n\t\tsourceCandidates: ({ here, packageDir, isSourceCheckout }) =>\n\t\t\tisSourceCheckout\n\t\t\t\t? [join(packageDir, \"..\", spec.workspaceDirName), join(here, \"..\", \"..\", \"..\", spec.workspaceDirName)]\n\t\t\t\t: [],\n\t}),\n);\n\nfunction readPackageName(packageJsonPath: string): string | undefined {\n\ttry {\n\t\tconst pkg = JSON.parse(stripBom(readFileSync(packageJsonPath, \"utf-8\"))) as { name?: string };\n\t\treturn pkg.name;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nfunction isPackageDir(dir: string, descriptor: BuiltinPackageDescriptor): boolean {\n\treturn (\n\t\tdescriptor.requiredEntries.some((entry) => existsSync(join(dir, entry))) &&\n\t\treadPackageName(join(dir, \"package.json\")) === descriptor.packageName\n\t);\n}\n\nfunction firstExistingPackageDir(candidates: string[], descriptor: BuiltinPackageDescriptor): string | undefined {\n\tconst seen = new Set<string>();\n\n\tfor (const candidate of candidates) {\n\t\tconst resolved = resolve(candidate);\n\t\tif (seen.has(resolved)) {\n\t\t\tcontinue;\n\t\t}\n\t\tseen.add(resolved);\n\t\tif (isPackageDir(resolved, descriptor)) {\n\t\t\treturn resolved;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\nfunction distCandidates(context: BuiltinPackageCandidateContext, descriptor: BuiltinPackageDescriptor): string[] {\n\tconst { here, packageDir } = context;\n\treturn [\n\t\tjoin(here, \"..\", \"builtin\", descriptor.distDirName),\n\t\tjoin(packageDir, \"builtin\", descriptor.distDirName),\n\t\tjoin(packageDir, \"dist\", \"builtin\", descriptor.distDirName),\n\t];\n}\nfunction getBuiltinPackageCandidateContext(): BuiltinPackageCandidateContext {\n\tconst packageDir = getPackageDir();\n\t// In the split launcher the bundled import.meta.url is a foreign-OS build\n\t// path; fall back to the package dir (the executable dir), where `builtin/`\n\t// sits, so distCandidates still resolves.\n\tconst context: BuiltinPackageCandidateContext = {\n\t\there: moduleDirFromMetaUrl(import.meta.url),\n\t\tpackageDir,\n\t\tisSourceCheckout: false,\n\t};\n\treturn {\n\t\t...context,\n\t\tisSourceCheckout: existsSync(join(context.packageDir, \"src\", \"main.ts\")),\n\t};\n}\n\n/** Atomic-owned builtin package roots paired with their verified descriptors. */\nexport function getBuiltinPackageLocations(\n\trequired = false,\n\tbuiltins?: Partial<Record<AtomicBuiltin, boolean>>,\n): BuiltinPackageLocation[] {\n\tconst context = getBuiltinPackageCandidateContext();\n\treturn BUILTIN_PACKAGES.flatMap((descriptor) => {\n\t\tif (builtins?.[descriptor.distDirName] === false) return [];\n\t\tconst packageDir = firstExistingPackageDir(\n\t\t\t[...descriptor.sourceCandidates(context), ...distCandidates(context, descriptor)],\n\t\t\tdescriptor,\n\t\t);\n\t\tif (!packageDir && required) {\n\t\t\tthrow Object.assign(new Error(`Builtin unavailable: ${descriptor.packageName}`), {\n\t\t\t\tcode: \"BuiltinUnavailable\",\n\t\t\t});\n\t\t}\n\t\treturn packageDir\n\t\t\t? [{ packageName: descriptor.packageName, distDirName: descriptor.distDirName, packageDir }]\n\t\t\t: [];\n\t});\n}\n\n/** Every verified shipped root, including alternate source/dist locations in a built checkout. */\nexport function getAllBuiltinPackageLocations(): BuiltinPackageLocation[] {\n\tconst context = getBuiltinPackageCandidateContext();\n\treturn BUILTIN_PACKAGES.flatMap((descriptor) => {\n\t\tconst candidates = new Set(\n\t\t\t[...descriptor.sourceCandidates(context), ...distCandidates(context, descriptor)].map((path) => resolve(path)),\n\t\t);\n\t\treturn [...candidates]\n\t\t\t.filter((path) => isPackageDir(path, descriptor))\n\t\t\t.map((packageDir) => ({\n\t\t\t\tpackageName: descriptor.packageName,\n\t\t\t\tdistDirName: descriptor.distDirName,\n\t\t\t\tpackageDir,\n\t\t\t}));\n\t});\n}\n\n/**\n * Built-in pi package roots shipped with this Atomic distribution.\n *\n * Development layout:\n * packages/coding-agent/src/core -> packages/<builtin>\n *\n * npm/dist layout:\n * packages/coding-agent/dist/core -> packages/coding-agent/dist/builtin/<package>\n *\n * Bun binary layout:\n * process executable dir -> builtin/<package>\n */\nexport function getBuiltinPackagePaths(builtins?: Partial<Record<AtomicBuiltin, boolean>>): string[] {\n\treturn getBuiltinPackageLocations(true, builtins).map(({ packageDir }) => packageDir);\n}\n\n/** Built-in package roots whose extensions Atomic must load in every model session. */\nexport function getMandatoryBuiltinPackagePaths(): string[] {\n\tconst context = getBuiltinPackageCandidateContext();\n\treturn BUILTIN_PACKAGES.filter((descriptor) => descriptor.mandatory).flatMap((descriptor) => {\n\t\tconst packageDir = firstExistingPackageDir(\n\t\t\t[...descriptor.sourceCandidates(context), ...distCandidates(context, descriptor)],\n\t\t\tdescriptor,\n\t\t);\n\t\treturn packageDir ? [packageDir] : [];\n\t});\n}\n\n/** Trusted extension entries resolved from Atomic's mandatory bundled packages. */\nexport function getMandatoryBuiltinExtensionPaths(): string[] {\n\treturn getMandatoryBuiltinPackagePaths().flatMap((packageDir) => {\n\t\ttry {\n\t\t\tconst manifest = JSON.parse(stripBom(readFileSync(join(packageDir, \"package.json\"), \"utf-8\"))) as {\n\t\t\t\tatomic?: { extensions?: string[] };\n\t\t\t\tpi?: { extensions?: string[] };\n\t\t\t};\n\t\t\treturn (manifest.atomic?.extensions ?? manifest.pi?.extensions ?? []).map((entry) =>\n\t\t\t\tresolve(packageDir, entry),\n\t\t\t);\n\t\t} catch {\n\t\t\treturn [];\n\t\t}\n\t});\n}\n"]}
|
|
1
|
+
{"version":3,"file":"builtin-packages.js","sourceRoot":"","sources":["../../src/core/builtin-packages.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { getPackageDir, isBunBinary } from \"../config.js\";\nimport { moduleDirFromMetaUrl } from \"../utils/split-launcher.ts\";\nimport { stripBom } from \"../utils/text.ts\";\nimport { type BuiltinPackageDirName, requiredEntriesForBuiltin } from \"./builtin-install-layout.ts\";\nimport type { AtomicBuiltin } from \"./sdk-types.ts\";\n\ninterface BuiltinPackageDescriptor {\n\treadonly packageName: string;\n\treadonly distDirName: BuiltinPackageDirName;\n\treadonly mandatory: boolean;\n\treadonly requiredEntries: readonly string[];\n\treadonly sourceCandidates: (context: BuiltinPackageCandidateContext) => string[];\n}\n\ninterface BuiltinPackageCandidateContext {\n\t/** Module directory; undefined in a compiled binary, whose bundled module URL is a build-time path. */\n\treadonly here: string | undefined;\n\treadonly packageDir: string;\n\treadonly isSourceCheckout: boolean;\n}\n\nexport interface BuiltinPackageLocation {\n\treadonly packageName: string;\n\treadonly distDirName: BuiltinPackageDirName;\n\treadonly packageDir: string;\n}\n\ninterface WorkspaceBuiltinSpec {\n\treadonly packageName: string;\n\treadonly workspaceDirName: BuiltinPackageDirName;\n\treadonly distDirName: BuiltinPackageDirName;\n}\n\nconst WORKSPACE_BUILTINS: readonly (WorkspaceBuiltinSpec & { mandatory?: boolean })[] = [\n\t{ packageName: \"@bastani/workflows\", workspaceDirName: \"workflows\", distDirName: \"workflows\" },\n\t{ packageName: \"@bastani/subagents\", workspaceDirName: \"subagents\", distDirName: \"subagents\" },\n\t{ packageName: \"@bastani/mcp\", workspaceDirName: \"mcp\", distDirName: \"mcp\" },\n\t{ packageName: \"@bastani/web-access\", workspaceDirName: \"web-access\", distDirName: \"web-access\" },\n\t{ packageName: \"@bastani/intercom\", workspaceDirName: \"intercom\", distDirName: \"intercom\", mandatory: true },\n];\n\nconst BUILTIN_PACKAGES: readonly BuiltinPackageDescriptor[] = WORKSPACE_BUILTINS.map(\n\t(spec): BuiltinPackageDescriptor => ({\n\t\tpackageName: spec.packageName,\n\t\tdistDirName: spec.distDirName,\n\t\tmandatory: spec.mandatory === true,\n\t\trequiredEntries: requiredEntriesForBuiltin(spec.distDirName),\n\t\tsourceCandidates: ({ here, packageDir, isSourceCheckout }) =>\n\t\t\tisSourceCheckout\n\t\t\t\t? [\n\t\t\t\t\t\tjoin(packageDir, \"..\", spec.workspaceDirName),\n\t\t\t\t\t\t...(here === undefined ? [] : [join(here, \"..\", \"..\", \"..\", spec.workspaceDirName)]),\n\t\t\t\t\t]\n\t\t\t\t: [],\n\t}),\n);\n\nfunction readPackageName(packageJsonPath: string): string | undefined {\n\ttry {\n\t\tconst pkg = JSON.parse(stripBom(readFileSync(packageJsonPath, \"utf-8\"))) as { name?: string };\n\t\treturn pkg.name;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nfunction isPackageDir(dir: string, descriptor: BuiltinPackageDescriptor): boolean {\n\treturn (\n\t\tdescriptor.requiredEntries.some((entry) => existsSync(join(dir, entry))) &&\n\t\treadPackageName(join(dir, \"package.json\")) === descriptor.packageName\n\t);\n}\n\nfunction firstExistingPackageDir(candidates: string[], descriptor: BuiltinPackageDescriptor): string | undefined {\n\tconst seen = new Set<string>();\n\n\tfor (const candidate of candidates) {\n\t\tconst resolved = resolve(candidate);\n\t\tif (seen.has(resolved)) {\n\t\t\tcontinue;\n\t\t}\n\t\tseen.add(resolved);\n\t\tif (isPackageDir(resolved, descriptor)) {\n\t\t\treturn resolved;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\nfunction distCandidates(context: BuiltinPackageCandidateContext, descriptor: BuiltinPackageDescriptor): string[] {\n\tconst { here, packageDir } = context;\n\treturn [\n\t\t...(here === undefined ? [] : [join(here, \"..\", \"builtin\", descriptor.distDirName)]),\n\t\tjoin(packageDir, \"builtin\", descriptor.distDirName),\n\t\tjoin(packageDir, \"dist\", \"builtin\", descriptor.distDirName),\n\t];\n}\nfunction getBuiltinPackageCandidateContext(): BuiltinPackageCandidateContext {\n\tconst packageDir = getPackageDir();\n\t// A compiled binary's app.js keeps the build machine's module URL. Where that\n\t// build tree still exists it would win over the shipped `builtin/` beside the\n\t// executable, so binaries resolve builtins from the package dir only (#3917).\n\tconst here = isBunBinary ? undefined : moduleDirFromMetaUrl(import.meta.url);\n\treturn {\n\t\there,\n\t\tpackageDir,\n\t\tisSourceCheckout: existsSync(join(packageDir, \"src\", \"main.ts\")),\n\t};\n}\n\n/** Atomic-owned builtin package roots paired with their verified descriptors. */\nexport function getBuiltinPackageLocations(\n\trequired = false,\n\tbuiltins?: Partial<Record<AtomicBuiltin, boolean>>,\n): BuiltinPackageLocation[] {\n\tconst context = getBuiltinPackageCandidateContext();\n\treturn BUILTIN_PACKAGES.flatMap((descriptor) => {\n\t\tif (builtins?.[descriptor.distDirName] === false) return [];\n\t\tconst packageDir = firstExistingPackageDir(\n\t\t\t[...descriptor.sourceCandidates(context), ...distCandidates(context, descriptor)],\n\t\t\tdescriptor,\n\t\t);\n\t\tif (!packageDir && required) {\n\t\t\tthrow Object.assign(new Error(`Builtin unavailable: ${descriptor.packageName}`), {\n\t\t\t\tcode: \"BuiltinUnavailable\",\n\t\t\t});\n\t\t}\n\t\treturn packageDir\n\t\t\t? [{ packageName: descriptor.packageName, distDirName: descriptor.distDirName, packageDir }]\n\t\t\t: [];\n\t});\n}\n\n/** Every verified shipped root, including alternate source/dist locations in a built checkout. */\nexport function getAllBuiltinPackageLocations(): BuiltinPackageLocation[] {\n\tconst context = getBuiltinPackageCandidateContext();\n\treturn BUILTIN_PACKAGES.flatMap((descriptor) => {\n\t\tconst candidates = new Set(\n\t\t\t[...descriptor.sourceCandidates(context), ...distCandidates(context, descriptor)].map((path) => resolve(path)),\n\t\t);\n\t\treturn [...candidates]\n\t\t\t.filter((path) => isPackageDir(path, descriptor))\n\t\t\t.map((packageDir) => ({\n\t\t\t\tpackageName: descriptor.packageName,\n\t\t\t\tdistDirName: descriptor.distDirName,\n\t\t\t\tpackageDir,\n\t\t\t}));\n\t});\n}\n\n/**\n * Built-in pi package roots shipped with this Atomic distribution.\n *\n * Development layout:\n * packages/coding-agent/src/core -> packages/<builtin>\n *\n * npm/dist layout:\n * packages/coding-agent/dist/core -> packages/coding-agent/dist/builtin/<package>\n *\n * Bun binary layout:\n * process executable dir -> builtin/<package>\n */\nexport function getBuiltinPackagePaths(builtins?: Partial<Record<AtomicBuiltin, boolean>>): string[] {\n\treturn getBuiltinPackageLocations(true, builtins).map(({ packageDir }) => packageDir);\n}\n\n/** Built-in package roots whose extensions Atomic must load in every model session. */\nexport function getMandatoryBuiltinPackagePaths(): string[] {\n\tconst context = getBuiltinPackageCandidateContext();\n\treturn BUILTIN_PACKAGES.filter((descriptor) => descriptor.mandatory).flatMap((descriptor) => {\n\t\tconst packageDir = firstExistingPackageDir(\n\t\t\t[...descriptor.sourceCandidates(context), ...distCandidates(context, descriptor)],\n\t\t\tdescriptor,\n\t\t);\n\t\treturn packageDir ? [packageDir] : [];\n\t});\n}\n\n/** Trusted extension entries resolved from Atomic's mandatory bundled packages. */\nexport function getMandatoryBuiltinExtensionPaths(): string[] {\n\treturn getMandatoryBuiltinPackagePaths().flatMap((packageDir) => {\n\t\ttry {\n\t\t\tconst manifest = JSON.parse(stripBom(readFileSync(join(packageDir, \"package.json\"), \"utf-8\"))) as {\n\t\t\t\tatomic?: { extensions?: string[] };\n\t\t\t\tpi?: { extensions?: string[] };\n\t\t\t};\n\t\t\treturn (manifest.atomic?.extensions ?? manifest.pi?.extensions ?? []).map((entry) =>\n\t\t\t\tresolve(packageDir, entry),\n\t\t\t);\n\t\t} catch {\n\t\t\treturn [];\n\t\t}\n\t});\n}\n"]}
|
package/dist/core/exec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/core/exec.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/core/exec.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,wCAAwC;IACxC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAkFrB"}
|
package/dist/core/exec.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Shared command execution utilities for extensions and custom tools.
|
|
3
3
|
*/
|
|
4
4
|
import { spawn } from "node:child_process";
|
|
5
|
+
import { StringDecoder } from "node:string_decoder";
|
|
5
6
|
import { createChildProcessEnvironment, waitForChildProcess } from "../utils/child-process.js";
|
|
6
7
|
/**
|
|
7
8
|
* Execute a shell command and return stdout/stderr/code.
|
|
@@ -22,6 +23,10 @@ export async function execCommand(command, args, cwd, options) {
|
|
|
22
23
|
});
|
|
23
24
|
let stdout = "";
|
|
24
25
|
let stderr = "";
|
|
26
|
+
// Decode across chunks: a multi-byte UTF-8 character can be split between two chunks,
|
|
27
|
+
// and decoding each chunk separately would corrupt it (earendil-works/pi#11312).
|
|
28
|
+
const stdoutDecoder = new StringDecoder("utf8");
|
|
29
|
+
const stderrDecoder = new StringDecoder("utf8");
|
|
25
30
|
let killed = false;
|
|
26
31
|
let timeoutId;
|
|
27
32
|
const killProcess = () => {
|
|
@@ -52,10 +57,10 @@ export async function execCommand(command, args, cwd, options) {
|
|
|
52
57
|
}, options.timeout);
|
|
53
58
|
}
|
|
54
59
|
proc.stdout?.on("data", (data) => {
|
|
55
|
-
stdout +=
|
|
60
|
+
stdout += stdoutDecoder.write(data);
|
|
56
61
|
});
|
|
57
62
|
proc.stderr?.on("data", (data) => {
|
|
58
|
-
stderr +=
|
|
63
|
+
stderr += stderrDecoder.write(data);
|
|
59
64
|
});
|
|
60
65
|
// Wait for process termination without hanging on inherited stdio handles
|
|
61
66
|
// held open by detached descendants.
|
|
@@ -63,6 +68,8 @@ export async function execCommand(command, args, cwd, options) {
|
|
|
63
68
|
.then((code) => {
|
|
64
69
|
if (timeoutId)
|
|
65
70
|
clearTimeout(timeoutId);
|
|
71
|
+
stdout += stdoutDecoder.end();
|
|
72
|
+
stderr += stderrDecoder.end();
|
|
66
73
|
if (options?.signal) {
|
|
67
74
|
options.signal.removeEventListener("abort", killProcess);
|
|
68
75
|
}
|
|
@@ -71,6 +78,8 @@ export async function execCommand(command, args, cwd, options) {
|
|
|
71
78
|
.catch((error) => {
|
|
72
79
|
if (timeoutId)
|
|
73
80
|
clearTimeout(timeoutId);
|
|
81
|
+
stdout += stdoutDecoder.end();
|
|
82
|
+
stderr += stderrDecoder.end();
|
|
74
83
|
if (options?.signal) {
|
|
75
84
|
options.signal.removeEventListener("abort", killProcess);
|
|
76
85
|
}
|
package/dist/core/exec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/core/exec.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAwB/F;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,OAAe,EACf,IAAc,EACd,GAAW,EACX,OAAqB;IAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,GAAG;YACH,KAAK,EAAE,KAAK;YACZ,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,yEAAyE;YACzE,+DAA+D;YAC/D,GAAG,EAAE,6BAA6B,EAAE;YACpC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SACjC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,SAAqC,CAAC;QAE1C,MAAM,WAAW,GAAG,GAAG,EAAE;YACxB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrB,qDAAqD;gBACrD,UAAU,CAAC,GAAG,EAAE;oBACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBAClB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACtB,CAAC;gBACF,CAAC,EAAE,IAAI,CAAC,CAAC;YACV,CAAC;QACF,CAAC,CAAC;QAEF,sBAAsB;QACtB,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC5B,WAAW,EAAE,CAAC;YACf,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,CAAC;QACF,CAAC;QAED,iBAAiB;QACjB,IAAI,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YAC7C,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC3B,WAAW,EAAE,CAAC;YACf,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/core/exec.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared command execution utilities for extensions and custom tools.\n */\n\nimport { spawn } from \"node:child_process\";\nimport { StringDecoder } from \"node:string_decoder\";\nimport { createChildProcessEnvironment, waitForChildProcess } from \"../utils/child-process.ts\";\n\n/**\n * Options for executing shell commands.\n */\nexport interface ExecOptions {\n\t/** AbortSignal to cancel the command */\n\tsignal?: AbortSignal;\n\t/** Timeout in milliseconds */\n\ttimeout?: number;\n\t/** Working directory */\n\tcwd?: string;\n}\n\n/**\n * Result of executing a shell command.\n */\nexport interface ExecResult {\n\tstdout: string;\n\tstderr: string;\n\tcode: number;\n\tkilled: boolean;\n}\n\n/**\n * Execute a shell command and return stdout/stderr/code.\n * Supports timeout and abort signal.\n */\nexport async function execCommand(\n\tcommand: string,\n\targs: string[],\n\tcwd: string,\n\toptions?: ExecOptions,\n): Promise<ExecResult> {\n\treturn new Promise((resolve) => {\n\t\tconst proc = spawn(command, args, {\n\t\t\tcwd,\n\t\t\tshell: false,\n\t\t\t// Pass the environment explicitly. Bun snapshots the process environment\n\t\t\t// at startup for spawns that omit `env`, so an inherited default would\n\t\t\t// still carry values this process deleted from `process.env` — including\n\t\t\t// the interactive-engine control variables and their --api-key. Preserve\n\t\t\t// Atomic's child attribution in the same explicit environment.\n\t\t\tenv: createChildProcessEnvironment(),\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t});\n\n\t\tlet stdout = \"\";\n\t\tlet stderr = \"\";\n\t\t// Decode across chunks: a multi-byte UTF-8 character can be split between two chunks,\n\t\t// and decoding each chunk separately would corrupt it (earendil-works/pi#11312).\n\t\tconst stdoutDecoder = new StringDecoder(\"utf8\");\n\t\tconst stderrDecoder = new StringDecoder(\"utf8\");\n\t\tlet killed = false;\n\t\tlet timeoutId: NodeJS.Timeout | undefined;\n\n\t\tconst killProcess = () => {\n\t\t\tif (!killed) {\n\t\t\t\tkilled = true;\n\t\t\t\tproc.kill(\"SIGTERM\");\n\t\t\t\t// Force kill after 5 seconds if SIGTERM doesn't work\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (!proc.killed) {\n\t\t\t\t\t\tproc.kill(\"SIGKILL\");\n\t\t\t\t\t}\n\t\t\t\t}, 5000);\n\t\t\t}\n\t\t};\n\n\t\t// Handle abort signal\n\t\tif (options?.signal) {\n\t\t\tif (options.signal.aborted) {\n\t\t\t\tkillProcess();\n\t\t\t} else {\n\t\t\t\toptions.signal.addEventListener(\"abort\", killProcess, { once: true });\n\t\t\t}\n\t\t}\n\n\t\t// Handle timeout\n\t\tif (options?.timeout && options.timeout > 0) {\n\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\tkillProcess();\n\t\t\t}, options.timeout);\n\t\t}\n\n\t\tproc.stdout?.on(\"data\", (data) => {\n\t\t\tstdout += stdoutDecoder.write(data);\n\t\t});\n\n\t\tproc.stderr?.on(\"data\", (data) => {\n\t\t\tstderr += stderrDecoder.write(data);\n\t\t});\n\n\t\t// Wait for process termination without hanging on inherited stdio handles\n\t\t// held open by detached descendants.\n\t\twaitForChildProcess(proc)\n\t\t\t.then((code) => {\n\t\t\t\tif (timeoutId) clearTimeout(timeoutId);\n\t\t\t\tstdout += stdoutDecoder.end();\n\t\t\t\tstderr += stderrDecoder.end();\n\t\t\t\tif (options?.signal) {\n\t\t\t\t\toptions.signal.removeEventListener(\"abort\", killProcess);\n\t\t\t\t}\n\t\t\t\tresolve({ stdout, stderr, code: code ?? 0, killed });\n\t\t\t})\n\t\t\t.catch((error: Error) => {\n\t\t\t\tif (timeoutId) clearTimeout(timeoutId);\n\t\t\t\tstdout += stdoutDecoder.end();\n\t\t\t\tstderr += stderrDecoder.end();\n\t\t\t\tif (options?.signal) {\n\t\t\t\t\toptions.signal.removeEventListener(\"abort\", killProcess);\n\t\t\t\t}\n\t\t\t\tresolve({ stdout, stderr: stderr || error.message, code: 1, killed });\n\t\t\t});\n\t});\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager-resolver.d.ts","sourceRoot":"","sources":["../../src/core/package-manager-resolver.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACX,mBAAmB,
|
|
1
|
+
{"version":3,"file":"package-manager-resolver.d.ts","sourceRoot":"","sources":["../../src/core/package-manager-resolver.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACX,mBAAmB,EAGnB,qBAAqB,EAErB,aAAa,EACb,8BAA8B,EAG9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAY3D,wBAAsB,eAAe,CACpC,OAAO,EAAE,qBAAqB,EAC9B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,GAC1D,OAAO,CAAC,aAAa,CAAC,CAwExB;AAqCD,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,aAAa,EAAE,EACxB,OAAO,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC,aAAa,CAAC,CAkBxB"}
|
|
@@ -34,7 +34,9 @@ export async function resolvePackages(context, onMissing) {
|
|
|
34
34
|
allPackages.push({ pkg, scope: "user" });
|
|
35
35
|
}
|
|
36
36
|
const packageSources = dedupePackages(context, allPackages);
|
|
37
|
-
await resolvePackageSources(context, packageSources, accumulator, onMissing, {
|
|
37
|
+
const installFailures = await resolvePackageSources(context, packageSources, accumulator, onMissing, {
|
|
38
|
+
settingsField: "packages",
|
|
39
|
+
});
|
|
38
40
|
const globalBaseDir = context.agentDir;
|
|
39
41
|
const projectBaseDir = join(context.cwd, CONFIG_DIR_NAME);
|
|
40
42
|
const globalBaseDirs = getBaseDirsForScope(context, "user");
|
|
@@ -63,7 +65,7 @@ export async function resolvePackages(context, onMissing) {
|
|
|
63
65
|
configurationOrigin: "bundled",
|
|
64
66
|
}, projectEnabled ?? isEnabledByOverrides(path, globalSettings.extensions ?? [], globalBaseDir));
|
|
65
67
|
}
|
|
66
|
-
return toResolvedPaths(accumulator);
|
|
68
|
+
return { ...toResolvedPaths(accumulator), installFailures };
|
|
67
69
|
}
|
|
68
70
|
async function resolveConfiguredLocalEntries(entries, resourceType, target, scope, baseDirs, fieldOrigin) {
|
|
69
71
|
const { plain, patterns } = splitPatterns(entries);
|
|
@@ -95,12 +97,13 @@ export async function resolveExtensionSources(context, sources, options) {
|
|
|
95
97
|
else
|
|
96
98
|
packageSources.push({ pkg: source, scope });
|
|
97
99
|
}
|
|
98
|
-
await resolvePackageSources(context, packageSources, accumulator, undefined, {
|
|
100
|
+
const installFailures = await resolvePackageSources(context, packageSources, accumulator, undefined, {
|
|
99
101
|
includeProjectLocalResources: options?.includeProjectLocalResources === true,
|
|
100
102
|
});
|
|
101
|
-
return toResolvedPaths(accumulator);
|
|
103
|
+
return { ...toResolvedPaths(accumulator), installFailures };
|
|
102
104
|
}
|
|
103
105
|
async function resolvePackageSources(context, sources, accumulator, onMissing, options) {
|
|
106
|
+
const installFailures = [];
|
|
104
107
|
for (const { pkg, scope } of sources) {
|
|
105
108
|
const sourceStr = getPackageSourceString(pkg);
|
|
106
109
|
const filter = typeof pkg === "object" ? pkg : undefined;
|
|
@@ -136,23 +139,30 @@ async function resolvePackageSources(context, sources, accumulator, onMissing, o
|
|
|
136
139
|
const installMissing = async () => {
|
|
137
140
|
if (isOfflineModeEnabled())
|
|
138
141
|
return false;
|
|
139
|
-
if (
|
|
142
|
+
if (onMissing) {
|
|
143
|
+
const action = await onMissing(sourceStr);
|
|
144
|
+
if (action === "skip")
|
|
145
|
+
return false;
|
|
146
|
+
if (action === "error")
|
|
147
|
+
throw new Error(`Missing source: ${sourceStr}`);
|
|
148
|
+
}
|
|
149
|
+
// A source that cannot be installed (no network, missing package, failing git prepare step)
|
|
150
|
+
// must not abort startup. Skip its resources, like offline mode does, and report the failure.
|
|
151
|
+
try {
|
|
140
152
|
if (context.driver)
|
|
141
153
|
await context.driver.installParsedSource(parsed, resolvedScope);
|
|
142
154
|
else
|
|
143
155
|
await installParsedSource(context, parsed, resolvedScope);
|
|
144
156
|
return true;
|
|
145
157
|
}
|
|
146
|
-
|
|
147
|
-
|
|
158
|
+
catch (error) {
|
|
159
|
+
installFailures.push({
|
|
160
|
+
source: resolvedSource,
|
|
161
|
+
scope: resolvedScope,
|
|
162
|
+
message: error instanceof Error ? error.message : String(error),
|
|
163
|
+
});
|
|
148
164
|
return false;
|
|
149
|
-
|
|
150
|
-
throw new Error(`Missing source: ${sourceStr}`);
|
|
151
|
-
if (context.driver)
|
|
152
|
-
await context.driver.installParsedSource(parsed, resolvedScope);
|
|
153
|
-
else
|
|
154
|
-
await installParsedSource(context, parsed, resolvedScope);
|
|
155
|
-
return true;
|
|
165
|
+
}
|
|
156
166
|
};
|
|
157
167
|
if (parsed.type === "npm") {
|
|
158
168
|
let installedPath = getExistingNpmInstallPath(context, parsed, resolvedScope);
|
|
@@ -189,6 +199,7 @@ async function resolvePackageSources(context, sources, accumulator, onMissing, o
|
|
|
189
199
|
metadata.packageRoot = installedPath;
|
|
190
200
|
await collectPackageResources(installedPath, accumulator, filter, metadata);
|
|
191
201
|
}
|
|
202
|
+
return installFailures;
|
|
192
203
|
}
|
|
193
204
|
function findAutoloadDeltaBase(context, pkg, scope, sources) {
|
|
194
205
|
if (scope !== "project" || typeof pkg !== "object" || pkg.autoload !== false)
|