@agimon-ai/po-core 0.0.0-alpha.0
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/LICENSE +21 -0
- package/README.md +7 -0
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/agentModel.cjs +4 -0
- package/dist/agentModel.d.mts +2 -0
- package/dist/agentModel.mjs +2 -0
- package/dist/apiContracts.cjs +2094 -0
- package/dist/apiContracts.cjs.map +1 -0
- package/dist/apiContracts.d.mts +1086 -0
- package/dist/apiContracts.d.mts.map +1 -0
- package/dist/apiContracts.mjs +2074 -0
- package/dist/apiContracts.mjs.map +1 -0
- package/dist/askUser.cjs +8 -0
- package/dist/askUser.d.mts +2 -0
- package/dist/askUser.mjs +2 -0
- package/dist/authorTools.cjs +5 -0
- package/dist/authorTools.d.mts +2 -0
- package/dist/authorTools.mjs +2 -0
- package/dist/backgroundWork.cjs +9 -0
- package/dist/backgroundWork.d.mts +2 -0
- package/dist/backgroundWork.mjs +2 -0
- package/dist/bundleAssetPolicy.cjs +5 -0
- package/dist/bundleAssetPolicy.d.mts +2 -0
- package/dist/bundleAssetPolicy.mjs +2 -0
- package/dist/childProcess.cjs +15 -0
- package/dist/childProcess.d.mts +2 -0
- package/dist/childProcess.mjs +2 -0
- package/dist/childSession.cjs +9 -0
- package/dist/childSession.d.mts +3 -0
- package/dist/childSession.mjs +3 -0
- package/dist/cockpitContainer.cjs +4 -0
- package/dist/cockpitContainer.d.mts +2 -0
- package/dist/cockpitContainer.mjs +2 -0
- package/dist/config.cjs +13 -0
- package/dist/config.d.mts +3 -0
- package/dist/config.mjs +2 -0
- package/dist/contextApi.cjs +12 -0
- package/dist/contextApi.d.mts +4 -0
- package/dist/contextApi.mjs +3 -0
- package/dist/contextContributions.cjs +7 -0
- package/dist/contextContributions.d.mts +3 -0
- package/dist/contextContributions.mjs +3 -0
- package/dist/contextDetail.cjs +65 -0
- package/dist/contextDetail.cjs.map +1 -0
- package/dist/contextDetail.d.mts +19 -0
- package/dist/contextDetail.d.mts.map +1 -0
- package/dist/contextDetail.mjs +64 -0
- package/dist/contextDetail.mjs.map +1 -0
- package/dist/contextDetailStore.cjs +96 -0
- package/dist/contextDetailStore.cjs.map +1 -0
- package/dist/contextDetailStore.d.mts +21 -0
- package/dist/contextDetailStore.d.mts.map +1 -0
- package/dist/contextDetailStore.mjs +87 -0
- package/dist/contextDetailStore.mjs.map +1 -0
- package/dist/contextProjection.cjs +121 -0
- package/dist/contextProjection.cjs.map +1 -0
- package/dist/contextProjection.d.mts +130 -0
- package/dist/contextProjection.d.mts.map +1 -0
- package/dist/contextProjection.mjs +117 -0
- package/dist/contextProjection.mjs.map +1 -0
- package/dist/cordisHost.cjs +13 -0
- package/dist/cordisHost.d.mts +2 -0
- package/dist/cordisHost.mjs +2 -0
- package/dist/delegation.cjs +18 -0
- package/dist/delegation.d.mts +2 -0
- package/dist/delegation.mjs +2 -0
- package/dist/doomPackage.cjs +61 -0
- package/dist/doomPackage.cjs.map +1 -0
- package/dist/doomPackage.d.mts +17 -0
- package/dist/doomPackage.d.mts.map +1 -0
- package/dist/doomPackage.mjs +54 -0
- package/dist/doomPackage.mjs.map +1 -0
- package/dist/executionBudget.cjs +232 -0
- package/dist/executionBudget.cjs.map +1 -0
- package/dist/executionBudget.d.mts +11 -0
- package/dist/executionBudget.d.mts.map +1 -0
- package/dist/executionBudget.mjs +226 -0
- package/dist/executionBudget.mjs.map +1 -0
- package/dist/extensionFile.cjs +19 -0
- package/dist/extensionFile.d.mts +3 -0
- package/dist/extensionFile.mjs +2 -0
- package/dist/footer.cjs +6 -0
- package/dist/footer.d.mts +2 -0
- package/dist/footer.mjs +2 -0
- package/dist/headless.cjs +16 -0
- package/dist/headless.d.mts +2 -0
- package/dist/headless.mjs +2 -0
- package/dist/headlessHub.cjs +1008 -0
- package/dist/headlessHub.cjs.map +1 -0
- package/dist/headlessHub.d.mts +176 -0
- package/dist/headlessHub.d.mts.map +1 -0
- package/dist/headlessHub.mjs +1005 -0
- package/dist/headlessHub.mjs.map +1 -0
- package/dist/headlessServer.cjs +956 -0
- package/dist/headlessServer.cjs.map +1 -0
- package/dist/headlessServer.d.mts +66 -0
- package/dist/headlessServer.d.mts.map +1 -0
- package/dist/headlessServer.mjs +949 -0
- package/dist/headlessServer.mjs.map +1 -0
- package/dist/headlessSessionHost.cjs +0 -0
- package/dist/headlessSessionHost.d.mts +89 -0
- package/dist/headlessSessionHost.d.mts.map +1 -0
- package/dist/headlessSessionHost.mjs +1 -0
- package/dist/headlessSessionManager.cjs +51 -0
- package/dist/headlessSessionManager.cjs.map +1 -0
- package/dist/headlessSessionManager.d.mts +6 -0
- package/dist/headlessSessionManager.d.mts.map +1 -0
- package/dist/headlessSessionManager.mjs +50 -0
- package/dist/headlessSessionManager.mjs.map +1 -0
- package/dist/help.cjs +24 -0
- package/dist/help.d.mts +3 -0
- package/dist/help.mjs +3 -0
- package/dist/history.cjs +25 -0
- package/dist/history.d.mts +10 -0
- package/dist/history.mjs +10 -0
- package/dist/historyOwnership.cjs +253 -0
- package/dist/historyOwnership.cjs.map +1 -0
- package/dist/historyOwnership.d.mts +23 -0
- package/dist/historyOwnership.d.mts.map +1 -0
- package/dist/historyOwnership.mjs +247 -0
- package/dist/historyOwnership.mjs.map +1 -0
- package/dist/hubChannel.cjs +4 -0
- package/dist/hubChannel.d.mts +2 -0
- package/dist/hubChannel.mjs +2 -0
- package/dist/index.cjs +44 -0
- package/dist/index.d.mts +6 -0
- package/dist/index.mjs +6 -0
- package/dist/json.cjs +6 -0
- package/dist/json.d.mts +2 -0
- package/dist/json.mjs +2 -0
- package/dist/jsonlSessionRepo.cjs +44 -0
- package/dist/jsonlSessionRepo.cjs.map +1 -0
- package/dist/jsonlSessionRepo.d.mts +7 -0
- package/dist/jsonlSessionRepo.d.mts.map +1 -0
- package/dist/jsonlSessionRepo.mjs +42 -0
- package/dist/jsonlSessionRepo.mjs.map +1 -0
- package/dist/kernel.cjs +3 -0
- package/dist/kernel.d.mts +3 -0
- package/dist/kernel.mjs +2 -0
- package/dist/leader.cjs +9 -0
- package/dist/leader.d.mts +2 -0
- package/dist/leader.mjs +2 -0
- package/dist/logSinkTelemetry.cjs +5 -0
- package/dist/logSinkTelemetry.d.mts +2 -0
- package/dist/logSinkTelemetry.mjs +2 -0
- package/dist/machineApi.cjs +92 -0
- package/dist/machineApi.cjs.map +1 -0
- package/dist/machineApi.d.mts +7 -0
- package/dist/machineApi.d.mts.map +1 -0
- package/dist/machineApi.mjs +88 -0
- package/dist/machineApi.mjs.map +1 -0
- package/dist/main.cjs +11 -0
- package/dist/main.d.mts +5 -0
- package/dist/main.mjs +4 -0
- package/dist/mcpFacet.cjs +9 -0
- package/dist/mcpFacet.d.mts +4 -0
- package/dist/mcpFacet.mjs +3 -0
- package/dist/mcpProjection.cjs +16 -0
- package/dist/mcpProjection.d.mts +2 -0
- package/dist/mcpProjection.mjs +2 -0
- package/dist/mcpSchemaCost.cjs +195 -0
- package/dist/mcpSchemaCost.cjs.map +1 -0
- package/dist/mcpSchemaCost.d.mts +35 -0
- package/dist/mcpSchemaCost.d.mts.map +1 -0
- package/dist/mcpSchemaCost.mjs +190 -0
- package/dist/mcpSchemaCost.mjs.map +1 -0
- package/dist/mcpSession.cjs +9 -0
- package/dist/mcpSession.d.mts +2 -0
- package/dist/mcpSession.mjs +2 -0
- package/dist/mcpStatus.cjs +7 -0
- package/dist/mcpStatus.d.mts +2 -0
- package/dist/mcpStatus.mjs +2 -0
- package/dist/mcpToolResolver.cjs +5 -0
- package/dist/mcpToolResolver.d.mts +2 -0
- package/dist/mcpToolResolver.mjs +2 -0
- package/dist/mcpWidget.cjs +0 -0
- package/dist/mcpWidget.d.mts +2 -0
- package/dist/mcpWidget.mjs +1 -0
- package/dist/moduleResolution.cjs +412 -0
- package/dist/moduleResolution.cjs.map +1 -0
- package/dist/moduleResolution.d.mts +72 -0
- package/dist/moduleResolution.d.mts.map +1 -0
- package/dist/moduleResolution.mjs +396 -0
- package/dist/moduleResolution.mjs.map +1 -0
- package/dist/narration.cjs +10 -0
- package/dist/narration.d.mts +2 -0
- package/dist/narration.mjs +2 -0
- package/dist/native.cjs +29 -0
- package/dist/native.d.mts +12 -0
- package/dist/native.mjs +8 -0
- package/dist/notification.cjs +17 -0
- package/dist/notification.d.mts +2 -0
- package/dist/notification.mjs +2 -0
- package/dist/packageApi.cjs +17 -0
- package/dist/packageApi.d.mts +3 -0
- package/dist/packageApi.mjs +3 -0
- package/dist/packageApiServer.cjs +196 -0
- package/dist/packageApiServer.cjs.map +1 -0
- package/dist/packageApiServer.d.mts +62 -0
- package/dist/packageApiServer.d.mts.map +1 -0
- package/dist/packageApiServer.mjs +194 -0
- package/dist/packageApiServer.mjs.map +1 -0
- package/dist/piSettings.cjs +20 -0
- package/dist/piSettings.d.mts +2 -0
- package/dist/piSettings.mjs +2 -0
- package/dist/pluginProtocol.cjs +10 -0
- package/dist/pluginProtocol.d.mts +2 -0
- package/dist/pluginProtocol.mjs +2 -0
- package/dist/profileIdentity.cjs +6 -0
- package/dist/profileIdentity.d.mts +2 -0
- package/dist/profileIdentity.mjs +2 -0
- package/dist/protocol.cjs +10 -0
- package/dist/protocol.d.mts +2 -0
- package/dist/protocol.mjs +2 -0
- package/dist/readiness.cjs +8 -0
- package/dist/readiness.d.mts +2 -0
- package/dist/readiness.mjs +2 -0
- package/dist/remoteApi.cjs +45 -0
- package/dist/remoteApi.cjs.map +1 -0
- package/dist/remoteApi.d.mts +7 -0
- package/dist/remoteApi.d.mts.map +1 -0
- package/dist/remoteApi.mjs +44 -0
- package/dist/remoteApi.mjs.map +1 -0
- package/dist/remoteRuntime.cjs +498 -0
- package/dist/remoteRuntime.cjs.map +1 -0
- package/dist/remoteRuntime.d.mts +36 -0
- package/dist/remoteRuntime.d.mts.map +1 -0
- package/dist/remoteRuntime.mjs +494 -0
- package/dist/remoteRuntime.mjs.map +1 -0
- package/dist/runtimeConfig.cjs +232 -0
- package/dist/runtimeConfig.cjs.map +1 -0
- package/dist/runtimeConfig.d.mts +313 -0
- package/dist/runtimeConfig.d.mts.map +1 -0
- package/dist/runtimeConfig.mjs +221 -0
- package/dist/runtimeConfig.mjs.map +1 -0
- package/dist/runtimeContextApi.cjs +64 -0
- package/dist/runtimeContextApi.cjs.map +1 -0
- package/dist/runtimeContextApi.d.mts +16 -0
- package/dist/runtimeContextApi.d.mts.map +1 -0
- package/dist/runtimeContextApi.mjs +62 -0
- package/dist/runtimeContextApi.mjs.map +1 -0
- package/dist/runtimeCordisHost.cjs +223 -0
- package/dist/runtimeCordisHost.cjs.map +1 -0
- package/dist/runtimeCordisHost.d.mts +78 -0
- package/dist/runtimeCordisHost.d.mts.map +1 -0
- package/dist/runtimeCordisHost.mjs +212 -0
- package/dist/runtimeCordisHost.mjs.map +1 -0
- package/dist/runtimeHeadlessSessionManager.cjs +0 -0
- package/dist/runtimeHeadlessSessionManager.d.mts +18 -0
- package/dist/runtimeHeadlessSessionManager.d.mts.map +1 -0
- package/dist/runtimeHeadlessSessionManager.mjs +1 -0
- package/dist/runtimeIdentity.cjs +26 -0
- package/dist/runtimeIdentity.cjs.map +1 -0
- package/dist/runtimeIdentity.d.mts +7 -0
- package/dist/runtimeIdentity.d.mts.map +1 -0
- package/dist/runtimeIdentity.mjs +21 -0
- package/dist/runtimeIdentity.mjs.map +1 -0
- package/dist/runtimeJson.cjs +46 -0
- package/dist/runtimeJson.cjs.map +1 -0
- package/dist/runtimeJson.d.mts +22 -0
- package/dist/runtimeJson.d.mts.map +1 -0
- package/dist/runtimeJson.mjs +39 -0
- package/dist/runtimeJson.mjs.map +1 -0
- package/dist/runtimeLogSinkTelemetry.cjs +102 -0
- package/dist/runtimeLogSinkTelemetry.cjs.map +1 -0
- package/dist/runtimeLogSinkTelemetry.d.mts +49 -0
- package/dist/runtimeLogSinkTelemetry.d.mts.map +1 -0
- package/dist/runtimeLogSinkTelemetry.mjs +99 -0
- package/dist/runtimeLogSinkTelemetry.mjs.map +1 -0
- package/dist/runtimePackages.cjs +120 -0
- package/dist/runtimePackages.cjs.map +1 -0
- package/dist/runtimePackages.d.mts +57 -0
- package/dist/runtimePackages.d.mts.map +1 -0
- package/dist/runtimePackages.mjs +110 -0
- package/dist/runtimePackages.mjs.map +1 -0
- package/dist/runtimePiSettings.cjs +257 -0
- package/dist/runtimePiSettings.cjs.map +1 -0
- package/dist/runtimePiSettings.d.mts +70 -0
- package/dist/runtimePiSettings.d.mts.map +1 -0
- package/dist/runtimePiSettings.mjs +235 -0
- package/dist/runtimePiSettings.mjs.map +1 -0
- package/dist/runtimeProtocol.cjs +228 -0
- package/dist/runtimeProtocol.cjs.map +1 -0
- package/dist/runtimeProtocol.d.mts +86 -0
- package/dist/runtimeProtocol.d.mts.map +1 -0
- package/dist/runtimeProtocol.mjs +219 -0
- package/dist/runtimeProtocol.mjs.map +1 -0
- package/dist/runtimeToolNames.cjs +51 -0
- package/dist/runtimeToolNames.cjs.map +1 -0
- package/dist/runtimeToolNames.d.mts +24 -0
- package/dist/runtimeToolNames.d.mts.map +1 -0
- package/dist/runtimeToolNames.mjs +49 -0
- package/dist/runtimeToolNames.mjs.map +1 -0
- package/dist/runtimeTransition.cjs +27 -0
- package/dist/runtimeTransition.cjs.map +1 -0
- package/dist/runtimeTransition.d.mts +114 -0
- package/dist/runtimeTransition.d.mts.map +1 -0
- package/dist/runtimeTransition.mjs +24 -0
- package/dist/runtimeTransition.mjs.map +1 -0
- package/dist/sandboxHarness.cjs +6 -0
- package/dist/sandboxHarness.d.mts +2 -0
- package/dist/sandboxHarness.mjs +2 -0
- package/dist/server.cjs +17 -0
- package/dist/server.d.mts +10 -0
- package/dist/server.mjs +7 -0
- package/dist/serverFacet.cjs +34 -0
- package/dist/serverFacet.d.mts +10 -0
- package/dist/serverFacet.mjs +9 -0
- package/dist/serverTelemetry.cjs +25 -0
- package/dist/serverTelemetry.cjs.map +1 -0
- package/dist/serverTelemetry.d.mts +12 -0
- package/dist/serverTelemetry.d.mts.map +1 -0
- package/dist/serverTelemetry.mjs +23 -0
- package/dist/serverTelemetry.mjs.map +1 -0
- package/dist/sessionFilesApi.cjs +96 -0
- package/dist/sessionFilesApi.cjs.map +1 -0
- package/dist/sessionFilesApi.d.mts +7 -0
- package/dist/sessionFilesApi.d.mts.map +1 -0
- package/dist/sessionFilesApi.mjs +91 -0
- package/dist/sessionFilesApi.mjs.map +1 -0
- package/dist/sessionMcp.cjs +6 -0
- package/dist/sessionMcp.d.mts +5 -0
- package/dist/sessionMcp.mjs +3 -0
- package/dist/sessionProtocol.cjs +8 -0
- package/dist/sessionProtocol.d.mts +3 -0
- package/dist/sessionProtocol.mjs +2 -0
- package/dist/skills.cjs +9 -0
- package/dist/skills.d.mts +2 -0
- package/dist/skills.mjs +2 -0
- package/dist/sqliteSessionStorage.cjs +168 -0
- package/dist/sqliteSessionStorage.cjs.map +1 -0
- package/dist/sqliteSessionStorage.d.mts +35 -0
- package/dist/sqliteSessionStorage.d.mts.map +1 -0
- package/dist/sqliteSessionStorage.mjs +158 -0
- package/dist/sqliteSessionStorage.mjs.map +1 -0
- package/dist/src/constants/authorTools.cjs +10 -0
- package/dist/src/constants/authorTools.cjs.map +1 -0
- package/dist/src/constants/authorTools.d.mts +6 -0
- package/dist/src/constants/authorTools.d.mts.map +1 -0
- package/dist/src/constants/authorTools.mjs +8 -0
- package/dist/src/constants/authorTools.mjs.map +1 -0
- package/dist/src/constants/contextApi.cjs +31 -0
- package/dist/src/constants/contextApi.cjs.map +1 -0
- package/dist/src/constants/contextApi.d.mts +23 -0
- package/dist/src/constants/contextApi.d.mts.map +1 -0
- package/dist/src/constants/contextApi.mjs +25 -0
- package/dist/src/constants/contextApi.mjs.map +1 -0
- package/dist/src/constants/nativeHost.cjs +56 -0
- package/dist/src/constants/nativeHost.cjs.map +1 -0
- package/dist/src/constants/nativeHost.d.mts +21 -0
- package/dist/src/constants/nativeHost.d.mts.map +1 -0
- package/dist/src/constants/nativeHost.mjs +53 -0
- package/dist/src/constants/nativeHost.mjs.map +1 -0
- package/dist/src/constants/remote.cjs +132 -0
- package/dist/src/constants/remote.cjs.map +1 -0
- package/dist/src/constants/remote.mjs +99 -0
- package/dist/src/constants/remote.mjs.map +1 -0
- package/dist/src/constants/sessionFiles.cjs +27 -0
- package/dist/src/constants/sessionFiles.cjs.map +1 -0
- package/dist/src/constants/sessionFiles.mjs +25 -0
- package/dist/src/constants/sessionFiles.mjs.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.cjs +12 -0
- package/dist/src/constants/voiceReloadHandoff.cjs.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.d.mts +7 -0
- package/dist/src/constants/voiceReloadHandoff.d.mts.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.mjs +9 -0
- package/dist/src/constants/voiceReloadHandoff.mjs.map +1 -0
- package/dist/src/constants/voiceTools.cjs +96 -0
- package/dist/src/constants/voiceTools.cjs.map +1 -0
- package/dist/src/constants/voiceTools.d.mts +58 -0
- package/dist/src/constants/voiceTools.d.mts.map +1 -0
- package/dist/src/constants/voiceTools.mjs +60 -0
- package/dist/src/constants/voiceTools.mjs.map +1 -0
- package/dist/src/extensions/extensionFile.cjs +140 -0
- package/dist/src/extensions/extensionFile.cjs.map +1 -0
- package/dist/src/extensions/extensionFile.d.mts +69 -0
- package/dist/src/extensions/extensionFile.d.mts.map +1 -0
- package/dist/src/extensions/extensionFile.mjs +124 -0
- package/dist/src/extensions/extensionFile.mjs.map +1 -0
- package/dist/src/extensions/serverPlugin.cjs +107 -0
- package/dist/src/extensions/serverPlugin.cjs.map +1 -0
- package/dist/src/extensions/serverPlugin.d.mts +5 -0
- package/dist/src/extensions/serverPlugin.d.mts.map +1 -0
- package/dist/src/extensions/serverPlugin.mjs +107 -0
- package/dist/src/extensions/serverPlugin.mjs.map +1 -0
- package/dist/src/extensions/webPlugin.cjs +136 -0
- package/dist/src/extensions/webPlugin.cjs.map +1 -0
- package/dist/src/extensions/webPlugin.d.mts +68 -0
- package/dist/src/extensions/webPlugin.d.mts.map +1 -0
- package/dist/src/extensions/webPlugin.mjs +114 -0
- package/dist/src/extensions/webPlugin.mjs.map +1 -0
- package/dist/src/pi/piSessionRuntime.cjs +625 -0
- package/dist/src/pi/piSessionRuntime.cjs.map +1 -0
- package/dist/src/pi/piSessionRuntime.d.mts +43 -0
- package/dist/src/pi/piSessionRuntime.d.mts.map +1 -0
- package/dist/src/pi/piSessionRuntime.mjs +624 -0
- package/dist/src/pi/piSessionRuntime.mjs.map +1 -0
- package/dist/src/pi/piWebSocketListener.cjs +115 -0
- package/dist/src/pi/piWebSocketListener.cjs.map +1 -0
- package/dist/src/pi/piWebSocketListener.mjs +115 -0
- package/dist/src/pi/piWebSocketListener.mjs.map +1 -0
- package/dist/src/schemas/agentModel.cjs +33 -0
- package/dist/src/schemas/agentModel.cjs.map +1 -0
- package/dist/src/schemas/agentModel.d.mts +26 -0
- package/dist/src/schemas/agentModel.d.mts.map +1 -0
- package/dist/src/schemas/agentModel.mjs +32 -0
- package/dist/src/schemas/agentModel.mjs.map +1 -0
- package/dist/src/schemas/apiContracts.d.mts +58 -0
- package/dist/src/schemas/apiContracts.d.mts.map +1 -0
- package/dist/src/schemas/askUser.cjs +42 -0
- package/dist/src/schemas/askUser.cjs.map +1 -0
- package/dist/src/schemas/askUser.d.mts +47 -0
- package/dist/src/schemas/askUser.d.mts.map +1 -0
- package/dist/src/schemas/askUser.mjs +37 -0
- package/dist/src/schemas/askUser.mjs.map +1 -0
- package/dist/src/schemas/backgroundWork.cjs +44 -0
- package/dist/src/schemas/backgroundWork.cjs.map +1 -0
- package/dist/src/schemas/backgroundWork.d.mts +76 -0
- package/dist/src/schemas/backgroundWork.d.mts.map +1 -0
- package/dist/src/schemas/backgroundWork.mjs +38 -0
- package/dist/src/schemas/backgroundWork.mjs.map +1 -0
- package/dist/src/schemas/childProcess.cjs +67 -0
- package/dist/src/schemas/childProcess.cjs.map +1 -0
- package/dist/src/schemas/childProcess.d.mts +30 -0
- package/dist/src/schemas/childProcess.d.mts.map +1 -0
- package/dist/src/schemas/childProcess.mjs +55 -0
- package/dist/src/schemas/childProcess.mjs.map +1 -0
- package/dist/src/schemas/cockpitContainer.cjs +31 -0
- package/dist/src/schemas/cockpitContainer.cjs.map +1 -0
- package/dist/src/schemas/cockpitContainer.d.mts +80 -0
- package/dist/src/schemas/cockpitContainer.d.mts.map +1 -0
- package/dist/src/schemas/cockpitContainer.mjs +30 -0
- package/dist/src/schemas/cockpitContainer.mjs.map +1 -0
- package/dist/src/schemas/contextContributions.cjs +17 -0
- package/dist/src/schemas/contextContributions.cjs.map +1 -0
- package/dist/src/schemas/contextContributions.d.mts +49 -0
- package/dist/src/schemas/contextContributions.d.mts.map +1 -0
- package/dist/src/schemas/contextContributions.mjs +15 -0
- package/dist/src/schemas/contextContributions.mjs.map +1 -0
- package/dist/src/schemas/delegation.cjs +91 -0
- package/dist/src/schemas/delegation.cjs.map +1 -0
- package/dist/src/schemas/delegation.d.mts +95 -0
- package/dist/src/schemas/delegation.d.mts.map +1 -0
- package/dist/src/schemas/delegation.mjs +76 -0
- package/dist/src/schemas/delegation.mjs.map +1 -0
- package/dist/src/schemas/extensionFile.d.mts +116 -0
- package/dist/src/schemas/extensionFile.d.mts.map +1 -0
- package/dist/src/schemas/footer.cjs +48 -0
- package/dist/src/schemas/footer.cjs.map +1 -0
- package/dist/src/schemas/footer.d.mts +48 -0
- package/dist/src/schemas/footer.d.mts.map +1 -0
- package/dist/src/schemas/footer.mjs +45 -0
- package/dist/src/schemas/footer.mjs.map +1 -0
- package/dist/src/schemas/headless.cjs +97 -0
- package/dist/src/schemas/headless.cjs.map +1 -0
- package/dist/src/schemas/headless.d.mts +472 -0
- package/dist/src/schemas/headless.d.mts.map +1 -0
- package/dist/src/schemas/headless.mjs +84 -0
- package/dist/src/schemas/headless.mjs.map +1 -0
- package/dist/src/schemas/help.cjs +281 -0
- package/dist/src/schemas/help.cjs.map +1 -0
- package/dist/src/schemas/help.d.mts +119 -0
- package/dist/src/schemas/help.d.mts.map +1 -0
- package/dist/src/schemas/help.mjs +262 -0
- package/dist/src/schemas/help.mjs.map +1 -0
- package/dist/src/schemas/hubChannel.cjs +20 -0
- package/dist/src/schemas/hubChannel.cjs.map +1 -0
- package/dist/src/schemas/hubChannel.d.mts +271 -0
- package/dist/src/schemas/hubChannel.d.mts.map +1 -0
- package/dist/src/schemas/hubChannel.mjs +19 -0
- package/dist/src/schemas/hubChannel.mjs.map +1 -0
- package/dist/src/schemas/leader.cjs +57 -0
- package/dist/src/schemas/leader.cjs.map +1 -0
- package/dist/src/schemas/leader.d.mts +107 -0
- package/dist/src/schemas/leader.d.mts.map +1 -0
- package/dist/src/schemas/leader.mjs +51 -0
- package/dist/src/schemas/leader.mjs.map +1 -0
- package/dist/src/schemas/mcpBundle.d.mts +13 -0
- package/dist/src/schemas/mcpBundle.d.mts.map +1 -0
- package/dist/src/schemas/mcpFacet.cjs +24 -0
- package/dist/src/schemas/mcpFacet.cjs.map +1 -0
- package/dist/src/schemas/mcpFacet.d.mts +91 -0
- package/dist/src/schemas/mcpFacet.d.mts.map +1 -0
- package/dist/src/schemas/mcpFacet.mjs +21 -0
- package/dist/src/schemas/mcpFacet.mjs.map +1 -0
- package/dist/src/schemas/mcpProjection.cjs +117 -0
- package/dist/src/schemas/mcpProjection.cjs.map +1 -0
- package/dist/src/schemas/mcpProjection.d.mts +124 -0
- package/dist/src/schemas/mcpProjection.d.mts.map +1 -0
- package/dist/src/schemas/mcpProjection.mjs +104 -0
- package/dist/src/schemas/mcpProjection.mjs.map +1 -0
- package/dist/src/schemas/mcpSession.cjs +57 -0
- package/dist/src/schemas/mcpSession.cjs.map +1 -0
- package/dist/src/schemas/mcpSession.d.mts +57 -0
- package/dist/src/schemas/mcpSession.d.mts.map +1 -0
- package/dist/src/schemas/mcpSession.mjs +51 -0
- package/dist/src/schemas/mcpSession.mjs.map +1 -0
- package/dist/src/schemas/mcpStatus.cjs +52 -0
- package/dist/src/schemas/mcpStatus.cjs.map +1 -0
- package/dist/src/schemas/mcpStatus.d.mts +73 -0
- package/dist/src/schemas/mcpStatus.d.mts.map +1 -0
- package/dist/src/schemas/mcpStatus.mjs +48 -0
- package/dist/src/schemas/mcpStatus.mjs.map +1 -0
- package/dist/src/schemas/mcpToolResolver.cjs +17 -0
- package/dist/src/schemas/mcpToolResolver.cjs.map +1 -0
- package/dist/src/schemas/mcpToolResolver.d.mts +24 -0
- package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -0
- package/dist/src/schemas/mcpToolResolver.mjs +15 -0
- package/dist/src/schemas/mcpToolResolver.mjs.map +1 -0
- package/dist/src/schemas/narration.cjs +54 -0
- package/dist/src/schemas/narration.cjs.map +1 -0
- package/dist/src/schemas/narration.d.mts +29 -0
- package/dist/src/schemas/narration.d.mts.map +1 -0
- package/dist/src/schemas/narration.mjs +47 -0
- package/dist/src/schemas/narration.mjs.map +1 -0
- package/dist/src/schemas/notification.cjs +122 -0
- package/dist/src/schemas/notification.cjs.map +1 -0
- package/dist/src/schemas/notification.d.mts +48 -0
- package/dist/src/schemas/notification.d.mts.map +1 -0
- package/dist/src/schemas/notification.mjs +108 -0
- package/dist/src/schemas/notification.mjs.map +1 -0
- package/dist/src/schemas/packageApi.cjs +76 -0
- package/dist/src/schemas/packageApi.cjs.map +1 -0
- package/dist/src/schemas/packageApi.d.mts +302 -0
- package/dist/src/schemas/packageApi.d.mts.map +1 -0
- package/dist/src/schemas/packageApi.mjs +66 -0
- package/dist/src/schemas/packageApi.mjs.map +1 -0
- package/dist/src/schemas/pluginContributions.cjs +19 -0
- package/dist/src/schemas/pluginContributions.cjs.map +1 -0
- package/dist/src/schemas/pluginContributions.d.mts +56 -0
- package/dist/src/schemas/pluginContributions.d.mts.map +1 -0
- package/dist/src/schemas/pluginContributions.mjs +18 -0
- package/dist/src/schemas/pluginContributions.mjs.map +1 -0
- package/dist/src/schemas/pluginProtocol.cjs +103 -0
- package/dist/src/schemas/pluginProtocol.cjs.map +1 -0
- package/dist/src/schemas/pluginProtocol.d.mts +70 -0
- package/dist/src/schemas/pluginProtocol.d.mts.map +1 -0
- package/dist/src/schemas/pluginProtocol.mjs +96 -0
- package/dist/src/schemas/pluginProtocol.mjs.map +1 -0
- package/dist/src/schemas/profileIdentity.cjs +67 -0
- package/dist/src/schemas/profileIdentity.cjs.map +1 -0
- package/dist/src/schemas/profileIdentity.d.mts +50 -0
- package/dist/src/schemas/profileIdentity.d.mts.map +1 -0
- package/dist/src/schemas/profileIdentity.mjs +64 -0
- package/dist/src/schemas/profileIdentity.mjs.map +1 -0
- package/dist/src/schemas/readiness.cjs +251 -0
- package/dist/src/schemas/readiness.cjs.map +1 -0
- package/dist/src/schemas/readiness.d.mts +84 -0
- package/dist/src/schemas/readiness.d.mts.map +1 -0
- package/dist/src/schemas/readiness.mjs +246 -0
- package/dist/src/schemas/readiness.mjs.map +1 -0
- package/dist/src/schemas/sandboxHarness.cjs +29 -0
- package/dist/src/schemas/sandboxHarness.cjs.map +1 -0
- package/dist/src/schemas/sandboxHarness.d.mts +39 -0
- package/dist/src/schemas/sandboxHarness.d.mts.map +1 -0
- package/dist/src/schemas/sandboxHarness.mjs +26 -0
- package/dist/src/schemas/sandboxHarness.mjs.map +1 -0
- package/dist/src/schemas/serverBundle.d.mts +19 -0
- package/dist/src/schemas/serverBundle.d.mts.map +1 -0
- package/dist/src/schemas/serverFacet.cjs +111 -0
- package/dist/src/schemas/serverFacet.cjs.map +1 -0
- package/dist/src/schemas/serverFacet.d.mts +152 -0
- package/dist/src/schemas/serverFacet.d.mts.map +1 -0
- package/dist/src/schemas/serverFacet.mjs +101 -0
- package/dist/src/schemas/serverFacet.mjs.map +1 -0
- package/dist/src/schemas/sessionMcpActivity.d.mts +47 -0
- package/dist/src/schemas/sessionMcpActivity.d.mts.map +1 -0
- package/dist/src/schemas/sessionProtocol.cjs +17 -0
- package/dist/src/schemas/sessionProtocol.cjs.map +1 -0
- package/dist/src/schemas/sessionProtocol.d.mts +313 -0
- package/dist/src/schemas/sessionProtocol.d.mts.map +1 -0
- package/dist/src/schemas/sessionProtocol.mjs +12 -0
- package/dist/src/schemas/sessionProtocol.mjs.map +1 -0
- package/dist/src/schemas/sessionUpdates.d.mts +34 -0
- package/dist/src/schemas/sessionUpdates.d.mts.map +1 -0
- package/dist/src/schemas/skills.cjs +115 -0
- package/dist/src/schemas/skills.cjs.map +1 -0
- package/dist/src/schemas/skills.d.mts +65 -0
- package/dist/src/schemas/skills.d.mts.map +1 -0
- package/dist/src/schemas/skills.mjs +109 -0
- package/dist/src/schemas/skills.mjs.map +1 -0
- package/dist/src/schemas/toolOverrides.cjs +17 -0
- package/dist/src/schemas/toolOverrides.cjs.map +1 -0
- package/dist/src/schemas/toolOverrides.d.mts +29 -0
- package/dist/src/schemas/toolOverrides.d.mts.map +1 -0
- package/dist/src/schemas/toolOverrides.mjs +15 -0
- package/dist/src/schemas/toolOverrides.mjs.map +1 -0
- package/dist/src/schemas/toolSurface.cjs +17 -0
- package/dist/src/schemas/toolSurface.cjs.map +1 -0
- package/dist/src/schemas/toolSurface.d.mts +70 -0
- package/dist/src/schemas/toolSurface.d.mts.map +1 -0
- package/dist/src/schemas/toolSurface.mjs +15 -0
- package/dist/src/schemas/toolSurface.mjs.map +1 -0
- package/dist/src/schemas/uiHub.cjs +17 -0
- package/dist/src/schemas/uiHub.cjs.map +1 -0
- package/dist/src/schemas/uiHub.d.mts +23 -0
- package/dist/src/schemas/uiHub.d.mts.map +1 -0
- package/dist/src/schemas/uiHub.mjs +15 -0
- package/dist/src/schemas/uiHub.mjs.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.cjs +78 -0
- package/dist/src/schemas/voiceReloadHandoff.cjs.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.d.mts +31 -0
- package/dist/src/schemas/voiceReloadHandoff.d.mts.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.mjs +75 -0
- package/dist/src/schemas/voiceReloadHandoff.mjs.map +1 -0
- package/dist/src/schemas/voiceTools.cjs +205 -0
- package/dist/src/schemas/voiceTools.cjs.map +1 -0
- package/dist/src/schemas/voiceTools.d.mts +120 -0
- package/dist/src/schemas/voiceTools.d.mts.map +1 -0
- package/dist/src/schemas/voiceTools.mjs +194 -0
- package/dist/src/schemas/voiceTools.mjs.map +1 -0
- package/dist/src/server/devProxyForward.cjs +141 -0
- package/dist/src/server/devProxyForward.cjs.map +1 -0
- package/dist/src/server/devProxyForward.mjs +139 -0
- package/dist/src/server/devProxyForward.mjs.map +1 -0
- package/dist/src/server/devProxyRoutes.cjs +97 -0
- package/dist/src/server/devProxyRoutes.cjs.map +1 -0
- package/dist/src/server/devProxyRoutes.mjs +97 -0
- package/dist/src/server/devProxyRoutes.mjs.map +1 -0
- package/dist/src/server/devProxySocket.cjs +93 -0
- package/dist/src/server/devProxySocket.cjs.map +1 -0
- package/dist/src/server/devProxySocket.d.mts +25 -0
- package/dist/src/server/devProxySocket.d.mts.map +1 -0
- package/dist/src/server/devProxySocket.mjs +93 -0
- package/dist/src/server/devProxySocket.mjs.map +1 -0
- package/dist/src/server/directHarnessRuntime.cjs +2387 -0
- package/dist/src/server/directHarnessRuntime.cjs.map +1 -0
- package/dist/src/server/directHarnessRuntime.d.mts +4 -0
- package/dist/src/server/directHarnessRuntime.mjs +2384 -0
- package/dist/src/server/directHarnessRuntime.mjs.map +1 -0
- package/dist/src/server/harnessErrorMessage.cjs +13 -0
- package/dist/src/server/harnessErrorMessage.cjs.map +1 -0
- package/dist/src/server/harnessErrorMessage.mjs +13 -0
- package/dist/src/server/harnessErrorMessage.mjs.map +1 -0
- package/dist/src/server/headlessProtocol.cjs +382 -0
- package/dist/src/server/headlessProtocol.cjs.map +1 -0
- package/dist/src/server/headlessProtocol.mjs +382 -0
- package/dist/src/server/headlessProtocol.mjs.map +1 -0
- package/dist/src/server/liveImport.cjs +37 -0
- package/dist/src/server/liveImport.cjs.map +1 -0
- package/dist/src/server/liveImport.d.mts +27 -0
- package/dist/src/server/liveImport.d.mts.map +1 -0
- package/dist/src/server/liveImport.mjs +34 -0
- package/dist/src/server/liveImport.mjs.map +1 -0
- package/dist/src/server/mcpBundleLoader.cjs +108 -0
- package/dist/src/server/mcpBundleLoader.cjs.map +1 -0
- package/dist/src/server/mcpBundleLoader.d.mts +46 -0
- package/dist/src/server/mcpBundleLoader.d.mts.map +1 -0
- package/dist/src/server/mcpBundleLoader.mjs +107 -0
- package/dist/src/server/mcpBundleLoader.mjs.map +1 -0
- package/dist/src/server/nativeChildTranscriptReader.cjs +20 -0
- package/dist/src/server/nativeChildTranscriptReader.cjs.map +1 -0
- package/dist/src/server/nativeChildTranscriptReader.mjs +18 -0
- package/dist/src/server/nativeChildTranscriptReader.mjs.map +1 -0
- package/dist/src/server/remoteRoutes.cjs +463 -0
- package/dist/src/server/remoteRoutes.cjs.map +1 -0
- package/dist/src/server/remoteRoutes.mjs +463 -0
- package/dist/src/server/remoteRoutes.mjs.map +1 -0
- package/dist/src/server/serverFacetLoader.cjs +214 -0
- package/dist/src/server/serverFacetLoader.cjs.map +1 -0
- package/dist/src/server/serverFacetLoader.d.mts +72 -0
- package/dist/src/server/serverFacetLoader.d.mts.map +1 -0
- package/dist/src/server/serverFacetLoader.mjs +212 -0
- package/dist/src/server/serverFacetLoader.mjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.cjs +585 -0
- package/dist/src/server/sessionMcpHandler.cjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.d.mts +50 -0
- package/dist/src/server/sessionMcpHandler.d.mts.map +1 -0
- package/dist/src/server/sessionMcpHandler.mjs +582 -0
- package/dist/src/server/sessionMcpHandler.mjs.map +1 -0
- package/dist/src/server/sessionMcpRoutes.cjs +809 -0
- package/dist/src/server/sessionMcpRoutes.cjs.map +1 -0
- package/dist/src/server/sessionMcpRoutes.mjs +804 -0
- package/dist/src/server/sessionMcpRoutes.mjs.map +1 -0
- package/dist/src/server/threadJournals.cjs +172 -0
- package/dist/src/server/threadJournals.cjs.map +1 -0
- package/dist/src/server/threadJournals.mjs +169 -0
- package/dist/src/server/threadJournals.mjs.map +1 -0
- package/dist/src/services/acpSessionUpdates/index.cjs +129 -0
- package/dist/src/services/acpSessionUpdates/index.cjs.map +1 -0
- package/dist/src/services/acpSessionUpdates/index.mjs +129 -0
- package/dist/src/services/acpSessionUpdates/index.mjs.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.cjs +60 -0
- package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.d.mts +24 -0
- package/dist/src/services/apiSurfaceAssert/index.d.mts.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.mjs +60 -0
- package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -0
- package/dist/src/services/bundlePublication/index.cjs +89 -0
- package/dist/src/services/bundlePublication/index.cjs.map +1 -0
- package/dist/src/services/bundlePublication/index.mjs +86 -0
- package/dist/src/services/bundlePublication/index.mjs.map +1 -0
- package/dist/src/services/contextApiUrls/index.cjs +53 -0
- package/dist/src/services/contextApiUrls/index.cjs.map +1 -0
- package/dist/src/services/contextApiUrls/index.d.mts +8 -0
- package/dist/src/services/contextApiUrls/index.d.mts.map +1 -0
- package/dist/src/services/contextApiUrls/index.mjs +52 -0
- package/dist/src/services/contextApiUrls/index.mjs.map +1 -0
- package/dist/src/services/contextContributions/index.cjs +79 -0
- package/dist/src/services/contextContributions/index.cjs.map +1 -0
- package/dist/src/services/contextContributions/index.d.mts +6 -0
- package/dist/src/services/contextContributions/index.d.mts.map +1 -0
- package/dist/src/services/contextContributions/index.mjs +79 -0
- package/dist/src/services/contextContributions/index.mjs.map +1 -0
- package/dist/src/services/contextUsage/index.cjs +27 -0
- package/dist/src/services/contextUsage/index.cjs.map +1 -0
- package/dist/src/services/contextUsage/index.mjs +25 -0
- package/dist/src/services/contextUsage/index.mjs.map +1 -0
- package/dist/src/services/devProxyPolicy/index.cjs +168 -0
- package/dist/src/services/devProxyPolicy/index.cjs.map +1 -0
- package/dist/src/services/devProxyPolicy/index.mjs +165 -0
- package/dist/src/services/devProxyPolicy/index.mjs.map +1 -0
- package/dist/src/services/devProxyStore/index.cjs +107 -0
- package/dist/src/services/devProxyStore/index.cjs.map +1 -0
- package/dist/src/services/devProxyStore/index.mjs +104 -0
- package/dist/src/services/devProxyStore/index.mjs.map +1 -0
- package/dist/src/services/deviceAuth/index.cjs +146 -0
- package/dist/src/services/deviceAuth/index.cjs.map +1 -0
- package/dist/src/services/deviceAuth/index.d.mts +9 -0
- package/dist/src/services/deviceAuth/index.d.mts.map +1 -0
- package/dist/src/services/deviceAuth/index.mjs +146 -0
- package/dist/src/services/deviceAuth/index.mjs.map +1 -0
- package/dist/src/services/deviceSessions/index.cjs +147 -0
- package/dist/src/services/deviceSessions/index.cjs.map +1 -0
- package/dist/src/services/deviceSessions/index.d.mts +18 -0
- package/dist/src/services/deviceSessions/index.d.mts.map +1 -0
- package/dist/src/services/deviceSessions/index.mjs +141 -0
- package/dist/src/services/deviceSessions/index.mjs.map +1 -0
- package/dist/src/services/deviceTrust/index.cjs +294 -0
- package/dist/src/services/deviceTrust/index.cjs.map +1 -0
- package/dist/src/services/deviceTrust/index.mjs +282 -0
- package/dist/src/services/deviceTrust/index.mjs.map +1 -0
- package/dist/src/services/durableNavigation/index.cjs +46 -0
- package/dist/src/services/durableNavigation/index.cjs.map +1 -0
- package/dist/src/services/durableNavigation/index.mjs +45 -0
- package/dist/src/services/durableNavigation/index.mjs.map +1 -0
- package/dist/src/services/headlessClient/index.cjs +126 -0
- package/dist/src/services/headlessClient/index.cjs.map +1 -0
- package/dist/src/services/headlessClient/index.mjs +126 -0
- package/dist/src/services/headlessClient/index.mjs.map +1 -0
- package/dist/src/services/historyImport/index.cjs +8 -0
- package/dist/src/services/historyImport/index.cjs.map +1 -0
- package/dist/src/services/historyImport/index.d.mts +68 -0
- package/dist/src/services/historyImport/index.d.mts.map +1 -0
- package/dist/src/services/historyImport/index.mjs +8 -0
- package/dist/src/services/historyImport/index.mjs.map +1 -0
- package/dist/src/services/hubChannelHarness/index.cjs +50 -0
- package/dist/src/services/hubChannelHarness/index.cjs.map +1 -0
- package/dist/src/services/hubChannelHarness/index.d.mts +17 -0
- package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -0
- package/dist/src/services/hubChannelHarness/index.mjs +50 -0
- package/dist/src/services/hubChannelHarness/index.mjs.map +1 -0
- package/dist/src/services/kernel/index.cjs +147 -0
- package/dist/src/services/kernel/index.cjs.map +1 -0
- package/dist/src/services/kernel/index.d.mts +9 -0
- package/dist/src/services/kernel/index.d.mts.map +1 -0
- package/dist/src/services/kernel/index.mjs +147 -0
- package/dist/src/services/kernel/index.mjs.map +1 -0
- package/dist/src/services/loginFlow/index.cjs +131 -0
- package/dist/src/services/loginFlow/index.cjs.map +1 -0
- package/dist/src/services/loginFlow/index.mjs +131 -0
- package/dist/src/services/loginFlow/index.mjs.map +1 -0
- package/dist/src/services/loopbackAddress/index.cjs +58 -0
- package/dist/src/services/loopbackAddress/index.cjs.map +1 -0
- package/dist/src/services/loopbackAddress/index.mjs +56 -0
- package/dist/src/services/loopbackAddress/index.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.cjs +134 -0
- package/dist/src/services/openSessionRegistry/index.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.d.mts +36 -0
- package/dist/src/services/openSessionRegistry/index.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/index.mjs +131 -0
- package/dist/src/services/openSessionRegistry/index.mjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.cjs +36 -0
- package/dist/src/services/packageApiHarness/index.cjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.d.mts +40 -0
- package/dist/src/services/packageApiHarness/index.d.mts.map +1 -0
- package/dist/src/services/packageApiHarness/index.mjs +36 -0
- package/dist/src/services/packageApiHarness/index.mjs.map +1 -0
- package/dist/src/services/packageResource/index.cjs +54 -0
- package/dist/src/services/packageResource/index.cjs.map +1 -0
- package/dist/src/services/packageResource/index.d.mts +26 -0
- package/dist/src/services/packageResource/index.d.mts.map +1 -0
- package/dist/src/services/packageResource/index.mjs +51 -0
- package/dist/src/services/packageResource/index.mjs.map +1 -0
- package/dist/src/services/pairingFlow/index.cjs +145 -0
- package/dist/src/services/pairingFlow/index.cjs.map +1 -0
- package/dist/src/services/pairingFlow/index.d.mts +44 -0
- package/dist/src/services/pairingFlow/index.d.mts.map +1 -0
- package/dist/src/services/pairingFlow/index.mjs +145 -0
- package/dist/src/services/pairingFlow/index.mjs.map +1 -0
- package/dist/src/services/pairingPage/index.cjs +450 -0
- package/dist/src/services/pairingPage/index.cjs.map +1 -0
- package/dist/src/services/pairingPage/index.mjs +447 -0
- package/dist/src/services/pairingPage/index.mjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.cjs +889 -0
- package/dist/src/services/piExtensionHost/index.cjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.mjs +885 -0
- package/dist/src/services/piExtensionHost/index.mjs.map +1 -0
- package/dist/src/services/piHelpTools/index.cjs +68 -0
- package/dist/src/services/piHelpTools/index.cjs.map +1 -0
- package/dist/src/services/piHelpTools/index.d.mts +10 -0
- package/dist/src/services/piHelpTools/index.d.mts.map +1 -0
- package/dist/src/services/piHelpTools/index.mjs +68 -0
- package/dist/src/services/piHelpTools/index.mjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.cjs +121 -0
- package/dist/src/services/piSessionEntries/index.cjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.mjs +117 -0
- package/dist/src/services/piSessionEntries/index.mjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.cjs +71 -0
- package/dist/src/services/pluginLifecycle/index.cjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.d.mts +8 -0
- package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -0
- package/dist/src/services/pluginLifecycle/index.mjs +71 -0
- package/dist/src/services/pluginLifecycle/index.mjs.map +1 -0
- package/dist/src/services/providerAuth/index.cjs +156 -0
- package/dist/src/services/providerAuth/index.cjs.map +1 -0
- package/dist/src/services/providerAuth/index.mjs +154 -0
- package/dist/src/services/providerAuth/index.mjs.map +1 -0
- package/dist/src/services/publicFileShares/index.cjs +192 -0
- package/dist/src/services/publicFileShares/index.cjs.map +1 -0
- package/dist/src/services/publicFileShares/index.d.mts +16 -0
- package/dist/src/services/publicFileShares/index.d.mts.map +1 -0
- package/dist/src/services/publicFileShares/index.mjs +188 -0
- package/dist/src/services/publicFileShares/index.mjs.map +1 -0
- package/dist/src/services/remoteAccess/index.cjs +567 -0
- package/dist/src/services/remoteAccess/index.cjs.map +1 -0
- package/dist/src/services/remoteAccess/index.d.mts +121 -0
- package/dist/src/services/remoteAccess/index.d.mts.map +1 -0
- package/dist/src/services/remoteAccess/index.mjs +567 -0
- package/dist/src/services/remoteAccess/index.mjs.map +1 -0
- package/dist/src/services/remoteAccessSettings/index.cjs +151 -0
- package/dist/src/services/remoteAccessSettings/index.cjs.map +1 -0
- package/dist/src/services/remoteAccessSettings/index.mjs +149 -0
- package/dist/src/services/remoteAccessSettings/index.mjs.map +1 -0
- package/dist/src/services/remoteAccessStore/index.cjs +197 -0
- package/dist/src/services/remoteAccessStore/index.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/index.mjs +192 -0
- package/dist/src/services/remoteAccessStore/index.mjs.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.cjs +200 -0
- package/dist/src/services/remoteGuardPolicy/index.cjs.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.d.mts +7 -0
- package/dist/src/services/remoteGuardPolicy/index.d.mts.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.mjs +196 -0
- package/dist/src/services/remoteGuardPolicy/index.mjs.map +1 -0
- package/dist/src/services/requestReceipts/index.cjs +167 -0
- package/dist/src/services/requestReceipts/index.cjs.map +1 -0
- package/dist/src/services/requestReceipts/index.d.mts +11 -0
- package/dist/src/services/requestReceipts/index.d.mts.map +1 -0
- package/dist/src/services/requestReceipts/index.mjs +167 -0
- package/dist/src/services/requestReceipts/index.mjs.map +1 -0
- package/dist/src/services/rpcTranscript/index.cjs +633 -0
- package/dist/src/services/rpcTranscript/index.cjs.map +1 -0
- package/dist/src/services/rpcTranscript/index.d.mts +50 -0
- package/dist/src/services/rpcTranscript/index.d.mts.map +1 -0
- package/dist/src/services/rpcTranscript/index.mjs +632 -0
- package/dist/src/services/rpcTranscript/index.mjs.map +1 -0
- package/dist/src/services/serverFacet/index.cjs +197 -0
- package/dist/src/services/serverFacet/index.cjs.map +1 -0
- package/dist/src/services/serverFacet/index.d.mts +31 -0
- package/dist/src/services/serverFacet/index.d.mts.map +1 -0
- package/dist/src/services/serverFacet/index.mjs +197 -0
- package/dist/src/services/serverFacet/index.mjs.map +1 -0
- package/dist/src/services/sessionAttachments/index.cjs +111 -0
- package/dist/src/services/sessionAttachments/index.cjs.map +1 -0
- package/dist/src/services/sessionAttachments/index.d.mts +11 -0
- package/dist/src/services/sessionAttachments/index.d.mts.map +1 -0
- package/dist/src/services/sessionAttachments/index.mjs +107 -0
- package/dist/src/services/sessionAttachments/index.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.cjs +46 -0
- package/dist/src/services/sessionGitStatus/index.cjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.mjs +46 -0
- package/dist/src/services/sessionGitStatus/index.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/type.d.mts +8 -0
- package/dist/src/services/sessionGitStatus/type.d.mts.map +1 -0
- package/dist/src/services/sessionMcpActivity/index.cjs +115 -0
- package/dist/src/services/sessionMcpActivity/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpActivity/index.mjs +111 -0
- package/dist/src/services/sessionMcpActivity/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.cjs +473 -0
- package/dist/src/services/sessionMcpAuthorization/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.d.mts +125 -0
- package/dist/src/services/sessionMcpAuthorization/index.d.mts.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.mjs +469 -0
- package/dist/src/services/sessionMcpAuthorization/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpConversations/index.cjs +217 -0
- package/dist/src/services/sessionMcpConversations/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpConversations/index.mjs +212 -0
- package/dist/src/services/sessionMcpConversations/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.cjs +86 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.mjs +83 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.mjs.map +1 -0
- package/dist/src/services/sessionPresentation/index.cjs +120 -0
- package/dist/src/services/sessionPresentation/index.cjs.map +1 -0
- package/dist/src/services/sessionPresentation/index.mjs +120 -0
- package/dist/src/services/sessionPresentation/index.mjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs +97 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.d.mts +28 -0
- package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.mjs +92 -0
- package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.cjs +67 -0
- package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.d.mts +14 -0
- package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.mjs +65 -0
- package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -0
- package/dist/src/services/toolCost/index.cjs +47 -0
- package/dist/src/services/toolCost/index.cjs.map +1 -0
- package/dist/src/services/toolCost/index.d.mts +38 -0
- package/dist/src/services/toolCost/index.d.mts.map +1 -0
- package/dist/src/services/toolCost/index.mjs +46 -0
- package/dist/src/services/toolCost/index.mjs.map +1 -0
- package/dist/src/services/toolOverrides/index.cjs +45 -0
- package/dist/src/services/toolOverrides/index.cjs.map +1 -0
- package/dist/src/services/toolOverrides/index.d.mts +6 -0
- package/dist/src/services/toolOverrides/index.d.mts.map +1 -0
- package/dist/src/services/toolOverrides/index.mjs +45 -0
- package/dist/src/services/toolOverrides/index.mjs.map +1 -0
- package/dist/src/services/toolPrompt/index.cjs +13 -0
- package/dist/src/services/toolPrompt/index.cjs.map +1 -0
- package/dist/src/services/toolPrompt/index.mjs +13 -0
- package/dist/src/services/toolPrompt/index.mjs.map +1 -0
- package/dist/src/services/toolSurface/index.cjs +134 -0
- package/dist/src/services/toolSurface/index.cjs.map +1 -0
- package/dist/src/services/toolSurface/index.d.mts +19 -0
- package/dist/src/services/toolSurface/index.d.mts.map +1 -0
- package/dist/src/services/toolSurface/index.mjs +134 -0
- package/dist/src/services/toolSurface/index.mjs.map +1 -0
- package/dist/src/services/traceContext/index.cjs +13 -0
- package/dist/src/services/traceContext/index.cjs.map +1 -0
- package/dist/src/services/traceContext/index.mjs +13 -0
- package/dist/src/services/traceContext/index.mjs.map +1 -0
- package/dist/src/services/transcriptPages/index.cjs +117 -0
- package/dist/src/services/transcriptPages/index.cjs.map +1 -0
- package/dist/src/services/transcriptPages/index.mjs +115 -0
- package/dist/src/services/transcriptPages/index.mjs.map +1 -0
- package/dist/src/services/tunnelOutput/index.cjs +58 -0
- package/dist/src/services/tunnelOutput/index.cjs.map +1 -0
- package/dist/src/services/tunnelOutput/index.mjs +54 -0
- package/dist/src/services/tunnelOutput/index.mjs.map +1 -0
- package/dist/src/services/tunnelProcess/index.cjs +487 -0
- package/dist/src/services/tunnelProcess/index.cjs.map +1 -0
- package/dist/src/services/tunnelProcess/index.mjs +481 -0
- package/dist/src/services/tunnelProcess/index.mjs.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.cjs +136 -0
- package/dist/src/services/voiceReloadHandoff/index.cjs.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.d.mts +34 -0
- package/dist/src/services/voiceReloadHandoff/index.d.mts.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.mjs +135 -0
- package/dist/src/services/voiceReloadHandoff/index.mjs.map +1 -0
- package/dist/src/services/voiceToolsContract/index.cjs +26 -0
- package/dist/src/services/voiceToolsContract/index.cjs.map +1 -0
- package/dist/src/services/voiceToolsContract/index.d.mts +76 -0
- package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -0
- package/dist/src/services/voiceToolsContract/index.mjs +24 -0
- package/dist/src/services/voiceToolsContract/index.mjs.map +1 -0
- package/dist/src/services/webauthn/index.cjs +262 -0
- package/dist/src/services/webauthn/index.cjs.map +1 -0
- package/dist/src/services/webauthn/index.d.mts +39 -0
- package/dist/src/services/webauthn/index.d.mts.map +1 -0
- package/dist/src/services/webauthn/index.mjs +262 -0
- package/dist/src/services/webauthn/index.mjs.map +1 -0
- package/dist/src/services/webauthnPolicy/index.cjs +174 -0
- package/dist/src/services/webauthnPolicy/index.cjs.map +1 -0
- package/dist/src/services/webauthnPolicy/index.d.mts +41 -0
- package/dist/src/services/webauthnPolicy/index.d.mts.map +1 -0
- package/dist/src/services/webauthnPolicy/index.mjs +167 -0
- package/dist/src/services/webauthnPolicy/index.mjs.map +1 -0
- package/dist/src/services/workspaceRegistry/index.cjs +187 -0
- package/dist/src/services/workspaceRegistry/index.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/index.d.mts +47 -0
- package/dist/src/services/workspaceRegistry/index.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/index.mjs +179 -0
- package/dist/src/services/workspaceRegistry/index.mjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +466 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +36 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +457 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +28 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +1 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +25 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +1 -0
- package/dist/src/systems/child/services/childSession/index.cjs +219 -0
- package/dist/src/systems/child/services/childSession/index.cjs.map +1 -0
- package/dist/src/systems/child/services/childSession/index.d.mts +14 -0
- package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -0
- package/dist/src/systems/child/services/childSession/index.mjs +219 -0
- package/dist/src/systems/child/services/childSession/index.mjs.map +1 -0
- package/dist/src/systems/child/types/childSession.cjs +21 -0
- package/dist/src/systems/child/types/childSession.cjs.map +1 -0
- package/dist/src/systems/child/types/childSession.d.mts +182 -0
- package/dist/src/systems/child/types/childSession.d.mts.map +1 -0
- package/dist/src/systems/child/types/childSession.mjs +17 -0
- package/dist/src/systems/child/types/childSession.mjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.cjs +597 -0
- package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.d.mts +116 -0
- package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.mjs +595 -0
- package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs +1668 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +20 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs +1663 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -0
- package/dist/src/systems/main/types/headlessHost.d.mts +37 -0
- package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.cjs +73 -0
- package/dist/src/testing/pi/extensionScenarios.cjs.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.d.mts +41 -0
- package/dist/src/testing/pi/extensionScenarios.d.mts.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.mjs +73 -0
- package/dist/src/testing/pi/extensionScenarios.mjs.map +1 -0
- package/dist/src/testing/pi/testHost.cjs +399 -0
- package/dist/src/testing/pi/testHost.cjs.map +1 -0
- package/dist/src/testing/pi/testHost.d.mts +160 -0
- package/dist/src/testing/pi/testHost.d.mts.map +1 -0
- package/dist/src/testing/pi/testHost.mjs +399 -0
- package/dist/src/testing/pi/testHost.mjs.map +1 -0
- package/dist/src/types/config.d.mts +20 -0
- package/dist/src/types/config.d.mts.map +1 -0
- package/dist/src/types/kernel.d.mts +69 -0
- package/dist/src/types/kernel.d.mts.map +1 -0
- package/dist/src/types/remote.d.mts +152 -0
- package/dist/src/types/remote.d.mts.map +1 -0
- package/dist/src/types/server/directHarnessRuntime.d.mts +526 -0
- package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -0
- package/dist/src/types/server/session.d.mts +5 -0
- package/dist/src/types/server/session.d.mts.map +1 -0
- package/dist/src/types/server/sessionToolSurface.d.mts +44 -0
- package/dist/src/types/server/sessionToolSurface.d.mts.map +1 -0
- package/dist/src/web/models/globalStore.cjs +23 -0
- package/dist/src/web/models/globalStore.cjs.map +1 -0
- package/dist/src/web/models/globalStore.d.mts +6 -0
- package/dist/src/web/models/globalStore.d.mts.map +1 -0
- package/dist/src/web/models/globalStore.mjs +23 -0
- package/dist/src/web/models/globalStore.mjs.map +1 -0
- package/dist/src/web/models/sessionStore.cjs +56 -0
- package/dist/src/web/models/sessionStore.cjs.map +1 -0
- package/dist/src/web/models/sessionStore.d.mts +14 -0
- package/dist/src/web/models/sessionStore.d.mts.map +1 -0
- package/dist/src/web/models/sessionStore.mjs +56 -0
- package/dist/src/web/models/sessionStore.mjs.map +1 -0
- package/dist/src/web/models/workspaceStore.cjs +50 -0
- package/dist/src/web/models/workspaceStore.cjs.map +1 -0
- package/dist/src/web/models/workspaceStore.d.mts +18 -0
- package/dist/src/web/models/workspaceStore.d.mts.map +1 -0
- package/dist/src/web/models/workspaceStore.mjs +50 -0
- package/dist/src/web/models/workspaceStore.mjs.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.cjs +20 -0
- package/dist/src/web/schemas/bundleAssetPolicy.cjs.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.d.mts +10 -0
- package/dist/src/web/schemas/bundleAssetPolicy.d.mts.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.mjs +18 -0
- package/dist/src/web/schemas/bundleAssetPolicy.mjs.map +1 -0
- package/dist/src/web/schemas/template.cjs +35 -0
- package/dist/src/web/schemas/template.cjs.map +1 -0
- package/dist/src/web/schemas/template.d.mts +9 -0
- package/dist/src/web/schemas/template.d.mts.map +1 -0
- package/dist/src/web/schemas/template.mjs +34 -0
- package/dist/src/web/schemas/template.mjs.map +1 -0
- package/dist/src/web/services/apiClient/index.cjs +156 -0
- package/dist/src/web/services/apiClient/index.cjs.map +1 -0
- package/dist/src/web/services/apiClient/index.d.mts +152 -0
- package/dist/src/web/services/apiClient/index.d.mts.map +1 -0
- package/dist/src/web/services/apiClient/index.mjs +154 -0
- package/dist/src/web/services/apiClient/index.mjs.map +1 -0
- package/dist/src/web/services/apiPaths/index.cjs +83 -0
- package/dist/src/web/services/apiPaths/index.cjs.map +1 -0
- package/dist/src/web/services/apiPaths/index.d.mts +81 -0
- package/dist/src/web/services/apiPaths/index.d.mts.map +1 -0
- package/dist/src/web/services/apiPaths/index.mjs +78 -0
- package/dist/src/web/services/apiPaths/index.mjs.map +1 -0
- package/dist/src/web/services/apiRoutes/index.cjs +47 -0
- package/dist/src/web/services/apiRoutes/index.cjs.map +1 -0
- package/dist/src/web/services/apiRoutes/index.d.mts +21 -0
- package/dist/src/web/services/apiRoutes/index.d.mts.map +1 -0
- package/dist/src/web/services/apiRoutes/index.mjs +43 -0
- package/dist/src/web/services/apiRoutes/index.mjs.map +1 -0
- package/dist/src/web/services/mcpWidget.cjs +9 -0
- package/dist/src/web/services/mcpWidget.cjs.map +1 -0
- package/dist/src/web/services/mcpWidget.d.mts +6 -0
- package/dist/src/web/services/mcpWidget.d.mts.map +1 -0
- package/dist/src/web/services/mcpWidget.mjs +9 -0
- package/dist/src/web/services/mcpWidget.mjs.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.cjs +70 -0
- package/dist/src/web/services/sessionRegistry/index.cjs.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.d.mts +29 -0
- package/dist/src/web/services/sessionRegistry/index.d.mts.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.mjs +66 -0
- package/dist/src/web/services/sessionRegistry/index.mjs.map +1 -0
- package/dist/src/web/services/testing/channels.cjs +11 -0
- package/dist/src/web/services/testing/channels.cjs.map +1 -0
- package/dist/src/web/services/testing/channels.d.mts +8 -0
- package/dist/src/web/services/testing/channels.d.mts.map +1 -0
- package/dist/src/web/services/testing/channels.mjs +11 -0
- package/dist/src/web/services/testing/channels.mjs.map +1 -0
- package/dist/src/web/services/testing/index.cjs +27 -0
- package/dist/src/web/services/testing/index.cjs.map +1 -0
- package/dist/src/web/services/testing/index.d.mts +31 -0
- package/dist/src/web/services/testing/index.d.mts.map +1 -0
- package/dist/src/web/services/testing/index.mjs +27 -0
- package/dist/src/web/services/testing/index.mjs.map +1 -0
- package/dist/src/web/services/testing/rpcStub.cjs +58 -0
- package/dist/src/web/services/testing/rpcStub.cjs.map +1 -0
- package/dist/src/web/services/testing/rpcStub.d.mts +37 -0
- package/dist/src/web/services/testing/rpcStub.d.mts.map +1 -0
- package/dist/src/web/services/testing/rpcStub.mjs +58 -0
- package/dist/src/web/services/testing/rpcStub.mjs.map +1 -0
- package/dist/src/web/services/testing/slotProps.cjs +97 -0
- package/dist/src/web/services/testing/slotProps.cjs.map +1 -0
- package/dist/src/web/services/testing/slotProps.d.mts +69 -0
- package/dist/src/web/services/testing/slotProps.d.mts.map +1 -0
- package/dist/src/web/services/testing/slotProps.mjs +96 -0
- package/dist/src/web/services/testing/slotProps.mjs.map +1 -0
- package/dist/src/web/services/testing/templateRail.cjs +156 -0
- package/dist/src/web/services/testing/templateRail.cjs.map +1 -0
- package/dist/src/web/services/testing/templateRail.d.mts +32 -0
- package/dist/src/web/services/testing/templateRail.d.mts.map +1 -0
- package/dist/src/web/services/testing/templateRail.mjs +154 -0
- package/dist/src/web/services/testing/templateRail.mjs.map +1 -0
- package/dist/src/web/services/toolResult/index.cjs +30 -0
- package/dist/src/web/services/toolResult/index.cjs.map +1 -0
- package/dist/src/web/services/toolResult/index.d.mts +14 -0
- package/dist/src/web/services/toolResult/index.d.mts.map +1 -0
- package/dist/src/web/services/toolResult/index.mjs +29 -0
- package/dist/src/web/services/toolResult/index.mjs.map +1 -0
- package/dist/src/web/types/extensionFile.d.mts +62 -0
- package/dist/src/web/types/extensionFile.d.mts.map +1 -0
- package/dist/src/web/types/mcpWidget.d.mts +14 -0
- package/dist/src/web/types/mcpWidget.d.mts.map +1 -0
- package/dist/src/web/types/modelContext.d.mts +43 -0
- package/dist/src/web/types/modelContext.d.mts.map +1 -0
- package/dist/src/web/types/nativeTemplate.d.mts +29 -0
- package/dist/src/web/types/nativeTemplate.d.mts.map +1 -0
- package/dist/src/web/types/sessionRegistry.d.mts +46 -0
- package/dist/src/web/types/sessionRegistry.d.mts.map +1 -0
- package/dist/src/web/types/template.d.mts +135 -0
- package/dist/src/web/types/template.d.mts.map +1 -0
- package/dist/src/web/types/webPlugin.d.mts +915 -0
- package/dist/src/web/types/webPlugin.d.mts.map +1 -0
- package/dist/terminalPiChildSessionService.cjs +324 -0
- package/dist/terminalPiChildSessionService.cjs.map +1 -0
- package/dist/terminalPiChildSessionService.d.mts +46 -0
- package/dist/terminalPiChildSessionService.d.mts.map +1 -0
- package/dist/terminalPiChildSessionService.mjs +318 -0
- package/dist/terminalPiChildSessionService.mjs.map +1 -0
- package/dist/testing.cjs +11 -0
- package/dist/testing.d.mts +6 -0
- package/dist/testing.mjs +6 -0
- package/dist/toolInventory.cjs +136 -0
- package/dist/toolInventory.cjs.map +1 -0
- package/dist/toolInventory.d.mts +66 -0
- package/dist/toolInventory.d.mts.map +1 -0
- package/dist/toolInventory.mjs +133 -0
- package/dist/toolInventory.mjs.map +1 -0
- package/dist/toolNames.cjs +4 -0
- package/dist/toolNames.d.mts +2 -0
- package/dist/toolNames.mjs +2 -0
- package/dist/toolOverrides.cjs +7 -0
- package/dist/toolOverrides.d.mts +3 -0
- package/dist/toolOverrides.mjs +3 -0
- package/dist/toolSurface.cjs +7 -0
- package/dist/toolSurface.d.mts +3 -0
- package/dist/toolSurface.mjs +3 -0
- package/dist/transition.cjs +5 -0
- package/dist/transition.d.cjs +5 -0
- package/dist/transition.d.mts +2 -0
- package/dist/transition.mjs +2 -0
- package/dist/transitionClassifier.cjs +112 -0
- package/dist/transitionClassifier.cjs.map +1 -0
- package/dist/transitionClassifier.d.mts +18 -0
- package/dist/transitionClassifier.d.mts.map +1 -0
- package/dist/transitionClassifier.mjs +111 -0
- package/dist/transitionClassifier.mjs.map +1 -0
- package/dist/transitionCoordinator.cjs +131 -0
- package/dist/transitionCoordinator.cjs.map +1 -0
- package/dist/transitionCoordinator.d.mts +16 -0
- package/dist/transitionCoordinator.d.mts.map +1 -0
- package/dist/transitionCoordinator.mjs +130 -0
- package/dist/transitionCoordinator.mjs.map +1 -0
- package/dist/typesContextApi.cjs +0 -0
- package/dist/typesContextApi.d.mts +79 -0
- package/dist/typesContextApi.d.mts.map +1 -0
- package/dist/typesContextApi.mjs +1 -0
- package/dist/uiHub.cjs +5 -0
- package/dist/uiHub.d.mts +2 -0
- package/dist/uiHub.mjs +2 -0
- package/dist/v3Export.cjs +10 -0
- package/dist/v3Export.cjs.map +1 -0
- package/dist/v3Export.d.mts +35 -0
- package/dist/v3Export.d.mts.map +1 -0
- package/dist/v3Export.mjs +9 -0
- package/dist/v3Export.mjs.map +1 -0
- package/dist/voiceReloadHandoff.cjs +14 -0
- package/dist/voiceReloadHandoff.d.mts +4 -0
- package/dist/voiceReloadHandoff.mjs +4 -0
- package/dist/voiceTools.cjs +56 -0
- package/dist/voiceTools.d.mts +4 -0
- package/dist/voiceTools.mjs +4 -0
- package/dist/web.cjs +65 -0
- package/dist/web.d.mts +20 -0
- package/dist/web.mjs +13 -0
- package/dist/webCompositions.cjs +181 -0
- package/dist/webCompositions.cjs.map +1 -0
- package/dist/webCompositions.d.mts +79 -0
- package/dist/webCompositions.d.mts.map +1 -0
- package/dist/webCompositions.mjs +174 -0
- package/dist/webCompositions.mjs.map +1 -0
- package/dist/webTesting.cjs +14 -0
- package/dist/webTesting.d.mts +6 -0
- package/dist/webTesting.mjs +6 -0
- package/package.json +586 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headlessSessionHost.cjs","names":["parseArgs","resolveCliModel","resolveModelScopeWithDiagnostics","DoomSessionSetupError","getAgentDir","path","headlessHarnessSkill","projectContext","buildContextDetail","DOOM_CONTEXT_ENTRY_TYPE","registerDoomSessionEnvironment","SettingsManager","modelConfigDirectory","ModelRuntime","resolvePiSettingsPackageEntries","fs","preloadPiExtensions","loadProjectContextFiles","formatSkillsForSystemPrompt","formatToolPrompt","createDirectHarnessRuntime","createHistoryOwnership","harnessErrorMessage","SessionMetadataDoc","BACKGROUND_CONTEXT","createHeadlessChildSessionServiceProvider","root","DOOM_CHILD_SESSION_HOOKS_SERVICE","DOOM_CHILD_SESSION_MCP_TOOL_SERVICE","generateSummary","DEFAULT_COMPACTION_SETTINGS","createAssistantMessageEventStream","DoomHeadlessPromptAdmissionError","createHeadlessClient","DOOM_AGENT_MODEL_ENTRY_TYPE","isDoomHeadlessToolModelVisible","describeLoadSkillTool","DOOM_CHILD_SESSION_SERVICE","createPiExtensionHost","HeadlessHost","Value","validationDetails","randomUUID","withAbortSignal","readDoomBackgroundWorkService"],"sources":["../../../../../src/systems/main/adapters/headlessSessionHost.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { Context as CordisContext } from '@deepseek-ai/cordis';\nimport { BACKGROUND_CONTEXT, withAbortSignal } from '@earendil-works/chord/context';\nimport { createAssistantMessageEventStream, type Model, type Api, type Usage } from '@earendil-works/pi-ai';\nimport {\n getAgentDir,\n generateSummary,\n DEFAULT_COMPACTION_SETTINGS,\n ModelRuntime,\n loadProjectContextFiles,\n parseArgs,\n resolveCliModel,\n resolveModelScopeWithDiagnostics,\n SettingsManager,\n type Args,\n} from '@earendil-works/pi-coding-agent';\nimport { Value } from 'typebox/value';\n\nimport { readDoomBackgroundWorkService } from '../../../exports/backgroundWork';\nimport {\n DOOM_CHILD_SESSION_SERVICE,\n DOOM_CHILD_SESSION_MCP_TOOL_SERVICE,\n DOOM_CHILD_SESSION_HOOKS_SERVICE,\n type DoomChildSessionHooks,\n type DoomChildSessionMcpTool,\n} from '../../../exports/childSession';\nimport { registerDoomSessionEnvironment } from '../../../exports/cordisHost';\nimport type {\n DoomHeadlessEventName,\n DoomHeadlessExecutionContext,\n DoomHeadlessModelMetadata,\n DoomHeadlessSelection,\n DoomHeadlessTool,\n DoomHeadlessToolCompletionRequest,\n} from '../../../exports/headless';\nimport {\n DOOM_LOAD_SKILL_TOOL,\n DoomHeadlessPromptAdmissionError,\n DoomSessionSetupError,\n isDoomHeadlessToolModelVisible,\n} from '../../../exports/headless';\nimport type { DoomSessionContext } from '../../../exports/hubChannel';\nimport type { DoomMcpContextSnapshot, DoomMcpSkill, DoomMcpUiResource } from '../../../exports/mcpFacet';\nimport type { InstalledServerFacets } from '../../../exports/serverFacet';\nimport { DOOM_AGENT_MODEL_ENTRY_TYPE } from '../../../schemas/agentModel';\nimport { validationDetails } from '../../../schemas/protocol';\nimport { createDirectHarnessRuntime } from '../../../server/directHarnessRuntime';\nimport { harnessErrorMessage } from '../../../server/harnessErrorMessage';\nimport { buildContextDetail } from '../../../services/contextDetail';\nimport { writeContextDetail } from '../../../services/contextDetailStore';\nimport { DOOM_CONTEXT_ENTRY_TYPE, projectContext } from '../../../services/contextProjection';\nimport { createHeadlessClient } from '../../../services/headlessClient';\nimport { createHistoryOwnership } from '../../../services/historyOwnership';\nimport { formatSkillsForSystemPrompt } from '../../../services/piExtensionHost';\nimport {\n createPiExtensionHost,\n preloadPiExtensions,\n resolvePiSettingsPackageEntries,\n type PiExtensionHost,\n} from '../../../services/piExtensionHost';\nimport { modelConfigDirectory } from '../../../services/piSettings';\nimport { observe } from '../../../services/serverTelemetry';\nimport { SessionMetadataDoc } from '../../../services/sqliteSessionStorage';\nimport { formatToolPrompt, type ToolPromptEntry } from '../../../services/toolPrompt';\nimport type { ContextPromptStage } from '../../../types/contextApi';\nimport type {\n AgentHarnessResources,\n AgentHarnessTool,\n AgentMessage,\n HookMap,\n} from '../../../types/server/directHarnessRuntime';\nimport type { DirectHarnessRuntime, DirectHarnessRuntimeOptions } from '../../../types/server/directHarnessRuntime';\nimport type { SessionFrame } from '../../../types/server/session';\nimport type {\n SessionSkillDescriptor,\n SessionToolDescriptor,\n SessionToolSurface,\n SessionUiResourceDescriptor,\n} from '../../../types/server/sessionToolSurface';\nimport { createHeadlessChildSessionServiceProvider } from '../../child/adapters/headlessChildSessionService';\nimport type { ResolvedHeadlessResource } from '../types/headlessHost';\nimport type { HeadlessSessionHost, HeadlessSessionHostOptions } from '../types/headlessSessionHost';\nimport { describeLoadSkillTool, HeadlessHost, headlessHarnessSkill } from './headlessHost';\n\ntype AnyRecord = Record<string, unknown>;\ntype HeadlessTool = DoomHeadlessTool;\ntype AfterToolPatch = NonNullable<HookMap['after_tool']['result']>;\ntype ToolContent = NonNullable<AfterToolPatch['content']>;\ntype CompactResult = NonNullable<NonNullable<HookMap['before_compaction']['result']>['compaction']>;\ntype JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };\n\nconst EXTERNAL_OPERATION = 'external';\nconst REMOTE_TOOL_WAIT_MS = 30_000;\nconst PROMPT_PREPARATION_FAILED_EVENT = 'po_server.system_prompt_preparation_failed';\n\ninterface AppliedSessionTool {\n readonly descriptor: SessionToolDescriptor;\n execute(\n toolCallId: string,\n parameters: Record<string, unknown>,\n signal?: AbortSignal,\n onUpdate?: Parameters<SessionToolSurface['invokeTool']>[0]['onUpdate'],\n execution?: DoomHeadlessExecutionContext,\n ): Promise<import('../../../exports/headless').DoomHeadlessToolResult>;\n}\n\nfunction isRecord(value: unknown): value is AnyRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction stringArray(value: unknown): string[] | undefined {\n return Array.isArray(value) && value.every((entry) => typeof entry === 'string') ? value : undefined;\n}\n\n/** Restores the last accepted live selection from journal projections, falling back on launch configuration. */\nexport function restoreHeadlessSelection(\n entries: readonly AnyRecord[],\n fallback: DoomHeadlessSelection,\n): DoomHeadlessSelection {\n let projected: Partial<DoomHeadlessSelection> | undefined;\n for (let index = entries.length - 1; index >= 0 && projected === undefined; index -= 1) {\n const entry = entries[index];\n if (!isRecord(entry) || entry.type !== 'custom' || !isRecord(entry.data)) continue;\n if (projected === undefined && entry.customType === DOOM_CONTEXT_ENTRY_TYPE) {\n const selection = entry.data.selection;\n if (!isRecord(selection) || typeof selection.majorMode !== 'string') continue;\n const domains = stringArray(selection.domains);\n if (domains === undefined || (selection.profile !== undefined && typeof selection.profile !== 'string')) continue;\n projected = {\n majorMode: selection.majorMode,\n domains,\n ...(typeof selection.profile === 'string' ? { profile: selection.profile } : {}),\n };\n }\n }\n return { ...fallback, ...projected };\n}\n\nfunction isJsonValue(value: unknown): value is JsonValue {\n if (value === null || typeof value === 'string' || typeof value === 'boolean') return true;\n if (typeof value === 'number') return Number.isFinite(value);\n if (Array.isArray(value)) return value.every(isJsonValue);\n return isRecord(value) && Object.values(value).every(isJsonValue);\n}\n\nfunction boundedJsonCopy(value: unknown): unknown {\n const seen = new Set<object>();\n const visit = (item: unknown, depth: number): void => {\n if (depth > 128) throw new TypeError('Message data is too deeply nested.');\n if (item === null || typeof item === 'string' || typeof item === 'boolean') return;\n if (typeof item === 'number' && Number.isFinite(item)) return;\n if (typeof item !== 'object' || seen.has(item)) throw new TypeError('Message data must be JSON serializable.');\n seen.add(item);\n for (const child of Object.values(item)) {\n if (child !== undefined) visit(child, depth + 1);\n }\n seen.delete(item);\n };\n visit(value, 0);\n const encoded = JSON.stringify(value);\n if (encoded.length > 16 * 1024 * 1024) throw new TypeError('Message data exceeds the serialization limit.');\n return JSON.parse(encoded);\n}\n\nfunction isSummaryMessage(value: unknown): value is AgentMessage {\n if (!isRecord(value) || typeof value.timestamp !== 'number' || !Number.isFinite(value.timestamp)) return false;\n if (value.role === 'user') return typeof value.content === 'string' || isToolContent(value.content);\n if (value.role === 'custom')\n return (\n typeof value.customType === 'string' &&\n typeof value.display === 'boolean' &&\n (typeof value.content === 'string' || isToolContent(value.content))\n );\n if (value.role === 'compactionSummary')\n return typeof value.summary === 'string' && typeof value.tokensBefore === 'number';\n if (value.role === 'branchSummary')\n return typeof value.summary === 'string' && (value.fromId === null || typeof value.fromId === 'string');\n if (value.role === 'bashExecution')\n return (\n typeof value.command === 'string' &&\n typeof value.output === 'string' &&\n typeof value.cancelled === 'boolean' &&\n typeof value.truncated === 'boolean' &&\n (value.exitCode === undefined || typeof value.exitCode === 'number')\n );\n if (value.role === 'toolResult') return isToolContent(value.content) && isAgentMessage(value);\n return (\n value.role === 'assistant' &&\n Array.isArray(value.content) &&\n value.content.every((part: unknown) => {\n if (!isRecord(part)) return false;\n if (part.type === 'text') return typeof part.text === 'string';\n if (part.type === 'thinking') return typeof part.thinking === 'string';\n return (\n part.type === 'toolCall' &&\n typeof part.id === 'string' &&\n typeof part.name === 'string' &&\n isJsonObject(part.arguments)\n );\n }) &&\n isAgentMessage(value)\n );\n}\n\nfunction isJsonObject(value: unknown): value is Record<string, unknown> {\n return isRecord(value) && Object.values(value).every(isJsonValue);\n}\n\nfunction isToolContent(value: unknown): value is ToolContent {\n return (\n Array.isArray(value) &&\n value.every((part) => {\n if (!isRecord(part)) return false;\n if (part.type === 'text') return typeof part.text === 'string';\n return part.type === 'image' && typeof part.data === 'string' && typeof part.mimeType === 'string';\n })\n );\n}\n\nfunction isUsage(value: unknown): value is Usage {\n if (!isRecord(value) || !isRecord(value.cost)) return false;\n const cost = value.cost;\n return (\n ['input', 'output', 'cacheRead', 'cacheWrite', 'totalTokens'].every(\n (key) => typeof value[key] === 'number' && Number.isFinite(value[key]),\n ) &&\n ['input', 'output', 'cacheRead', 'cacheWrite', 'total'].every(\n (key) => typeof cost[key] === 'number' && Number.isFinite(cost[key]),\n )\n );\n}\n\nfunction isAgentMessage(value: unknown): value is AgentMessage {\n if (!isRecord(value) || typeof value.timestamp !== 'number' || !Number.isFinite(value.timestamp)) return false;\n if (value.role === 'user') return typeof value.content === 'string' || Array.isArray(value.content);\n if (!Array.isArray(value.content)) return false;\n if (value.role === 'assistant') {\n return (\n typeof value.api === 'string' &&\n typeof value.provider === 'string' &&\n typeof value.model === 'string' &&\n typeof value.stopReason === 'string' &&\n isUsage(value.usage)\n );\n }\n return (\n value.role === 'toolResult' &&\n typeof value.toolCallId === 'string' &&\n typeof value.toolName === 'string' &&\n typeof value.isError === 'boolean'\n );\n}\n\nfunction isCompactResult(value: unknown): value is CompactResult {\n return (\n isRecord(value) &&\n typeof value.summary === 'string' &&\n typeof value.tokensBefore === 'number' &&\n Number.isFinite(value.tokensBefore) &&\n Array.isArray(value.retainedTail) &&\n value.retainedTail.every(isAgentMessage) &&\n (value.usage === undefined || isUsage(value.usage)) &&\n (value.details === undefined || isJsonValue(value.details))\n );\n}\n\nconst unsupported = (parsed: Args): string | undefined => {\n const flags: Array<[string, unknown]> = [\n ['--help', parsed.help],\n ['--version', parsed.version],\n ['--mode', parsed.mode],\n ['--print', parsed.print],\n ['--export', parsed.export],\n ['--no-session', parsed.noSession],\n ['--continue', parsed.continue],\n ['--resume', parsed.resume],\n ['--fork', parsed.fork],\n ['--list-models', parsed.listModels],\n ['--offline', parsed.offline],\n ['--tui-mode', parsed.tuiMode],\n ['--extensions', parsed.extensions],\n ['--no-extensions', parsed.noExtensions],\n ['--skills', parsed.skills],\n ['--no-skills', parsed.noSkills],\n ['--prompt-templates', parsed.promptTemplates],\n ['--no-prompt-templates', parsed.noPromptTemplates],\n ['--themes', parsed.themes],\n ['--no-themes', parsed.noThemes],\n ['--no-context-files', parsed.noContextFiles],\n ['--tools', parsed.tools],\n ['--exclude-tools', parsed.excludeTools],\n ['--no-tools', parsed.noTools],\n ['--no-builtin-tools', parsed.noBuiltinTools],\n ['--project-trust-override', parsed.projectTrustOverride],\n ['--verbose', parsed.verbose],\n ];\n const match = flags.find(([, value]) => value !== undefined && value !== false);\n if (match) return `Direct headless mode does not support ${match[0]}.`;\n if (parsed.messages.length > 0 || parsed.fileArgs.length > 0)\n return 'Direct headless mode does not support positional prompts or files.';\n const unknown = parsed.unknownFlags.keys().next().value;\n return typeof unknown === 'string' ? `Direct headless mode does not support --${unknown}.` : undefined;\n};\n\n/** Validate the Pi flags that remain after Doom's harness flags are removed. */\nexport function validateDirectHeadlessArgs(agentArgs: readonly string[]): Args {\n if (agentArgs.includes('--mode')) throw new Error('Direct headless mode does not support --mode.');\n const parsed = parseArgs([...agentArgs]);\n const diagnostics = parsed.diagnostics.filter((diagnostic) => diagnostic.type === 'error');\n if (diagnostics.length) throw new Error(diagnostics.map((diagnostic) => diagnostic.message).join('\\n'));\n const error = unsupported(parsed);\n if (error) throw new Error(error);\n return parsed;\n}\n\nfunction modelIdentity(model: Model<Api>): { provider: string; id: string } {\n return { provider: model.provider, id: model.id };\n}\n\nfunction modelMetadata(model: Model<Api>): DoomHeadlessModelMetadata {\n const compat: Record<string, boolean | string> = {};\n const source = (model as unknown as { compat?: Record<string, unknown> }).compat;\n for (const key of [\n 'supportsStore',\n 'supportsDeveloperRole',\n 'supportsReasoningEffort',\n 'supportsUsageInStreaming',\n 'supportsStrictMode',\n 'maxTokensField',\n 'sendSessionAffinityHeaders',\n 'sessionAffinityFormat',\n 'supportsLongCacheRetention',\n 'thinkingFormat',\n 'requiresReasoningContentOnAssistantMessages',\n 'cacheControlFormat',\n 'forceAdaptiveThinking',\n 'allowEmptySignature',\n ]) {\n const value = source?.[key];\n if (typeof value === 'boolean' || typeof value === 'string') compat[key] = value;\n }\n let baseUrl: string | undefined;\n try {\n const url = new URL(model.baseUrl);\n url.username = '';\n url.password = '';\n url.search = '';\n url.hash = '';\n baseUrl = url.toString();\n } catch {\n // Invalid endpoints cannot safely be exposed to facets or diagnostics.\n baseUrl = undefined;\n }\n return Object.freeze({\n provider: model.provider,\n id: model.id,\n api: model.api,\n name: model.name,\n ...(baseUrl ? { baseUrl } : {}),\n compat: Object.freeze(compat),\n });\n}\n\nasync function resolveModel(\n parsed: Args,\n modelRuntime: ModelRuntime,\n settings: SettingsManager,\n): Promise<{ model: Model<Api>; thinkingLevel?: Args['thinking'] }> {\n const cli = resolveCliModel({\n cliProvider: parsed.provider,\n cliModel: parsed.model,\n cliThinking: parsed.thinking,\n modelRuntime,\n });\n if (cli.error) throw new Error(cli.error);\n\n let scoped: Model<Api> | undefined;\n if (parsed.models !== undefined && parsed.models.length > 0) {\n const resolved = await resolveModelScopeWithDiagnostics(parsed.models, modelRuntime);\n scoped = resolved.scopedModels[0]?.model;\n if (scoped === undefined)\n throw new DoomSessionSetupError(`No configured model matched --models ${parsed.models.join(', ')}.`);\n }\n\n const configured =\n cli.model ??\n scoped ??\n (settings.getDefaultProvider() && settings.getDefaultModel()\n ? modelRuntime.getModel(settings.getDefaultProvider()!, settings.getDefaultModel()!)\n : undefined) ??\n (await modelRuntime.getAvailable())[0];\n if (configured === undefined) {\n const agentDir = getAgentDir();\n throw new DoomSessionSetupError(\n `No model is configured, so the session cannot start. Add a provider and its credentials in ${agentDir} ` +\n `(auth.json, or models.json for a custom provider), then set defaultProvider and defaultModel in ` +\n `${path.join(agentDir, 'settings.json')}.`,\n );\n }\n return {\n model: configured,\n thinkingLevel:\n cli.thinkingLevel ??\n parsed.thinking ??\n settings.getModelThinkingLevel(configured.provider, configured.id) ??\n settings.getDefaultThinkingLevel(),\n };\n}\n\nfunction mapResources(resources: readonly ResolvedHeadlessResource[]): {\n harness: AgentHarnessResources;\n context: string[];\n advertised: NonNullable<AgentHarnessResources['skills']>;\n} {\n const skills: NonNullable<AgentHarnessResources['skills']> = [];\n const advertised: NonNullable<AgentHarnessResources['skills']> = [];\n const promptTemplates: NonNullable<AgentHarnessResources['promptTemplates']> = [];\n const context: string[] = [];\n for (const resource of resources) {\n if (resource.kind === 'skill') {\n const skill = headlessHarnessSkill(resource);\n skills.push(skill);\n // Advertised only with a path the agent can open. Without one the prompt would\n // point at a doom-headless:// URI no tool resolves, so such a skill stays\n // explicitly invocable and silent, exactly as it was before.\n // One entry per name: two domains can each carry the same shared skill.\n if (resource.path !== undefined && !advertised.some((entry) => entry.name === skill.name)) advertised.push(skill);\n } else if (resource.kind === 'prompt') {\n promptTemplates.push({ name: resource.name, content: resource.text });\n } else {\n // Deliberately unwrapped. A generic \"this is data, not instructions\" fence here\n // would also wrap po/profile-config, which carries the operator's persona\n // and *is* authoritative instruction, and demoting it would be worse than the\n // anonymity it fixes. A resource whose body is untrusted owns its own boundary,\n // the way po-goal fences a user objective in escaped <goal_objective>.\n context.push(resource.text);\n }\n }\n return { harness: { skills, promptTemplates }, context, advertised };\n}\n\nfunction toolAdapter(\n tool: HeadlessTool,\n executionContext: () => DoomHeadlessExecutionContext,\n reportedErrors: Set<string>,\n): AgentHarnessTool<object | undefined> {\n return {\n name: tool.name,\n label: tool.label ?? tool.name,\n description: tool.description,\n parameters: tool.parameters,\n ...(tool.promptSnippet === undefined ? {} : { promptSnippet: tool.promptSnippet }),\n ...(tool.promptGuidelines === undefined ? {} : { promptGuidelines: tool.promptGuidelines }),\n ...(tool.executionMode === undefined\n ? {}\n : {\n executionMode: tool.executionMode === 'parallel' ? 'parallel' : 'sequential',\n }),\n async execute(toolCallId, parameters, onUpdate, _toolContext, _invocation, context) {\n const result = await tool.execute(\n toolCallId,\n parameters,\n context.abortSignal,\n (partial) => onUpdate({ content: partial.content, details: partial.details }),\n executionContext(),\n );\n if (result.isError === true) reportedErrors.add(toolCallId);\n return { content: result.content, details: result.details };\n },\n };\n}\n\nfunction eventHook(event: string): DoomHeadlessEventName | undefined {\n const hooks: Record<string, DoomHeadlessEventName> = {\n run_start: 'agent_start',\n run_resume: 'agent_start',\n run_end: 'agent_settled',\n turn_start: 'turn_start',\n turn_end: 'turn_end',\n message_start: 'message_start',\n message_update: 'message_update',\n message_end: 'message_end',\n tool_start: 'tool_execution_start',\n tool_update: 'tool_execution_update',\n tool_end: 'tool_execution_end',\n compaction_end: 'session_compact',\n navigation_start: 'session_tree',\n navigation_end: 'session_tree',\n };\n return hooks[event];\n}\n\nfunction emitTo(listeners: Set<(frame: SessionFrame) => void>, frame: SessionFrame): void {\n // Observers added by a listener begin with the next frame.\n const snapshot = [...listeners];\n for (const listener of snapshot) {\n try {\n listener(frame);\n } catch {\n // Compatibility listeners are observers.\n }\n }\n}\n\n/** The prompt a host has to show, and how complete it is. */\ninterface HeadlessSystemPrompt {\n readonly text: string;\n readonly stage: ContextPromptStage;\n}\n\nfunction createHeadlessCompositionPublisher(\n runtime: Pick<DirectHarnessRuntime, 'sessionId' | 'appendCustomEntry'>,\n host: HeadlessHost,\n environment: Readonly<Record<string, string | undefined>>,\n groups: (\n selection: DoomHeadlessSelection,\n ) => import('../../../services/contextProjection').ContextProjectionInput['groups'],\n readSystemPrompt: () => HeadlessSystemPrompt | undefined,\n): (selection?: DoomHeadlessSelection) => Promise<void> {\n let countTokens: ((text: string) => number) | undefined;\n let contextRevision = 0;\n let publishedContext: string | undefined;\n // Publishes overlap: a selection settling and a turn building its prompt can\n // both ask at once, and each awaits the journal before recording what it\n // published. Run them one after another so the second sees the first's\n // revision rather than spending one of its own on the same composition.\n let tail: Promise<void> = Promise.resolve();\n\n const publish = async (selection: DoomHeadlessSelection): Promise<void> => {\n countTokens ??= (await import('gpt-tokenizer')).countTokens;\n const inventory = host.getContextInventory(selection, countTokens);\n const prompt = readSystemPrompt();\n const promptCost = prompt === undefined ? undefined : { tokens: countTokens(prompt.text), stage: prompt.stage };\n const context = projectContext({\n revision: contextRevision + 1,\n majorMode: selection.majorMode,\n ...(selection.profile === undefined ? {} : { profile: selection.profile }),\n groups: groups(selection),\n domains: selection.domains,\n sources: inventory.sources,\n skills: inventory.skills,\n attribution: inventory.attribution,\n countTokens,\n ...(promptCost === undefined ? {} : { systemPrompt: promptCost }),\n });\n // The prompt joins the key by its text, not just its figure: a reworded\n // prompt of the same length is a different answer to the reader's question.\n const contextKey = JSON.stringify({\n ...context,\n revision: 0,\n promptText: prompt?.text,\n });\n if (contextKey === publishedContext) return;\n const revision = contextRevision + 1;\n const details = buildContextDetail({\n sources: inventory.sources,\n skills: inventory.skills,\n countTokens,\n ...(prompt === undefined || promptCost === undefined\n ? {}\n : {\n systemPrompt: {\n text: prompt.text,\n tokens: promptCost.tokens,\n stage: prompt.stage,\n },\n }),\n });\n await runtime.appendCustomEntry(DOOM_CONTEXT_ENTRY_TYPE, {\n ...context,\n revision,\n });\n writeContextDetail(runtime.sessionId, revision, details, environment);\n contextRevision = revision;\n publishedContext = contextKey;\n };\n\n return (selection = host.context.selection): Promise<void> => {\n // A failed publish must not strand every publish that follows it.\n tail = tail.then(\n () => publish(selection),\n () => publish(selection),\n );\n return tail;\n };\n}\n\n/** Create the gated, same-process host used by direct-headless startup tests. */\n/**\n * Composes one server session's host.\n *\n * Its Pi extensions run in the server's process, so the session's admitted environment is\n * registered under its id for them to read instead of `process.env`, and released with it.\n */\nexport async function createHeadlessSessionHost(options: HeadlessSessionHostOptions): Promise<HeadlessSessionHost> {\n const releaseEnvironment = registerDoomSessionEnvironment(options.sessionId, options.environment);\n try {\n return await composeHeadlessSessionHost(options, releaseEnvironment);\n } catch (error) {\n releaseEnvironment();\n throw error;\n }\n}\n\nasync function composeHeadlessSessionHost(\n options: HeadlessSessionHostOptions,\n releaseEnvironment: () => void,\n): Promise<HeadlessSessionHost> {\n const parsed = validateDirectHeadlessArgs(options.agentArgs);\n const agentDir = getAgentDir();\n const settings = SettingsManager.create(options.cwd, agentDir);\n // Credentials and the default model fall back to plain Pi's ~/.pi/agent until Po has its own.\n const modelDir = modelConfigDirectory(agentDir);\n const modelSettings = modelDir === agentDir ? settings : SettingsManager.create(options.cwd, modelDir);\n const modelRuntime = await ModelRuntime.create({\n authPath: path.join(modelDir, 'auth.json'),\n modelsPath: path.join(modelDir, 'models.json'),\n refreshOnCreate: false,\n });\n // Pi extensions load before the model is resolved: an extension that registers a provider\n // (a local Vertex or Bedrock bridge, say) must be in the runtime before the configured default\n // is looked up, or the lookup misses and the session silently falls back to whichever model\n // happens to be first in `getAvailable()`.\n // Provider packages from Pi's settings.json `packages` load alongside the Po entry, so a\n // model that works under `pi` (a Claude Code bridge, say) is also selectable here.\n const piExtensionPaths =\n options.piExtensions === false\n ? []\n : [\n ...(options.piExtensionFactories !== undefined ? [] : (options.piExtensionPaths ?? [])),\n ...(await resolvePiSettingsPackageEntries({\n cwd: options.cwd,\n agentDir,\n settings,\n ...(options.onNotice === undefined ? {} : { onNotice: options.onNotice }),\n })),\n // Falling back to Pi's model config brings Pi's own extensions with it, as doompi loads\n // them: a provider such as a local Vertex bridge lives there, not in auth.json.\n ...(modelDir !== agentDir && fs.existsSync(path.join(modelDir, 'extensions'))\n ? [path.join(modelDir, 'extensions')]\n : []),\n ];\n const piPreload = await preloadPiExtensions({\n cwd: options.cwd,\n agentDir,\n models: modelRuntime,\n extensionPaths: [...new Set(piExtensionPaths)],\n ...(options.piExtensions === false || options.piExtensionFactories === undefined\n ? {}\n : { extensionFactories: await options.piExtensionFactories() }),\n ...(options.onNotice === undefined ? {} : { onNotice: options.onNotice }),\n });\n for (const override of options.providerOverrides?.() ?? []) {\n if (!override.name.trim() || override.name !== override.name.trim())\n throw new Error('Invalid native provider identity.');\n const url = new URL(override.baseUrl);\n if (!['http:', 'https:'].includes(url.protocol) || url.username || url.password)\n throw new Error('Invalid native provider base URL.');\n // Preserve external-native-wins precedence from Pi's legacy-then-native preload.\n // Legacy registration deletes a same-name native provider. Arbitrary native auth/stream\n // implementations cannot safely be broker-routed by a baseUrl-only override.\n if (modelRuntime.getRegisteredNativeProvider(override.name)) continue;\n modelRuntime.registerProvider(override.name, { baseUrl: override.baseUrl });\n }\n const resolved = await resolveModel(parsed, modelRuntime, modelSettings);\n if (parsed.apiKey !== undefined) await modelRuntime.setRuntimeApiKey(resolved.model.provider, parsed.apiKey);\n\n const reportedToolErrors = new Set<string>();\n let promptPreparationFailed = false;\n let promptPreparationError: unknown;\n let headlessReady = false;\n // Guidance for the tools currently applied, refreshed by applyTools so a mode\n // switch adds and removes its tools' prompt text with the tools themselves.\n let toolGuidance: readonly ToolPromptEntry[] = [];\n const initialSystemPrompt = [parsed.systemPrompt, ...(parsed.appendSystemPrompt ?? [])].filter(Boolean).join('\\n\\n');\n /**\n * AGENTS.md and friends, in Pi's own framing.\n *\n * The server had none of this: its prompt began at the --system-prompt flag, so a\n * repository's own instructions reached a terminal session and never a cockpit one.\n * Mirrors @earendil-works/pi-coding-agent@0.86.0 dist/core/system-prompt.js:21-27\n * (the customPrompt branch, which is the shape this host matches). `buildSystemPrompt`\n * is not exported and the package exports map has no wildcard, so the four literals\n * below are copied; re-diff them against that file on upgrade.\n *\n * Not trust-gated, deliberately: TRUST_REQUIRING_PROJECT_CONFIG_RESOURCES in Pi's\n * trust-manager covers settings.json, extensions, skills, prompts, themes, SYSTEM.md\n * and APPEND_SYSTEM.md, all of which execute or replace instructions. AGENTS.md is\n * advisory prose and Pi appends it unconditionally; gating it here would be a\n * divergence from Pi rather than parity with it.\n *\n * Resolved once: cwd is fixed for the host's lifetime, and composeSystemPrompt runs\n * on every generation.\n */\n const projectContextFiles = loadProjectContextFiles({\n cwd: options.cwd,\n agentDir,\n });\n const projectContextBlock = (() => {\n if (projectContextFiles.length === 0) return '';\n const instructions = projectContextFiles\n .map(\n ({ path: filePath, content }) =>\n `<project_instructions path=\"${filePath}\">\\n${content}\\n</project_instructions>\\n`,\n )\n .join('\\n');\n return `<project_context>\\n\\nProject-specific instructions and guidelines:\\n\\n${instructions}\\n</project_context>`;\n })();\n const workingDirectoryLine = `Current working directory: ${options.cwd.replace(/\\\\/g, '/')}`;\n /**\n * Everything the prompt is made of before a package has had a say.\n *\n * Shared with the runtime callback below rather than copied. Assembling it is\n * pure; the hook pass that follows it there is not, which is why the context\n * panel is shown this rather than a prompt built for the panel's sake.\n */\n const composeSystemPrompt = (resources: readonly ResolvedHeadlessResource[]): string => {\n const mapped = mapResources(resources);\n // formatSkillsForSystemPrompt is the same renderer headlessHost already uses to\n // bill these skills to the context panel. Until now nothing emitted it, so the\n // panel charged for an <available_skills> block the model never received. It\n // returns '' for an empty list and leads with a blank line of its own.\n // With the load tool, its description carries the skill list; without it, the prompt lists\n // the skills the agent can open with read.\n const skills = toolGuidance.some((entry) => entry.name === DOOM_LOAD_SKILL_TOOL)\n ? ''\n : formatSkillsForSystemPrompt(mapped.advertised).trim();\n // Pi's order for the same sections: operator prompt, project context, tools,\n // skills, package context, then the working directory last.\n return [\n initialSystemPrompt,\n projectContextBlock,\n formatToolPrompt(toolGuidance),\n skills,\n ...mapped.context,\n workingDirectoryLine,\n ]\n .filter(Boolean)\n .join('\\n\\n');\n };\n /** The last prompt a turn actually built, once one has. */\n let builtSystemPrompt: string | undefined;\n /**\n * What the context panel is shown: the prompt a turn sent, or the hook-free\n * base until one has.\n *\n * The base is composed from the applied snapshot rather than a fresh read, so\n * it answers at exactly the moments the tool inventory beside it answers.\n * Re-reading refuses while a selection is mid-apply, and the panel would then\n * spend a published revision saying there is no prompt before the next one\n * said there is.\n */\n const readSystemPrompt = (): HeadlessSystemPrompt | undefined => {\n if (!headlessHost) return undefined;\n if (builtSystemPrompt !== undefined) return { text: builtSystemPrompt, stage: 'effective' };\n return {\n text: composeSystemPrompt(headlessHost.appliedResources),\n stage: 'base',\n };\n };\n const beforeTool: NonNullable<DirectHarnessRuntimeOptions['beforeTool']> = async (event, context) => {\n if (!headlessReady || !headlessHost) throw new Error('Headless capabilities are not installed.');\n const patches = await headlessHost.dispatchHook('tool_call', event, context.abortSignal);\n let args = event.args;\n let block: NonNullable<HookMap['before_tool']['result']>['block'];\n for (const patch of patches) {\n if (!isRecord(patch)) continue;\n if (patch.args !== undefined) {\n if (!isJsonObject(patch.args)) throw new Error('Invalid headless tool arguments');\n args = patch.args as typeof args;\n }\n if (patch.block === undefined) continue;\n if (\n !isRecord(patch.block) ||\n typeof patch.block.reason !== 'string' ||\n (patch.block.terminate !== undefined && typeof patch.block.terminate !== 'boolean')\n ) {\n throw new Error('Invalid headless tool denial');\n }\n block = {\n reason: patch.block.reason,\n ...(typeof patch.block.terminate === 'boolean' ? { terminate: patch.block.terminate } : {}),\n };\n break;\n }\n return {\n ...(args === event.args ? {} : { args }),\n ...(block === undefined ? {} : { block }),\n };\n };\n const afterTool: NonNullable<DirectHarnessRuntimeOptions['afterTool']> = async (event, context) => {\n if (!headlessReady || !headlessHost) throw new Error('Headless capabilities are not installed.');\n const reportedError = reportedToolErrors.delete(event.toolCallId);\n const original = reportedError ? { ...event, isError: true } : event;\n const patches = await headlessHost.dispatchHook('tool_result', original, context.abortSignal);\n let content = original.content;\n let details = original.details;\n let isError = original.isError;\n let usage = original.usage;\n let terminate: boolean | undefined;\n let resultRewritten = false;\n for (const patch of patches) {\n if (!isRecord(patch)) continue;\n if (isToolContent(patch.content)) {\n content = patch.content;\n resultRewritten = true;\n }\n if ('details' in patch && isJsonValue(patch.details)) {\n details = patch.details;\n resultRewritten = true;\n }\n if (typeof patch.isError === 'boolean') {\n isError = patch.isError;\n resultRewritten = true;\n }\n if (isUsage(patch.usage)) usage = patch.usage;\n if (typeof patch.terminate === 'boolean') terminate = patch.terminate;\n }\n // Component snapshots contain the unguarded private result. A result hook cannot\n // redact model output while retaining the original payload in the renderer.\n if (resultRewritten && isRecord(details) && 'app' in details) {\n const { app: _app, ...redactedDetails } = details;\n details = redactedDetails;\n }\n return {\n ...(content === event.content ? {} : { content }),\n ...(details === event.details ? {} : { details }),\n ...(isError === event.isError ? {} : { isError }),\n ...(usage === event.usage ? {} : { usage }),\n ...(terminate === undefined ? {} : { terminate }),\n };\n };\n const runtime = await createDirectHarnessRuntime({\n cwd: options.cwd,\n sessionId: options.sessionId,\n ...(options.initialFastMode === undefined ? {} : { initialFastMode: options.initialFastMode }),\n ...(options.initialAgentLocked === undefined ? {} : { initialAgentLocked: options.initialAgentLocked }),\n ...(options.parentSessionId === undefined ? {} : { parentSessionId: options.parentSessionId }),\n storage: 'sqlite',\n historyOwnership: createHistoryOwnership({ sourceFormat: 'sqlite' }),\n sessionName: parsed.name ?? options.sessionName,\n ...(parsed.session === undefined ? {} : { sessionPath: parsed.session }),\n sessionsRoot: parsed.sessionDir ?? path.join(agentDir, 'server', 'sessions'),\n models: modelRuntime,\n model: resolved.model,\n ...(resolved.thinkingLevel === undefined ? {} : { thinkingLevel: resolved.thinkingLevel }),\n beforeModelRequest: async ({ phase }) => {\n if (!headlessReady || !headlessHost) throw new Error('Headless capabilities are not installed.');\n // Standalone hosts have no inherited axes to refresh on each turn.\n if (phase === 'turn' && options.inheritedSelection) {\n await headlessHost.inheritSelection(await options.inheritedSelection());\n }\n await headlessHost.settled();\n },\n transformContext: async (event) => {\n if (!headlessReady || !headlessHost) throw new Error('Headless capabilities are not installed.');\n const patches = await headlessHost.dispatchHook('context', event);\n let messages = event.messages;\n let systemPrompt = event.systemPrompt;\n for (const patch of patches) {\n if (!isRecord(patch)) continue;\n if (patch.messages !== undefined) {\n if (!Array.isArray(patch.messages)) throw new Error('Invalid headless context messages');\n messages = patch.messages as typeof messages;\n }\n if (patch.systemPrompt !== undefined) {\n if (typeof patch.systemPrompt !== 'string') throw new Error('Invalid headless context system prompt');\n systemPrompt = patch.systemPrompt;\n }\n }\n // Pi extensions transform last, the same precedence the tool surface gives facets:\n // a facet name wins over a Pi name, so a Pi contribution is the outer layer.\n return {\n messages: await (piHost?.transformContext(messages) ?? messages),\n systemPrompt,\n };\n },\n beforeTool,\n afterTool,\n beforePayload: async (event) => {\n if (!headlessReady || !headlessHost) throw new Error('Headless capabilities are not installed.');\n const patches = await headlessHost.dispatchHook('before_provider_request', event);\n let payload = event.payload;\n for (const patch of patches) {\n if (patch === undefined || patch === null) continue;\n if (!isRecord(patch) || !('payload' in patch)) throw new Error('Invalid headless provider payload patch');\n payload = patch.payload;\n }\n return { payload };\n },\n beforeCompaction: async (event) => {\n if (!headlessReady || !headlessHost) throw new Error('Headless capabilities are not installed.');\n const patches = await headlessHost.dispatchHook('session_before_compact', {\n reason: event.reason,\n preparation: event.preparation,\n ...(event.customInstructions === undefined\n ? {}\n : {\n instructions: event.customInstructions,\n customInstructions: event.customInstructions,\n }),\n });\n try {\n for (const patch of patches) {\n if (patch === undefined || patch === null) continue;\n if (!isRecord(patch)) throw new Error('Invalid headless compaction patch');\n if (patch.cancel !== undefined && typeof patch.cancel !== 'boolean')\n throw new Error('Invalid headless compaction cancellation');\n if (patch.decline !== undefined && typeof patch.decline !== 'boolean')\n throw new Error('Invalid headless compaction decline');\n const decline = patch.cancel === true || patch.decline === true;\n if (decline && patch.compaction !== undefined) throw new Error('Conflicting headless compaction patch');\n if (decline) return { decline: true };\n if (patch.compaction !== undefined) {\n if (!isCompactResult(patch.compaction)) throw new Error('Invalid headless compaction result');\n return { compaction: patch.compaction };\n }\n }\n } catch (error) {\n options.onNotice?.(\n `Headless compaction hook rejected: ${error instanceof Error ? error.message : String(error)}`,\n );\n return { decline: true };\n }\n return piHost?.beforeCompaction(event);\n },\n systemPrompt: async () => {\n let stage = 'resources';\n try {\n if (!headlessHost) throw new Error('Headless capabilities are not installed.');\n // ponytail: changes during resource reads still fail closed. Add a typed retry only if reproduced.\n await headlessHost.settled();\n let prompt = composeSystemPrompt(await headlessHost.readResources());\n stage = 'before_agent_start hooks';\n const patches = await headlessHost.dispatchHook('before_agent_start', {\n systemPrompt: prompt,\n });\n for (const patch of patches) {\n if (patch && typeof patch === 'object' && 'systemPrompt' in patch && typeof patch.systemPrompt === 'string') {\n prompt = patch.systemPrompt;\n }\n }\n promptPreparationFailed = false;\n promptPreparationError = undefined;\n // The panel follows what was sent, so a prompt that changed mid-session\n // republishes rather than waiting for the next selection change. Awaited\n // here, on the same stage that already journals a selection inherited\n // for this turn, so the published composition and the prompt the model\n // receives cannot disagree. Its own guard: a journal that will not take\n // the entry is a panel that lags, never a turn that is refused.\n if (prompt !== builtSystemPrompt) {\n builtSystemPrompt = prompt;\n try {\n await publishComposition();\n } catch {\n // Reported by the next publish, which starts from the same state.\n }\n }\n return prompt;\n } catch (error) {\n // A throwing system-prompt callback faults the upstream harness. Deny at model admission instead.\n promptPreparationFailed = true;\n promptPreparationError = error;\n // Diagnostic delivery must not delay or reject prompt preparation.\n observe(\n Promise.resolve().then(() =>\n options.telemetry?.recordError(\n PROMPT_PREPARATION_FAILED_EVENT,\n error,\n { session_id: options.sessionId, stage },\n { includeException: true },\n ),\n ),\n );\n return '';\n }\n },\n listCommands: () => {\n if (!headlessReady || !headlessHost) throw new Error('Headless capabilities are not installed.');\n return headlessHost.listCommands();\n },\n dispatchCommand: async (text) => {\n if (!headlessReady || !headlessHost) throw new Error('Headless capabilities are not installed.');\n const match = /^\\/(\\S+)(?:\\s+([\\s\\S]*))?$/.exec(text);\n if (!match) {\n await headlessHost.settled();\n headlessHost.assertActive();\n return false;\n }\n const name = match[1]!;\n const args = match[2] ?? '';\n if (!headlessHost.listCommands().some((entry) => entry.name === name)) {\n headlessHost.assertActive();\n return false;\n }\n await headlessHost.dispatchCommand(name, args);\n return true;\n },\n guardModelRequest: () => {\n if (promptPreparationFailed)\n throw new Error(\n `Headless capability preparation is not ready: ${harnessErrorMessage(promptPreparationError)}`,\n { cause: promptPreparationError },\n );\n if (!headlessReady || !headlessHost?.status.ready)\n throw new Error('Headless capability preparation is not ready.');\n },\n });\n // The runtime already holds the history lease. A storage failure while opening must\n // release it, or every retry of this session id fails on the stale lease.\n const opened = await (async () => {\n await runtime.session.commit(async (tx) => {\n const metadata = await tx.doc(SessionMetadataDoc);\n metadata.workspaceRoot = options.repoRoot;\n metadata.execution = JSON.stringify({\n cwd: options.cwd,\n repoRoot: options.repoRoot,\n workspaceId: options.workspaceId,\n groupingRoot: options.groupingRoot ?? options.repoRoot,\n parentSessionId: options.parentSessionId,\n sessionProvenance: options.sessionProvenance,\n });\n }, BACKGROUND_CONTEXT);\n const agent = await runtime.lane.agent(BACKGROUND_CONTEXT);\n const model = agent.model ? modelRuntime.getModel(agent.model.provider, agent.model.modelId) : undefined;\n const entries = (await runtime.readEntries()).entries\n .filter((entry) => entry.type === 'custom' && entry.customType === DOOM_CONTEXT_ENTRY_TYPE)\n .slice(-1) as unknown as AnyRecord[];\n return { model, entries };\n })().catch(async (error: unknown) => {\n await runtime\n .dispose()\n .catch((disposeError: unknown) => options.onNotice?.(`Session runtime failed to close: ${String(disposeError)}`));\n throw error;\n });\n let currentModel = opened.model;\n // Last journaled doom-agent-model projection; a model_select naming the same model is noise.\n let publishedAgentModel: string | undefined;\n // One frozen baseline, shared by every surface this session exposes.\n const sessionContext: DoomSessionContext | undefined =\n options.workspaceId === undefined\n ? undefined\n : Object.freeze({\n sessionId: runtime.sessionId,\n workspaceId: options.workspaceId,\n workspaceRoot: options.groupingRoot ?? options.repoRoot,\n checkoutRoot: options.repoRoot,\n cwd: options.cwd,\n ...(options.parentSessionId === undefined ? {} : { parentSessionId: options.parentSessionId }),\n ...(options.sessionProvenance === undefined ? {} : { provenance: options.sessionProvenance }),\n });\n const entries = opened.entries;\n const listeners = new Set<(frame: SessionFrame) => void>();\n const selectionListeners = new Set<(selection: DoomHeadlessSelection) => void>();\n let latestSelection: DoomHeadlessSelection = options.selection;\n const initialSelection = restoreHeadlessSelection(entries, options.selection);\n let headlessHost: HeadlessHost | undefined;\n let mcpServiceRoot: CordisContext | undefined;\n let mcpLifecycle = new AbortController();\n let piHost: PiExtensionHost | undefined;\n let client: ReturnType<typeof createHeadlessClient> | undefined;\n let disposed = false;\n let disposePromise: Promise<void> | undefined;\n let publishComposition: (selection?: DoomHeadlessSelection) => Promise<void> = async () => {\n throw new Error('Direct headless composition publisher is not installed.');\n };\n const readMcpContext = (signal: AbortSignal): DoomMcpContextSnapshot => {\n signal.throwIfAborted();\n const host = headlessHost;\n if (!host || disposed) throw new Error('Session context is unavailable.');\n const status = host.status;\n if (!status.ready || status.requestedRevision !== status.appliedRevision)\n throw new Error('Session context is unavailable.');\n const root = fs.realpathSync(options.repoRoot);\n const globalInstruction = path.join(fs.realpathSync(agentDir), 'AGENTS.md');\n const instructions = projectContextFiles.flatMap(({ path: filePath, content }) => {\n const relative = path.relative(options.repoRoot, filePath);\n if (relative === '' || relative.startsWith('..') || path.isAbsolute(relative)) return [];\n try {\n const canonicalPath = fs.realpathSync(filePath);\n if (canonicalPath === globalInstruction) return [];\n const canonicalRelative = path.relative(root, canonicalPath);\n if (canonicalRelative === '' || canonicalRelative.startsWith('..') || path.isAbsolute(canonicalRelative))\n return [];\n } catch {\n return [];\n }\n return [{ path: relative.replaceAll(path.sep, '/'), content }];\n });\n const selection = host.context.selection;\n const persona = host.appliedResources.find(\n ({ name, kind }) => name === 'po/profile-config' && kind === 'context',\n )?.text;\n signal.throwIfAborted();\n const current = host.status;\n if (\n !current.ready ||\n current.appliedRevision !== status.appliedRevision ||\n current.requestedRevision !== current.appliedRevision\n )\n throw new Error('Session context changed. Call load_context again.');\n return {\n session: { id: runtime.sessionId, revision: status.appliedRevision },\n repository: { root: options.repoRoot, cwd: options.cwd },\n selection: {\n profile: selection.profile ?? null,\n domains: [...selection.domains],\n majorMode: selection.majorMode,\n activeLayers: [...selection.activeLayers],\n minorModes: [...(selection.state?.['minor-mode'] ?? [])],\n },\n instructions,\n persona: persona ?? null,\n };\n };\n\n const childSessionProvider = createHeadlessChildSessionServiceProvider({\n parentSessionId: runtime.sessionId,\n cwd: options.cwd,\n sessionsRoot: parsed.sessionDir ?? path.join(agentDir, 'server', 'sessions'),\n models: modelRuntime,\n defaultModel: () => currentModel,\n parentFastMode: async () => {\n const state = await runtime.readState();\n if (typeof state.fastMode !== 'boolean') throw new Error('Parent Fast mode must be a boolean.');\n return state.fastMode;\n },\n subscribeMcpTool: (listener) => {\n const root = mcpServiceRoot;\n return (\n root?.on('internal/service', (name) => {\n if (name === DOOM_CHILD_SESSION_MCP_TOOL_SERVICE) listener();\n }) ?? (() => undefined)\n );\n },\n hooks: () => {\n if (disposed || !headlessReady || !headlessHost?.status.ready)\n throw new Error('Headless capabilities are not installed.');\n return mcpServiceRoot?.get(DOOM_CHILD_SESSION_HOOKS_SERVICE) as DoomChildSessionHooks | undefined;\n },\n mcpTool: () => {\n if (disposed || !headlessReady || !headlessHost?.status.ready) return undefined;\n return mcpServiceRoot?.get(DOOM_CHILD_SESSION_MCP_TOOL_SERVICE) as DoomChildSessionMcpTool | undefined;\n },\n });\n\n const completeAuxiliaryModel = async (\n reference: string,\n request: Omit<DoomHeadlessToolCompletionRequest, 'tools'> & {\n tools?: DoomHeadlessToolCompletionRequest['tools'];\n },\n ) => {\n if (disposed || !headlessReady || promptPreparationFailed || !headlessHost?.status.ready)\n throw new Error('Headless capability preparation is not ready.');\n request.signal?.throwIfAborted();\n const separator = reference.indexOf('/');\n const model =\n separator > 0 ? modelRuntime.getModel(reference.slice(0, separator), reference.slice(separator + 1)) : undefined;\n if (!model || !modelRuntime.hasConfiguredAuth(model.provider))\n throw new Error(`Model is not configured: ${reference}`);\n if (!runtime.completeModel) throw new Error('The runtime does not support auxiliary model requests.');\n const response = await runtime.completeModel(\n model,\n {\n systemPrompt: request.systemPrompt,\n messages: [{ role: 'user', content: request.input, timestamp: Date.now() }],\n ...(request.tools ? { tools: [...request.tools] } : {}),\n },\n {\n signal: request.signal,\n maxTokens: request.maxTokens,\n cacheRetention: request.cacheRetention,\n reasoningEffort: 'none',\n maxRetries: 0,\n },\n );\n request.signal?.throwIfAborted();\n if (response.stopReason === 'error' || response.stopReason === 'aborted')\n throw new Error(response.errorMessage ?? `Model stopped: ${response.stopReason}`);\n return response;\n };\n\n const informationalMessage = (message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n }): AgentMessage => {\n if (!message || typeof message.type !== 'string' || !message.type.trim() || typeof message.text !== 'string')\n throw new TypeError('Informational messages require a non-empty type and string text.');\n if (message.display !== undefined && typeof message.display !== 'boolean')\n throw new TypeError('Informational message display must be a boolean.');\n const details = message.details === undefined ? undefined : boundedJsonCopy(message.details);\n return {\n role: 'custom',\n customType: message.type,\n content: message.text,\n display: message.display ?? true,\n ...(details === undefined ? {} : { details }),\n timestamp: Date.now(),\n };\n };\n const executionContext = (selection: DoomHeadlessSelection): DoomHeadlessExecutionContext => ({\n cwd: options.cwd,\n repoRoot: options.repoRoot,\n sessionId: runtime.sessionId,\n ...(sessionContext === undefined ? {} : { sessionContext }),\n environment: options.environment,\n client: client!.client,\n model: currentModel === undefined ? undefined : modelMetadata(currentModel),\n getModel(provider, id) {\n const model = modelRuntime.getModel(provider, id);\n return model ? modelMetadata(model) : undefined;\n },\n getAvailableModels() {\n if (disposed) throw new Error('The session is closed.');\n return modelRuntime\n .getAvailableSnapshot()\n .filter((model) => modelRuntime.hasConfiguredAuth(model.provider))\n .map(({ provider, id }) => ({ provider, id }));\n },\n selection,\n textCompletion: {\n available(reference) {\n const separator = reference.indexOf('/');\n return (\n separator > 0 &&\n !!modelRuntime.getModel(reference.slice(0, separator), reference.slice(separator + 1)) &&\n modelRuntime.hasConfiguredAuth(reference.slice(0, separator))\n );\n },\n async summarize(reference, request) {\n if (disposed || !headlessReady || promptPreparationFailed || !headlessHost?.status.ready)\n throw new Error('Headless capability preparation is not ready.');\n request.signal?.throwIfAborted();\n const separator = reference.indexOf('/');\n const model =\n separator > 0\n ? modelRuntime.getModel(reference.slice(0, separator), reference.slice(separator + 1))\n : undefined;\n if (!model || !modelRuntime.hasConfiguredAuth(model.provider))\n throw new Error(`Model is not configured: ${reference}`);\n if (!runtime.completeModel) throw new Error('The runtime does not support auxiliary model requests.');\n const messages = boundedJsonCopy(request.messages);\n if (!Array.isArray(messages) || !messages.every(isSummaryMessage))\n throw new TypeError('Summary requests require supported native messages.');\n if (\n typeof request.instructions !== 'string' ||\n (request.previousSummary !== undefined && typeof request.previousSummary !== 'string')\n )\n throw new TypeError('Summary instructions and previous summary must be strings.');\n if (\n request.thinkingLevel !== undefined &&\n !['off', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max'].includes(request.thinkingLevel)\n )\n throw new TypeError('Unsupported summary thinking level.');\n let summaryFailure: Error | undefined;\n const summary = await generateSummary(\n messages,\n model,\n DEFAULT_COMPACTION_SETTINGS.reserveTokens,\n undefined,\n undefined,\n request.signal,\n request.instructions,\n request.previousSummary,\n request.thinkingLevel,\n (_model, context, options) => {\n const stream = createAssistantMessageEventStream();\n void runtime.completeModel!(model, context, {\n signal: options?.signal,\n maxTokens: options?.maxTokens,\n cacheRetention: 'none',\n reasoningEffort: !model.reasoning || request.thinkingLevel === 'off' ? 'none' : request.thinkingLevel,\n maxRetries: 0,\n }).then(\n (response) => {\n if (response.stopReason === 'aborted')\n summaryFailure = new Error(response.errorMessage ?? 'Summary was aborted.');\n stream.end(response);\n },\n (error: unknown) => {\n summaryFailure = error instanceof Error ? error : new Error(String(error));\n stream.end({\n role: 'assistant',\n api: model.api,\n provider: model.provider,\n model: model.id,\n content: [],\n stopReason: request.signal?.aborted ? 'aborted' : 'error',\n errorMessage: error instanceof Error ? error.message : String(error),\n timestamp: Date.now(),\n usage: {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n totalTokens: 0,\n cost: {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n total: 0,\n },\n },\n });\n },\n );\n return stream;\n },\n );\n request.signal?.throwIfAborted();\n if (summaryFailure) throw summaryFailure;\n if (!summary.trim()) throw new Error('Summarization returned an empty checkpoint.');\n return summary;\n },\n async complete(reference, request) {\n const response = await completeAuxiliaryModel(reference, {\n ...request,\n tools: undefined,\n });\n return response.content\n .filter((part) => part.type === 'text')\n .map((part) => part.text)\n .join('')\n .trim();\n },\n },\n toolCompletion: {\n async complete(reference, request) {\n const response = await completeAuxiliaryModel(reference, request);\n if (response.stopReason === 'length') throw new Error('Auxiliary tool request exceeded its output limit.');\n return {\n toolCalls: response.content.filter((part) => part.type === 'toolCall'),\n usage: response.usage,\n };\n },\n },\n session: {\n setFastMode: (enabled) => runtime.setFastMode(enabled),\n async readModelSettings() {\n const selected = (await runtime.lane.agent(BACKGROUND_CONTEXT)).model;\n const model = selected ? modelRuntime.getModel(selected.provider, selected.modelId) : undefined;\n const thinkingLevel = (await runtime.lane.agent(BACKGROUND_CONTEXT)).thinkingLevel;\n return {\n ...(model ? { model: modelIdentity(model) } : {}),\n thinkingLevel,\n };\n },\n async setModelSettings(settings) {\n if (settings.model) await runtime.setModel(settings.model);\n if (settings.thinkingLevel !== undefined) await runtime.setThinkingLevel(settings.thinkingLevel);\n },\n async forkSource() {\n const sessionFile = runtime.sessionFile;\n if (typeof sessionFile !== 'string') throw new Error('The parent session has no persisted journal.');\n const { leafId } = await runtime.readEntries();\n return {\n kind: 'v4-fork' as const,\n sessionFile,\n branch: runtime.laneName,\n ...(leafId === null ? {} : { entryId: leafId }),\n };\n },\n entries: async (query) => {\n let entries = (await runtime.readEntries()).entries.filter(\n (entry) =>\n (!query?.type || entry.type === query.type) &&\n (!query?.customType || (entry.type === 'custom' && entry.customType === query.customType)),\n );\n if (query?.limit !== undefined) entries = entries.toReversed().slice(0, query.limit);\n return entries as unknown as AnyRecord[];\n },\n async appendMessage(message) {\n return runtime.appendMessage(informationalMessage(message));\n },\n async admitMessage(message, delivery = 'followUp', requestId) {\n try {\n if (disposed || !headlessReady || promptPreparationFailed || !headlessHost?.status.ready)\n throw new Error('Headless capability preparation is not ready.');\n if (delivery !== 'steer' && delivery !== 'followUp')\n throw new TypeError('Custom message delivery must be steer or followUp.');\n if (requestId !== undefined && (typeof requestId !== 'string' || !requestId.trim()))\n throw new TypeError('Custom message requestId must be a non-empty string.');\n const submission = await runtime.submitInternalMessage(informationalMessage(message), delivery, requestId);\n void submission.settled.catch((error: unknown) =>\n client!.client.notify({\n body: error instanceof Error ? error.message : String(error),\n level: 'error',\n }),\n );\n } catch (error) {\n throw new DoomHeadlessPromptAdmissionError(error);\n }\n },\n registerCheckpointBoundary(callback) {\n if (!runtime.registerCheckpointBoundary) throw new Error('Native checkpoint boundaries are unavailable.');\n const registration = runtime.registerCheckpointBoundary(async (boundary) => {\n if (disposed || !headlessReady || !headlessHost?.status.ready) return;\n await callback({\n signal: boundary.signal,\n appendMessage: (message) => boundary.appendMessage(informationalMessage(message)),\n });\n });\n return {\n appendMessage: (message) =>\n disposed || !headlessReady || !headlessHost?.status.ready\n ? Promise.resolve(undefined)\n : registration.appendMessage(informationalMessage(message)),\n dispose: () => registration.dispose(),\n };\n },\n async contextMessages() {\n const assertReadable = () => {\n if (disposed || !headlessReady || promptPreparationFailed || !headlessHost?.status.ready)\n throw new Error('Headless capability preparation is not ready.');\n };\n assertReadable();\n const messages = boundedJsonCopy(await runtime.getContextMessages()) as AnyRecord[];\n assertReadable();\n return messages;\n },\n async contextUsage() {\n const usage = (await runtime.getSessionStats()).contextUsage;\n return usage ? { tokens: usage.tokens, contextWindow: usage.contextWindow } : undefined;\n },\n setLabel: (entryId, label) => runtime.setLabel(entryId, label),\n async appendCustomEntry(type, data) {\n await runtime.appendCustomEntry(type, data);\n },\n async prompt(text, delivery) {\n await (\n await runtime.submitPrompt(\n text,\n undefined,\n delivery === 'steer' || delivery === 'followUp' ? delivery : undefined,\n )\n ).settled;\n },\n async admitPrompt(text, delivery, origin, requestId) {\n try {\n if (origin === 'operator' && delivery === 'followUp') return await runtime.followUp(text);\n const submission =\n delivery === 'interrupt'\n ? await runtime.submitUserPrompt(text)\n : origin === 'operator'\n ? await runtime.submitPrompt(text, undefined, delivery === 'steer' ? 'steer' : undefined)\n : await runtime.submitInternalMessage(text, delivery === 'steer' ? 'steer' : 'followUp', requestId);\n void submission.settled.catch((error: unknown) =>\n client!.client.notify({\n body: error instanceof Error ? error.message : String(error),\n level: 'error',\n }),\n );\n } catch (error) {\n throw new DoomHeadlessPromptAdmissionError(error);\n }\n },\n abort: () => runtime.abort(),\n compact: (instructions) => runtime.compact(instructions),\n async activity() {\n const state = await runtime.readState();\n return {\n hasPendingMessages: Number(state.pendingMessageCount) > 0,\n // Settlement fences external operations but is not an active model run.\n isIdle: (!state.isStreaming || state.operationId === 'settling') && !state.isCompacting,\n };\n },\n setName: (name) => runtime.setName(name),\n },\n shutdown: () => stop(),\n });\n\n client = createHeadlessClient({\n appendCustomEntry: async (type, data) => {\n await runtime.appendCustomEntry(type, data);\n },\n emitFrame: (frame) => emitTo(listeners, frame),\n });\n\n const unsubscribePresentation = runtime.onPresentationFrame((frame) => emitTo(listeners, frame));\n let logicalRunActive = false;\n let runMessages: AgentMessage[] = [];\n let requiredServerPackages: readonly string[] = [];\n let installedServerPackages: readonly string[] = [];\n const unsubscribeEvents = runtime.onEvent(async (event, _context) => {\n if ((event.type === 'run_start' || event.type === 'run_resume') && !logicalRunActive) {\n logicalRunActive = true;\n runMessages = [];\n }\n if (event.type === 'message_end' && event.runId !== undefined) runMessages.push(event.message);\n if (event.type === 'run_end' && !event.successorActive) {\n const messages = runMessages;\n runMessages = [];\n const ended = logicalRunActive;\n logicalRunActive = false;\n if (ended && headlessHost?.status.ready) await headlessHost.dispatchHook('agent_end', { messages });\n }\n if (event.type === 'config_update' && event.property === 'model') {\n const selected = (await runtime.lane.agent(BACKGROUND_CONTEXT)).model;\n currentModel = selected ? modelRuntime.getModel(selected.provider, selected.modelId) : undefined;\n if (headlessHost !== undefined && currentModel !== undefined && headlessHost.status.ready) {\n await headlessHost.dispatchHook('model_select', {\n model: currentModel,\n });\n // Clients get no wire event for a model chosen inside the agent (plan mode's planning\n // model), so journal it on the entry_appended road the dashboard footer folds.\n const projection = { provider: currentModel.provider, id: currentModel.id };\n const serialized = JSON.stringify(projection);\n if (serialized !== publishedAgentModel) {\n publishedAgentModel = serialized;\n await runtime.appendCustomEntry(DOOM_AGENT_MODEL_ENTRY_TYPE, projection);\n }\n }\n }\n const hook = event.type === 'run_end' && event.successorActive ? undefined : eventHook(event.type);\n if (headlessHost !== undefined && hook !== undefined && headlessHost.status.ready)\n await headlessHost.dispatchHook(\n hook,\n event.type === 'navigation_start' ? { ...event, status: 'started' } : (event as unknown as AnyRecord),\n );\n });\n\n // The facet tools from the most recent reconciliation. Kept so a Pi-side restriction change can\n // rebuild the merged surface in memory, the same way the kernel's tools sink does, instead of\n // forcing a session reload.\n let appliedFacetTools: readonly HeadlessTool[] = [];\n let appliedSessionTools = new Map<string, AppliedSessionTool>();\n let appliedSkills = new Map<string, { descriptor: SessionSkillDescriptor; content: string }>();\n let surfaceRevision = 0;\n let toolSurfaceReady = false;\n let toolReapplyQueued = false;\n let mcpSurfaceRevision = 0;\n let mcpSurfaceReady = false;\n let appliedMcpTools = new Map<string, AppliedSessionTool>();\n let appliedMcpSkills = new Map<string, { descriptor: SessionSkillDescriptor; skill: DoomMcpSkill }>();\n let appliedMcpUiResources = new Map<\n string,\n { descriptor: SessionUiResourceDescriptor; resource: DoomMcpUiResource }\n >();\n let mcpRefreshQueued = false;\n\n const scheduleMcpRefresh = (): void => {\n if (mcpRefreshQueued || disposed || !headlessReady) return;\n mcpRefreshQueued = true;\n queueMicrotask(() => {\n mcpRefreshQueued = false;\n // A selection change in flight also recomposes MCP once it is ready again.\n if (disposed || !headlessReady || !headlessHost?.status.ready) return;\n void prepareMcpSurface().catch((error: unknown) =>\n options.onNotice?.(`MCP tool refresh failed: ${error instanceof Error ? error.message : String(error)}`),\n );\n });\n };\n\n const prepareMcpSurface = async (): Promise<void> => {\n if (!headlessHost?.status.ready) throw new Error('Headless capabilities are not installed.');\n if (mcpServiceRoot === undefined) throw new Error('MCP session services are not installed.');\n mcpSurfaceReady = false;\n mcpLifecycle.abort();\n const lifecycle = new AbortController();\n mcpLifecycle = lifecycle;\n const pluginContext = {\n execution: headlessHost.context,\n services: {\n get: <T>(name: string): T | undefined =>\n (mcpServiceRoot?.get(name) as T | undefined) ?? piHost?.getService<T>(name),\n },\n selection: {\n read: () => headlessHost!.context.selection,\n change: (change: Parameters<HeadlessHost['changeSelection']>[0]) => headlessHost!.changeSelection(change),\n },\n loadContext: () => readMcpContext(lifecycle.signal),\n signal: lifecycle.signal,\n refresh: scheduleMcpRefresh,\n };\n const nextTools = new Map<string, AppliedSessionTool>();\n const nextSkills = new Map<string, { descriptor: SessionSkillDescriptor; skill: DoomMcpSkill }>();\n const nextUiResources = new Map<string, { descriptor: SessionUiResourceDescriptor; resource: DoomMcpUiResource }>();\n for (const loaded of options.mcpPlugins ?? []) {\n const selection = headlessHost.context.selection;\n if (\n !loaded.declaration.owners.some(\n (owner) =>\n owner.majorMode === selection.majorMode &&\n (owner.layer === 'default' || selection.activeLayers.includes(owner.layer)),\n )\n )\n continue;\n const scope =\n typeof loaded.plugin.session === 'function'\n ? await loaded.plugin.session(pluginContext)\n : loaded.plugin.session;\n lifecycle.signal.throwIfAborted();\n const resources = scope.uiResources ?? [];\n for (const resource of resources) {\n const uri = new URL(resource.uri);\n if (\n uri.protocol !== 'ui:' ||\n !uri.hostname ||\n uri.username ||\n uri.password ||\n uri.search ||\n uri.hash ||\n uri.href !== resource.uri ||\n resource.mimeType !== 'text/html;profile=mcp-app'\n )\n throw new Error(`Invalid MCP UI resource '${resource.uri}'`);\n if (nextUiResources.has(resource.uri) && nextUiResources.get(resource.uri)!.resource !== resource)\n throw new Error(`Duplicate MCP UI resource '${resource.uri}'`);\n const descriptor: SessionUiResourceDescriptor = {\n uri: resource.uri,\n name: resource.name,\n mimeType: resource.mimeType,\n ...(resource.description === undefined ? {} : { description: resource.description }),\n ...(resource._meta === undefined ? {} : { _meta: resource._meta }),\n };\n nextUiResources.set(resource.uri, { descriptor, resource });\n }\n for (const tool of scope.tools ?? []) {\n if (nextTools.has(tool.name)) throw new Error(`Duplicate MCP tool '${tool.name}'`);\n const resourceUri = tool._meta?.ui?.resourceUri;\n if (resourceUri !== undefined && !resources.some((resource) => resource.uri === resourceUri))\n throw new Error(`MCP tool '${tool.name}' references a UI resource not owned by its plugin`);\n // Tool restrictions reach the agent surface through `allowsTool`; the remote surface is\n // composed here and must honour the same withdrawals.\n if (!headlessHost!.allowsTool(tool.name)) continue;\n nextTools.set(tool.name, {\n descriptor: {\n name: tool.name,\n label: tool.label ?? tool.name,\n description: tool.description,\n parameters: tool.parameters,\n ...(tool.annotations === undefined ? {} : { annotations: tool.annotations }),\n ...(tool.outputSchema === undefined ? {} : { outputSchema: tool.outputSchema }),\n ...(tool._meta === undefined ? {} : { _meta: tool._meta }),\n },\n execute: (toolCallId, parameters, signal, onUpdate, execution) =>\n tool.execute(toolCallId, parameters, signal, onUpdate, execution ?? headlessHost!.context),\n });\n }\n for (const skill of scope.skills ?? []) {\n if ([...nextSkills.values()].some((candidate) => candidate.descriptor.name === skill.name))\n throw new Error(`Duplicate MCP skill '${skill.name}'`);\n const uri = `po://session/${encodeURIComponent(runtime.sessionId)}/mcp/skills/${encodeURIComponent(skill.name)}`;\n nextSkills.set(uri, {\n descriptor: { name: skill.name, description: skill.description, uri },\n skill,\n });\n }\n }\n appliedMcpTools = nextTools;\n appliedMcpSkills = nextSkills;\n appliedMcpUiResources = nextUiResources;\n mcpSurfaceRevision += 1;\n mcpSurfaceReady = true;\n };\n\n const applyToolSurface = async (tools: readonly HeadlessTool[]): Promise<void> => {\n toolSurfaceReady = false;\n const modelTools = tools.filter(isDoomHeadlessToolModelVisible);\n const facetTools = modelTools.map((tool) =>\n toolAdapter(\n tool.name === DOOM_LOAD_SKILL_TOOL\n ? {\n ...tool,\n description: describeLoadSkillTool(tool.description, headlessHost?.appliedResources ?? []),\n }\n : tool,\n () => headlessHost!.context,\n reportedToolErrors,\n ),\n );\n // Facet tools win a name collision, including when the collision is with a\n // name the facet surface declared and then gated out. The reconciled set\n // owns the name either way, so a Pi extension tool never fills a slot a\n // mode-aware facet deliberately left empty.\n const facetNames = headlessHost?.declaredToolNames ?? new Set(facetTools.map((tool) => tool.name));\n const piTools = (piHost?.tools ?? [])\n .filter((tool) => !facetNames.has(tool.name) && headlessHost?.allowsTool(tool.name) !== false)\n .map((tool): AgentHarnessTool<object | undefined> => ({\n ...tool,\n async execute(...args) {\n headlessHost!.assertActive();\n if (!toolSurfaceReady || !headlessHost!.allowsTool(tool.name))\n throw new Error(`Tool '${tool.name}' is no longer active`);\n return tool.execute(...args);\n },\n }));\n const piNames = new Set(piTools.map((tool) => tool.name));\n const nextToolGuidance = [\n ...(piHost?.toolGuidance ?? []).filter((entry) => piNames.has(entry.name)),\n ...modelTools.map((tool) => ({\n name: tool.name,\n ...(tool.promptSnippet === undefined ? {} : { promptSnippet: tool.promptSnippet }),\n ...(tool.promptGuidelines === undefined ? {} : { promptGuidelines: tool.promptGuidelines }),\n })),\n ];\n await runtime.replaceTools([...piTools, ...facetTools]);\n const next = new Map<string, AppliedSessionTool>();\n for (const tool of piTools) {\n next.set(tool.name, {\n descriptor: {\n name: tool.name,\n label: tool.label ?? tool.name,\n description: tool.description,\n parameters: tool.parameters,\n },\n execute: (toolCallId, parameters, signal, onUpdate) =>\n piHost!.executeTool(tool.name, toolCallId, parameters, signal, onUpdate),\n });\n }\n for (const tool of tools) {\n next.set(tool.name, {\n descriptor: {\n name: tool.name,\n label: tool.label ?? tool.name,\n description: tool.description,\n parameters: tool.parameters,\n ...(tool.annotations === undefined ? {} : { annotations: tool.annotations }),\n ...(tool.outputSchema === undefined ? {} : { outputSchema: tool.outputSchema }),\n ...(tool._meta === undefined ? {} : { _meta: tool._meta }),\n },\n execute: (toolCallId, parameters, signal, onUpdate) =>\n tool.execute(toolCallId, parameters, signal, onUpdate, headlessHost!.context),\n });\n }\n toolGuidance = nextToolGuidance;\n appliedSessionTools = next;\n surfaceRevision += 1;\n toolSurfaceReady = true;\n };\n\n /**\n * Rebuilds the merged tool surface after a Pi extension narrowed its own tools.\n *\n * Deferred because the tool surface arbiter calls `setActiveTools` synchronously from inside\n * `register`, and coalesced because several extensions register their restrictions in the same\n * tick. The facet set is unchanged, so this never re-enters the kernel.\n */\n // Facet reconciliation and Pi restriction changes both rebuild the surface. Each run reads\n // the latest facet tools when it starts, so the surface converges on the last change\n // instead of whichever overlapping replaceTools happened to finish last.\n let toolLine: Promise<void> = Promise.resolve();\n const applyLatestTools = (): Promise<void> => {\n // A failed run was already reported to the caller that queued it; the line moves on.\n toolLine = toolLine.catch(() => undefined).then(() => applyToolSurface(appliedFacetTools));\n return toolLine;\n };\n\n const scheduleToolReapply = (): void => {\n if (toolReapplyQueued) return;\n toolReapplyQueued = true;\n queueMicrotask(() => {\n toolReapplyQueued = false;\n if (disposed) return;\n void applyLatestTools().catch((error: unknown) =>\n options.onNotice?.(\n `Pi extension tool refresh failed: ${error instanceof Error ? error.message : String(error)}`,\n ),\n );\n });\n };\n\n let admittedToolSurface: Pick<SessionToolSurface, 'readSurface' | 'invokeTool'> | undefined;\n const prepareFacets = (root: CordisContext): void => {\n mcpServiceRoot = root;\n root.plugin((context) => {\n context.provide(DOOM_CHILD_SESSION_SERVICE, childSessionProvider.get());\n context.effect(() => () => childSessionProvider.close(), 'headless child session service lifetime');\n });\n if (headlessHost !== undefined) throw new Error('Direct headless facets were prepared more than once.');\n if (piPreload !== undefined) {\n piHost = createPiExtensionHost({\n cwd: options.cwd,\n agentDir,\n models: modelRuntime,\n settings,\n runtime,\n preload: piPreload,\n getModel: () => currentModel,\n getThinkingLevel: () => resolved.thinkingLevel ?? 'off',\n client: () => client?.client,\n onActiveToolsChanged: scheduleToolReapply,\n serverServices: {\n sessionId: options.sessionId,\n get: <T>(name: string) => root.get(name) as T | undefined,\n },\n ...(options.onNotice === undefined ? {} : { onNotice: options.onNotice }),\n });\n }\n headlessHost = new HeadlessHost(root, {\n candidates: options.candidates,\n toolSurface: () => admittedToolSurface,\n selection: initialSelection,\n selectionOverrides: [\n ...new Set([\n ...(options.selectionOverrides ?? []),\n ...(['majorMode', 'domains', 'profile'] as const).filter(\n (axis) => JSON.stringify(initialSelection[axis]) !== JSON.stringify(options.selection[axis]),\n ),\n ]),\n ],\n context: executionContext,\n resolveSelection: options.resolveSelection,\n validateSelection: (selection) => {\n for (const packageName of requiredServerPackages) {\n const eligible = options.candidates.some(\n (entry) =>\n entry.packageName === packageName &&\n entry.scopes.includes('session') &&\n entry.owners.some(\n (owner) =>\n owner.majorMode === selection.majorMode &&\n (owner.layer === 'default' || selection.activeLayers.includes(owner.layer)),\n ),\n );\n if (!eligible || !installedServerPackages.includes(packageName))\n throw new Error(\n `Required headless package '${packageName}' is unavailable. Run po sync, then reopen this session.`,\n );\n }\n },\n ...(options.allowedTools === undefined ? {} : { allowedTools: () => options.allowedTools }),\n applyTools: async (tools) => {\n appliedFacetTools = tools;\n await applyLatestTools();\n },\n applyResources: async (next) => {\n const mapped = mapResources(next);\n // Facet skills win a name collision, for the same reason facet tools do.\n const facetNames = new Set((mapped.harness.skills ?? []).map((skill) => skill.name));\n const piSkills = (piHost?.skills ?? []).filter((skill) => !facetNames.has(skill.name));\n const mergedSkills = [...piSkills, ...(mapped.harness.skills ?? [])];\n await runtime.replaceResources(\n piSkills.length === 0 ? mapped.harness : { ...mapped.harness, skills: mergedSkills },\n );\n appliedSkills = new Map(\n mergedSkills.map((skill) => {\n const uri = `po://session/${encodeURIComponent(runtime.sessionId)}/skills/${encodeURIComponent(skill.name)}`;\n return [\n uri,\n {\n descriptor: {\n name: skill.name,\n description: skill.description,\n uri,\n },\n content: skill.content,\n },\n ];\n }),\n );\n surfaceRevision += 1;\n // The load tool lists the skills in its description, so it follows them.\n if (appliedFacetTools.some((tool) => tool.name === DOOM_LOAD_SKILL_TOOL)) await applyLatestTools();\n },\n onApplied: async (selection) => {\n options.publishSelectionStatus?.((source, text) => client!.client.setStatus(source, text), selection);\n latestSelection = selection;\n for (const listener of selectionListeners) listener(selection);\n },\n onError: (error) => options.onNotice?.(`Headless selection failed: ${harnessErrorMessage(error)}`),\n });\n publishComposition = createHeadlessCompositionPublisher(\n runtime,\n headlessHost,\n options.environment,\n (selection) => options.contextGroups?.(root, selection) ?? [],\n readSystemPrompt,\n );\n headlessHost.subscribeSelection(async (selection) => {\n // `onApplied` runs before HeadlessHost publishes its ready snapshot. Recompose\n // the remote surface here, after selection is coherent, rather than making a\n // transient not-ready state fail the host selection.\n if (!headlessReady || !headlessHost?.status.ready) return;\n // A throw here marks the whole host not ready. That is right for a composition that\n // failed to publish, but not for the remote MCP surface: a failure there, or a newer\n // refresh aborting this one, must not block the session's own dispatch.\n try {\n await prepareMcpSurface();\n } catch (error) {\n // A superseded refresh ends with its lifecycle signal's AbortError.\n if (!(error instanceof Error && error.name === 'AbortError'))\n options.onNotice?.(`MCP tool refresh failed: ${error instanceof Error ? error.message : String(error)}`);\n }\n await publishComposition(selection);\n });\n };\n\n const activateFacets = async (installed: InstalledServerFacets): Promise<void> => {\n if (headlessHost === undefined) throw new Error('Direct headless host was not prepared.');\n const host = headlessHost;\n // Dispose can run while activation awaits. Continuing would mark a closed session ready\n // and run its startup hooks against a disposed runtime.\n const assertLive = (): void => {\n if (disposed) throw new Error('The session was closed while it was starting.');\n };\n requiredServerPackages = (await options.requiredServerPackages?.()) ?? [];\n installedServerPackages = installed.installedPackages;\n assertLive();\n host.setAvailableSources(installed.installedPackages);\n // Pi extensions load before the first selection so their session lifetime tools and skills\n // are present in the very first composition. A failure here is reported, never fatal.\n if (piHost !== undefined) {\n try {\n await piHost.load();\n } catch (error) {\n options.onNotice?.(`Pi extensions failed to load: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n assertLive();\n await host.select(initialSelection);\n assertLive();\n // Nothing recomputes readiness after this point, so a session whose first selection\n // failed would stay registered but unable to run. Fail creation instead.\n if (!host.status.ready)\n throw new Error(`Session capabilities failed to start: ${host.status.error ?? 'selection is not ready'}`);\n headlessReady = true;\n await prepareMcpSurface();\n assertLive();\n // Honor persisted abort/pause intent before recovering an interrupted native drive.\n await runtime.recover();\n assertLive();\n await host.dispatchHook('session_start', {});\n await publishComposition();\n // Startup waits for continuation admission, not the resumed provider/tool work.\n // An idle lane has released its ownership before activation can succeed.\n const resumed = await runtime.admitResume();\n void resumed.settled.catch((error: unknown) =>\n options.onNotice?.(`Session resume failed: ${harnessErrorMessage(error)}`),\n );\n assertLive();\n };\n\n const dispose = (): Promise<void> => {\n disposePromise ??= (async () => {\n if (disposed) return;\n // Only a session that finished activation ran session_start, so only it gets the\n // matching shutdown hook. The owner disposes this host before removing facets, so a\n // ready host is still ready when the hook is dispatched.\n const wasReady = headlessReady;\n disposed = true;\n headlessReady = false;\n mcpSurfaceReady = false;\n mcpLifecycle.abort();\n const failures: unknown[] = [];\n try {\n await runtime.interrupt();\n } catch (error) {\n failures.push(error);\n }\n try {\n if (wasReady && headlessHost?.status.ready) await headlessHost.dispatchHook('session_shutdown', {});\n } catch (error) {\n failures.push(error);\n }\n // Native close seals late model/tool effects while their extension hosts still exist.\n try {\n await runtime.dispose();\n } catch (error) {\n failures.push(error);\n }\n try {\n await piHost?.shutdown();\n } catch (error) {\n failures.push(error);\n }\n try {\n await headlessHost?.close();\n } catch (error) {\n failures.push(error);\n }\n // Activity cleanup still needs its client to clear status during host close.\n client?.dispose();\n unsubscribePresentation();\n unsubscribeEvents();\n try {\n await childSessionProvider.close();\n } catch (error) {\n failures.push(error);\n }\n releaseEnvironment();\n if (failures.length) throw new AggregateError(failures, 'Headless session shutdown failed');\n })();\n return disposePromise;\n };\n const stop = (): void => {\n void dispose().catch((error: unknown) => options.onNotice?.(harnessErrorMessage(error)));\n };\n\n const invokeSurfaceTool = async (\n invocation: Parameters<SessionToolSurface['invokeTool']>[0],\n readRevision: () => number,\n readTools: () => Map<string, AppliedSessionTool>,\n ready: () => boolean,\n lifecycleSignal?: AbortSignal,\n waitMs?: number,\n ): Promise<import('../../../exports/headless').DoomHeadlessToolResult> => {\n if (disposed || !headlessReady || !ready() || !headlessHost?.status.ready)\n throw new Error('Headless capability preparation is not ready. Retry in a few seconds.');\n if (invocation.revision !== readRevision()) throw new Error('The session tool surface has changed');\n if (!isJsonObject(invocation.arguments)) throw new Error('Tool arguments must be a JSON object');\n const applied = readTools().get(invocation.name);\n if (applied === undefined) throw new Error(`Tool '${invocation.name}' is not active`);\n if (!Value.Check(applied.descriptor.parameters, invocation.arguments))\n throw new Error(\n `Invalid arguments for tool '${invocation.name}': ${validationDetails(applied.descriptor.parameters, invocation.arguments)}`,\n );\n const signals = [invocation.signal, lifecycleSignal].filter(\n (signal): signal is AbortSignal => signal !== undefined,\n );\n const signal = signals.length === 0 ? undefined : AbortSignal.any(signals);\n signal?.throwIfAborted();\n return runtime.runExternalOperation(\n async () => {\n signal?.throwIfAborted();\n await invocation.authorize?.();\n signal?.throwIfAborted();\n if (disposed || !headlessReady || !ready() || !headlessHost?.status.ready)\n throw new Error('Headless capability preparation is not ready. Retry in a few seconds.');\n if (invocation.revision !== readRevision() || readTools().get(invocation.name) !== applied)\n throw new Error(`Tool '${invocation.name}' is no longer active`);\n const toolCallId = `external-${randomUUID()}`;\n const before = await beforeTool(\n {\n toolCallId,\n toolName: invocation.name,\n args: invocation.arguments as Record<string, JsonValue>,\n },\n signal ? withAbortSignal(signal, BACKGROUND_CONTEXT) : BACKGROUND_CONTEXT,\n );\n if (before?.block !== undefined)\n return {\n content: [{ type: 'text', text: before.block.reason }],\n isError: true,\n };\n const args = before?.args ?? (invocation.arguments as Record<string, JsonValue>);\n if (!Value.Check(applied.descriptor.parameters, args))\n throw new Error(\n `A tool hook produced invalid arguments for '${invocation.name}': ${validationDetails(applied.descriptor.parameters, args)}`,\n );\n await invocation.authorize?.();\n signal?.throwIfAborted();\n if (disposed || !headlessReady || !ready() || !headlessHost?.status.ready)\n throw new Error('Headless capability preparation is not ready. Retry in a few seconds.');\n if (invocation.revision !== readRevision() || readTools().get(invocation.name) !== applied)\n throw new Error(`Tool '${invocation.name}' is no longer active`);\n const startEvent = {\n type: 'tool_execution_start',\n runId: EXTERNAL_OPERATION,\n turnId: EXTERNAL_OPERATION,\n toolCallId,\n toolName: invocation.name,\n args,\n };\n emitTo(listeners, startEvent);\n // External calls bypass the harness event stream. Deliver the same lifecycle\n // to package hooks as native tools, not just to presentation subscribers.\n await headlessHost.dispatchHook('tool_execution_start', startEvent);\n let result;\n try {\n result = await applied.execute(\n toolCallId,\n args,\n signal,\n (partial) => {\n emitTo(listeners, {\n type: 'tool_execution_update',\n runId: EXTERNAL_OPERATION,\n turnId: EXTERNAL_OPERATION,\n toolCallId,\n toolName: invocation.name,\n partialResult: partial,\n });\n invocation.onUpdate?.(partial);\n },\n invocation.mcpSkills === undefined\n ? undefined\n : { ...headlessHost.context, mcpSkills: invocation.mcpSkills },\n );\n } catch (error) {\n result = {\n content: [\n {\n type: 'text' as const,\n text: error instanceof Error ? error.message : String(error),\n },\n ],\n isError: true,\n };\n }\n // A caller-cancelled tool can still settle normally. Do not begin post hooks\n // for that cancelled operation or replace its already-settled result.\n const patch = signal?.aborted\n ? undefined\n : await afterTool(\n {\n toolCallId,\n toolName: invocation.name,\n args,\n content: result.content,\n ...(isJsonValue(result.details) ? { details: result.details } : {}),\n isError: result.isError === true,\n },\n signal ? withAbortSignal(signal, BACKGROUND_CONTEXT) : BACKGROUND_CONTEXT,\n );\n const patched = {\n content: patch?.content ?? result.content,\n // A hook that rewrites a result must not leave the original payload available remotely.\n ...(patch?.content !== undefined || patch?.isError !== undefined || result.structuredContent === undefined\n ? {}\n : { structuredContent: result.structuredContent }),\n ...(patch?.content !== undefined ||\n patch?.isError !== undefined ||\n patch?.details !== undefined ||\n result._meta === undefined\n ? {}\n : { _meta: result._meta }),\n ...(patch?.details !== undefined\n ? { details: patch.details }\n : result.details === undefined\n ? {}\n : { details: result.details }),\n isError: patch?.isError ?? result.isError ?? false,\n };\n const endEvent = {\n type: 'tool_execution_end',\n runId: EXTERNAL_OPERATION,\n turnId: EXTERNAL_OPERATION,\n toolCallId,\n toolName: invocation.name,\n result: patched,\n isError: patched.isError,\n terminate: patch?.terminate ?? false,\n };\n emitTo(listeners, endEvent);\n await headlessHost.dispatchHook('tool_execution_end', endEvent);\n return patched;\n },\n { signal, waitMs },\n );\n };\n\n const toolSurface: SessionToolSurface = {\n readSurface() {\n if (disposed || !headlessReady || !toolSurfaceReady || !headlessHost?.status.ready)\n throw new Error('Headless capability preparation is not ready.');\n return {\n revision: surfaceRevision,\n tools: [...appliedSessionTools.values()].map((tool) => tool.descriptor),\n skills: [...appliedSkills.values()].map((skill) => skill.descriptor),\n };\n },\n invokeTool: (invocation) =>\n invokeSurfaceTool(\n invocation,\n () => surfaceRevision,\n () => appliedSessionTools,\n () => toolSurfaceReady,\n ),\n readSkill(revision, uri) {\n if (disposed || !headlessReady || !toolSurfaceReady || !headlessHost?.status.ready)\n throw new Error('Headless capability preparation is not ready.');\n if (revision !== surfaceRevision) throw new Error('The session skill surface has changed');\n const skill = appliedSkills.get(uri);\n if (skill === undefined) throw new Error('The session skill is not active');\n return skill.content;\n },\n };\n\n admittedToolSurface = {\n readSurface: () => toolSurface.readSurface(),\n invokeTool: (invocation) => toolSurface.invokeTool(invocation),\n };\n\n const mcpSurface: SessionToolSurface = {\n readSurface() {\n if (disposed || !headlessReady || !mcpSurfaceReady || !headlessHost?.status.ready)\n throw new Error('MCP capability preparation is not ready.');\n return {\n revision: mcpSurfaceRevision,\n tools: [...appliedMcpTools.values()].map((tool) => tool.descriptor),\n skills: [...appliedMcpSkills.values()].map((skill) => skill.descriptor),\n uiResources: [...appliedMcpUiResources.values()].map((resource) => resource.descriptor),\n };\n },\n invokeTool: (invocation) =>\n invokeSurfaceTool(\n invocation,\n () => mcpSurfaceRevision,\n () => appliedMcpTools,\n () => mcpSurfaceReady,\n mcpLifecycle.signal,\n REMOTE_TOOL_WAIT_MS,\n ),\n async readUiResource(revision, uri) {\n if (disposed || !headlessReady || !mcpSurfaceReady || !headlessHost?.status.ready)\n throw new Error('MCP capability preparation is not ready.');\n if (revision !== mcpSurfaceRevision) throw new Error('The session MCP surface has changed');\n const resource = appliedMcpUiResources.get(uri)?.resource;\n if (resource === undefined) throw new Error('The session MCP UI resource is not active');\n const text = await resource.read();\n if (disposed || !headlessReady || !mcpSurfaceReady || !headlessHost?.status.ready)\n throw new Error('MCP capability preparation is not ready.');\n if (revision !== mcpSurfaceRevision || appliedMcpUiResources.get(uri)?.resource !== resource)\n throw new Error('The session MCP surface has changed');\n return text;\n },\n async readSkill(revision, uri) {\n if (disposed || !headlessReady || !mcpSurfaceReady || !headlessHost?.status.ready)\n throw new Error('MCP capability preparation is not ready.');\n if (revision !== mcpSurfaceRevision) throw new Error('The session MCP surface has changed');\n const skill = appliedMcpSkills.get(uri)?.skill;\n if (skill === undefined) throw new Error('The session MCP skill is not active');\n const text = await skill.read(headlessHost.context);\n if (disposed || !headlessReady || !mcpSurfaceReady || !headlessHost?.status.ready)\n throw new Error('MCP capability preparation is not ready.');\n if (revision !== mcpSurfaceRevision || appliedMcpSkills.get(uri)?.skill !== skill)\n throw new Error('The session MCP surface has changed');\n return text;\n },\n };\n\n return {\n runtime,\n async readExecutionState() {\n const state = await runtime.readState();\n const backgroundWork =\n mcpServiceRoot === undefined\n ? undefined\n : readDoomBackgroundWorkService(mcpServiceRoot)?.snapshot(options.sessionId);\n return {\n isIdle: state.isIdle === true,\n hasPendingMessages: Number(state.pendingMessageCount) > 0,\n ...(backgroundWork === undefined ? {} : { backgroundWork }),\n };\n },\n ...(sessionContext === undefined ? {} : { sessionContext }),\n get host() {\n return headlessHost;\n },\n toolSurface,\n mcpSurface,\n prepareFacets,\n activateFacets,\n canDispatch: () => !disposed && headlessReady && !promptPreparationFailed && headlessHost?.status.ready === true,\n onPresentationFrame(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n onSelection(listener) {\n selectionListeners.add(listener);\n listener(latestSelection);\n return () => {\n selectionListeners.delete(listener);\n };\n },\n respondToExtensionUi(frame) {\n return client?.receive(frame as SessionFrame) ?? false;\n },\n dispose,\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DoomHeadlessSelection } from "../../../schemas/headless.mjs";
|
|
2
|
+
import "../../../../headless.mjs";
|
|
3
|
+
import { HeadlessSessionHost, HeadlessSessionHostOptions } from "../../../../headlessSessionHost.mjs";
|
|
4
|
+
import { Args } from "@earendil-works/pi-coding-agent";
|
|
5
|
+
//#region src/systems/main/adapters/headlessSessionHost.d.ts
|
|
6
|
+
type AnyRecord = Record<string, unknown>;
|
|
7
|
+
/** Restores the last accepted live selection from journal projections, falling back on launch configuration. */
|
|
8
|
+
export declare function restoreHeadlessSelection(entries: readonly AnyRecord[], fallback: DoomHeadlessSelection): DoomHeadlessSelection;
|
|
9
|
+
/** Validate the Pi flags that remain after Doom's harness flags are removed. */
|
|
10
|
+
export declare function validateDirectHeadlessArgs(agentArgs: readonly string[]): Args;
|
|
11
|
+
/** Create the gated, same-process host used by direct-headless startup tests. */
|
|
12
|
+
/**
|
|
13
|
+
* Composes one server session's host.
|
|
14
|
+
*
|
|
15
|
+
* Its Pi extensions run in the server's process, so the session's admitted environment is
|
|
16
|
+
* registered under its id for them to read instead of `process.env`, and released with it.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createHeadlessSessionHost(options: HeadlessSessionHostOptions): Promise<HeadlessSessionHost>;
|
|
19
|
+
//#endregion
|
|
20
|
+
//# sourceMappingURL=headlessSessionHost.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headlessSessionHost.d.mts","names":[],"sources":["../../../../../src/systems/main/adapters/headlessSessionHost.ts"],"mappings":";;;;;KAuFK,YAAY;;wBA+BD,yBACd,kBAAkB,aAClB,UAAU,wBACT;;wBA2La,2BAA2B,+BAA+B;;;;;;;;wBAiSpD,0BAA0B,SAAS,6BAA6B,QAAQ"}
|