@agimon-ai/doompi-core 0.0.1-alpha.100
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 +5 -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 +2009 -0
- package/dist/apiContracts.cjs.map +1 -0
- package/dist/apiContracts.d.mts +1018 -0
- package/dist/apiContracts.d.mts.map +1 -0
- package/dist/apiContracts.mjs +1989 -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 +7 -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 +8 -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 +10 -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 +100 -0
- package/dist/contextDetailStore.cjs.map +1 -0
- package/dist/contextDetailStore.d.mts +19 -0
- package/dist/contextDetailStore.d.mts.map +1 -0
- package/dist/contextDetailStore.mjs +91 -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 +11 -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 +231 -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 +225 -0
- package/dist/executionBudget.mjs.map +1 -0
- package/dist/extensionFile.cjs +24 -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 +9 -0
- package/dist/headless.d.mts +2 -0
- package/dist/headless.mjs +2 -0
- package/dist/headlessHub.cjs +914 -0
- package/dist/headlessHub.cjs.map +1 -0
- package/dist/headlessHub.d.mts +157 -0
- package/dist/headlessHub.d.mts.map +1 -0
- package/dist/headlessHub.mjs +911 -0
- package/dist/headlessHub.mjs.map +1 -0
- package/dist/headlessServer.cjs +910 -0
- package/dist/headlessServer.cjs.map +1 -0
- package/dist/headlessServer.d.mts +64 -0
- package/dist/headlessServer.d.mts.map +1 -0
- package/dist/headlessServer.mjs +904 -0
- package/dist/headlessServer.mjs.map +1 -0
- package/dist/headlessSessionHost.cjs +0 -0
- package/dist/headlessSessionHost.d.mts +71 -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/historyImport.cjs +553 -0
- package/dist/historyImport.cjs.map +1 -0
- package/dist/historyImport.d.mts +76 -0
- package/dist/historyImport.d.mts.map +1 -0
- package/dist/historyImport.mjs +547 -0
- package/dist/historyImport.mjs.map +1 -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 +217 -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 +212 -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 +12 -0
- package/dist/mcpFacet.d.mts +4 -0
- package/dist/mcpFacet.mjs +4 -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 +405 -0
- package/dist/moduleResolution.cjs.map +1 -0
- package/dist/moduleResolution.d.mts +67 -0
- package/dist/moduleResolution.d.mts.map +1 -0
- package/dist/moduleResolution.mjs +389 -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/notification.cjs +17 -0
- package/dist/notification.d.mts +2 -0
- package/dist/notification.mjs +2 -0
- package/dist/packageApi.cjs +16 -0
- package/dist/packageApi.d.mts +3 -0
- package/dist/packageApi.mjs +3 -0
- package/dist/packageApiServer.cjs +191 -0
- package/dist/packageApiServer.cjs.map +1 -0
- package/dist/packageApiServer.d.mts +57 -0
- package/dist/packageApiServer.d.mts.map +1 -0
- package/dist/packageApiServer.mjs +189 -0
- package/dist/packageApiServer.mjs.map +1 -0
- package/dist/piExtension.cjs +13 -0
- package/dist/piExtension.d.mts +5 -0
- package/dist/piExtension.mjs +4 -0
- package/dist/piSettings.cjs +12 -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/relaunchHandoff.cjs +6 -0
- package/dist/relaunchHandoff.d.mts +2 -0
- package/dist/relaunchHandoff.mjs +2 -0
- package/dist/remoteApi.cjs +42 -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 +41 -0
- package/dist/remoteApi.mjs.map +1 -0
- package/dist/remoteRuntime.cjs +460 -0
- package/dist/remoteRuntime.cjs.map +1 -0
- package/dist/remoteRuntime.d.mts +28 -0
- package/dist/remoteRuntime.d.mts.map +1 -0
- package/dist/remoteRuntime.mjs +456 -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 +193 -0
- package/dist/runtimeCordisHost.cjs.map +1 -0
- package/dist/runtimeCordisHost.d.mts +63 -0
- package/dist/runtimeCordisHost.d.mts.map +1 -0
- package/dist/runtimeCordisHost.mjs +184 -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/runtimePiExtension.cjs +339 -0
- package/dist/runtimePiExtension.cjs.map +1 -0
- package/dist/runtimePiExtension.d.mts +160 -0
- package/dist/runtimePiExtension.d.mts.map +1 -0
- package/dist/runtimePiExtension.mjs +333 -0
- package/dist/runtimePiExtension.mjs.map +1 -0
- package/dist/runtimePiSettings.cjs +116 -0
- package/dist/runtimePiSettings.cjs.map +1 -0
- package/dist/runtimePiSettings.d.mts +29 -0
- package/dist/runtimePiSettings.d.mts.map +1 -0
- package/dist/runtimePiSettings.mjs +103 -0
- package/dist/runtimePiSettings.mjs.map +1 -0
- package/dist/runtimeProtocol.cjs +223 -0
- package/dist/runtimeProtocol.cjs.map +1 -0
- package/dist/runtimeProtocol.d.mts +84 -0
- package/dist/runtimeProtocol.d.mts.map +1 -0
- package/dist/runtimeProtocol.mjs +215 -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 +30 -0
- package/dist/serverFacet.d.mts +8 -0
- package/dist/serverFacet.mjs +8 -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/sqliteHistoryImport.cjs +151 -0
- package/dist/sqliteHistoryImport.cjs.map +1 -0
- package/dist/sqliteHistoryImport.d.mts +8 -0
- package/dist/sqliteHistoryImport.d.mts.map +1 -0
- package/dist/sqliteHistoryImport.mjs +146 -0
- package/dist/sqliteHistoryImport.mjs.map +1 -0
- package/dist/sqliteSessionStorage.cjs +53 -0
- package/dist/sqliteSessionStorage.cjs.map +1 -0
- package/dist/sqliteSessionStorage.d.mts +7 -0
- package/dist/sqliteSessionStorage.d.mts.map +1 -0
- package/dist/sqliteSessionStorage.mjs +49 -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 +28 -0
- package/dist/src/constants/contextApi.cjs.map +1 -0
- package/dist/src/constants/contextApi.d.mts +21 -0
- package/dist/src/constants/contextApi.d.mts.map +1 -0
- package/dist/src/constants/contextApi.mjs +23 -0
- package/dist/src/constants/contextApi.mjs.map +1 -0
- package/dist/src/constants/remote.cjs +90 -0
- package/dist/src/constants/remote.cjs.map +1 -0
- package/dist/src/constants/remote.mjs +69 -0
- package/dist/src/constants/remote.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 +165 -0
- package/dist/src/extensions/extensionFile.cjs.map +1 -0
- package/dist/src/extensions/extensionFile.d.mts +79 -0
- package/dist/src/extensions/extensionFile.d.mts.map +1 -0
- package/dist/src/extensions/extensionFile.mjs +144 -0
- package/dist/src/extensions/extensionFile.mjs.map +1 -0
- package/dist/src/extensions/serverPlugin.cjs +106 -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 +106 -0
- package/dist/src/extensions/serverPlugin.mjs.map +1 -0
- package/dist/src/extensions/webPlugin.cjs +131 -0
- package/dist/src/extensions/webPlugin.cjs.map +1 -0
- package/dist/src/extensions/webPlugin.d.mts +66 -0
- package/dist/src/extensions/webPlugin.d.mts.map +1 -0
- package/dist/src/extensions/webPlugin.mjs +110 -0
- package/dist/src/extensions/webPlugin.mjs.map +1 -0
- package/dist/src/pi/piSessionRuntime.cjs +572 -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 +571 -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 +31 -0
- package/dist/src/schemas/backgroundWork.cjs.map +1 -0
- package/dist/src/schemas/backgroundWork.d.mts +72 -0
- package/dist/src/schemas/backgroundWork.d.mts.map +1 -0
- package/dist/src/schemas/backgroundWork.mjs +27 -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 +136 -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 +44 -0
- package/dist/src/schemas/headless.cjs.map +1 -0
- package/dist/src/schemas/headless.d.mts +370 -0
- package/dist/src/schemas/headless.d.mts.map +1 -0
- package/dist/src/schemas/headless.mjs +38 -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 +236 -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.cjs +92 -0
- package/dist/src/schemas/mcpBundle.cjs.map +1 -0
- package/dist/src/schemas/mcpBundle.d.mts +33 -0
- package/dist/src/schemas/mcpBundle.d.mts.map +1 -0
- package/dist/src/schemas/mcpBundle.mjs +90 -0
- package/dist/src/schemas/mcpBundle.mjs.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 +73 -0
- package/dist/src/schemas/packageApi.cjs.map +1 -0
- package/dist/src/schemas/packageApi.d.mts +249 -0
- package/dist/src/schemas/packageApi.d.mts.map +1 -0
- package/dist/src/schemas/packageApi.mjs +64 -0
- package/dist/src/schemas/packageApi.mjs.map +1 -0
- package/dist/src/schemas/piTool.cjs +26 -0
- package/dist/src/schemas/piTool.cjs.map +1 -0
- package/dist/src/schemas/piTool.d.mts +25 -0
- package/dist/src/schemas/piTool.d.mts.map +1 -0
- package/dist/src/schemas/piTool.mjs +26 -0
- package/dist/src/schemas/piTool.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 +68 -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/relaunchHandoff.cjs +47 -0
- package/dist/src/schemas/relaunchHandoff.cjs.map +1 -0
- package/dist/src/schemas/relaunchHandoff.d.mts +25 -0
- package/dist/src/schemas/relaunchHandoff.d.mts.map +1 -0
- package/dist/src/schemas/relaunchHandoff.mjs +44 -0
- package/dist/src/schemas/relaunchHandoff.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.cjs +79 -0
- package/dist/src/schemas/serverBundle.cjs.map +1 -0
- package/dist/src/schemas/serverBundle.d.mts +34 -0
- package/dist/src/schemas/serverBundle.d.mts.map +1 -0
- package/dist/src/schemas/serverBundle.mjs +77 -0
- package/dist/src/schemas/serverBundle.mjs.map +1 -0
- package/dist/src/schemas/serverFacet.cjs +102 -0
- package/dist/src/schemas/serverFacet.cjs.map +1 -0
- package/dist/src/schemas/serverFacet.d.mts +141 -0
- package/dist/src/schemas/serverFacet.d.mts.map +1 -0
- package/dist/src/schemas/serverFacet.mjs +93 -0
- package/dist/src/schemas/serverFacet.mjs.map +1 -0
- package/dist/src/schemas/sessionMcpActivity.d.mts +45 -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 +308 -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 +87 -0
- package/dist/src/server/devProxySocket.cjs.map +1 -0
- package/dist/src/server/devProxySocket.mjs +87 -0
- package/dist/src/server/devProxySocket.mjs.map +1 -0
- package/dist/src/server/directHarnessRuntime.cjs +1964 -0
- package/dist/src/server/directHarnessRuntime.cjs.map +1 -0
- package/dist/src/server/directHarnessRuntime.d.mts +3 -0
- package/dist/src/server/directHarnessRuntime.mjs +1958 -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 +366 -0
- package/dist/src/server/headlessProtocol.cjs.map +1 -0
- package/dist/src/server/headlessProtocol.mjs +366 -0
- package/dist/src/server/headlessProtocol.mjs.map +1 -0
- package/dist/src/server/jsonlTranscriptReader.cjs +85 -0
- package/dist/src/server/jsonlTranscriptReader.cjs.map +1 -0
- package/dist/src/server/jsonlTranscriptReader.mjs +83 -0
- package/dist/src/server/jsonlTranscriptReader.mjs.map +1 -0
- package/dist/src/server/mcpBundleLoader.cjs +115 -0
- package/dist/src/server/mcpBundleLoader.cjs.map +1 -0
- package/dist/src/server/mcpBundleLoader.d.mts +27 -0
- package/dist/src/server/mcpBundleLoader.d.mts.map +1 -0
- package/dist/src/server/mcpBundleLoader.mjs +111 -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 +386 -0
- package/dist/src/server/remoteRoutes.cjs.map +1 -0
- package/dist/src/server/remoteRoutes.mjs +386 -0
- package/dist/src/server/remoteRoutes.mjs.map +1 -0
- package/dist/src/server/serverFacetLoader.cjs +220 -0
- package/dist/src/server/serverFacetLoader.cjs.map +1 -0
- package/dist/src/server/serverFacetLoader.d.mts +77 -0
- package/dist/src/server/serverFacetLoader.d.mts.map +1 -0
- package/dist/src/server/serverFacetLoader.mjs +215 -0
- package/dist/src/server/serverFacetLoader.mjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.cjs +494 -0
- package/dist/src/server/sessionMcpHandler.cjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.d.mts +47 -0
- package/dist/src/server/sessionMcpHandler.d.mts.map +1 -0
- package/dist/src/server/sessionMcpHandler.mjs +493 -0
- package/dist/src/server/sessionMcpHandler.mjs.map +1 -0
- package/dist/src/server/sessionMcpRoutes.cjs +780 -0
- package/dist/src/server/sessionMcpRoutes.cjs.map +1 -0
- package/dist/src/server/sessionMcpRoutes.mjs +775 -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 +88 -0
- package/dist/src/services/bundlePublication/index.cjs.map +1 -0
- package/dist/src/services/bundlePublication/index.mjs +85 -0
- package/dist/src/services/bundlePublication/index.mjs.map +1 -0
- package/dist/src/services/contextApiUrls/index.cjs +14 -0
- package/dist/src/services/contextApiUrls/index.cjs.map +1 -0
- package/dist/src/services/contextApiUrls/index.d.mts +6 -0
- package/dist/src/services/contextApiUrls/index.d.mts.map +1 -0
- package/dist/src/services/contextApiUrls/index.mjs +14 -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 +125 -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 +125 -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 +15 -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/headlessClient/index.cjs +125 -0
- package/dist/src/services/headlessClient/index.cjs.map +1 -0
- package/dist/src/services/headlessClient/index.mjs +125 -0
- package/dist/src/services/headlessClient/index.mjs.map +1 -0
- package/dist/src/services/historyCreationFileSystem/index.cjs +115 -0
- package/dist/src/services/historyCreationFileSystem/index.cjs.map +1 -0
- package/dist/src/services/historyCreationFileSystem/index.mjs +115 -0
- package/dist/src/services/historyCreationFileSystem/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 +144 -0
- package/dist/src/services/openSessionRegistry/index.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.d.mts +40 -0
- package/dist/src/services/openSessionRegistry/index.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/index.mjs +141 -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 +821 -0
- package/dist/src/services/piExtensionHost/index.cjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.mjs +817 -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 +112 -0
- package/dist/src/services/piSessionEntries/index.cjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.mjs +108 -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 +11 -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/remoteAccess/index.cjs +396 -0
- package/dist/src/services/remoteAccess/index.cjs.map +1 -0
- package/dist/src/services/remoteAccess/index.d.mts +81 -0
- package/dist/src/services/remoteAccess/index.d.mts.map +1 -0
- package/dist/src/services/remoteAccess/index.mjs +396 -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 +126 -0
- package/dist/src/services/remoteAccessStore/index.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/index.mjs +121 -0
- package/dist/src/services/remoteAccessStore/index.mjs.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.cjs +190 -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 +186 -0
- package/dist/src/services/remoteGuardPolicy/index.mjs.map +1 -0
- package/dist/src/services/requestReceipts/index.cjs +161 -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 +161 -0
- package/dist/src/services/requestReceipts/index.mjs.map +1 -0
- package/dist/src/services/rpcTranscript/index.cjs +590 -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 +589 -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/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 +432 -0
- package/dist/src/services/sessionMcpAuthorization/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.d.mts +123 -0
- package/dist/src/services/sessionMcpAuthorization/index.d.mts.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.mjs +430 -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 +119 -0
- package/dist/src/services/sessionPresentation/index.cjs.map +1 -0
- package/dist/src/services/sessionPresentation/index.mjs +119 -0
- package/dist/src/services/sessionPresentation/index.mjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs +105 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.d.mts +29 -0
- package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.mjs +100 -0
- package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.cjs +70 -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 +67 -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 +74 -0
- package/dist/src/services/transcriptPages/index.cjs.map +1 -0
- package/dist/src/services/transcriptPages/index.mjs +73 -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 +163 -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 +156 -0
- package/dist/src/services/webauthnPolicy/index.mjs.map +1 -0
- package/dist/src/services/workspaceRegistry/index.cjs +151 -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 +144 -0
- package/dist/src/services/workspaceRegistry/index.mjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +261 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +32 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +254 -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 +19 -0
- package/dist/src/systems/child/types/childSession.cjs.map +1 -0
- package/dist/src/systems/child/types/childSession.d.mts +148 -0
- package/dist/src/systems/child/types/childSession.d.mts.map +1 -0
- package/dist/src/systems/child/types/childSession.mjs +16 -0
- package/dist/src/systems/child/types/childSession.mjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.cjs +554 -0
- package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.d.mts +111 -0
- package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.mjs +552 -0
- package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs +1293 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +14 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs +1288 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -0
- package/dist/src/systems/main/types/headlessHost.d.mts +36 -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 +398 -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 +398 -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 +124 -0
- package/dist/src/types/remote.d.mts.map +1 -0
- package/dist/src/types/server/directHarnessRuntime.d.mts +209 -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 +15 -0
- package/dist/src/web/schemas/template.cjs.map +1 -0
- package/dist/src/web/schemas/template.d.mts +6 -0
- package/dist/src/web/schemas/template.d.mts.map +1 -0
- package/dist/src/web/schemas/template.mjs +15 -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 +91 -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 +90 -0
- package/dist/src/web/services/testing/slotProps.mjs.map +1 -0
- package/dist/src/web/services/testing/templateRail.cjs +128 -0
- package/dist/src/web/services/testing/templateRail.cjs.map +1 -0
- package/dist/src/web/services/testing/templateRail.d.mts +31 -0
- package/dist/src/web/services/testing/templateRail.d.mts.map +1 -0
- package/dist/src/web/services/testing/templateRail.mjs +126 -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 +59 -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/sessionRegistry.d.mts +43 -0
- package/dist/src/web/types/sessionRegistry.d.mts.map +1 -0
- package/dist/src/web/types/template.d.mts +155 -0
- package/dist/src/web/types/template.d.mts.map +1 -0
- package/dist/src/web/types/webPlugin.d.mts +896 -0
- package/dist/src/web/types/webPlugin.d.mts.map +1 -0
- package/dist/syncLocation.cjs +244 -0
- package/dist/syncLocation.cjs.map +1 -0
- package/dist/syncLocation.d.mts +37 -0
- package/dist/syncLocation.d.mts.map +1 -0
- package/dist/syncLocation.mjs +231 -0
- package/dist/syncLocation.mjs.map +1 -0
- package/dist/syncRegistration.cjs +171 -0
- package/dist/syncRegistration.cjs.map +1 -0
- package/dist/syncRegistration.d.mts +48 -0
- package/dist/syncRegistration.d.mts.map +1 -0
- package/dist/syncRegistration.mjs +159 -0
- package/dist/syncRegistration.mjs.map +1 -0
- package/dist/syncStateContract.cjs +19 -0
- package/dist/syncStateContract.cjs.map +1 -0
- package/dist/syncStateContract.d.mts +14 -0
- package/dist/syncStateContract.d.mts.map +1 -0
- package/dist/syncStateContract.mjs +16 -0
- package/dist/syncStateContract.mjs.map +1 -0
- package/dist/terminalPiChildSessionService.cjs +267 -0
- package/dist/terminalPiChildSessionService.cjs.map +1 -0
- package/dist/terminalPiChildSessionService.d.mts +42 -0
- package/dist/terminalPiChildSessionService.d.mts.map +1 -0
- package/dist/terminalPiChildSessionService.mjs +260 -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 +73 -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 +1004 -0
- package/dist/v3Export.cjs.map +1 -0
- package/dist/v3Export.d.mts +34 -0
- package/dist/v3Export.d.mts.map +1 -0
- package/dist/v3Export.mjs +1000 -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 +64 -0
- package/dist/web.d.mts +19 -0
- package/dist/web.mjs +13 -0
- package/dist/webCompositions.cjs +100 -0
- package/dist/webCompositions.cjs.map +1 -0
- package/dist/webCompositions.d.mts +20 -0
- package/dist/webCompositions.d.mts.map +1 -0
- package/dist/webCompositions.mjs +95 -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 +616 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directHarnessRuntime.mjs","names":["errorMessage"],"sources":["../../../src/server/directHarnessRuntime.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport {\n AgentHarness,\n HarnessFault,\n type AgentHarnessTool,\n type AgentMessage,\n type AgentLane,\n type HarnessEvent,\n} from '@earendil-works/pi-agent-core';\nimport { BACKGROUND_CONTEXT, type Context } from '@earendil-works/pi-agent-core/harness/context';\nimport {\n JSONL_STORAGE_VERSION,\n JsonlSessionRepo,\n laneState,\n pendingEntry,\n setValue,\n value,\n type JsonlSessionMetadata,\n type Session,\n} from '@earendil-works/pi-agent-core/harness/session';\nimport { NodeExecutionEnv } from '@earendil-works/pi-agent-core/node';\nimport {\n createModels,\n createAssistantMessageEventStream,\n getSupportedThinkingLevels,\n type AssistantMessage,\n type Api,\n type ImageContent,\n type Model,\n type Models,\n type MutableModels,\n type Provider,\n type Usage,\n} from '@earendil-works/pi-ai';\n\nimport { createHistoryCreationFileSystem } from '../services/historyCreationFileSystem';\nimport { preserveHistoryBeforeOpen } from '../services/historyImport';\nimport type { HistoryOwnershipLease } from '../services/historyImport';\nimport { openSqliteSessionStorage } from '../services/sqliteSessionStorage';\nimport type {\n DirectHarnessEventListener,\n DirectHarnessFrame,\n DirectHarnessModel,\n DirectHarnessLifecycle,\n DirectHarnessQueuedInput,\n DirectHarnessRuntime,\n DirectHarnessRuntimeOptions,\n} from '../types/server/directHarnessRuntime';\nimport { harnessErrorMessage as errorMessage } from './harnessErrorMessage';\n\nconst DEFAULT_LANE = 'main';\nconst DEFAULT_SESSION_ROOT = '.pi/sessions';\nconst FRAME_ERROR = 'error';\n/** Journaled at every run end, so a reopened session can tell when it last settled. */\nexport const AGENT_SETTLED_ENTRY_TYPE = 'doompi.agent-settled';\nconst EVENT_TYPES: readonly HarnessEvent['type'][] = [\n 'run_start',\n 'run_resume',\n 'run_suspend',\n 'operation_abort',\n 'run_end',\n 'fault',\n 'handler_error',\n 'turn_start',\n 'turn_end',\n 'retry_scheduled',\n 'retry_start',\n 'retry_end',\n 'message_start',\n 'message_update',\n 'message_end',\n 'tool_start',\n 'tool_update',\n 'tool_end',\n 'entry_added',\n 'queue_update',\n 'value_update',\n 'config_update',\n 'compaction_start',\n 'compaction_end',\n 'navigation_start',\n 'navigation_end',\n 'usage',\n 'lane_created',\n];\nconst STORAGE_ERROR_CODES = new Set(['EACCES', 'EBUSY', 'EIO', 'EMFILE', 'ENFILE', 'ENOSPC', 'EPERM', 'EROFS']);\n\ntype AnyRecord = Record<string, unknown>;\ntype AnySession = Session;\ntype AnyModels = Models | MutableModels;\n\ntype RetainedInput = Omit<DirectHarnessQueuedInput, 'disposition'> & {\n disposition: DirectHarnessQueuedInput['disposition'] | 'consumed' | 'removed';\n message?: AgentMessage;\n operationId?: string;\n nativeEntryId?: string;\n /** A handoff is reserved before the native mutation, and reconciled on reopen. */\n attemptId?: string;\n};\n\ntype LifecycleRecord = {\n version: 1;\n revision: number;\n paused: boolean;\n abortOperationId?: string;\n queue: RetainedInput[];\n};\n\nconst EMPTY_LIFECYCLE: LifecycleRecord = { version: 1, revision: 0, paused: false, queue: [] };\nconst RETAINED_RECEIPTS = 128;\n\nfunction compactLifecycle(record: LifecycleRecord): LifecycleRecord {\n let receipts = 0;\n const queue = record.queue\n .toReversed()\n .filter((item) => {\n if (item.disposition !== 'consumed' && item.disposition !== 'removed') return true;\n receipts += 1;\n return receipts <= RETAINED_RECEIPTS;\n })\n .toReversed()\n .map((item): RetainedInput =>\n item.disposition === 'consumed' || item.disposition === 'removed'\n ? { id: item.id, text: '', delivery: item.delivery, scheduling: item.scheduling, disposition: item.disposition }\n : item,\n );\n return { ...record, queue };\n}\n\ntype StorageHandle = {\n session: AnySession;\n sessionFile?: string;\n repository?: { close(context: Context): Promise<void> };\n environment?: NodeExecutionEnv;\n historyLease?: HistoryOwnershipLease;\n};\n\nfunction isRecord(value: unknown): value is AnyRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction stringValue(value: unknown): string | undefined {\n return typeof value === 'string' ? value : undefined;\n}\n\n/** Run one prompt and return only the assistant text appended by that prompt. */\nexport async function promptForAssistantText(runtime: DirectHarnessRuntime, text: string): Promise<string | undefined> {\n const previousEntryIds = new Set((await runtime.readEntries()).entries.map((entry) => entry.id));\n await runtime.prompt(text);\n const { entries } = await runtime.readEntries();\n for (let index = entries.length - 1; index >= 0; index--) {\n const entry = entries[index];\n if (!entry || previousEntryIds.has(entry.id)) continue;\n if (entry.type !== 'message' || entry.message.role !== 'assistant') continue;\n const output = entry.message.content\n .flatMap((part) => (part.type === 'text' ? [part.text] : []))\n .join('\\n')\n .trim();\n return output || undefined;\n }\n return undefined;\n}\n\nfunction modelReference(model: DirectHarnessModel | undefined, models: AnyModels): Model<Api> {\n if (model !== undefined && 'api' in model) return model;\n const requested = model;\n const resolved = requested === undefined ? models.getModels()[0] : models.getModel(requested.provider, requested.id);\n if (resolved === undefined) {\n const identity = requested === undefined ? 'the first configured model' : `${requested.provider}/${requested.id}`;\n throw new Error(`Direct harness could not resolve ${identity}`);\n }\n return resolved;\n}\n\nexport function readDirectHarnessSessionMetadata(filePath: string): JsonlSessionMetadata {\n const absolute = fs.realpathSync(filePath);\n const firstLine = fs.readFileSync(absolute, 'utf8').split('\\n', 1)[0];\n let header: AnyRecord;\n try {\n const parsed: unknown = JSON.parse(firstLine ?? '');\n if (!isRecord(parsed)) throw new Error('header is not an object');\n header = parsed;\n } catch (error) {\n throw new Error(`Invalid JSONL session header: ${absolute}`, { cause: error });\n }\n if (header.kind !== 'header' || header.v !== 4)\n throw new Error(`Session is not an upstream v4 JSONL file: ${absolute}`);\n const id = stringValue(header.id);\n const cwd = stringValue(header.cwd);\n const createdAt = header.createdAt;\n if (!id || !cwd || typeof createdAt !== 'number' || !Number.isFinite(createdAt)) {\n throw new Error(`Invalid JSONL session identity: ${absolute}`);\n }\n const stat = fs.statSync(absolute);\n return {\n id,\n createdAt,\n storageVersion: typeof header.storageVersion === 'number' ? header.storageVersion : JSONL_STORAGE_VERSION,\n cwd,\n path: absolute,\n modifiedAt: stat.mtimeMs,\n ...(typeof header.parentSessionId === 'string' ? { parentSessionId: header.parentSessionId } : {}),\n ...(typeof header.legacyParentSessionPath === 'string'\n ? { legacyParentSessionPath: header.legacyParentSessionPath }\n : {}),\n };\n}\n\nfunction isV3File(filePath: string): boolean {\n let firstLine: string;\n try {\n firstLine = fs.readFileSync(path.resolve(filePath), 'utf8').split('\\n', 1)[0] ?? '';\n } catch (error) {\n if (isRecord(error) && error.code === 'ENOENT') return false;\n throw error;\n }\n try {\n const header: unknown = JSON.parse(firstLine);\n return isRecord(header) && header.type === 'session' && header.version === 3;\n } catch {\n return false;\n }\n}\n\nasync function acquireHistoryLease(\n owner: NonNullable<DirectHarnessRuntimeOptions['historyOwnership']>,\n filePath: string,\n): Promise<HistoryOwnershipLease> {\n const lease = await owner.acquire(filePath);\n try {\n await lease.assertQuiescent();\n return lease;\n } catch (error) {\n await Promise.resolve(lease.release()).catch(() => undefined);\n throw error;\n }\n}\n\nasync function closeStorage(\n storage: {\n session?: AnySession;\n repository?: { close(context: Context): Promise<void> };\n environment?: NodeExecutionEnv;\n historyLease?: HistoryOwnershipLease;\n },\n context: Context,\n): Promise<void> {\n const failures: unknown[] = [];\n try {\n await storage.session?.close(context);\n } catch (error) {\n failures.push(error);\n }\n try {\n await storage.repository?.close(context);\n } catch (error) {\n failures.push(error);\n }\n try {\n await storage.environment?.cleanup(context);\n } catch (error) {\n failures.push(error);\n }\n try {\n await storage.historyLease?.release();\n } catch (error) {\n failures.push(error);\n }\n storage.historyLease = undefined;\n if (failures.length) throw new AggregateError(failures, 'Direct harness storage cleanup failed');\n}\n\nasync function openStorage<TContext extends object | undefined>(\n options: DirectHarnessRuntimeOptions<TContext>,\n context: Context,\n): Promise<StorageHandle> {\n if (options.session !== undefined)\n return {\n session: options.session,\n ...(options.sessionPath === undefined ? {} : { sessionFile: path.resolve(options.sessionPath) }),\n };\n\n if (options.storage === 'sqlite') return openSqliteSessionStorage(options, context);\n\n const sessionPath = options.sessionPath === undefined ? undefined : path.resolve(options.sessionPath);\n const legacyPath = options.legacySessionPath === undefined ? sessionPath : path.resolve(options.legacySessionPath);\n let importedPath = sessionPath;\n if (legacyPath !== undefined && isV3File(legacyPath)) {\n throw new Error(\n 'Legacy v3 history cannot be opened for writing. Stop Pi, run doompi history-import <v3-source> <v4-destination> --confirm-offline, then open the v4 destination.',\n );\n }\n\n const environment = new NodeExecutionEnv({ cwd: options.cwd });\n const sessionsRoot = path.resolve(\n options.sessionsRoot ??\n (importedPath === undefined ? path.join(options.cwd, DEFAULT_SESSION_ROOT) : path.dirname(importedPath)),\n );\n let metadata: JsonlSessionMetadata | undefined;\n if (importedPath === undefined && options.sessionId !== undefined) {\n const discovery = new JsonlSessionRepo({ fileSystem: environment, sessionsRoot, now: () => Date.now() });\n try {\n metadata = (await discovery.list({ cwd: options.cwd }, context)).find(\n (candidate) => candidate.id === options.sessionId,\n );\n importedPath = metadata?.path;\n } finally {\n await discovery.close(context);\n }\n }\n\n let historyLease: HistoryOwnershipLease | undefined;\n let session: AnySession | undefined;\n const fileSystem =\n importedPath === undefined\n ? createHistoryCreationFileSystem(environment, async (destinationPath) => {\n const owner = options.historyOwnership;\n if (owner === undefined) throw new Error('Creating a writable session requires explicit HistoryOwnership');\n historyLease = await acquireHistoryLease(owner, destinationPath);\n })\n : environment;\n const repository = new JsonlSessionRepo({ fileSystem, sessionsRoot, now: () => Date.now() });\n try {\n if (importedPath !== undefined) {\n const owner = options.historyOwnership;\n if (owner === undefined) throw new Error('Opening an existing session requires explicit HistoryOwnership');\n historyLease = await acquireHistoryLease(owner, importedPath);\n metadata ??= readDirectHarnessSessionMetadata(importedPath);\n if (options.sessionId !== undefined && options.sessionId !== metadata.id) {\n throw new Error(`Session id mismatch: expected ${options.sessionId}, found ${metadata.id}`);\n }\n await preserveHistoryBeforeOpen(metadata.path, historyLease);\n session = await repository.open(metadata, context);\n } else {\n const owner = options.historyOwnership;\n if (owner === undefined) throw new Error('Creating a writable session requires explicit HistoryOwnership');\n const created = await repository.create(\n {\n id: options.sessionId,\n cwd: options.cwd,\n ...(options.parentSessionId === undefined ? {} : { parentSessionId: options.parentSessionId }),\n },\n context,\n );\n session = created;\n importedPath = created.metadata.path;\n if (historyLease === undefined) throw new Error('New history was not admitted before publication');\n }\n return { session, sessionFile: importedPath, repository, environment, historyLease };\n } catch (error) {\n await closeStorage({ session, repository, environment, historyLease }, context);\n throw error;\n }\n}\n\n/**\n * Merge caller-supplied providers into the registry the harness will use.\n * A pi-ai MutableModels exposes setProvider; a Pi ModelRuntime exposes\n * registerNativeProvider instead, and dropping providers for the latter would\n * silently hide every extension-registered provider from the child harness.\n */\nfunction mergeProviders(models: AnyModels, providers: readonly Provider[]): void {\n const mutable = models as Partial<MutableModels> & {\n registerNativeProvider?: (provider: Provider) => void;\n };\n const register =\n typeof mutable.setProvider === 'function'\n ? mutable.setProvider.bind(models)\n : typeof mutable.registerNativeProvider === 'function'\n ? mutable.registerNativeProvider.bind(models)\n : undefined;\n if (register === undefined)\n throw new Error('Direct harness cannot register providers on the supplied Models registry');\n for (const provider of providers) register(provider);\n}\n\nfunction configureModels<TContext extends object | undefined>(\n options: DirectHarnessRuntimeOptions<TContext>,\n): AnyModels {\n if (options.models !== undefined) {\n if (options.providers !== undefined && options.providers.length > 0)\n mergeProviders(options.models, options.providers);\n return options.models;\n }\n if (options.providers === undefined || options.providers.length === 0) {\n throw new Error('Direct harness requires a public Models registry or at least one Provider');\n }\n const models =\n options.credentials === undefined ? createModels() : createModels({ credentials: options.credentials });\n for (const provider of options.providers) models.setProvider(provider);\n return models;\n}\n\nfunction textContent(value: unknown): string {\n if (typeof value === 'string') return value;\n if (!Array.isArray(value)) return '';\n return value\n .filter(isRecord)\n .filter((part) => part.type === 'text')\n .map((part) => stringValue(part.text) ?? '')\n .join('');\n}\n\nfunction queueText(item: unknown): string | undefined {\n if (!isRecord(item) || item.type !== 'message' || !isRecord(item.message)) return undefined;\n return textContent(item.message.content);\n}\n\nfunction mapQueueUpdate(event: AnyRecord): DirectHarnessFrame {\n const queues = Array.isArray(event.queues) ? event.queues : [];\n const steering: string[] = [];\n const followUp: string[] = [];\n for (const item of queues) {\n if (!isRecord(item)) continue;\n const text = queueText(item);\n if (text === undefined) continue;\n if (item.kind === 'steer') steering.push(text);\n else if (item.kind === 'followUp' || item.kind === 'nextRun') followUp.push(text);\n }\n return { type: 'queue_update', queues, steering, followUp };\n}\n\nfunction stateModel(model: unknown): { provider: string; id: string } | undefined {\n if (!isRecord(model)) return undefined;\n const provider = stringValue(model.provider);\n const id = stringValue(model.id) ?? stringValue(model.modelId);\n return provider && id ? { provider, id } : undefined;\n}\n\nfunction mapHarnessEvent(event: HarnessEvent): DirectHarnessFrame[] {\n const value = event as unknown as AnyRecord;\n switch (event.type) {\n case 'run_start':\n return [{ type: 'agent_start', runId: value.runId, startedAt: value.startedAt }];\n case 'run_resume':\n return [{ type: 'agent_start', runId: value.runId, resumed: true }];\n case 'run_suspend':\n return [{ type: 'run_suspend', runId: value.runId, reason: value.reason, deferred: value.deferred }];\n case 'operation_abort':\n return [\n { type: 'operation_abort', operationId: value.operationId, steer: value.steer, followUp: value.followUp },\n ];\n case 'run_end':\n return [\n {\n type: 'agent_end',\n runId: value.runId,\n status: value.status,\n ...(value.error === undefined ? {} : { error: value.error }),\n },\n { type: 'agent_settled', runId: value.runId, timestamp: value.endedAt },\n ];\n case 'fault':\n return [{ type: FRAME_ERROR, error: value.message, code: value.code }];\n case 'handler_error':\n return [\n {\n type: 'handler_error',\n kind: value.kind,\n hook: value.hook,\n event: value.event,\n error: value.error,\n stack: value.stack,\n },\n ];\n case 'turn_start':\n return [{ type: 'turn_start', runId: value.runId, turnId: value.turnId }];\n case 'turn_end':\n return [\n {\n type: 'turn_end',\n runId: value.runId,\n turnId: value.turnId,\n message: value.message,\n toolResults: value.toolResults,\n },\n ];\n case 'retry_scheduled':\n return [\n {\n type: 'auto_retry_start',\n runId: value.runId,\n attempt: value.attempt,\n maxAttempts: value.maxAttempts,\n error: value.errorMessage,\n },\n ];\n case 'retry_start':\n return [{ type: 'auto_retry_start', runId: value.runId, attempt: value.attempt }];\n case 'retry_end':\n return [\n {\n type: 'auto_retry_end',\n runId: value.runId,\n attempt: value.attempt,\n success: value.success,\n error: value.finalError,\n },\n ];\n case 'message_start':\n return [{ type: 'message_start', runId: value.runId, message: value.message }];\n case 'message_update':\n return [\n {\n type: 'message_update',\n runId: value.runId,\n message: value.message,\n assistantMessageEvent: value.event,\n ...(value.frame === undefined ? {} : { assistantMessageFrame: value.frame }),\n },\n ];\n case 'message_end':\n return [{ type: 'message_end', runId: value.runId, message: value.message, entryId: value.entryId }];\n case 'tool_start':\n return [\n {\n type: 'tool_execution_start',\n runId: value.runId,\n turnId: value.turnId,\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ];\n case 'tool_update':\n return [\n {\n type: 'tool_execution_update',\n runId: value.runId,\n turnId: value.turnId,\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n partialResult: value.partialResult,\n },\n ];\n case 'tool_end':\n return [\n {\n type: 'tool_execution_end',\n runId: value.runId,\n turnId: value.turnId,\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n result: value.result,\n isError: value.isError,\n terminate: value.terminate,\n },\n ];\n case 'entry_added':\n return [{ type: 'entry_appended', entry: value.entry }];\n case 'queue_update':\n return [mapQueueUpdate(value)];\n case 'value_update':\n if (value.value === 'session_name') return [{ type: 'session_info_changed', name: value.name }];\n return [{ type: 'entry_label_changed', targetId: value.targetId, label: value.label }];\n case 'config_update':\n if (value.property === 'thinkingLevel') return [{ type: 'thinking_level_changed', level: value.value }];\n if (value.property === 'model') {\n const model = stateModel(value.value);\n return model === undefined\n ? []\n : [\n {\n type: 'response',\n command: 'get_state',\n success: true,\n data: { model },\n },\n ];\n }\n return [{ type: 'config_update', property: value.property, value: value.value, previous: value.previous }];\n case 'compaction_start':\n return [{ type: 'compaction_start', runId: value.runId, reason: value.reason }];\n case 'compaction_end':\n return [\n {\n type: 'compaction_end',\n runId: value.runId,\n reason: value.reason,\n status: value.status,\n entryId: value.entryId,\n },\n ];\n case 'navigation_start':\n return [{ type: 'navigation_start', runId: value.runId, targetId: value.targetId }];\n case 'navigation_end':\n return [{ type: 'navigation_end', runId: value.runId, status: value.status }];\n case 'usage':\n return [{ type: 'usage', lane: value.lane, row: value.row, totals: value.totals }];\n case 'lane_created':\n return [{ type: 'lane_created', at: value.at }];\n }\n}\n\nfunction isStorageFailure(error: unknown): boolean {\n if (error instanceof HarnessFault) return true;\n if (isRecord(error) && typeof error.code === 'string' && STORAGE_ERROR_CODES.has(error.code)) return true;\n return /(?:storage|session|jsonl|journal|commit|mutation).*(?:fail|error|fault|write|invariant)|(?:fail|error|fault|write|invariant).*(?:storage|session|jsonl|journal|commit|mutation)/iu.test(\n errorMessage(error),\n );\n}\n\nfunction resultError(value: unknown): never {\n if (isRecord(value) && value.ok === false) throw value.error;\n throw value;\n}\n\nasync function entriesForLane(\n lane: AgentLane,\n context: Context,\n): Promise<Awaited<ReturnType<AgentLane['findEntries']>>> {\n return lane.findEntries({ order: 'oldestFirst' }, context);\n}\n\n/**\n * Creates a same-process AgentHarness and the legacy framed compatibility\n * facade expected by doompi-server. No child process, RPC launcher, or Pi UI\n * runtime is created.\n */\nexport async function createDirectHarnessRuntime<TContext extends object | undefined = object | undefined>(\n options: DirectHarnessRuntimeOptions<TContext>,\n): Promise<DirectHarnessRuntime<TContext>> {\n const context = options.context ?? BACKGROUND_CONTEXT;\n const laneName = options.lane ?? DEFAULT_LANE;\n let disposed = false;\n let disposePromise: Promise<void> | undefined;\n let storageQuarantined = false;\n let storageFailure: unknown;\n let requestPreparationFailure: { error: unknown } | undefined;\n let turnPreparationFailure: { error: unknown } | undefined;\n let contextPreparationFailure: { error: unknown } | undefined;\n let payloadPreparationFailure: { error: unknown } | undefined;\n let toolsReady = true;\n let activeToolNames = new Set(options.activeToolNames ?? options.tools?.map((tool) => tool.name) ?? []);\n const storage = await openStorage(options, context);\n let models: AnyModels;\n let harnessResult: Awaited<ReturnType<typeof AgentHarness.create<TContext>>>;\n try {\n const registry = configureModels(options);\n const dispatchMethods = new Set<PropertyKey>([\n 'stream',\n 'complete',\n 'streamSimple',\n 'completeSimple',\n 'streamDeferred',\n 'fetchDeferred',\n ]);\n models = new Proxy(registry, {\n get(target, key) {\n const value: unknown = Reflect.get(target, key, target);\n if (typeof value !== 'function') return value;\n if (!dispatchMethods.has(key)) return value.bind(target);\n return (...args: unknown[]) => {\n try {\n if (disposed || storageQuarantined || !toolsReady)\n throw new Error('Direct harness model dispatch is blocked');\n if (key !== 'streamDeferred' && key !== 'fetchDeferred') {\n const request = args[1] as { tools?: readonly { name: string }[] };\n if (request.tools?.some((tool) => !activeToolNames.has(tool.name))) {\n throw new Error('Model request contains a tool disabled after generation preparation');\n }\n }\n if (contextPreparationFailure !== undefined) throw contextPreparationFailure.error;\n if (turnPreparationFailure !== undefined) throw turnPreparationFailure.error;\n if (requestPreparationFailure !== undefined) throw requestPreparationFailure.error;\n options.guardModelRequest?.();\n } catch {\n // Models reports admission/auth failures as responses, not throws that fault the harness.\n const model = args[0] as Model<Api>;\n const blocked: AssistantMessage = {\n role: 'assistant',\n content: [],\n api: model.api,\n provider: model.provider,\n model: model.id,\n timestamp: Date.now(),\n stopReason: 'error',\n errorMessage: 'Model request blocked: headless capability preparation is not ready.',\n usage: {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n totalTokens: 0,\n cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n },\n };\n if (key === 'complete' || key === 'completeSimple' || key === 'fetchDeferred') {\n return Promise.resolve(blocked);\n }\n const stream = createAssistantMessageEventStream();\n stream.push({ type: 'error', reason: 'error', error: blocked });\n return stream;\n }\n const requestOptions = args[2];\n if (isRecord(requestOptions) && typeof requestOptions.onPayload === 'function') {\n const onPayload = requestOptions.onPayload as (payload: unknown, model: Model<Api>) => Promise<unknown>;\n args[2] = {\n ...requestOptions,\n onPayload: async (payload: unknown, requestModel: Model<Api>) => {\n payloadPreparationFailure = undefined;\n const transformed = await onPayload(payload, requestModel);\n const failure = payloadPreparationFailure as { error: unknown } | undefined;\n if (failure !== undefined) throw failure.error;\n return transformed;\n },\n };\n }\n return Reflect.apply(value, target, args);\n };\n },\n });\n harnessResult = await AgentHarness.create<TContext>(\n {\n session: storage.session,\n models,\n model: modelReference(options.model, models),\n ...(options.thinkingLevel === undefined ? {} : { thinkingLevel: options.thinkingLevel }),\n ...(options.activeToolNames === undefined ? {} : { activeToolNames: options.activeToolNames }),\n ...(options.tools === undefined ? {} : { tools: options.tools }),\n ...(options.resources === undefined ? {} : { resources: options.resources }),\n ...(options.toolContext === undefined ? {} : { toolContext: options.toolContext }),\n ...(options.systemPrompt === undefined ? {} : { systemPrompt: options.systemPrompt }),\n ...(options.streamOptions === undefined ? {} : { streamOptions: options.streamOptions }),\n ...(options.retry === undefined ? {} : { retry: options.retry }),\n ...(options.compaction === undefined ? {} : { compaction: options.compaction }),\n ...(options.steeringMode === undefined ? {} : { steeringMode: options.steeringMode }),\n ...(options.followUpMode === undefined ? {} : { followUpMode: options.followUpMode }),\n ...(options.toolExecution === undefined ? {} : { toolExecution: options.toolExecution }),\n ...(options.toProviderMessages === undefined ? {} : { toProviderMessages: options.toProviderMessages }),\n ...(options.entryProjectors === undefined ? {} : { entryProjectors: options.entryProjectors }),\n },\n context,\n );\n } catch (error) {\n await closeStorage(storage, context);\n throw error;\n }\n const harness = harnessResult.harness;\n const sessionId = storage.session.metadata.id;\n const harnessId = options.harnessId ?? `${sessionId}:${laneName}`;\n const listeners = new Set<(frame: DirectHarnessFrame) => void>();\n const lifecycleListeners = new Set<DirectHarnessEventListener>();\n let resolveExited!: (code: number) => void;\n const exited = new Promise<number>((resolve) => {\n resolveExited = resolve;\n });\n let exitResolved = false;\n let lane: AgentLane;\n\n const emitFrame = (frame: DirectHarnessFrame): void => {\n for (const listener of Array.from(listeners)) {\n try {\n listener(frame);\n } catch {\n // Compatibility listeners are observers. One broken client must not fault the engine.\n }\n }\n };\n const emitLifecycle = async (event: HarnessEvent, eventContext: Context): Promise<void> => {\n await Promise.all(\n [...lifecycleListeners].map(async (listener) => {\n try {\n await listener(event, eventContext);\n } catch (error) {\n emitFrame({ type: 'handler_error', kind: 'event', event: event.type, error: errorMessage(error) });\n }\n }),\n );\n };\n let settledEvents = Promise.resolve();\n let toolsThisRun = 0;\n const deliverHarnessEvent = async (event: HarnessEvent, eventContext: Context): Promise<void> => {\n if (event.type === 'run_start') toolsThisRun = 0;\n if (event.type === 'tool_start') toolsThisRun += 1;\n if (event.type === 'run_end' && options.storage === 'sqlite') {\n const record = event as unknown as AnyRecord;\n // The settled marker is bookkeeping. Failing to write it must not stop the lifecycle\n // and frames below, or the run never reads as settled and the lane stays claimed.\n try {\n const latest = await lane.findEntry(\n { type: 'custom', customType: AGENT_SETTLED_ENTRY_TYPE, order: 'newestFirst' },\n eventContext,\n );\n const data = latest?.type === 'custom' && isRecord(latest.data) ? latest.data : undefined;\n if (data?.runId !== record.runId)\n await lane.appendCustomEntry(\n AGENT_SETTLED_ENTRY_TYPE,\n { runId: String(record.runId), timestamp: Number(record.endedAt), tools: toolsThisRun },\n eventContext,\n );\n } catch (error) {\n markStorageFailure(error);\n emitFrame({ type: FRAME_ERROR, code: 'agent_settled', error: errorMessage(error) });\n }\n }\n await emitLifecycle(event, eventContext);\n if (event.type === 'fault') markStorageFailure(event);\n for (const frame of mapHarnessEvent(event)) emitFrame(frame);\n if (\n ['run_start', 'run_end', 'operation_abort', 'queue_update', 'compaction_start', 'compaction_end'].includes(\n event.type,\n )\n )\n void (event.type === 'queue_update' ? reconcileNativeQueue() : publishLifecycle()).catch((error: unknown) =>\n emitFrame({ type: FRAME_ERROR, code: 'lifecycle_projection', error: errorMessage(error) }),\n );\n };\n const handleHarnessEvent = async (event: HarnessEvent, eventContext: Context): Promise<void> => {\n if (event.type === 'run_end') {\n // The native drive still owns the lane while emitting run_end. Release its\n // callback before settled hooks write history, then drain before acknowledging drive.\n // A rejected link would poison every later run_end and the await in drive().\n settledEvents = settledEvents\n .then(() => deliverHarnessEvent(event, eventContext))\n .catch((error: unknown) => emitFrame({ type: FRAME_ERROR, code: 'settled_event', error: errorMessage(error) }));\n return;\n }\n await deliverHarnessEvent(event, eventContext);\n };\n const unsubscribe = EVENT_TYPES.map((type) => harness.events.on(type, handleHarnessEvent as never));\n\n const guardLive = (): void => {\n if (disposed) throw new Error('The direct harness runtime is disposed');\n };\n const guardWritable = (): void => {\n guardLive();\n if (storageQuarantined)\n throw new Error(\n `Direct harness writes are quarantined after a storage failure: ${errorMessage(storageFailure)}`,\n { cause: storageFailure },\n );\n };\n const markStorageFailure = (error: unknown): void => {\n if (!isStorageFailure(error)) return;\n if (!storageQuarantined) storageFailure = error;\n storageQuarantined = true;\n emitFrame({ type: FRAME_ERROR, code: 'storage_quarantined', error: errorMessage(error) });\n };\n const writable = async <T>(operation: () => Promise<T>): Promise<T> => {\n guardWritable();\n try {\n await storage.historyLease?.assertQuiescent();\n return await operation();\n } catch (error) {\n markStorageFailure(error);\n throw error;\n }\n };\n\n // DoomPi owns the product queue and cancellation policy. Pi's inbox is an execution\n // handoff, not a second editable copy of the product queue.\n const lifecycleAddress = value<LifecycleRecord>('doompi.server.lifecycle', laneName);\n const readRecord = async (): Promise<LifecycleRecord> => {\n const stored = await storage.session.getValue(lifecycleAddress, context);\n if (stored !== undefined && stored.value.version !== 1) throw new Error('Unknown server lifecycle format');\n return stored?.value ?? EMPTY_LIFECYCLE;\n };\n const changeRecord = async <T>(\n change: (record: LifecycleRecord) => { record: LifecycleRecord; result: T } | { result: T },\n ): Promise<T> =>\n writable(() =>\n storage.session.mutate(async (mutator) => {\n const stored = await mutator.getValue(lifecycleAddress, context);\n const current = stored?.value ?? EMPTY_LIFECYCLE;\n if (current.version !== 1) throw new Error('Unknown server lifecycle format');\n const decision = change(current);\n if ('record' in decision) {\n await mutator.commit(\n [setValue(lifecycleAddress, compactLifecycle({ ...decision.record, revision: current.revision + 1 }))],\n context,\n );\n }\n return decision.result;\n }, context),\n );\n let settlingOperationId: string | undefined;\n let abortingOperationId: string | undefined;\n const readLifecycle = async (): Promise<DirectHarnessLifecycle> => {\n const [record, execution] = await Promise.all([readRecord(), lane.inspectExecution(context)]);\n const current = execution.current;\n return {\n revision: Math.max(record.revision, publicationRevision),\n operation:\n current === null\n ? settlingOperationId === undefined\n ? null\n : {\n id: settlingOperationId,\n kind: 'run',\n status: abortingOperationId === settlingOperationId ? 'aborting' : 'open',\n }\n : {\n id: current.id,\n kind: current.kind,\n status: current.status === 'aborting' || abortingOperationId === current.id ? 'aborting' : 'open',\n },\n paused: record.paused,\n queue: record.queue\n .filter((item) => item.disposition !== 'consumed' && item.disposition !== 'removed')\n .map(({ id, text, images, delivery, scheduling, disposition }) => ({\n id,\n text,\n ...(images === undefined ? {} : { images }),\n delivery,\n scheduling,\n disposition: disposition as DirectHarnessQueuedInput['disposition'],\n })),\n };\n };\n let publishingLifecycle = Promise.resolve();\n let publicationRevision = 0;\n const publishLifecycle = (): Promise<void> => {\n const next = publishingLifecycle.then(async () => {\n if (disposed) return;\n const lifecycle = await readLifecycle();\n publicationRevision = Math.max(publicationRevision + 1, lifecycle.revision);\n emitFrame({ type: 'lifecycle_update', lifecycle: { ...lifecycle, revision: publicationRevision } });\n });\n publishingLifecycle = next.catch((error: unknown) => {\n emitFrame({ type: FRAME_ERROR, code: 'lifecycle_projection', error: errorMessage(error) });\n }); // a failed projection must not stall later updates\n return next;\n };\n const retainedMessage = (\n id: string,\n kind: 'steer' | 'followUp' | 'nextRun',\n message: AgentMessage,\n ): RetainedInput => {\n const content = message.role === 'user' ? message.content : [];\n const parts = typeof content === 'string' ? [{ type: 'text', text: content }] : content;\n const text =\n message.role === 'user'\n ? parts\n .map((part) => (part.type === 'text' ? part.text : ''))\n .filter(Boolean)\n .join('\\n')\n : '';\n const images = message.role === 'user' ? parts.filter((part): part is ImageContent => part.type === 'image') : [];\n return {\n id,\n text,\n ...(images.length === 0 ? {} : { images }),\n message,\n delivery: kind,\n scheduling: 'held',\n disposition: 'handoff',\n nativeEntryId: id,\n };\n };\n // Native entries from older sessions and extension/voice callers are adopted by identity,\n // never copied or enqueued a second time. Pi continues to own their actual handoff.\n const adoptNativeQueue = async (): Promise<void> => {\n const changed = await writable(() =>\n storage.session.mutate(async (mutator) => {\n const native = await mutator.getValue(laneState(laneName), context);\n const original = await mutator.getValue(lifecycleAddress, context);\n const current = original?.value ?? EMPTY_LIFECYCLE;\n const adopted: RetainedInput[] = [];\n for (const item of native?.value.inbox ?? []) {\n if (item.kind !== 'steer' && item.kind !== 'followUp' && item.kind !== 'nextRun') continue;\n if (current.queue.some((entry) => entry.nativeEntryId === item.entryId || entry.id === item.entryId))\n continue;\n const pending = await mutator.getValue(pendingEntry(item.entryId), context);\n if (pending?.value.type !== 'message')\n throw new Error(`Native queued input ${item.entryId} has no message payload`);\n adopted.push(retainedMessage(item.entryId, item.kind, pending.value.payload));\n }\n if (adopted.length === 0) return false;\n await mutator.commit(\n [\n setValue(lifecycleAddress, {\n ...current,\n revision: current.revision + 1,\n queue: [...current.queue, ...adopted],\n }),\n ],\n context,\n );\n return true;\n }, context),\n );\n if (changed) await publishLifecycle();\n };\n const reconcileNativeQueue = async (): Promise<void> => {\n if (disposed) return;\n const native = await storage.session.getValue(laneState(laneName), context);\n const remaining = new Set((native?.value.inbox ?? []).map((entry) => entry.entryId));\n const record = await readRecord();\n for (const item of record.queue.filter(\n (entry) => entry.nativeEntryId !== undefined && !remaining.has(entry.nativeEntryId),\n )) {\n if (record.abortOperationId !== undefined) continue;\n const committed = await storage.session.getEntry(item.nativeEntryId!, context);\n await changeRecord((current) => ({\n record: {\n ...current,\n queue: current.queue.map((entry) =>\n entry.id === item.id && entry.nativeEntryId === item.nativeEntryId\n ? committed !== undefined\n ? { ...entry, disposition: 'consumed' }\n : current.paused\n ? {\n ...entry,\n disposition: 'pending',\n nativeEntryId: undefined,\n delivery: entry.delivery === 'steer' ? 'followUp' : entry.delivery,\n }\n : { ...entry, disposition: 'uncertain' }\n : entry,\n ),\n },\n result: undefined,\n }));\n }\n await publishLifecycle();\n };\n const unsubscribeHooks: Array<() => void> = [];\n if (options.transformContext !== undefined) {\n unsubscribeHooks.push(\n harness.hooks.on('before_run', () => {\n contextPreparationFailure = undefined;\n return undefined;\n }),\n );\n }\n if (options.beforeModelRequest !== undefined) {\n unsubscribeHooks.push(\n harness.hooks.on('before_run', async (event, hookContext) => {\n turnPreparationFailure = undefined;\n requestPreparationFailure = undefined;\n try {\n await options.beforeModelRequest?.(\n { phase: 'turn', prompt: event.prompt, resources: event.resources },\n hookContext,\n );\n } catch (error) {\n turnPreparationFailure = { error };\n throw error;\n }\n return undefined;\n }),\n harness.hooks.on('before_request', async (event, hookContext) => {\n // Upstream catches hook errors. Retain the failure for the Models admission guard.\n try {\n await options.beforeModelRequest?.(\n { phase: 'request', model: event.model, resources: await harness.getResources(hookContext) },\n hookContext,\n );\n requestPreparationFailure = undefined;\n } catch (error) {\n requestPreparationFailure = { error };\n throw error;\n }\n return undefined;\n }),\n );\n }\n if (options.transformContext !== undefined) {\n unsubscribeHooks.push(\n harness.hooks.on('transform_context', async (event, hookContext) => {\n try {\n return await options.transformContext!(event, hookContext);\n } catch (error) {\n // AgentHarness reports and continues after transform errors. Retain the failure so the\n // public Models boundary blocks provider dispatch instead of admitting untransformed context.\n contextPreparationFailure = { error };\n throw error;\n }\n }),\n );\n }\n if (options.beforePayload !== undefined) {\n unsubscribeHooks.push(\n harness.hooks.on('before_payload', async (event, hookContext) => {\n try {\n return await options.beforePayload!(event, hookContext);\n } catch (error) {\n // Upstream reports and continues after hook errors. Retain the failure so the Models payload\n // callback rejects instead of sending the original, untransformed payload.\n payloadPreparationFailure = { error };\n throw error;\n }\n }),\n );\n }\n if (options.beforeTool !== undefined) {\n unsubscribeHooks.push(harness.hooks.on('before_tool', options.beforeTool));\n }\n if (options.afterTool !== undefined) {\n unsubscribeHooks.push(harness.hooks.on('after_tool', options.afterTool));\n }\n if (options.beforeCompaction !== undefined) {\n unsubscribeHooks.push(harness.hooks.on('before_compaction', options.beforeCompaction));\n }\n try {\n lane = await harness.lane(laneName, context);\n if (options.sessionName !== undefined) await writable(() => harness.setName(options.sessionName, context));\n } catch (error) {\n for (const unsubscribeHook of unsubscribeHooks) unsubscribeHook();\n for (const unsubscribeEvent of unsubscribe) unsubscribeEvent();\n await harness.close(context).catch(() => undefined);\n await closeStorage(storage, context);\n throw error;\n }\n const settleExit = (code: number): void => {\n if (exitResolved) return;\n exitResolved = true;\n resolveExited(code);\n };\n\n let externalOperationActive = false;\n let agentOperationsActive = 0;\n const acquireAgentOperation = (): (() => void) => {\n if (externalOperationActive) throw new Error('The session is busy with an external tool invocation');\n agentOperationsActive += 1;\n let released = false;\n return () => {\n if (released) return;\n released = true;\n agentOperationsActive -= 1;\n };\n };\n const runAgentOperation = async <T>(operation: () => Promise<T>): Promise<T> => {\n const release = acquireAgentOperation();\n try {\n return await operation();\n } finally {\n release();\n }\n };\n const runExternalOperation = async <T>(operation: () => Promise<T>): Promise<T> => {\n guardWritable();\n if (externalOperationActive) throw new Error('The session is busy with an external tool invocation');\n if (agentOperationsActive > 0) throw new Error('The session is busy with an agent operation');\n externalOperationActive = true;\n try {\n const execution = await lane.inspectExecution(context);\n if (execution.current !== null) throw new Error('The session is busy with an agent operation');\n return await operation();\n } finally {\n externalOperationActive = false;\n }\n };\n\n // Serialize only admission/cancellation decisions, never the turn's provider/tool work.\n // The Session mutation line alone cannot cover the native accept and DoomPi pause commits.\n let admissionLine = Promise.resolve();\n const serializeAdmission = async <T>(operation: () => Promise<T>): Promise<T> => {\n const previous = admissionLine;\n let release!: () => void;\n admissionLine = new Promise<void>((resolve) => {\n release = resolve;\n });\n await previous;\n try {\n return await operation();\n } finally {\n release();\n }\n };\n let drainingAutomatic = false;\n let drainRequested = false;\n const drive = async (operationId: string): Promise<void> => {\n settlingOperationId = operationId;\n let failure: unknown;\n try {\n const result = await writable(() => lane.drive({ operationId, waitForRetry: true }, context));\n if (!result.ok) resultError(result);\n if (result.value.kind === 'waiting' && result.value.reason === 'retry') {\n throw new Error(`Direct harness returned an unexpected retry wait for ${operationId}`);\n }\n } catch (error) {\n failure = error;\n } finally {\n try {\n await settledEvents;\n } catch (error) {\n if (failure === undefined) failure = error;\n else emitFrame({ type: FRAME_ERROR, code: 'settled_event', error: errorMessage(error) });\n }\n if (settlingOperationId === operationId) settlingOperationId = undefined;\n if (abortingOperationId === operationId) abortingOperationId = undefined;\n if (!disposed) {\n let publicationSucceeded = false;\n try {\n await publishLifecycle();\n publicationSucceeded = true;\n } catch (error) {\n if (failure === undefined) failure = error;\n // publishLifecycle already reports this secondary failure as a projection frame.\n }\n if (publicationSucceeded && !storageQuarantined)\n void drainAutomatic().catch((error: unknown) =>\n emitFrame({ type: FRAME_ERROR, code: 'queue_drain', error: errorMessage(error) }),\n );\n }\n }\n if (failure !== undefined) throw failure;\n };\n // Only this function starts automatic follow-up turns. It never holds the Session mutation\n // line during provider/tool work; a claim is persisted before native admission.\n const drainAutomatic = async (): Promise<void> => {\n if (disposed) return;\n if (drainingAutomatic) {\n drainRequested = true;\n return;\n }\n drainingAutomatic = true;\n try {\n while (!disposed) {\n const execution = await lane.inspectExecution(context);\n if (execution.current !== null) return;\n const operationId = randomUUID();\n const claimed = await changeRecord((record) => {\n if (record.paused || record.abortOperationId !== undefined) return { result: undefined };\n const item = record.queue.find(\n (candidate) =>\n candidate.disposition === 'pending' &&\n candidate.scheduling === 'automatic' &&\n candidate.delivery !== 'steer',\n );\n if (!item) return { result: undefined };\n return {\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.id === item.id\n ? { ...entry, disposition: 'handoff', operationId, attemptId: randomUUID() }\n : entry,\n ),\n },\n result: item,\n };\n });\n if (!claimed) return;\n await publishLifecycle();\n try {\n const message: AgentMessage = claimed.message ?? {\n role: 'user',\n content: [\n ...(claimed.text ? [{ type: 'text' as const, text: claimed.text }] : []),\n ...(claimed.images ?? []),\n ],\n timestamp: Date.now(),\n };\n const admitted = await serializeAdmission(async () => {\n if ((await readRecord()).paused) return undefined;\n return writable(() => lane.accept({ kind: 'prompt', operationId, prompt: message }, context));\n });\n if (!admitted || !admitted.ok) {\n if (admitted && admitted.error._tag !== 'LaneBusy') resultError(admitted);\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.id === claimed.id && entry.operationId === operationId\n ? { ...entry, disposition: 'pending', operationId: undefined, attemptId: undefined }\n : entry,\n ),\n },\n result: undefined,\n }));\n await publishLifecycle();\n return;\n }\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.id === claimed.id && entry.operationId === operationId\n ? { ...entry, disposition: 'consumed' }\n : entry,\n ),\n },\n result: undefined,\n }));\n await publishLifecycle();\n await drive(operationId);\n } catch (error) {\n // An uncertain handoff is not retried: native admission may have committed before\n // an I/O or acknowledgement failure. Recovery reconciles it by operation identity.\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.id === claimed.id && entry.operationId === operationId && entry.disposition === 'handoff'\n ? { ...entry, disposition: 'uncertain' }\n : entry,\n ),\n },\n result: undefined,\n }));\n emitFrame({ type: FRAME_ERROR, code: 'queue_handoff', error: errorMessage(error) });\n await publishLifecycle();\n }\n }\n } finally {\n drainingAutomatic = false;\n if (drainRequested && !disposed) {\n drainRequested = false;\n void drainAutomatic().catch((error: unknown) =>\n emitFrame({ type: FRAME_ERROR, code: 'queue_drain', error: errorMessage(error) }),\n );\n }\n }\n };\n\n const admitPrompt = async (\n text: string | AgentMessage,\n images?: ImageContent[],\n streamingBehavior?: 'steer' | 'followUp',\n ): Promise<{ settled: Promise<void> }> => {\n const execution = await lane.inspectExecution(context);\n if (execution.current !== null && streamingBehavior !== undefined) {\n const queued =\n streamingBehavior === 'steer'\n ? await writable(() => lane.steer(text, images, context))\n : await writable(() => lane.followUp(text, images, context));\n if (!queued.ok) resultError(queued);\n await adoptNativeQueue();\n return { settled: Promise.resolve() };\n }\n // `images` belongs to the text form of the request only: a composed message already\n // carries its own content, so the two shapes are separate members of the union.\n const request =\n typeof text === 'string'\n ? ({ kind: 'prompt', prompt: text, ...(images === undefined ? {} : { images }) } as const)\n : ({ kind: 'prompt', prompt: text } as const);\n const admission = await serializeAdmission(async () => {\n const lifecycle = await readRecord();\n if (lifecycle.paused) {\n // A person starting a new turn may release an empty pause left by an aborted turn.\n // Retained inputs (including uncertain handoffs) still require an explicit resume.\n if (\n execution.current !== null ||\n settlingOperationId !== undefined ||\n lifecycle.queue.some((entry) => entry.disposition !== 'consumed' && entry.disposition !== 'removed')\n )\n throw new Error('The agent queue is paused; resume before starting a turn');\n await changeRecord((record) => {\n if (record.queue.some((entry) => entry.disposition !== 'consumed' && entry.disposition !== 'removed'))\n throw new Error('The agent queue is paused; resume before starting a turn');\n return { record: { ...record, paused: false, abortOperationId: undefined }, result: undefined };\n });\n await publishLifecycle();\n }\n // Held native follow-ups never wake an idle session. Reattach them only when a\n // person starts a new turn, preserving their enqueue-only scheduling policy.\n for (const item of (await readRecord()).queue.filter(\n (entry) => entry.disposition === 'pending' && entry.scheduling === 'held',\n )) {\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.id === item.id ? { ...entry, disposition: 'handoff', attemptId: randomUUID() } : entry,\n ),\n },\n result: undefined,\n }));\n try {\n const queued = await writable(() =>\n lane.followUp(item.message ?? item.text, item.message ? undefined : item.images, context),\n );\n if (!queued.ok) resultError(queued);\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.id === item.id ? { ...entry, nativeEntryId: queued.value.entryId } : entry,\n ),\n },\n result: undefined,\n }));\n } catch (error) {\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.id === item.id ? { ...entry, disposition: 'uncertain' } : entry,\n ),\n },\n result: undefined,\n }));\n await publishLifecycle();\n throw error;\n }\n }\n return writable(() => lane.accept(request, context));\n });\n if (!admission.ok) {\n // A turn can begin between inspection and admission. Preserve the requested delivery\n // kind when the lane reports that another operation won the race.\n if (streamingBehavior !== undefined && admission.error._tag === 'LaneBusy') {\n const queued = await writable(() =>\n streamingBehavior === 'steer' ? lane.steer(text, images, context) : lane.followUp(text, images, context),\n );\n if (!queued.ok) resultError(queued);\n await adoptNativeQueue();\n return { settled: Promise.resolve() };\n }\n resultError(admission);\n }\n return { settled: drive(admission.value.operationId) };\n };\n\n const replaceTools = (tools: AgentHarnessTool<TContext>[]): Promise<void> =>\n runAgentOperation(async () => {\n toolsReady = false;\n await writable(async () => {\n await harness.setTools(tools, context);\n await lane.setActiveTools(\n tools.map((tool) => tool.name),\n context,\n );\n activeToolNames = new Set(tools.map((tool) => tool.name));\n toolsReady = true;\n });\n });\n const replaceResources = async (resources: Parameters<typeof harness.setResources>[0]): Promise<void> => {\n await writable(() => harness.setResources(resources, context));\n };\n const readResources = async () => {\n guardLive();\n return harness.getResources(context);\n };\n const appendCustomEntry = async (customType: string, data?: unknown): Promise<string> =>\n writable(() => lane.appendCustomEntry(customType, data as never, context));\n const appendMessage = async (message: AgentMessage): Promise<string> =>\n writable(() => lane.appendMessage(message, context));\n const setLabel = async (targetId: string, label: string | undefined): Promise<void> =>\n writable(() => harness.setLabel(targetId, label, context));\n const recordUsage = async (\n usage: Usage,\n options?: { entryId?: string; details?: import('@earendil-works/pi-agent-core').JsonValue },\n ): Promise<string> => {\n const result = await writable(() => lane.recordUsage(usage, options, context));\n if (!result.ok) resultError(result);\n return result.value.usageId;\n };\n const tryDispatchCommand = async (text: string): Promise<boolean> => (await options.dispatchCommand?.(text)) ?? false;\n const dispatchCommand = (text: string): Promise<boolean> =>\n runAgentOperation(async () => {\n guardLive();\n return tryDispatchCommand(text);\n });\n const submitPrompt = async (\n text: string,\n images?: ImageContent[],\n streamingBehavior?: 'steer' | 'followUp',\n ): Promise<{ settled: Promise<void>; handledCommand?: boolean }> => {\n const release = acquireAgentOperation();\n try {\n if (await tryDispatchCommand(text)) {\n release();\n return { settled: Promise.resolve(), handledCommand: true };\n }\n const submission = await admitPrompt(text, images, streamingBehavior);\n void submission.settled.then(release, release);\n return submission;\n } catch (error) {\n release();\n throw error;\n }\n };\n const prompt = async (text: string, images?: ImageContent[]): Promise<void> => {\n const submission = await submitPrompt(text, images);\n await submission.settled;\n };\n const admitMessage = async (message: AgentMessage): Promise<{ settled: Promise<void> }> => {\n const release = acquireAgentOperation();\n try {\n const submission = await admitPrompt(message);\n void submission.settled.then(release, release);\n return submission;\n } catch (error) {\n release();\n throw error;\n }\n };\n const enqueueAutomatic = async (text: string, images?: ImageContent[]): Promise<{ id: string }> => {\n if (!text && !images?.length) throw new Error('Queued input must contain text or an image');\n const id = randomUUID();\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: [\n ...record.queue,\n {\n id,\n text,\n ...(images === undefined ? {} : { images }),\n delivery: 'followUp',\n scheduling: 'automatic',\n disposition: 'pending',\n },\n ],\n },\n result: undefined,\n }));\n await publishLifecycle();\n void drainAutomatic().catch((error: unknown) =>\n emitFrame({ type: FRAME_ERROR, code: 'queue_drain', error: errorMessage(error) }),\n );\n return { id };\n };\n const removeQueued = async (id: string): Promise<'removed' | 'in_flight' | 'already_consumed' | 'not_found'> => {\n const native = (await readRecord()).queue.find((entry) => entry.id === id);\n if (native?.disposition === 'handoff' && native.nativeEntryId !== undefined) {\n const cancelled = await writable(() => lane.cancelQueued(native.nativeEntryId!, context));\n if (!cancelled.ok) resultError(cancelled);\n if (cancelled.value.kind === 'cancelled') {\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) => (entry.id === id ? { ...entry, disposition: 'removed' } : entry)),\n },\n result: undefined,\n }));\n await publishLifecycle();\n return 'removed';\n }\n await reconcileNativeQueue();\n return cancelled.value.kind === 'already_consumed' ? 'already_consumed' : 'not_found';\n }\n const result = await changeRecord((record) => {\n const item = record.queue.find((entry) => entry.id === id);\n if (!item) return { result: 'not_found' as const };\n if (item.disposition === 'consumed') return { result: 'already_consumed' as const };\n if (item.disposition === 'removed') return { result: 'removed' as const };\n if (item.disposition !== 'pending') return { result: 'in_flight' as const };\n return {\n record: {\n ...record,\n queue: record.queue.map((entry) => (entry.id === id ? { ...entry, disposition: 'removed' } : entry)),\n },\n result: 'removed' as const,\n };\n });\n if (result === 'removed') await publishLifecycle();\n return result;\n };\n const deliverPromoted = (id: string, operationId: string): Promise<void> =>\n serializeAdmission(async () => {\n const execution = await lane.inspectExecution(context);\n if (execution.current?.id !== operationId || execution.current.status === 'aborting') {\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.id === id && entry.operationId === operationId\n ? { ...entry, delivery: 'followUp', disposition: 'pending', operationId: undefined }\n : entry,\n ),\n },\n result: undefined,\n }));\n await publishLifecycle();\n void drainAutomatic().catch((error: unknown) =>\n emitFrame({ type: FRAME_ERROR, code: 'queue_drain', error: errorMessage(error) }),\n );\n return;\n }\n const item = (await readRecord()).queue.find((entry) => entry.id === id && entry.operationId === operationId);\n if (!item || item.disposition !== 'pending') return;\n const message: AgentMessage = item.message ?? {\n role: 'user',\n content: [...(item.text ? [{ type: 'text' as const, text: item.text }] : []), ...(item.images ?? [])],\n timestamp: Date.now(),\n };\n // Reserve the item before crossing the native handoff boundary. Promotion/removal\n // can no longer claim it once the native mutation may have started.\n const reserved = await changeRecord((record) => {\n const current = record.queue.find((entry) => entry.id === id && entry.operationId === operationId);\n if (!current || current.disposition !== 'pending' || record.paused) return { result: false };\n return {\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.id === id ? { ...entry, disposition: 'handoff', attemptId: randomUUID() } : entry,\n ),\n },\n result: true,\n };\n });\n if (!reserved) return;\n await publishLifecycle();\n try {\n const queued = await writable(() => lane.steer(message, undefined, context));\n if (!queued.ok) resultError(queued);\n const after = await lane.inspectExecution(context);\n if (after.current?.id !== operationId || after.current.status === 'aborting') {\n const cancelled = await writable(() => lane.cancelQueued(queued.value.entryId, context));\n if (!cancelled.ok) resultError(cancelled);\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.id === id\n ? cancelled.value.kind === 'cancelled'\n ? {\n ...entry,\n delivery: 'followUp',\n disposition: 'pending',\n operationId: undefined,\n attemptId: undefined,\n }\n : {\n ...entry,\n disposition: cancelled.value.kind === 'already_consumed' ? 'consumed' : 'uncertain',\n nativeEntryId: queued.value.entryId,\n }\n : entry,\n ),\n },\n result: undefined,\n }));\n await publishLifecycle();\n if (cancelled.value.kind === 'cancelled')\n void drainAutomatic().catch((error: unknown) =>\n emitFrame({ type: FRAME_ERROR, code: 'queue_drain', error: errorMessage(error) }),\n );\n return;\n }\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.id === id ? { ...entry, nativeEntryId: queued.value.entryId } : entry,\n ),\n },\n result: undefined,\n }));\n await reconcileNativeQueue();\n } catch (error) {\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.id === id && entry.disposition === 'handoff' ? { ...entry, disposition: 'uncertain' } : entry,\n ),\n },\n result: undefined,\n }));\n await publishLifecycle();\n emitFrame({ type: FRAME_ERROR, code: 'steer_handoff', error: errorMessage(error) });\n }\n });\n const promoteQueued = async (\n id: string,\n operationId: string,\n ): Promise<'promoted' | 'in_flight' | 'target_changed' | 'not_found'> => {\n const execution = await lane.inspectExecution(context);\n const result = await changeRecord((record) => {\n const item = record.queue.find((entry) => entry.id === id);\n if (!item || item.disposition === 'removed' || item.disposition === 'consumed')\n return { result: 'not_found' as const };\n if (item.disposition !== 'pending') return { result: 'in_flight' as const };\n if (record.paused || execution.current?.id !== operationId || execution.current.status === 'aborting')\n return { result: 'target_changed' as const };\n return {\n record: {\n ...record,\n queue: record.queue.map((entry) => (entry.id === id ? { ...entry, delivery: 'steer', operationId } : entry)),\n },\n result: 'promoted' as const,\n };\n });\n if (result === 'promoted') {\n await publishLifecycle();\n void deliverPromoted(id, operationId).catch((error: unknown) =>\n emitFrame({ type: FRAME_ERROR, code: 'steer_handoff', error: errorMessage(error) }),\n );\n }\n return result;\n };\n const resumeQueue = async (): Promise<void> => {\n const execution = await lane.inspectExecution(context);\n if (execution.current !== null) throw new Error('Wait for the active turn to settle before resuming the queue');\n await changeRecord((record) => ({\n record: {\n ...record,\n paused: false,\n abortOperationId: undefined,\n queue: record.queue.map((entry) =>\n entry.disposition === 'pending' && entry.delivery === 'steer'\n ? { ...entry, delivery: 'followUp', operationId: undefined, scheduling: 'automatic' }\n : entry,\n ),\n },\n result: undefined,\n }));\n await publishLifecycle();\n void drainAutomatic().catch((error: unknown) =>\n emitFrame({ type: FRAME_ERROR, code: 'queue_drain', error: errorMessage(error) }),\n );\n };\n const steer = (message: string | AgentMessage, images?: ImageContent[], targetOperationId?: string): Promise<void> =>\n runAgentOperation(async () => {\n const execution = await lane.inspectExecution(context);\n const id = randomUUID();\n const retained =\n typeof message === 'string'\n ? { id, text: message, ...(images === undefined ? {} : { images }) }\n : { ...retainedMessage(id, 'steer', message), id };\n const target = targetOperationId ?? execution.current?.id;\n const active =\n target !== undefined && execution.current?.id === target && execution.current.status !== 'aborting';\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: [\n ...record.queue,\n {\n ...retained,\n delivery: active ? 'steer' : 'followUp',\n scheduling: 'automatic',\n disposition: 'pending',\n nativeEntryId: undefined,\n ...(active ? { operationId: target } : {}),\n },\n ],\n },\n result: undefined,\n }));\n await publishLifecycle();\n if (active)\n void deliverPromoted(id, target).catch((error: unknown) =>\n emitFrame({ type: FRAME_ERROR, code: 'steer_handoff', error: errorMessage(error) }),\n );\n else\n void drainAutomatic().catch((error: unknown) =>\n emitFrame({ type: FRAME_ERROR, code: 'queue_drain', error: errorMessage(error) }),\n );\n });\n const followUp = (message: string | AgentMessage, images?: ImageContent[]): Promise<void> =>\n runAgentOperation(async () => {\n const result = await writable(() => lane.followUp(message, images, context));\n if (!result.ok) resultError(result);\n await adoptNativeQueue();\n });\n const nextRun = (message: string | AgentMessage, images?: ImageContent[]): Promise<void> =>\n runAgentOperation(async () => {\n const result = await writable(() => lane.nextRun(message, images, context));\n if (!result.ok) resultError(result);\n await adoptNativeQueue();\n });\n // Cancellation itself. Session teardown calls it directly: an external tool invocation\n // holds the agent-operation guard, and closing must not wait on or fail because of it.\n const abortCurrent = async (targetOperationId?: string): Promise<void> => {\n const execution = await lane.inspectExecution(context);\n const currentId = execution.current?.id;\n if (!currentId || (targetOperationId !== undefined && targetOperationId !== currentId)) return;\n // Serialize handoff and pause. A promoted steer can neither enter the native inbox\n // between this snapshot and cancellation nor acknowledge without a retained mapping.\n const paused = await serializeAdmission(async () => {\n if ((await lane.inspectExecution(context)).current?.id !== currentId) return false;\n // Commit pause and a complete inbox snapshot before native cancellation deletes payloads.\n const captured = await writable(() =>\n storage.session.mutate(async (mutator) => {\n const stored = await mutator.getValue(lifecycleAddress, context);\n const record = stored?.value ?? EMPTY_LIFECYCLE;\n const native = await mutator.getValue(laneState(laneName), context);\n if (native?.value.currentOperationId !== currentId) return false;\n const adopted: RetainedInput[] = [];\n for (const pending of native.value.inbox) {\n if (pending.kind !== 'steer' && pending.kind !== 'followUp') continue;\n if (record.queue.some((item) => item.id === pending.entryId || item.nativeEntryId === pending.entryId))\n continue;\n const payload = await mutator.getValue(pendingEntry(pending.entryId), context);\n if (payload?.value.type !== 'message')\n throw new Error(`Native queued input ${pending.entryId} has no message payload`);\n adopted.push(retainedMessage(pending.entryId, pending.kind, payload.value.payload));\n }\n await mutator.commit(\n [\n setValue(lifecycleAddress, {\n ...record,\n revision: record.revision + 1,\n paused: true,\n abortOperationId: currentId,\n queue: [\n ...record.queue.map((entry) =>\n entry.disposition === 'pending' && entry.delivery === 'steer'\n ? { ...entry, delivery: 'followUp' as const, operationId: undefined }\n : entry,\n ),\n ...adopted,\n ],\n }),\n ],\n context,\n );\n return true;\n }, context),\n );\n if (!captured) return false;\n abortingOperationId = currentId;\n await publishLifecycle();\n return true;\n });\n if (!paused) return;\n const result = await writable(() => lane.requestAbort(currentId, context));\n if (!result.ok) {\n if (result.error._tag === 'OperationMismatch') return;\n resultError(result);\n }\n const returned = [\n ...result.value.steer.map((message) => ({ kind: 'steer' as const, message })),\n ...result.value.followUp.map((message) => ({ kind: 'followUp' as const, message })),\n ];\n const latest = await readRecord();\n const native = await storage.session.getValue(laneState(laneName), context);\n const remaining = new Set((native?.value.inbox ?? []).map((item) => item.entryId));\n const consumed = await Promise.all(\n latest.queue\n .filter((item) => item.nativeEntryId !== undefined)\n .map(async (item) => [item.id, await storage.session.getEntry(item.nativeEntryId!, context)] as const),\n );\n const committed = new Set(consumed.filter(([, entry]) => entry !== undefined).map(([id]) => id));\n const removedUnconsumed = latest.queue.filter(\n (item) => item.nativeEntryId !== undefined && !remaining.has(item.nativeEntryId) && !committed.has(item.id),\n );\n // The native result omits IDs. Match it to the already-retained native inbox by\n // cardinality and kind, never by text: two identical messages are distinct inputs.\n const unmatched = {\n steer: removedUnconsumed.filter((item) => item.delivery === 'steer').length,\n followUp: removedUnconsumed.filter((item) => item.delivery === 'followUp').length,\n };\n const ambiguous =\n returned.filter(({ kind }) => kind === 'steer').length !== unmatched.steer ||\n returned.filter(({ kind }) => kind === 'followUp').length !== unmatched.followUp;\n const extras = returned\n .filter(({ kind }) => {\n if (!ambiguous && unmatched[kind] > 0) {\n unmatched[kind] -= 1;\n return false;\n }\n return true;\n })\n .map(({ kind, message }) => ({\n ...retainedMessage(randomUUID(), kind, message),\n delivery: kind === 'steer' ? ('followUp' as const) : kind,\n scheduling: 'held' as const,\n disposition: 'pending' as const,\n nativeEntryId: undefined,\n }));\n await changeRecord((current) => ({\n record: {\n ...current,\n queue: [\n ...current.queue.map((item) => {\n if (item.nativeEntryId === undefined || remaining.has(item.nativeEntryId)) return item;\n if (committed.has(item.id)) return { ...item, disposition: 'consumed' };\n return ambiguous\n ? { ...item, disposition: 'uncertain' }\n : {\n ...item,\n disposition: 'pending',\n nativeEntryId: undefined,\n delivery: item.delivery === 'steer' ? 'followUp' : item.delivery,\n scheduling: item.delivery === 'steer' ? 'automatic' : item.scheduling,\n };\n }),\n ...extras,\n ],\n },\n result: undefined,\n }));\n await publishLifecycle();\n };\n const abort = (targetOperationId?: string): Promise<void> => runAgentOperation(() => abortCurrent(targetOperationId));\n const interrupt = async (): Promise<void> => {\n guardLive();\n await abortCurrent();\n await lane.waitForIdle(context);\n };\n const compact = (customInstructions?: string): Promise<void> =>\n runAgentOperation(async () => {\n const result = await writable(() =>\n lane.compact(customInstructions === undefined ? undefined : { customInstructions }, context),\n );\n if (!result.ok) resultError(result);\n });\n const recover = async (): Promise<void> => {\n await adoptNativeQueue();\n const record = await readRecord();\n if (record.abortOperationId !== undefined) {\n const execution = await lane.inspectExecution(context);\n if (execution.current?.id === record.abortOperationId) {\n await abort(record.abortOperationId);\n const afterAbort = await lane.inspectExecution(context);\n if (afterAbort.current?.id === record.abortOperationId && afterAbort.current.status !== 'aborting')\n throw new Error('Cannot resume a turn before its persisted abort intent reaches native cancellation');\n // An interrupted native drive has no process-local owner. Resume only its\n // already-cancelled control path to reach terminal cleanup; never regenerate.\n if (afterAbort.current?.id === record.abortOperationId) {\n const resumed = await writable(() => lane.resume(context));\n if (!resumed.ok && resumed.error._tag !== 'NothingToResume') resultError(resumed);\n }\n }\n await changeRecord((current) => ({\n record: { ...current, abortOperationId: undefined, paused: true },\n result: undefined,\n }));\n }\n for (const item of (await readRecord()).queue.filter(\n (entry) =>\n entry.disposition === 'handoff' &&\n entry.attemptId !== undefined &&\n entry.operationId === undefined &&\n entry.nativeEntryId === undefined,\n )) {\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) => (entry.id === item.id ? { ...entry, disposition: 'uncertain' } : entry)),\n },\n result: undefined,\n }));\n }\n const current = await readRecord();\n for (const item of current.queue.filter(\n (entry) => entry.disposition === 'handoff' && entry.operationId !== undefined,\n )) {\n const execution = await lane.inspectExecution(context);\n const result = await lane.getResult(item.operationId!, context);\n if (item.delivery !== 'steer' && (execution.current?.id === item.operationId || result !== undefined)) {\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) => (entry.id === item.id ? { ...entry, disposition: 'consumed' } : entry)),\n },\n result: undefined,\n }));\n } else {\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) => (entry.id === item.id ? { ...entry, disposition: 'uncertain' } : entry)),\n },\n result: undefined,\n }));\n }\n }\n await reconcileNativeQueue();\n await publishLifecycle();\n };\n const resume = (): Promise<boolean> =>\n runAgentOperation(async () => {\n await recover();\n if ((await readRecord()).paused) return false;\n const result = await writable(() => lane.resume(context));\n // A lane with no persisted operation has nothing to continue. That is the\n // ordinary state of a session reopened while idle, not a failure, so it is\n // reported rather than thrown: only the caller knows whether it expected one.\n if (!result.ok && result.error._tag === 'NothingToResume') {\n void drainAutomatic().catch((error: unknown) =>\n emitFrame({ type: FRAME_ERROR, code: 'queue_drain', error: errorMessage(error) }),\n );\n return false;\n }\n if (!result.ok) resultError(result);\n return true;\n });\n const readState = async (): Promise<Record<string, unknown>> => {\n const [lifecycle, retained, persisted, stats, thinking] = await Promise.all([\n readLifecycle(),\n readRecord(),\n storage.session.getValue(laneState(laneName), context),\n storage.session.getStats(context),\n lane.getThinkingLevel(context),\n ]);\n const configuredModel = await lane.getModel(context);\n const name = await harness.getName(context);\n return {\n model: configuredModel === undefined ? undefined : { provider: configuredModel.provider, id: configuredModel.id },\n thinkingLevel: thinking,\n isStreaming: lifecycle.operation?.kind === 'run',\n isCompacting: lifecycle.operation?.kind === 'compaction',\n ...(lifecycle.operation === null\n ? {}\n : { operationId: lifecycle.operation.id, executionStatus: lifecycle.operation.status }),\n queuePaused: lifecycle.paused,\n queueRevision: lifecycle.revision,\n steeringMode: await harness.getSteeringMode(context),\n followUpMode: await harness.getFollowUpMode(context),\n sessionFile: storage.sessionFile,\n sessionId,\n ...(name === undefined ? {} : { sessionName: name }),\n autoCompactionEnabled: (await harness.getCompactionSettings(context)).enabled,\n messageCount: stats.messageCount,\n pendingMessageCount:\n lifecycle.queue.length +\n (persisted?.value.inbox.filter(\n (entry) =>\n entry.kind !== 'write' &&\n !retained.queue.some((item) => item.id === entry.entryId || item.nativeEntryId === entry.entryId),\n ).length ?? 0),\n };\n };\n const readEntries = async () => ({\n entries: await entriesForLane(lane, context),\n leafId: await lane.getTipId(context),\n });\n const listCommands = () => [...(options.listCommands?.() ?? [])];\n const setModel = async (model: { provider: string; id: string }): Promise<void> => {\n if (models.getModel(model.provider, model.id) === undefined)\n throw new Error(`Model not found: ${model.provider}/${model.id}`);\n await writable(() => lane.setModel({ provider: model.provider, modelId: model.id }, context));\n };\n const availableModels = () => models.getAvailable();\n const availableThinkingLevels = async () => {\n const model = await lane.getModel(context);\n if (!model) throw new Error('No model is selected');\n return getSupportedThinkingLevels(model);\n };\n const setThinkingLevel = (level: Parameters<typeof lane.setThinkingLevel>[0]) =>\n writable(() => lane.setThinkingLevel(level, context));\n const setSteeringMode = (mode: Parameters<typeof harness.setSteeringMode>[0]) =>\n writable(() => harness.setSteeringMode(mode, context));\n const setFollowUpMode = (mode: Parameters<typeof harness.setFollowUpMode>[0]) =>\n writable(() => harness.setFollowUpMode(mode, context));\n const navigateTree = (targetId: string | null, navigationOptions?: Record<string, unknown>) =>\n runAgentOperation(async () => {\n const result = await writable(() => lane.navigateTree(targetId, navigationOptions as never, context));\n if (!result.ok) resultError(result);\n return {\n cancelled: result.value.navigation.status !== 'completed',\n entries: await entriesForLane(lane, context),\n };\n });\n const clearQueue = async () => {\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.disposition === 'pending' ? { ...entry, disposition: 'removed' } : entry,\n ),\n },\n result: undefined,\n }));\n const queued = (await storage.session.getValue(laneState(laneName), context))?.value.inbox ?? [];\n for (const item of queued) {\n if (item.kind === 'write') continue;\n const result = await writable(() => lane.cancelQueued(item.entryId, context));\n if (!result.ok) resultError(result);\n if (result.value.kind === 'cancelled')\n await changeRecord((record) => ({\n record: {\n ...record,\n queue: record.queue.map((entry) =>\n entry.nativeEntryId === item.entryId ? { ...entry, disposition: 'removed' } : entry,\n ),\n },\n result: undefined,\n }));\n }\n await publishLifecycle();\n return { steering: [] as never[], followUp: [] as never[] };\n };\n const setName = (name: string) => writable(() => harness.setName(name, context));\n const getSessionStats = () => storage.session.getStats(context);\n const dispose = (): Promise<void> => {\n // Preserve the facade's idempotent second-dispose contract even if the first\n // close reported a failure, while still waiting for a concurrent close to finish.\n if (disposed)\n return (\n disposePromise?.then(\n () => undefined,\n () => undefined,\n ) ?? Promise.resolve()\n );\n disposePromise ??= (async () => {\n let failure: unknown;\n try {\n const execution = await lane.inspectExecution(context);\n if (execution.current !== null) await abortCurrent(execution.current.id);\n } catch (error) {\n failure = error;\n markStorageFailure(error);\n }\n disposed = true;\n for (const unsubscribeEvent of unsubscribe) unsubscribeEvent();\n for (const unsubscribeHook of unsubscribeHooks) unsubscribeHook();\n try {\n await harness.close(context);\n } catch (error) {\n failure ??= error;\n markStorageFailure(error);\n }\n try {\n await closeStorage(storage, context);\n } catch (error) {\n failure ??= error;\n markStorageFailure(error);\n }\n settleExit(failure === undefined ? 0 : 1);\n if (failure !== undefined) throw failure;\n })();\n return disposePromise;\n };\n\n // The owning host explicitly resumes only after its facets and selection gates are ready.\n\n return {\n sessionId,\n laneName,\n harnessId,\n completeModel: models.complete?.bind(models),\n session: storage.session,\n harness,\n lane,\n exited,\n get storageQuarantined() {\n return storageQuarantined;\n },\n onPresentationFrame(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n onEvent(listener) {\n lifecycleListeners.add(listener);\n return () => lifecycleListeners.delete(listener);\n },\n stop() {\n void abort()\n .catch(() => undefined)\n .finally(() => dispose().catch(() => undefined));\n },\n readState,\n readLifecycle,\n enqueueAutomatic,\n removeQueued,\n promoteQueued,\n resumeQueue,\n recover,\n readEntries,\n listCommands,\n dispatchCommand,\n setModel,\n availableModels,\n availableThinkingLevels,\n setThinkingLevel,\n setSteeringMode,\n setFollowUpMode,\n navigateTree,\n clearQueue,\n setName,\n getSessionStats,\n replaceTools,\n replaceResources,\n readResources,\n runExternalOperation,\n appendCustomEntry,\n appendMessage,\n setLabel,\n recordUsage,\n submitPrompt,\n prompt,\n admitMessage,\n steer,\n followUp,\n nextRun,\n abort,\n interrupt,\n compact,\n resume,\n dispose,\n };\n}\n\nexport type {\n DirectHarnessRuntimeOptions,\n DirectHarnessRuntime,\n DirectHarnessFrame,\n} from '../types/server/directHarnessRuntime';\n"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/server/harnessErrorMessage.ts
|
|
2
|
+
function harnessErrorMessage(error, seen = /* @__PURE__ */ new Set()) {
|
|
3
|
+
if (typeof error === "string") return error;
|
|
4
|
+
if (!(error instanceof Error)) return "Direct harness operation failed";
|
|
5
|
+
if (seen.has(error)) return "[repeated error]";
|
|
6
|
+
seen.add(error);
|
|
7
|
+
const details = [...error.cause === void 0 ? [] : [harnessErrorMessage(error.cause, seen)], ...error instanceof AggregateError ? error.errors.map((failure) => harnessErrorMessage(failure, seen)) : []];
|
|
8
|
+
return [error.message, ...details].filter(Boolean).join(": ");
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
exports.harnessErrorMessage = harnessErrorMessage;
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=harnessErrorMessage.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harnessErrorMessage.cjs","names":[],"sources":["../../../src/server/harnessErrorMessage.ts"],"sourcesContent":["export function harnessErrorMessage(error: unknown, seen = new Set<object>()): string {\n if (typeof error === 'string') return error;\n if (!(error instanceof Error)) return 'Direct harness operation failed';\n if (seen.has(error)) return '[repeated error]';\n seen.add(error);\n const details = [\n ...(error.cause === undefined ? [] : [harnessErrorMessage(error.cause, seen)]),\n ...(error instanceof AggregateError\n ? error.errors.map((failure: unknown) => harnessErrorMessage(failure, seen))\n : []),\n ];\n return [error.message, ...details].filter(Boolean).join(': ');\n}\n"],"mappings":";AAAA,SAAgB,oBAAoB,OAAgB,uBAAO,IAAI,IAAY,GAAW;CACpF,IAAI,OAAO,UAAU,UAAU,OAAO;CACtC,IAAI,EAAE,iBAAiB,QAAQ,OAAO;CACtC,IAAI,KAAK,IAAI,KAAK,GAAG,OAAO;CAC5B,KAAK,IAAI,KAAK;CACd,MAAM,UAAU,CACd,GAAI,MAAM,UAAU,KAAA,IAAY,CAAC,IAAI,CAAC,oBAAoB,MAAM,OAAO,IAAI,CAAC,GAC5E,GAAI,iBAAiB,iBACjB,MAAM,OAAO,KAAK,YAAqB,oBAAoB,SAAS,IAAI,CAAC,IACzE,CAAC,CACP;CACA,OAAO,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,IAAI;AAC9D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/server/harnessErrorMessage.ts
|
|
2
|
+
function harnessErrorMessage(error, seen = /* @__PURE__ */ new Set()) {
|
|
3
|
+
if (typeof error === "string") return error;
|
|
4
|
+
if (!(error instanceof Error)) return "Direct harness operation failed";
|
|
5
|
+
if (seen.has(error)) return "[repeated error]";
|
|
6
|
+
seen.add(error);
|
|
7
|
+
const details = [...error.cause === void 0 ? [] : [harnessErrorMessage(error.cause, seen)], ...error instanceof AggregateError ? error.errors.map((failure) => harnessErrorMessage(failure, seen)) : []];
|
|
8
|
+
return [error.message, ...details].filter(Boolean).join(": ");
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { harnessErrorMessage };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=harnessErrorMessage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harnessErrorMessage.mjs","names":[],"sources":["../../../src/server/harnessErrorMessage.ts"],"sourcesContent":["export function harnessErrorMessage(error: unknown, seen = new Set<object>()): string {\n if (typeof error === 'string') return error;\n if (!(error instanceof Error)) return 'Direct harness operation failed';\n if (seen.has(error)) return '[repeated error]';\n seen.add(error);\n const details = [\n ...(error.cause === undefined ? [] : [harnessErrorMessage(error.cause, seen)]),\n ...(error instanceof AggregateError\n ? error.errors.map((failure: unknown) => harnessErrorMessage(failure, seen))\n : []),\n ];\n return [error.message, ...details].filter(Boolean).join(': ');\n}\n"],"mappings":";AAAA,SAAgB,oBAAoB,OAAgB,uBAAO,IAAI,IAAY,GAAW;CACpF,IAAI,OAAO,UAAU,UAAU,OAAO;CACtC,IAAI,EAAE,iBAAiB,QAAQ,OAAO;CACtC,IAAI,KAAK,IAAI,KAAK,GAAG,OAAO;CAC5B,KAAK,IAAI,KAAK;CACd,MAAM,UAAU,CACd,GAAI,MAAM,UAAU,KAAA,IAAY,CAAC,IAAI,CAAC,oBAAoB,MAAM,OAAO,IAAI,CAAC,GAC5E,GAAI,iBAAiB,iBACjB,MAAM,OAAO,KAAK,YAAqB,oBAAoB,SAAS,IAAI,CAAC,IACzE,CAAC,CACP;CACA,OAAO,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,IAAI;AAC9D"}
|