@agimon-ai/po-core 0.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +7 -0
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/agentModel.cjs +4 -0
- package/dist/agentModel.d.mts +2 -0
- package/dist/agentModel.mjs +2 -0
- package/dist/apiContracts.cjs +2094 -0
- package/dist/apiContracts.cjs.map +1 -0
- package/dist/apiContracts.d.mts +1086 -0
- package/dist/apiContracts.d.mts.map +1 -0
- package/dist/apiContracts.mjs +2074 -0
- package/dist/apiContracts.mjs.map +1 -0
- package/dist/askUser.cjs +8 -0
- package/dist/askUser.d.mts +2 -0
- package/dist/askUser.mjs +2 -0
- package/dist/authorTools.cjs +5 -0
- package/dist/authorTools.d.mts +2 -0
- package/dist/authorTools.mjs +2 -0
- package/dist/backgroundWork.cjs +9 -0
- package/dist/backgroundWork.d.mts +2 -0
- package/dist/backgroundWork.mjs +2 -0
- package/dist/bundleAssetPolicy.cjs +5 -0
- package/dist/bundleAssetPolicy.d.mts +2 -0
- package/dist/bundleAssetPolicy.mjs +2 -0
- package/dist/childProcess.cjs +15 -0
- package/dist/childProcess.d.mts +2 -0
- package/dist/childProcess.mjs +2 -0
- package/dist/childSession.cjs +9 -0
- package/dist/childSession.d.mts +3 -0
- package/dist/childSession.mjs +3 -0
- package/dist/cockpitContainer.cjs +4 -0
- package/dist/cockpitContainer.d.mts +2 -0
- package/dist/cockpitContainer.mjs +2 -0
- package/dist/config.cjs +13 -0
- package/dist/config.d.mts +3 -0
- package/dist/config.mjs +2 -0
- package/dist/contextApi.cjs +12 -0
- package/dist/contextApi.d.mts +4 -0
- package/dist/contextApi.mjs +3 -0
- package/dist/contextContributions.cjs +7 -0
- package/dist/contextContributions.d.mts +3 -0
- package/dist/contextContributions.mjs +3 -0
- package/dist/contextDetail.cjs +65 -0
- package/dist/contextDetail.cjs.map +1 -0
- package/dist/contextDetail.d.mts +19 -0
- package/dist/contextDetail.d.mts.map +1 -0
- package/dist/contextDetail.mjs +64 -0
- package/dist/contextDetail.mjs.map +1 -0
- package/dist/contextDetailStore.cjs +96 -0
- package/dist/contextDetailStore.cjs.map +1 -0
- package/dist/contextDetailStore.d.mts +21 -0
- package/dist/contextDetailStore.d.mts.map +1 -0
- package/dist/contextDetailStore.mjs +87 -0
- package/dist/contextDetailStore.mjs.map +1 -0
- package/dist/contextProjection.cjs +121 -0
- package/dist/contextProjection.cjs.map +1 -0
- package/dist/contextProjection.d.mts +130 -0
- package/dist/contextProjection.d.mts.map +1 -0
- package/dist/contextProjection.mjs +117 -0
- package/dist/contextProjection.mjs.map +1 -0
- package/dist/cordisHost.cjs +13 -0
- package/dist/cordisHost.d.mts +2 -0
- package/dist/cordisHost.mjs +2 -0
- package/dist/delegation.cjs +18 -0
- package/dist/delegation.d.mts +2 -0
- package/dist/delegation.mjs +2 -0
- package/dist/doomPackage.cjs +61 -0
- package/dist/doomPackage.cjs.map +1 -0
- package/dist/doomPackage.d.mts +17 -0
- package/dist/doomPackage.d.mts.map +1 -0
- package/dist/doomPackage.mjs +54 -0
- package/dist/doomPackage.mjs.map +1 -0
- package/dist/executionBudget.cjs +232 -0
- package/dist/executionBudget.cjs.map +1 -0
- package/dist/executionBudget.d.mts +11 -0
- package/dist/executionBudget.d.mts.map +1 -0
- package/dist/executionBudget.mjs +226 -0
- package/dist/executionBudget.mjs.map +1 -0
- package/dist/extensionFile.cjs +19 -0
- package/dist/extensionFile.d.mts +3 -0
- package/dist/extensionFile.mjs +2 -0
- package/dist/footer.cjs +6 -0
- package/dist/footer.d.mts +2 -0
- package/dist/footer.mjs +2 -0
- package/dist/headless.cjs +16 -0
- package/dist/headless.d.mts +2 -0
- package/dist/headless.mjs +2 -0
- package/dist/headlessHub.cjs +1008 -0
- package/dist/headlessHub.cjs.map +1 -0
- package/dist/headlessHub.d.mts +176 -0
- package/dist/headlessHub.d.mts.map +1 -0
- package/dist/headlessHub.mjs +1005 -0
- package/dist/headlessHub.mjs.map +1 -0
- package/dist/headlessServer.cjs +956 -0
- package/dist/headlessServer.cjs.map +1 -0
- package/dist/headlessServer.d.mts +66 -0
- package/dist/headlessServer.d.mts.map +1 -0
- package/dist/headlessServer.mjs +949 -0
- package/dist/headlessServer.mjs.map +1 -0
- package/dist/headlessSessionHost.cjs +0 -0
- package/dist/headlessSessionHost.d.mts +89 -0
- package/dist/headlessSessionHost.d.mts.map +1 -0
- package/dist/headlessSessionHost.mjs +1 -0
- package/dist/headlessSessionManager.cjs +51 -0
- package/dist/headlessSessionManager.cjs.map +1 -0
- package/dist/headlessSessionManager.d.mts +6 -0
- package/dist/headlessSessionManager.d.mts.map +1 -0
- package/dist/headlessSessionManager.mjs +50 -0
- package/dist/headlessSessionManager.mjs.map +1 -0
- package/dist/help.cjs +24 -0
- package/dist/help.d.mts +3 -0
- package/dist/help.mjs +3 -0
- package/dist/history.cjs +25 -0
- package/dist/history.d.mts +10 -0
- package/dist/history.mjs +10 -0
- package/dist/historyOwnership.cjs +253 -0
- package/dist/historyOwnership.cjs.map +1 -0
- package/dist/historyOwnership.d.mts +23 -0
- package/dist/historyOwnership.d.mts.map +1 -0
- package/dist/historyOwnership.mjs +247 -0
- package/dist/historyOwnership.mjs.map +1 -0
- package/dist/hubChannel.cjs +4 -0
- package/dist/hubChannel.d.mts +2 -0
- package/dist/hubChannel.mjs +2 -0
- package/dist/index.cjs +44 -0
- package/dist/index.d.mts +6 -0
- package/dist/index.mjs +6 -0
- package/dist/json.cjs +6 -0
- package/dist/json.d.mts +2 -0
- package/dist/json.mjs +2 -0
- package/dist/jsonlSessionRepo.cjs +44 -0
- package/dist/jsonlSessionRepo.cjs.map +1 -0
- package/dist/jsonlSessionRepo.d.mts +7 -0
- package/dist/jsonlSessionRepo.d.mts.map +1 -0
- package/dist/jsonlSessionRepo.mjs +42 -0
- package/dist/jsonlSessionRepo.mjs.map +1 -0
- package/dist/kernel.cjs +3 -0
- package/dist/kernel.d.mts +3 -0
- package/dist/kernel.mjs +2 -0
- package/dist/leader.cjs +9 -0
- package/dist/leader.d.mts +2 -0
- package/dist/leader.mjs +2 -0
- package/dist/logSinkTelemetry.cjs +5 -0
- package/dist/logSinkTelemetry.d.mts +2 -0
- package/dist/logSinkTelemetry.mjs +2 -0
- package/dist/machineApi.cjs +92 -0
- package/dist/machineApi.cjs.map +1 -0
- package/dist/machineApi.d.mts +7 -0
- package/dist/machineApi.d.mts.map +1 -0
- package/dist/machineApi.mjs +88 -0
- package/dist/machineApi.mjs.map +1 -0
- package/dist/main.cjs +11 -0
- package/dist/main.d.mts +5 -0
- package/dist/main.mjs +4 -0
- package/dist/mcpFacet.cjs +9 -0
- package/dist/mcpFacet.d.mts +4 -0
- package/dist/mcpFacet.mjs +3 -0
- package/dist/mcpProjection.cjs +16 -0
- package/dist/mcpProjection.d.mts +2 -0
- package/dist/mcpProjection.mjs +2 -0
- package/dist/mcpSchemaCost.cjs +195 -0
- package/dist/mcpSchemaCost.cjs.map +1 -0
- package/dist/mcpSchemaCost.d.mts +35 -0
- package/dist/mcpSchemaCost.d.mts.map +1 -0
- package/dist/mcpSchemaCost.mjs +190 -0
- package/dist/mcpSchemaCost.mjs.map +1 -0
- package/dist/mcpSession.cjs +9 -0
- package/dist/mcpSession.d.mts +2 -0
- package/dist/mcpSession.mjs +2 -0
- package/dist/mcpStatus.cjs +7 -0
- package/dist/mcpStatus.d.mts +2 -0
- package/dist/mcpStatus.mjs +2 -0
- package/dist/mcpToolResolver.cjs +5 -0
- package/dist/mcpToolResolver.d.mts +2 -0
- package/dist/mcpToolResolver.mjs +2 -0
- package/dist/mcpWidget.cjs +0 -0
- package/dist/mcpWidget.d.mts +2 -0
- package/dist/mcpWidget.mjs +1 -0
- package/dist/moduleResolution.cjs +412 -0
- package/dist/moduleResolution.cjs.map +1 -0
- package/dist/moduleResolution.d.mts +72 -0
- package/dist/moduleResolution.d.mts.map +1 -0
- package/dist/moduleResolution.mjs +396 -0
- package/dist/moduleResolution.mjs.map +1 -0
- package/dist/narration.cjs +10 -0
- package/dist/narration.d.mts +2 -0
- package/dist/narration.mjs +2 -0
- package/dist/native.cjs +29 -0
- package/dist/native.d.mts +12 -0
- package/dist/native.mjs +8 -0
- package/dist/notification.cjs +17 -0
- package/dist/notification.d.mts +2 -0
- package/dist/notification.mjs +2 -0
- package/dist/packageApi.cjs +17 -0
- package/dist/packageApi.d.mts +3 -0
- package/dist/packageApi.mjs +3 -0
- package/dist/packageApiServer.cjs +196 -0
- package/dist/packageApiServer.cjs.map +1 -0
- package/dist/packageApiServer.d.mts +62 -0
- package/dist/packageApiServer.d.mts.map +1 -0
- package/dist/packageApiServer.mjs +194 -0
- package/dist/packageApiServer.mjs.map +1 -0
- package/dist/piSettings.cjs +20 -0
- package/dist/piSettings.d.mts +2 -0
- package/dist/piSettings.mjs +2 -0
- package/dist/pluginProtocol.cjs +10 -0
- package/dist/pluginProtocol.d.mts +2 -0
- package/dist/pluginProtocol.mjs +2 -0
- package/dist/profileIdentity.cjs +6 -0
- package/dist/profileIdentity.d.mts +2 -0
- package/dist/profileIdentity.mjs +2 -0
- package/dist/protocol.cjs +10 -0
- package/dist/protocol.d.mts +2 -0
- package/dist/protocol.mjs +2 -0
- package/dist/readiness.cjs +8 -0
- package/dist/readiness.d.mts +2 -0
- package/dist/readiness.mjs +2 -0
- package/dist/remoteApi.cjs +45 -0
- package/dist/remoteApi.cjs.map +1 -0
- package/dist/remoteApi.d.mts +7 -0
- package/dist/remoteApi.d.mts.map +1 -0
- package/dist/remoteApi.mjs +44 -0
- package/dist/remoteApi.mjs.map +1 -0
- package/dist/remoteRuntime.cjs +498 -0
- package/dist/remoteRuntime.cjs.map +1 -0
- package/dist/remoteRuntime.d.mts +36 -0
- package/dist/remoteRuntime.d.mts.map +1 -0
- package/dist/remoteRuntime.mjs +494 -0
- package/dist/remoteRuntime.mjs.map +1 -0
- package/dist/runtimeConfig.cjs +232 -0
- package/dist/runtimeConfig.cjs.map +1 -0
- package/dist/runtimeConfig.d.mts +313 -0
- package/dist/runtimeConfig.d.mts.map +1 -0
- package/dist/runtimeConfig.mjs +221 -0
- package/dist/runtimeConfig.mjs.map +1 -0
- package/dist/runtimeContextApi.cjs +64 -0
- package/dist/runtimeContextApi.cjs.map +1 -0
- package/dist/runtimeContextApi.d.mts +16 -0
- package/dist/runtimeContextApi.d.mts.map +1 -0
- package/dist/runtimeContextApi.mjs +62 -0
- package/dist/runtimeContextApi.mjs.map +1 -0
- package/dist/runtimeCordisHost.cjs +223 -0
- package/dist/runtimeCordisHost.cjs.map +1 -0
- package/dist/runtimeCordisHost.d.mts +78 -0
- package/dist/runtimeCordisHost.d.mts.map +1 -0
- package/dist/runtimeCordisHost.mjs +212 -0
- package/dist/runtimeCordisHost.mjs.map +1 -0
- package/dist/runtimeHeadlessSessionManager.cjs +0 -0
- package/dist/runtimeHeadlessSessionManager.d.mts +18 -0
- package/dist/runtimeHeadlessSessionManager.d.mts.map +1 -0
- package/dist/runtimeHeadlessSessionManager.mjs +1 -0
- package/dist/runtimeIdentity.cjs +26 -0
- package/dist/runtimeIdentity.cjs.map +1 -0
- package/dist/runtimeIdentity.d.mts +7 -0
- package/dist/runtimeIdentity.d.mts.map +1 -0
- package/dist/runtimeIdentity.mjs +21 -0
- package/dist/runtimeIdentity.mjs.map +1 -0
- package/dist/runtimeJson.cjs +46 -0
- package/dist/runtimeJson.cjs.map +1 -0
- package/dist/runtimeJson.d.mts +22 -0
- package/dist/runtimeJson.d.mts.map +1 -0
- package/dist/runtimeJson.mjs +39 -0
- package/dist/runtimeJson.mjs.map +1 -0
- package/dist/runtimeLogSinkTelemetry.cjs +102 -0
- package/dist/runtimeLogSinkTelemetry.cjs.map +1 -0
- package/dist/runtimeLogSinkTelemetry.d.mts +49 -0
- package/dist/runtimeLogSinkTelemetry.d.mts.map +1 -0
- package/dist/runtimeLogSinkTelemetry.mjs +99 -0
- package/dist/runtimeLogSinkTelemetry.mjs.map +1 -0
- package/dist/runtimePackages.cjs +120 -0
- package/dist/runtimePackages.cjs.map +1 -0
- package/dist/runtimePackages.d.mts +57 -0
- package/dist/runtimePackages.d.mts.map +1 -0
- package/dist/runtimePackages.mjs +110 -0
- package/dist/runtimePackages.mjs.map +1 -0
- package/dist/runtimePiSettings.cjs +257 -0
- package/dist/runtimePiSettings.cjs.map +1 -0
- package/dist/runtimePiSettings.d.mts +70 -0
- package/dist/runtimePiSettings.d.mts.map +1 -0
- package/dist/runtimePiSettings.mjs +235 -0
- package/dist/runtimePiSettings.mjs.map +1 -0
- package/dist/runtimeProtocol.cjs +228 -0
- package/dist/runtimeProtocol.cjs.map +1 -0
- package/dist/runtimeProtocol.d.mts +86 -0
- package/dist/runtimeProtocol.d.mts.map +1 -0
- package/dist/runtimeProtocol.mjs +219 -0
- package/dist/runtimeProtocol.mjs.map +1 -0
- package/dist/runtimeToolNames.cjs +51 -0
- package/dist/runtimeToolNames.cjs.map +1 -0
- package/dist/runtimeToolNames.d.mts +24 -0
- package/dist/runtimeToolNames.d.mts.map +1 -0
- package/dist/runtimeToolNames.mjs +49 -0
- package/dist/runtimeToolNames.mjs.map +1 -0
- package/dist/runtimeTransition.cjs +27 -0
- package/dist/runtimeTransition.cjs.map +1 -0
- package/dist/runtimeTransition.d.mts +114 -0
- package/dist/runtimeTransition.d.mts.map +1 -0
- package/dist/runtimeTransition.mjs +24 -0
- package/dist/runtimeTransition.mjs.map +1 -0
- package/dist/sandboxHarness.cjs +6 -0
- package/dist/sandboxHarness.d.mts +2 -0
- package/dist/sandboxHarness.mjs +2 -0
- package/dist/server.cjs +17 -0
- package/dist/server.d.mts +10 -0
- package/dist/server.mjs +7 -0
- package/dist/serverFacet.cjs +34 -0
- package/dist/serverFacet.d.mts +10 -0
- package/dist/serverFacet.mjs +9 -0
- package/dist/serverTelemetry.cjs +25 -0
- package/dist/serverTelemetry.cjs.map +1 -0
- package/dist/serverTelemetry.d.mts +12 -0
- package/dist/serverTelemetry.d.mts.map +1 -0
- package/dist/serverTelemetry.mjs +23 -0
- package/dist/serverTelemetry.mjs.map +1 -0
- package/dist/sessionFilesApi.cjs +96 -0
- package/dist/sessionFilesApi.cjs.map +1 -0
- package/dist/sessionFilesApi.d.mts +7 -0
- package/dist/sessionFilesApi.d.mts.map +1 -0
- package/dist/sessionFilesApi.mjs +91 -0
- package/dist/sessionFilesApi.mjs.map +1 -0
- package/dist/sessionMcp.cjs +6 -0
- package/dist/sessionMcp.d.mts +5 -0
- package/dist/sessionMcp.mjs +3 -0
- package/dist/sessionProtocol.cjs +8 -0
- package/dist/sessionProtocol.d.mts +3 -0
- package/dist/sessionProtocol.mjs +2 -0
- package/dist/skills.cjs +9 -0
- package/dist/skills.d.mts +2 -0
- package/dist/skills.mjs +2 -0
- package/dist/sqliteSessionStorage.cjs +168 -0
- package/dist/sqliteSessionStorage.cjs.map +1 -0
- package/dist/sqliteSessionStorage.d.mts +35 -0
- package/dist/sqliteSessionStorage.d.mts.map +1 -0
- package/dist/sqliteSessionStorage.mjs +158 -0
- package/dist/sqliteSessionStorage.mjs.map +1 -0
- package/dist/src/constants/authorTools.cjs +10 -0
- package/dist/src/constants/authorTools.cjs.map +1 -0
- package/dist/src/constants/authorTools.d.mts +6 -0
- package/dist/src/constants/authorTools.d.mts.map +1 -0
- package/dist/src/constants/authorTools.mjs +8 -0
- package/dist/src/constants/authorTools.mjs.map +1 -0
- package/dist/src/constants/contextApi.cjs +31 -0
- package/dist/src/constants/contextApi.cjs.map +1 -0
- package/dist/src/constants/contextApi.d.mts +23 -0
- package/dist/src/constants/contextApi.d.mts.map +1 -0
- package/dist/src/constants/contextApi.mjs +25 -0
- package/dist/src/constants/contextApi.mjs.map +1 -0
- package/dist/src/constants/nativeHost.cjs +56 -0
- package/dist/src/constants/nativeHost.cjs.map +1 -0
- package/dist/src/constants/nativeHost.d.mts +21 -0
- package/dist/src/constants/nativeHost.d.mts.map +1 -0
- package/dist/src/constants/nativeHost.mjs +53 -0
- package/dist/src/constants/nativeHost.mjs.map +1 -0
- package/dist/src/constants/remote.cjs +132 -0
- package/dist/src/constants/remote.cjs.map +1 -0
- package/dist/src/constants/remote.mjs +99 -0
- package/dist/src/constants/remote.mjs.map +1 -0
- package/dist/src/constants/sessionFiles.cjs +27 -0
- package/dist/src/constants/sessionFiles.cjs.map +1 -0
- package/dist/src/constants/sessionFiles.mjs +25 -0
- package/dist/src/constants/sessionFiles.mjs.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.cjs +12 -0
- package/dist/src/constants/voiceReloadHandoff.cjs.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.d.mts +7 -0
- package/dist/src/constants/voiceReloadHandoff.d.mts.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.mjs +9 -0
- package/dist/src/constants/voiceReloadHandoff.mjs.map +1 -0
- package/dist/src/constants/voiceTools.cjs +96 -0
- package/dist/src/constants/voiceTools.cjs.map +1 -0
- package/dist/src/constants/voiceTools.d.mts +58 -0
- package/dist/src/constants/voiceTools.d.mts.map +1 -0
- package/dist/src/constants/voiceTools.mjs +60 -0
- package/dist/src/constants/voiceTools.mjs.map +1 -0
- package/dist/src/extensions/extensionFile.cjs +140 -0
- package/dist/src/extensions/extensionFile.cjs.map +1 -0
- package/dist/src/extensions/extensionFile.d.mts +69 -0
- package/dist/src/extensions/extensionFile.d.mts.map +1 -0
- package/dist/src/extensions/extensionFile.mjs +124 -0
- package/dist/src/extensions/extensionFile.mjs.map +1 -0
- package/dist/src/extensions/serverPlugin.cjs +107 -0
- package/dist/src/extensions/serverPlugin.cjs.map +1 -0
- package/dist/src/extensions/serverPlugin.d.mts +5 -0
- package/dist/src/extensions/serverPlugin.d.mts.map +1 -0
- package/dist/src/extensions/serverPlugin.mjs +107 -0
- package/dist/src/extensions/serverPlugin.mjs.map +1 -0
- package/dist/src/extensions/webPlugin.cjs +136 -0
- package/dist/src/extensions/webPlugin.cjs.map +1 -0
- package/dist/src/extensions/webPlugin.d.mts +68 -0
- package/dist/src/extensions/webPlugin.d.mts.map +1 -0
- package/dist/src/extensions/webPlugin.mjs +114 -0
- package/dist/src/extensions/webPlugin.mjs.map +1 -0
- package/dist/src/pi/piSessionRuntime.cjs +625 -0
- package/dist/src/pi/piSessionRuntime.cjs.map +1 -0
- package/dist/src/pi/piSessionRuntime.d.mts +43 -0
- package/dist/src/pi/piSessionRuntime.d.mts.map +1 -0
- package/dist/src/pi/piSessionRuntime.mjs +624 -0
- package/dist/src/pi/piSessionRuntime.mjs.map +1 -0
- package/dist/src/pi/piWebSocketListener.cjs +115 -0
- package/dist/src/pi/piWebSocketListener.cjs.map +1 -0
- package/dist/src/pi/piWebSocketListener.mjs +115 -0
- package/dist/src/pi/piWebSocketListener.mjs.map +1 -0
- package/dist/src/schemas/agentModel.cjs +33 -0
- package/dist/src/schemas/agentModel.cjs.map +1 -0
- package/dist/src/schemas/agentModel.d.mts +26 -0
- package/dist/src/schemas/agentModel.d.mts.map +1 -0
- package/dist/src/schemas/agentModel.mjs +32 -0
- package/dist/src/schemas/agentModel.mjs.map +1 -0
- package/dist/src/schemas/apiContracts.d.mts +58 -0
- package/dist/src/schemas/apiContracts.d.mts.map +1 -0
- package/dist/src/schemas/askUser.cjs +42 -0
- package/dist/src/schemas/askUser.cjs.map +1 -0
- package/dist/src/schemas/askUser.d.mts +47 -0
- package/dist/src/schemas/askUser.d.mts.map +1 -0
- package/dist/src/schemas/askUser.mjs +37 -0
- package/dist/src/schemas/askUser.mjs.map +1 -0
- package/dist/src/schemas/backgroundWork.cjs +44 -0
- package/dist/src/schemas/backgroundWork.cjs.map +1 -0
- package/dist/src/schemas/backgroundWork.d.mts +76 -0
- package/dist/src/schemas/backgroundWork.d.mts.map +1 -0
- package/dist/src/schemas/backgroundWork.mjs +38 -0
- package/dist/src/schemas/backgroundWork.mjs.map +1 -0
- package/dist/src/schemas/childProcess.cjs +67 -0
- package/dist/src/schemas/childProcess.cjs.map +1 -0
- package/dist/src/schemas/childProcess.d.mts +30 -0
- package/dist/src/schemas/childProcess.d.mts.map +1 -0
- package/dist/src/schemas/childProcess.mjs +55 -0
- package/dist/src/schemas/childProcess.mjs.map +1 -0
- package/dist/src/schemas/cockpitContainer.cjs +31 -0
- package/dist/src/schemas/cockpitContainer.cjs.map +1 -0
- package/dist/src/schemas/cockpitContainer.d.mts +80 -0
- package/dist/src/schemas/cockpitContainer.d.mts.map +1 -0
- package/dist/src/schemas/cockpitContainer.mjs +30 -0
- package/dist/src/schemas/cockpitContainer.mjs.map +1 -0
- package/dist/src/schemas/contextContributions.cjs +17 -0
- package/dist/src/schemas/contextContributions.cjs.map +1 -0
- package/dist/src/schemas/contextContributions.d.mts +49 -0
- package/dist/src/schemas/contextContributions.d.mts.map +1 -0
- package/dist/src/schemas/contextContributions.mjs +15 -0
- package/dist/src/schemas/contextContributions.mjs.map +1 -0
- package/dist/src/schemas/delegation.cjs +91 -0
- package/dist/src/schemas/delegation.cjs.map +1 -0
- package/dist/src/schemas/delegation.d.mts +95 -0
- package/dist/src/schemas/delegation.d.mts.map +1 -0
- package/dist/src/schemas/delegation.mjs +76 -0
- package/dist/src/schemas/delegation.mjs.map +1 -0
- package/dist/src/schemas/extensionFile.d.mts +116 -0
- package/dist/src/schemas/extensionFile.d.mts.map +1 -0
- package/dist/src/schemas/footer.cjs +48 -0
- package/dist/src/schemas/footer.cjs.map +1 -0
- package/dist/src/schemas/footer.d.mts +48 -0
- package/dist/src/schemas/footer.d.mts.map +1 -0
- package/dist/src/schemas/footer.mjs +45 -0
- package/dist/src/schemas/footer.mjs.map +1 -0
- package/dist/src/schemas/headless.cjs +97 -0
- package/dist/src/schemas/headless.cjs.map +1 -0
- package/dist/src/schemas/headless.d.mts +472 -0
- package/dist/src/schemas/headless.d.mts.map +1 -0
- package/dist/src/schemas/headless.mjs +84 -0
- package/dist/src/schemas/headless.mjs.map +1 -0
- package/dist/src/schemas/help.cjs +281 -0
- package/dist/src/schemas/help.cjs.map +1 -0
- package/dist/src/schemas/help.d.mts +119 -0
- package/dist/src/schemas/help.d.mts.map +1 -0
- package/dist/src/schemas/help.mjs +262 -0
- package/dist/src/schemas/help.mjs.map +1 -0
- package/dist/src/schemas/hubChannel.cjs +20 -0
- package/dist/src/schemas/hubChannel.cjs.map +1 -0
- package/dist/src/schemas/hubChannel.d.mts +271 -0
- package/dist/src/schemas/hubChannel.d.mts.map +1 -0
- package/dist/src/schemas/hubChannel.mjs +19 -0
- package/dist/src/schemas/hubChannel.mjs.map +1 -0
- package/dist/src/schemas/leader.cjs +57 -0
- package/dist/src/schemas/leader.cjs.map +1 -0
- package/dist/src/schemas/leader.d.mts +107 -0
- package/dist/src/schemas/leader.d.mts.map +1 -0
- package/dist/src/schemas/leader.mjs +51 -0
- package/dist/src/schemas/leader.mjs.map +1 -0
- package/dist/src/schemas/mcpBundle.d.mts +13 -0
- package/dist/src/schemas/mcpBundle.d.mts.map +1 -0
- package/dist/src/schemas/mcpFacet.cjs +24 -0
- package/dist/src/schemas/mcpFacet.cjs.map +1 -0
- package/dist/src/schemas/mcpFacet.d.mts +91 -0
- package/dist/src/schemas/mcpFacet.d.mts.map +1 -0
- package/dist/src/schemas/mcpFacet.mjs +21 -0
- package/dist/src/schemas/mcpFacet.mjs.map +1 -0
- package/dist/src/schemas/mcpProjection.cjs +117 -0
- package/dist/src/schemas/mcpProjection.cjs.map +1 -0
- package/dist/src/schemas/mcpProjection.d.mts +124 -0
- package/dist/src/schemas/mcpProjection.d.mts.map +1 -0
- package/dist/src/schemas/mcpProjection.mjs +104 -0
- package/dist/src/schemas/mcpProjection.mjs.map +1 -0
- package/dist/src/schemas/mcpSession.cjs +57 -0
- package/dist/src/schemas/mcpSession.cjs.map +1 -0
- package/dist/src/schemas/mcpSession.d.mts +57 -0
- package/dist/src/schemas/mcpSession.d.mts.map +1 -0
- package/dist/src/schemas/mcpSession.mjs +51 -0
- package/dist/src/schemas/mcpSession.mjs.map +1 -0
- package/dist/src/schemas/mcpStatus.cjs +52 -0
- package/dist/src/schemas/mcpStatus.cjs.map +1 -0
- package/dist/src/schemas/mcpStatus.d.mts +73 -0
- package/dist/src/schemas/mcpStatus.d.mts.map +1 -0
- package/dist/src/schemas/mcpStatus.mjs +48 -0
- package/dist/src/schemas/mcpStatus.mjs.map +1 -0
- package/dist/src/schemas/mcpToolResolver.cjs +17 -0
- package/dist/src/schemas/mcpToolResolver.cjs.map +1 -0
- package/dist/src/schemas/mcpToolResolver.d.mts +24 -0
- package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -0
- package/dist/src/schemas/mcpToolResolver.mjs +15 -0
- package/dist/src/schemas/mcpToolResolver.mjs.map +1 -0
- package/dist/src/schemas/narration.cjs +54 -0
- package/dist/src/schemas/narration.cjs.map +1 -0
- package/dist/src/schemas/narration.d.mts +29 -0
- package/dist/src/schemas/narration.d.mts.map +1 -0
- package/dist/src/schemas/narration.mjs +47 -0
- package/dist/src/schemas/narration.mjs.map +1 -0
- package/dist/src/schemas/notification.cjs +122 -0
- package/dist/src/schemas/notification.cjs.map +1 -0
- package/dist/src/schemas/notification.d.mts +48 -0
- package/dist/src/schemas/notification.d.mts.map +1 -0
- package/dist/src/schemas/notification.mjs +108 -0
- package/dist/src/schemas/notification.mjs.map +1 -0
- package/dist/src/schemas/packageApi.cjs +76 -0
- package/dist/src/schemas/packageApi.cjs.map +1 -0
- package/dist/src/schemas/packageApi.d.mts +302 -0
- package/dist/src/schemas/packageApi.d.mts.map +1 -0
- package/dist/src/schemas/packageApi.mjs +66 -0
- package/dist/src/schemas/packageApi.mjs.map +1 -0
- package/dist/src/schemas/pluginContributions.cjs +19 -0
- package/dist/src/schemas/pluginContributions.cjs.map +1 -0
- package/dist/src/schemas/pluginContributions.d.mts +56 -0
- package/dist/src/schemas/pluginContributions.d.mts.map +1 -0
- package/dist/src/schemas/pluginContributions.mjs +18 -0
- package/dist/src/schemas/pluginContributions.mjs.map +1 -0
- package/dist/src/schemas/pluginProtocol.cjs +103 -0
- package/dist/src/schemas/pluginProtocol.cjs.map +1 -0
- package/dist/src/schemas/pluginProtocol.d.mts +70 -0
- package/dist/src/schemas/pluginProtocol.d.mts.map +1 -0
- package/dist/src/schemas/pluginProtocol.mjs +96 -0
- package/dist/src/schemas/pluginProtocol.mjs.map +1 -0
- package/dist/src/schemas/profileIdentity.cjs +67 -0
- package/dist/src/schemas/profileIdentity.cjs.map +1 -0
- package/dist/src/schemas/profileIdentity.d.mts +50 -0
- package/dist/src/schemas/profileIdentity.d.mts.map +1 -0
- package/dist/src/schemas/profileIdentity.mjs +64 -0
- package/dist/src/schemas/profileIdentity.mjs.map +1 -0
- package/dist/src/schemas/readiness.cjs +251 -0
- package/dist/src/schemas/readiness.cjs.map +1 -0
- package/dist/src/schemas/readiness.d.mts +84 -0
- package/dist/src/schemas/readiness.d.mts.map +1 -0
- package/dist/src/schemas/readiness.mjs +246 -0
- package/dist/src/schemas/readiness.mjs.map +1 -0
- package/dist/src/schemas/sandboxHarness.cjs +29 -0
- package/dist/src/schemas/sandboxHarness.cjs.map +1 -0
- package/dist/src/schemas/sandboxHarness.d.mts +39 -0
- package/dist/src/schemas/sandboxHarness.d.mts.map +1 -0
- package/dist/src/schemas/sandboxHarness.mjs +26 -0
- package/dist/src/schemas/sandboxHarness.mjs.map +1 -0
- package/dist/src/schemas/serverBundle.d.mts +19 -0
- package/dist/src/schemas/serverBundle.d.mts.map +1 -0
- package/dist/src/schemas/serverFacet.cjs +111 -0
- package/dist/src/schemas/serverFacet.cjs.map +1 -0
- package/dist/src/schemas/serverFacet.d.mts +152 -0
- package/dist/src/schemas/serverFacet.d.mts.map +1 -0
- package/dist/src/schemas/serverFacet.mjs +101 -0
- package/dist/src/schemas/serverFacet.mjs.map +1 -0
- package/dist/src/schemas/sessionMcpActivity.d.mts +47 -0
- package/dist/src/schemas/sessionMcpActivity.d.mts.map +1 -0
- package/dist/src/schemas/sessionProtocol.cjs +17 -0
- package/dist/src/schemas/sessionProtocol.cjs.map +1 -0
- package/dist/src/schemas/sessionProtocol.d.mts +313 -0
- package/dist/src/schemas/sessionProtocol.d.mts.map +1 -0
- package/dist/src/schemas/sessionProtocol.mjs +12 -0
- package/dist/src/schemas/sessionProtocol.mjs.map +1 -0
- package/dist/src/schemas/sessionUpdates.d.mts +34 -0
- package/dist/src/schemas/sessionUpdates.d.mts.map +1 -0
- package/dist/src/schemas/skills.cjs +115 -0
- package/dist/src/schemas/skills.cjs.map +1 -0
- package/dist/src/schemas/skills.d.mts +65 -0
- package/dist/src/schemas/skills.d.mts.map +1 -0
- package/dist/src/schemas/skills.mjs +109 -0
- package/dist/src/schemas/skills.mjs.map +1 -0
- package/dist/src/schemas/toolOverrides.cjs +17 -0
- package/dist/src/schemas/toolOverrides.cjs.map +1 -0
- package/dist/src/schemas/toolOverrides.d.mts +29 -0
- package/dist/src/schemas/toolOverrides.d.mts.map +1 -0
- package/dist/src/schemas/toolOverrides.mjs +15 -0
- package/dist/src/schemas/toolOverrides.mjs.map +1 -0
- package/dist/src/schemas/toolSurface.cjs +17 -0
- package/dist/src/schemas/toolSurface.cjs.map +1 -0
- package/dist/src/schemas/toolSurface.d.mts +70 -0
- package/dist/src/schemas/toolSurface.d.mts.map +1 -0
- package/dist/src/schemas/toolSurface.mjs +15 -0
- package/dist/src/schemas/toolSurface.mjs.map +1 -0
- package/dist/src/schemas/uiHub.cjs +17 -0
- package/dist/src/schemas/uiHub.cjs.map +1 -0
- package/dist/src/schemas/uiHub.d.mts +23 -0
- package/dist/src/schemas/uiHub.d.mts.map +1 -0
- package/dist/src/schemas/uiHub.mjs +15 -0
- package/dist/src/schemas/uiHub.mjs.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.cjs +78 -0
- package/dist/src/schemas/voiceReloadHandoff.cjs.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.d.mts +31 -0
- package/dist/src/schemas/voiceReloadHandoff.d.mts.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.mjs +75 -0
- package/dist/src/schemas/voiceReloadHandoff.mjs.map +1 -0
- package/dist/src/schemas/voiceTools.cjs +205 -0
- package/dist/src/schemas/voiceTools.cjs.map +1 -0
- package/dist/src/schemas/voiceTools.d.mts +120 -0
- package/dist/src/schemas/voiceTools.d.mts.map +1 -0
- package/dist/src/schemas/voiceTools.mjs +194 -0
- package/dist/src/schemas/voiceTools.mjs.map +1 -0
- package/dist/src/server/devProxyForward.cjs +141 -0
- package/dist/src/server/devProxyForward.cjs.map +1 -0
- package/dist/src/server/devProxyForward.mjs +139 -0
- package/dist/src/server/devProxyForward.mjs.map +1 -0
- package/dist/src/server/devProxyRoutes.cjs +97 -0
- package/dist/src/server/devProxyRoutes.cjs.map +1 -0
- package/dist/src/server/devProxyRoutes.mjs +97 -0
- package/dist/src/server/devProxyRoutes.mjs.map +1 -0
- package/dist/src/server/devProxySocket.cjs +93 -0
- package/dist/src/server/devProxySocket.cjs.map +1 -0
- package/dist/src/server/devProxySocket.d.mts +25 -0
- package/dist/src/server/devProxySocket.d.mts.map +1 -0
- package/dist/src/server/devProxySocket.mjs +93 -0
- package/dist/src/server/devProxySocket.mjs.map +1 -0
- package/dist/src/server/directHarnessRuntime.cjs +2387 -0
- package/dist/src/server/directHarnessRuntime.cjs.map +1 -0
- package/dist/src/server/directHarnessRuntime.d.mts +4 -0
- package/dist/src/server/directHarnessRuntime.mjs +2384 -0
- package/dist/src/server/directHarnessRuntime.mjs.map +1 -0
- package/dist/src/server/harnessErrorMessage.cjs +13 -0
- package/dist/src/server/harnessErrorMessage.cjs.map +1 -0
- package/dist/src/server/harnessErrorMessage.mjs +13 -0
- package/dist/src/server/harnessErrorMessage.mjs.map +1 -0
- package/dist/src/server/headlessProtocol.cjs +382 -0
- package/dist/src/server/headlessProtocol.cjs.map +1 -0
- package/dist/src/server/headlessProtocol.mjs +382 -0
- package/dist/src/server/headlessProtocol.mjs.map +1 -0
- package/dist/src/server/liveImport.cjs +37 -0
- package/dist/src/server/liveImport.cjs.map +1 -0
- package/dist/src/server/liveImport.d.mts +27 -0
- package/dist/src/server/liveImport.d.mts.map +1 -0
- package/dist/src/server/liveImport.mjs +34 -0
- package/dist/src/server/liveImport.mjs.map +1 -0
- package/dist/src/server/mcpBundleLoader.cjs +108 -0
- package/dist/src/server/mcpBundleLoader.cjs.map +1 -0
- package/dist/src/server/mcpBundleLoader.d.mts +46 -0
- package/dist/src/server/mcpBundleLoader.d.mts.map +1 -0
- package/dist/src/server/mcpBundleLoader.mjs +107 -0
- package/dist/src/server/mcpBundleLoader.mjs.map +1 -0
- package/dist/src/server/nativeChildTranscriptReader.cjs +20 -0
- package/dist/src/server/nativeChildTranscriptReader.cjs.map +1 -0
- package/dist/src/server/nativeChildTranscriptReader.mjs +18 -0
- package/dist/src/server/nativeChildTranscriptReader.mjs.map +1 -0
- package/dist/src/server/remoteRoutes.cjs +463 -0
- package/dist/src/server/remoteRoutes.cjs.map +1 -0
- package/dist/src/server/remoteRoutes.mjs +463 -0
- package/dist/src/server/remoteRoutes.mjs.map +1 -0
- package/dist/src/server/serverFacetLoader.cjs +214 -0
- package/dist/src/server/serverFacetLoader.cjs.map +1 -0
- package/dist/src/server/serverFacetLoader.d.mts +72 -0
- package/dist/src/server/serverFacetLoader.d.mts.map +1 -0
- package/dist/src/server/serverFacetLoader.mjs +212 -0
- package/dist/src/server/serverFacetLoader.mjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.cjs +585 -0
- package/dist/src/server/sessionMcpHandler.cjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.d.mts +50 -0
- package/dist/src/server/sessionMcpHandler.d.mts.map +1 -0
- package/dist/src/server/sessionMcpHandler.mjs +582 -0
- package/dist/src/server/sessionMcpHandler.mjs.map +1 -0
- package/dist/src/server/sessionMcpRoutes.cjs +809 -0
- package/dist/src/server/sessionMcpRoutes.cjs.map +1 -0
- package/dist/src/server/sessionMcpRoutes.mjs +804 -0
- package/dist/src/server/sessionMcpRoutes.mjs.map +1 -0
- package/dist/src/server/threadJournals.cjs +172 -0
- package/dist/src/server/threadJournals.cjs.map +1 -0
- package/dist/src/server/threadJournals.mjs +169 -0
- package/dist/src/server/threadJournals.mjs.map +1 -0
- package/dist/src/services/acpSessionUpdates/index.cjs +129 -0
- package/dist/src/services/acpSessionUpdates/index.cjs.map +1 -0
- package/dist/src/services/acpSessionUpdates/index.mjs +129 -0
- package/dist/src/services/acpSessionUpdates/index.mjs.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.cjs +60 -0
- package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.d.mts +24 -0
- package/dist/src/services/apiSurfaceAssert/index.d.mts.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.mjs +60 -0
- package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -0
- package/dist/src/services/bundlePublication/index.cjs +89 -0
- package/dist/src/services/bundlePublication/index.cjs.map +1 -0
- package/dist/src/services/bundlePublication/index.mjs +86 -0
- package/dist/src/services/bundlePublication/index.mjs.map +1 -0
- package/dist/src/services/contextApiUrls/index.cjs +53 -0
- package/dist/src/services/contextApiUrls/index.cjs.map +1 -0
- package/dist/src/services/contextApiUrls/index.d.mts +8 -0
- package/dist/src/services/contextApiUrls/index.d.mts.map +1 -0
- package/dist/src/services/contextApiUrls/index.mjs +52 -0
- package/dist/src/services/contextApiUrls/index.mjs.map +1 -0
- package/dist/src/services/contextContributions/index.cjs +79 -0
- package/dist/src/services/contextContributions/index.cjs.map +1 -0
- package/dist/src/services/contextContributions/index.d.mts +6 -0
- package/dist/src/services/contextContributions/index.d.mts.map +1 -0
- package/dist/src/services/contextContributions/index.mjs +79 -0
- package/dist/src/services/contextContributions/index.mjs.map +1 -0
- package/dist/src/services/contextUsage/index.cjs +27 -0
- package/dist/src/services/contextUsage/index.cjs.map +1 -0
- package/dist/src/services/contextUsage/index.mjs +25 -0
- package/dist/src/services/contextUsage/index.mjs.map +1 -0
- package/dist/src/services/devProxyPolicy/index.cjs +168 -0
- package/dist/src/services/devProxyPolicy/index.cjs.map +1 -0
- package/dist/src/services/devProxyPolicy/index.mjs +165 -0
- package/dist/src/services/devProxyPolicy/index.mjs.map +1 -0
- package/dist/src/services/devProxyStore/index.cjs +107 -0
- package/dist/src/services/devProxyStore/index.cjs.map +1 -0
- package/dist/src/services/devProxyStore/index.mjs +104 -0
- package/dist/src/services/devProxyStore/index.mjs.map +1 -0
- package/dist/src/services/deviceAuth/index.cjs +146 -0
- package/dist/src/services/deviceAuth/index.cjs.map +1 -0
- package/dist/src/services/deviceAuth/index.d.mts +9 -0
- package/dist/src/services/deviceAuth/index.d.mts.map +1 -0
- package/dist/src/services/deviceAuth/index.mjs +146 -0
- package/dist/src/services/deviceAuth/index.mjs.map +1 -0
- package/dist/src/services/deviceSessions/index.cjs +147 -0
- package/dist/src/services/deviceSessions/index.cjs.map +1 -0
- package/dist/src/services/deviceSessions/index.d.mts +18 -0
- package/dist/src/services/deviceSessions/index.d.mts.map +1 -0
- package/dist/src/services/deviceSessions/index.mjs +141 -0
- package/dist/src/services/deviceSessions/index.mjs.map +1 -0
- package/dist/src/services/deviceTrust/index.cjs +294 -0
- package/dist/src/services/deviceTrust/index.cjs.map +1 -0
- package/dist/src/services/deviceTrust/index.mjs +282 -0
- package/dist/src/services/deviceTrust/index.mjs.map +1 -0
- package/dist/src/services/durableNavigation/index.cjs +46 -0
- package/dist/src/services/durableNavigation/index.cjs.map +1 -0
- package/dist/src/services/durableNavigation/index.mjs +45 -0
- package/dist/src/services/durableNavigation/index.mjs.map +1 -0
- package/dist/src/services/headlessClient/index.cjs +126 -0
- package/dist/src/services/headlessClient/index.cjs.map +1 -0
- package/dist/src/services/headlessClient/index.mjs +126 -0
- package/dist/src/services/headlessClient/index.mjs.map +1 -0
- package/dist/src/services/historyImport/index.cjs +8 -0
- package/dist/src/services/historyImport/index.cjs.map +1 -0
- package/dist/src/services/historyImport/index.d.mts +68 -0
- package/dist/src/services/historyImport/index.d.mts.map +1 -0
- package/dist/src/services/historyImport/index.mjs +8 -0
- package/dist/src/services/historyImport/index.mjs.map +1 -0
- package/dist/src/services/hubChannelHarness/index.cjs +50 -0
- package/dist/src/services/hubChannelHarness/index.cjs.map +1 -0
- package/dist/src/services/hubChannelHarness/index.d.mts +17 -0
- package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -0
- package/dist/src/services/hubChannelHarness/index.mjs +50 -0
- package/dist/src/services/hubChannelHarness/index.mjs.map +1 -0
- package/dist/src/services/kernel/index.cjs +147 -0
- package/dist/src/services/kernel/index.cjs.map +1 -0
- package/dist/src/services/kernel/index.d.mts +9 -0
- package/dist/src/services/kernel/index.d.mts.map +1 -0
- package/dist/src/services/kernel/index.mjs +147 -0
- package/dist/src/services/kernel/index.mjs.map +1 -0
- package/dist/src/services/loginFlow/index.cjs +131 -0
- package/dist/src/services/loginFlow/index.cjs.map +1 -0
- package/dist/src/services/loginFlow/index.mjs +131 -0
- package/dist/src/services/loginFlow/index.mjs.map +1 -0
- package/dist/src/services/loopbackAddress/index.cjs +58 -0
- package/dist/src/services/loopbackAddress/index.cjs.map +1 -0
- package/dist/src/services/loopbackAddress/index.mjs +56 -0
- package/dist/src/services/loopbackAddress/index.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.cjs +134 -0
- package/dist/src/services/openSessionRegistry/index.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.d.mts +36 -0
- package/dist/src/services/openSessionRegistry/index.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/index.mjs +131 -0
- package/dist/src/services/openSessionRegistry/index.mjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.cjs +36 -0
- package/dist/src/services/packageApiHarness/index.cjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.d.mts +40 -0
- package/dist/src/services/packageApiHarness/index.d.mts.map +1 -0
- package/dist/src/services/packageApiHarness/index.mjs +36 -0
- package/dist/src/services/packageApiHarness/index.mjs.map +1 -0
- package/dist/src/services/packageResource/index.cjs +54 -0
- package/dist/src/services/packageResource/index.cjs.map +1 -0
- package/dist/src/services/packageResource/index.d.mts +26 -0
- package/dist/src/services/packageResource/index.d.mts.map +1 -0
- package/dist/src/services/packageResource/index.mjs +51 -0
- package/dist/src/services/packageResource/index.mjs.map +1 -0
- package/dist/src/services/pairingFlow/index.cjs +145 -0
- package/dist/src/services/pairingFlow/index.cjs.map +1 -0
- package/dist/src/services/pairingFlow/index.d.mts +44 -0
- package/dist/src/services/pairingFlow/index.d.mts.map +1 -0
- package/dist/src/services/pairingFlow/index.mjs +145 -0
- package/dist/src/services/pairingFlow/index.mjs.map +1 -0
- package/dist/src/services/pairingPage/index.cjs +450 -0
- package/dist/src/services/pairingPage/index.cjs.map +1 -0
- package/dist/src/services/pairingPage/index.mjs +447 -0
- package/dist/src/services/pairingPage/index.mjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.cjs +889 -0
- package/dist/src/services/piExtensionHost/index.cjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.mjs +885 -0
- package/dist/src/services/piExtensionHost/index.mjs.map +1 -0
- package/dist/src/services/piHelpTools/index.cjs +68 -0
- package/dist/src/services/piHelpTools/index.cjs.map +1 -0
- package/dist/src/services/piHelpTools/index.d.mts +10 -0
- package/dist/src/services/piHelpTools/index.d.mts.map +1 -0
- package/dist/src/services/piHelpTools/index.mjs +68 -0
- package/dist/src/services/piHelpTools/index.mjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.cjs +121 -0
- package/dist/src/services/piSessionEntries/index.cjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.mjs +117 -0
- package/dist/src/services/piSessionEntries/index.mjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.cjs +71 -0
- package/dist/src/services/pluginLifecycle/index.cjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.d.mts +8 -0
- package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -0
- package/dist/src/services/pluginLifecycle/index.mjs +71 -0
- package/dist/src/services/pluginLifecycle/index.mjs.map +1 -0
- package/dist/src/services/providerAuth/index.cjs +156 -0
- package/dist/src/services/providerAuth/index.cjs.map +1 -0
- package/dist/src/services/providerAuth/index.mjs +154 -0
- package/dist/src/services/providerAuth/index.mjs.map +1 -0
- package/dist/src/services/publicFileShares/index.cjs +192 -0
- package/dist/src/services/publicFileShares/index.cjs.map +1 -0
- package/dist/src/services/publicFileShares/index.d.mts +16 -0
- package/dist/src/services/publicFileShares/index.d.mts.map +1 -0
- package/dist/src/services/publicFileShares/index.mjs +188 -0
- package/dist/src/services/publicFileShares/index.mjs.map +1 -0
- package/dist/src/services/remoteAccess/index.cjs +567 -0
- package/dist/src/services/remoteAccess/index.cjs.map +1 -0
- package/dist/src/services/remoteAccess/index.d.mts +121 -0
- package/dist/src/services/remoteAccess/index.d.mts.map +1 -0
- package/dist/src/services/remoteAccess/index.mjs +567 -0
- package/dist/src/services/remoteAccess/index.mjs.map +1 -0
- package/dist/src/services/remoteAccessSettings/index.cjs +151 -0
- package/dist/src/services/remoteAccessSettings/index.cjs.map +1 -0
- package/dist/src/services/remoteAccessSettings/index.mjs +149 -0
- package/dist/src/services/remoteAccessSettings/index.mjs.map +1 -0
- package/dist/src/services/remoteAccessStore/index.cjs +197 -0
- package/dist/src/services/remoteAccessStore/index.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/index.mjs +192 -0
- package/dist/src/services/remoteAccessStore/index.mjs.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.cjs +200 -0
- package/dist/src/services/remoteGuardPolicy/index.cjs.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.d.mts +7 -0
- package/dist/src/services/remoteGuardPolicy/index.d.mts.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.mjs +196 -0
- package/dist/src/services/remoteGuardPolicy/index.mjs.map +1 -0
- package/dist/src/services/requestReceipts/index.cjs +167 -0
- package/dist/src/services/requestReceipts/index.cjs.map +1 -0
- package/dist/src/services/requestReceipts/index.d.mts +11 -0
- package/dist/src/services/requestReceipts/index.d.mts.map +1 -0
- package/dist/src/services/requestReceipts/index.mjs +167 -0
- package/dist/src/services/requestReceipts/index.mjs.map +1 -0
- package/dist/src/services/rpcTranscript/index.cjs +633 -0
- package/dist/src/services/rpcTranscript/index.cjs.map +1 -0
- package/dist/src/services/rpcTranscript/index.d.mts +50 -0
- package/dist/src/services/rpcTranscript/index.d.mts.map +1 -0
- package/dist/src/services/rpcTranscript/index.mjs +632 -0
- package/dist/src/services/rpcTranscript/index.mjs.map +1 -0
- package/dist/src/services/serverFacet/index.cjs +197 -0
- package/dist/src/services/serverFacet/index.cjs.map +1 -0
- package/dist/src/services/serverFacet/index.d.mts +31 -0
- package/dist/src/services/serverFacet/index.d.mts.map +1 -0
- package/dist/src/services/serverFacet/index.mjs +197 -0
- package/dist/src/services/serverFacet/index.mjs.map +1 -0
- package/dist/src/services/sessionAttachments/index.cjs +111 -0
- package/dist/src/services/sessionAttachments/index.cjs.map +1 -0
- package/dist/src/services/sessionAttachments/index.d.mts +11 -0
- package/dist/src/services/sessionAttachments/index.d.mts.map +1 -0
- package/dist/src/services/sessionAttachments/index.mjs +107 -0
- package/dist/src/services/sessionAttachments/index.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.cjs +46 -0
- package/dist/src/services/sessionGitStatus/index.cjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.mjs +46 -0
- package/dist/src/services/sessionGitStatus/index.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/type.d.mts +8 -0
- package/dist/src/services/sessionGitStatus/type.d.mts.map +1 -0
- package/dist/src/services/sessionMcpActivity/index.cjs +115 -0
- package/dist/src/services/sessionMcpActivity/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpActivity/index.mjs +111 -0
- package/dist/src/services/sessionMcpActivity/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.cjs +473 -0
- package/dist/src/services/sessionMcpAuthorization/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.d.mts +125 -0
- package/dist/src/services/sessionMcpAuthorization/index.d.mts.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.mjs +469 -0
- package/dist/src/services/sessionMcpAuthorization/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpConversations/index.cjs +217 -0
- package/dist/src/services/sessionMcpConversations/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpConversations/index.mjs +212 -0
- package/dist/src/services/sessionMcpConversations/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.cjs +86 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.mjs +83 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.mjs.map +1 -0
- package/dist/src/services/sessionPresentation/index.cjs +120 -0
- package/dist/src/services/sessionPresentation/index.cjs.map +1 -0
- package/dist/src/services/sessionPresentation/index.mjs +120 -0
- package/dist/src/services/sessionPresentation/index.mjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs +97 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.d.mts +28 -0
- package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.mjs +92 -0
- package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.cjs +67 -0
- package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.d.mts +14 -0
- package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.mjs +65 -0
- package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -0
- package/dist/src/services/toolCost/index.cjs +47 -0
- package/dist/src/services/toolCost/index.cjs.map +1 -0
- package/dist/src/services/toolCost/index.d.mts +38 -0
- package/dist/src/services/toolCost/index.d.mts.map +1 -0
- package/dist/src/services/toolCost/index.mjs +46 -0
- package/dist/src/services/toolCost/index.mjs.map +1 -0
- package/dist/src/services/toolOverrides/index.cjs +45 -0
- package/dist/src/services/toolOverrides/index.cjs.map +1 -0
- package/dist/src/services/toolOverrides/index.d.mts +6 -0
- package/dist/src/services/toolOverrides/index.d.mts.map +1 -0
- package/dist/src/services/toolOverrides/index.mjs +45 -0
- package/dist/src/services/toolOverrides/index.mjs.map +1 -0
- package/dist/src/services/toolPrompt/index.cjs +13 -0
- package/dist/src/services/toolPrompt/index.cjs.map +1 -0
- package/dist/src/services/toolPrompt/index.mjs +13 -0
- package/dist/src/services/toolPrompt/index.mjs.map +1 -0
- package/dist/src/services/toolSurface/index.cjs +134 -0
- package/dist/src/services/toolSurface/index.cjs.map +1 -0
- package/dist/src/services/toolSurface/index.d.mts +19 -0
- package/dist/src/services/toolSurface/index.d.mts.map +1 -0
- package/dist/src/services/toolSurface/index.mjs +134 -0
- package/dist/src/services/toolSurface/index.mjs.map +1 -0
- package/dist/src/services/traceContext/index.cjs +13 -0
- package/dist/src/services/traceContext/index.cjs.map +1 -0
- package/dist/src/services/traceContext/index.mjs +13 -0
- package/dist/src/services/traceContext/index.mjs.map +1 -0
- package/dist/src/services/transcriptPages/index.cjs +117 -0
- package/dist/src/services/transcriptPages/index.cjs.map +1 -0
- package/dist/src/services/transcriptPages/index.mjs +115 -0
- package/dist/src/services/transcriptPages/index.mjs.map +1 -0
- package/dist/src/services/tunnelOutput/index.cjs +58 -0
- package/dist/src/services/tunnelOutput/index.cjs.map +1 -0
- package/dist/src/services/tunnelOutput/index.mjs +54 -0
- package/dist/src/services/tunnelOutput/index.mjs.map +1 -0
- package/dist/src/services/tunnelProcess/index.cjs +487 -0
- package/dist/src/services/tunnelProcess/index.cjs.map +1 -0
- package/dist/src/services/tunnelProcess/index.mjs +481 -0
- package/dist/src/services/tunnelProcess/index.mjs.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.cjs +136 -0
- package/dist/src/services/voiceReloadHandoff/index.cjs.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.d.mts +34 -0
- package/dist/src/services/voiceReloadHandoff/index.d.mts.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.mjs +135 -0
- package/dist/src/services/voiceReloadHandoff/index.mjs.map +1 -0
- package/dist/src/services/voiceToolsContract/index.cjs +26 -0
- package/dist/src/services/voiceToolsContract/index.cjs.map +1 -0
- package/dist/src/services/voiceToolsContract/index.d.mts +76 -0
- package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -0
- package/dist/src/services/voiceToolsContract/index.mjs +24 -0
- package/dist/src/services/voiceToolsContract/index.mjs.map +1 -0
- package/dist/src/services/webauthn/index.cjs +262 -0
- package/dist/src/services/webauthn/index.cjs.map +1 -0
- package/dist/src/services/webauthn/index.d.mts +39 -0
- package/dist/src/services/webauthn/index.d.mts.map +1 -0
- package/dist/src/services/webauthn/index.mjs +262 -0
- package/dist/src/services/webauthn/index.mjs.map +1 -0
- package/dist/src/services/webauthnPolicy/index.cjs +174 -0
- package/dist/src/services/webauthnPolicy/index.cjs.map +1 -0
- package/dist/src/services/webauthnPolicy/index.d.mts +41 -0
- package/dist/src/services/webauthnPolicy/index.d.mts.map +1 -0
- package/dist/src/services/webauthnPolicy/index.mjs +167 -0
- package/dist/src/services/webauthnPolicy/index.mjs.map +1 -0
- package/dist/src/services/workspaceRegistry/index.cjs +187 -0
- package/dist/src/services/workspaceRegistry/index.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/index.d.mts +47 -0
- package/dist/src/services/workspaceRegistry/index.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/index.mjs +179 -0
- package/dist/src/services/workspaceRegistry/index.mjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +466 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +36 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +457 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +28 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +1 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +25 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +1 -0
- package/dist/src/systems/child/services/childSession/index.cjs +219 -0
- package/dist/src/systems/child/services/childSession/index.cjs.map +1 -0
- package/dist/src/systems/child/services/childSession/index.d.mts +14 -0
- package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -0
- package/dist/src/systems/child/services/childSession/index.mjs +219 -0
- package/dist/src/systems/child/services/childSession/index.mjs.map +1 -0
- package/dist/src/systems/child/types/childSession.cjs +21 -0
- package/dist/src/systems/child/types/childSession.cjs.map +1 -0
- package/dist/src/systems/child/types/childSession.d.mts +182 -0
- package/dist/src/systems/child/types/childSession.d.mts.map +1 -0
- package/dist/src/systems/child/types/childSession.mjs +17 -0
- package/dist/src/systems/child/types/childSession.mjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.cjs +597 -0
- package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.d.mts +116 -0
- package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.mjs +595 -0
- package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs +1668 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +20 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs +1663 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -0
- package/dist/src/systems/main/types/headlessHost.d.mts +37 -0
- package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.cjs +73 -0
- package/dist/src/testing/pi/extensionScenarios.cjs.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.d.mts +41 -0
- package/dist/src/testing/pi/extensionScenarios.d.mts.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.mjs +73 -0
- package/dist/src/testing/pi/extensionScenarios.mjs.map +1 -0
- package/dist/src/testing/pi/testHost.cjs +399 -0
- package/dist/src/testing/pi/testHost.cjs.map +1 -0
- package/dist/src/testing/pi/testHost.d.mts +160 -0
- package/dist/src/testing/pi/testHost.d.mts.map +1 -0
- package/dist/src/testing/pi/testHost.mjs +399 -0
- package/dist/src/testing/pi/testHost.mjs.map +1 -0
- package/dist/src/types/config.d.mts +20 -0
- package/dist/src/types/config.d.mts.map +1 -0
- package/dist/src/types/kernel.d.mts +69 -0
- package/dist/src/types/kernel.d.mts.map +1 -0
- package/dist/src/types/remote.d.mts +152 -0
- package/dist/src/types/remote.d.mts.map +1 -0
- package/dist/src/types/server/directHarnessRuntime.d.mts +526 -0
- package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -0
- package/dist/src/types/server/session.d.mts +5 -0
- package/dist/src/types/server/session.d.mts.map +1 -0
- package/dist/src/types/server/sessionToolSurface.d.mts +44 -0
- package/dist/src/types/server/sessionToolSurface.d.mts.map +1 -0
- package/dist/src/web/models/globalStore.cjs +23 -0
- package/dist/src/web/models/globalStore.cjs.map +1 -0
- package/dist/src/web/models/globalStore.d.mts +6 -0
- package/dist/src/web/models/globalStore.d.mts.map +1 -0
- package/dist/src/web/models/globalStore.mjs +23 -0
- package/dist/src/web/models/globalStore.mjs.map +1 -0
- package/dist/src/web/models/sessionStore.cjs +56 -0
- package/dist/src/web/models/sessionStore.cjs.map +1 -0
- package/dist/src/web/models/sessionStore.d.mts +14 -0
- package/dist/src/web/models/sessionStore.d.mts.map +1 -0
- package/dist/src/web/models/sessionStore.mjs +56 -0
- package/dist/src/web/models/sessionStore.mjs.map +1 -0
- package/dist/src/web/models/workspaceStore.cjs +50 -0
- package/dist/src/web/models/workspaceStore.cjs.map +1 -0
- package/dist/src/web/models/workspaceStore.d.mts +18 -0
- package/dist/src/web/models/workspaceStore.d.mts.map +1 -0
- package/dist/src/web/models/workspaceStore.mjs +50 -0
- package/dist/src/web/models/workspaceStore.mjs.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.cjs +20 -0
- package/dist/src/web/schemas/bundleAssetPolicy.cjs.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.d.mts +10 -0
- package/dist/src/web/schemas/bundleAssetPolicy.d.mts.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.mjs +18 -0
- package/dist/src/web/schemas/bundleAssetPolicy.mjs.map +1 -0
- package/dist/src/web/schemas/template.cjs +35 -0
- package/dist/src/web/schemas/template.cjs.map +1 -0
- package/dist/src/web/schemas/template.d.mts +9 -0
- package/dist/src/web/schemas/template.d.mts.map +1 -0
- package/dist/src/web/schemas/template.mjs +34 -0
- package/dist/src/web/schemas/template.mjs.map +1 -0
- package/dist/src/web/services/apiClient/index.cjs +156 -0
- package/dist/src/web/services/apiClient/index.cjs.map +1 -0
- package/dist/src/web/services/apiClient/index.d.mts +152 -0
- package/dist/src/web/services/apiClient/index.d.mts.map +1 -0
- package/dist/src/web/services/apiClient/index.mjs +154 -0
- package/dist/src/web/services/apiClient/index.mjs.map +1 -0
- package/dist/src/web/services/apiPaths/index.cjs +83 -0
- package/dist/src/web/services/apiPaths/index.cjs.map +1 -0
- package/dist/src/web/services/apiPaths/index.d.mts +81 -0
- package/dist/src/web/services/apiPaths/index.d.mts.map +1 -0
- package/dist/src/web/services/apiPaths/index.mjs +78 -0
- package/dist/src/web/services/apiPaths/index.mjs.map +1 -0
- package/dist/src/web/services/apiRoutes/index.cjs +47 -0
- package/dist/src/web/services/apiRoutes/index.cjs.map +1 -0
- package/dist/src/web/services/apiRoutes/index.d.mts +21 -0
- package/dist/src/web/services/apiRoutes/index.d.mts.map +1 -0
- package/dist/src/web/services/apiRoutes/index.mjs +43 -0
- package/dist/src/web/services/apiRoutes/index.mjs.map +1 -0
- package/dist/src/web/services/mcpWidget.cjs +9 -0
- package/dist/src/web/services/mcpWidget.cjs.map +1 -0
- package/dist/src/web/services/mcpWidget.d.mts +6 -0
- package/dist/src/web/services/mcpWidget.d.mts.map +1 -0
- package/dist/src/web/services/mcpWidget.mjs +9 -0
- package/dist/src/web/services/mcpWidget.mjs.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.cjs +70 -0
- package/dist/src/web/services/sessionRegistry/index.cjs.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.d.mts +29 -0
- package/dist/src/web/services/sessionRegistry/index.d.mts.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.mjs +66 -0
- package/dist/src/web/services/sessionRegistry/index.mjs.map +1 -0
- package/dist/src/web/services/testing/channels.cjs +11 -0
- package/dist/src/web/services/testing/channels.cjs.map +1 -0
- package/dist/src/web/services/testing/channels.d.mts +8 -0
- package/dist/src/web/services/testing/channels.d.mts.map +1 -0
- package/dist/src/web/services/testing/channels.mjs +11 -0
- package/dist/src/web/services/testing/channels.mjs.map +1 -0
- package/dist/src/web/services/testing/index.cjs +27 -0
- package/dist/src/web/services/testing/index.cjs.map +1 -0
- package/dist/src/web/services/testing/index.d.mts +31 -0
- package/dist/src/web/services/testing/index.d.mts.map +1 -0
- package/dist/src/web/services/testing/index.mjs +27 -0
- package/dist/src/web/services/testing/index.mjs.map +1 -0
- package/dist/src/web/services/testing/rpcStub.cjs +58 -0
- package/dist/src/web/services/testing/rpcStub.cjs.map +1 -0
- package/dist/src/web/services/testing/rpcStub.d.mts +37 -0
- package/dist/src/web/services/testing/rpcStub.d.mts.map +1 -0
- package/dist/src/web/services/testing/rpcStub.mjs +58 -0
- package/dist/src/web/services/testing/rpcStub.mjs.map +1 -0
- package/dist/src/web/services/testing/slotProps.cjs +97 -0
- package/dist/src/web/services/testing/slotProps.cjs.map +1 -0
- package/dist/src/web/services/testing/slotProps.d.mts +69 -0
- package/dist/src/web/services/testing/slotProps.d.mts.map +1 -0
- package/dist/src/web/services/testing/slotProps.mjs +96 -0
- package/dist/src/web/services/testing/slotProps.mjs.map +1 -0
- package/dist/src/web/services/testing/templateRail.cjs +156 -0
- package/dist/src/web/services/testing/templateRail.cjs.map +1 -0
- package/dist/src/web/services/testing/templateRail.d.mts +32 -0
- package/dist/src/web/services/testing/templateRail.d.mts.map +1 -0
- package/dist/src/web/services/testing/templateRail.mjs +154 -0
- package/dist/src/web/services/testing/templateRail.mjs.map +1 -0
- package/dist/src/web/services/toolResult/index.cjs +30 -0
- package/dist/src/web/services/toolResult/index.cjs.map +1 -0
- package/dist/src/web/services/toolResult/index.d.mts +14 -0
- package/dist/src/web/services/toolResult/index.d.mts.map +1 -0
- package/dist/src/web/services/toolResult/index.mjs +29 -0
- package/dist/src/web/services/toolResult/index.mjs.map +1 -0
- package/dist/src/web/types/extensionFile.d.mts +62 -0
- package/dist/src/web/types/extensionFile.d.mts.map +1 -0
- package/dist/src/web/types/mcpWidget.d.mts +14 -0
- package/dist/src/web/types/mcpWidget.d.mts.map +1 -0
- package/dist/src/web/types/modelContext.d.mts +43 -0
- package/dist/src/web/types/modelContext.d.mts.map +1 -0
- package/dist/src/web/types/nativeTemplate.d.mts +29 -0
- package/dist/src/web/types/nativeTemplate.d.mts.map +1 -0
- package/dist/src/web/types/sessionRegistry.d.mts +46 -0
- package/dist/src/web/types/sessionRegistry.d.mts.map +1 -0
- package/dist/src/web/types/template.d.mts +135 -0
- package/dist/src/web/types/template.d.mts.map +1 -0
- package/dist/src/web/types/webPlugin.d.mts +915 -0
- package/dist/src/web/types/webPlugin.d.mts.map +1 -0
- package/dist/terminalPiChildSessionService.cjs +324 -0
- package/dist/terminalPiChildSessionService.cjs.map +1 -0
- package/dist/terminalPiChildSessionService.d.mts +46 -0
- package/dist/terminalPiChildSessionService.d.mts.map +1 -0
- package/dist/terminalPiChildSessionService.mjs +318 -0
- package/dist/terminalPiChildSessionService.mjs.map +1 -0
- package/dist/testing.cjs +11 -0
- package/dist/testing.d.mts +6 -0
- package/dist/testing.mjs +6 -0
- package/dist/toolInventory.cjs +136 -0
- package/dist/toolInventory.cjs.map +1 -0
- package/dist/toolInventory.d.mts +66 -0
- package/dist/toolInventory.d.mts.map +1 -0
- package/dist/toolInventory.mjs +133 -0
- package/dist/toolInventory.mjs.map +1 -0
- package/dist/toolNames.cjs +4 -0
- package/dist/toolNames.d.mts +2 -0
- package/dist/toolNames.mjs +2 -0
- package/dist/toolOverrides.cjs +7 -0
- package/dist/toolOverrides.d.mts +3 -0
- package/dist/toolOverrides.mjs +3 -0
- package/dist/toolSurface.cjs +7 -0
- package/dist/toolSurface.d.mts +3 -0
- package/dist/toolSurface.mjs +3 -0
- package/dist/transition.cjs +5 -0
- package/dist/transition.d.cjs +5 -0
- package/dist/transition.d.mts +2 -0
- package/dist/transition.mjs +2 -0
- package/dist/transitionClassifier.cjs +112 -0
- package/dist/transitionClassifier.cjs.map +1 -0
- package/dist/transitionClassifier.d.mts +18 -0
- package/dist/transitionClassifier.d.mts.map +1 -0
- package/dist/transitionClassifier.mjs +111 -0
- package/dist/transitionClassifier.mjs.map +1 -0
- package/dist/transitionCoordinator.cjs +131 -0
- package/dist/transitionCoordinator.cjs.map +1 -0
- package/dist/transitionCoordinator.d.mts +16 -0
- package/dist/transitionCoordinator.d.mts.map +1 -0
- package/dist/transitionCoordinator.mjs +130 -0
- package/dist/transitionCoordinator.mjs.map +1 -0
- package/dist/typesContextApi.cjs +0 -0
- package/dist/typesContextApi.d.mts +79 -0
- package/dist/typesContextApi.d.mts.map +1 -0
- package/dist/typesContextApi.mjs +1 -0
- package/dist/uiHub.cjs +5 -0
- package/dist/uiHub.d.mts +2 -0
- package/dist/uiHub.mjs +2 -0
- package/dist/v3Export.cjs +10 -0
- package/dist/v3Export.cjs.map +1 -0
- package/dist/v3Export.d.mts +35 -0
- package/dist/v3Export.d.mts.map +1 -0
- package/dist/v3Export.mjs +9 -0
- package/dist/v3Export.mjs.map +1 -0
- package/dist/voiceReloadHandoff.cjs +14 -0
- package/dist/voiceReloadHandoff.d.mts +4 -0
- package/dist/voiceReloadHandoff.mjs +4 -0
- package/dist/voiceTools.cjs +56 -0
- package/dist/voiceTools.d.mts +4 -0
- package/dist/voiceTools.mjs +4 -0
- package/dist/web.cjs +65 -0
- package/dist/web.d.mts +20 -0
- package/dist/web.mjs +13 -0
- package/dist/webCompositions.cjs +181 -0
- package/dist/webCompositions.cjs.map +1 -0
- package/dist/webCompositions.d.mts +79 -0
- package/dist/webCompositions.d.mts.map +1 -0
- package/dist/webCompositions.mjs +174 -0
- package/dist/webCompositions.mjs.map +1 -0
- package/dist/webTesting.cjs +14 -0
- package/dist/webTesting.d.mts +6 -0
- package/dist/webTesting.mjs +6 -0
- package/package.json +586 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
const require_headless = require("../schemas/headless.cjs");
|
|
2
|
+
const require_liveImport = require("./liveImport.cjs");
|
|
3
|
+
const require_serverFacet = require("../schemas/serverFacet.cjs");
|
|
4
|
+
let _deepseek_ai_cordis = require("@deepseek-ai/cordis");
|
|
5
|
+
//#region src/server/serverFacetLoader.ts
|
|
6
|
+
/** Pure pre-model metadata from initially admitted session facets, never from retained candidates. */
|
|
7
|
+
function selectedServerProviderOverrides(facets, environment) {
|
|
8
|
+
return facets.flatMap(({ declaration, facet, initiallyEligible }) => initiallyEligible === false || !declaration.scopes.includes("session") ? [] : facet.providerOverrides?.({ environment }) ?? []);
|
|
9
|
+
}
|
|
10
|
+
function ownedBy(owners, majorMode, activeLayers) {
|
|
11
|
+
return owners.some((owner) => owner.majorMode === majorMode && (owner.layer === "default" || activeLayers.includes(owner.layer)));
|
|
12
|
+
}
|
|
13
|
+
async function loadFacetEntries(scope, entries, options, importUrl) {
|
|
14
|
+
const facets = [];
|
|
15
|
+
for (const declaration of entries) {
|
|
16
|
+
if (!declaration.scopes.includes(scope)) continue;
|
|
17
|
+
const eligible = ownedBy(declaration.owners, options.majorMode, options.activeLayers);
|
|
18
|
+
if (!(scope === "session" && options.retainCandidates === true) && !eligible) continue;
|
|
19
|
+
try {
|
|
20
|
+
const imported = await importUrl(declaration);
|
|
21
|
+
if (!require_serverFacet.isDoomServerFacet(imported?.default)) throw new Error("default export is not a server object facet");
|
|
22
|
+
facets.push({
|
|
23
|
+
declaration,
|
|
24
|
+
facet: imported.default,
|
|
25
|
+
...scope === "session" && options.retainCandidates ? {
|
|
26
|
+
retained: true,
|
|
27
|
+
initiallyEligible: eligible
|
|
28
|
+
} : {}
|
|
29
|
+
});
|
|
30
|
+
} catch (error) {
|
|
31
|
+
const message = `Server facet '${declaration.packageName}' could not load (${error instanceof Error ? error.message : String(error)})`;
|
|
32
|
+
if (declaration.required && eligible) throw new Error(message, { cause: error });
|
|
33
|
+
options.onNotice?.(message);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return facets;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Live reader: imports each package's built entry from its content-addressed URL.
|
|
40
|
+
*
|
|
41
|
+
* Applies the scope, ownership and `required` rules of each entry. Each import is bounded and a URL that
|
|
42
|
+
* timed out or threw is poisoned (see `guardedImport`); a poisoned required facet fails
|
|
43
|
+
* exactly as a load failure does.
|
|
44
|
+
*/
|
|
45
|
+
async function loadServerFacets(scope, options) {
|
|
46
|
+
const importer = options.importer ?? ((url) => import(url));
|
|
47
|
+
const urls = new Map(options.entries.map((entry) => [entry, entry.url]));
|
|
48
|
+
const facets = await loadFacetEntries(scope, options.entries, options, (declaration) => require_liveImport.guardedImport(urls.get(declaration), importer, options));
|
|
49
|
+
return {
|
|
50
|
+
entries: options.entries,
|
|
51
|
+
facets
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Binds registrations to the Cordis fiber that calls the host service.
|
|
56
|
+
*
|
|
57
|
+
* The host itself is shared, but Cordis traceable services rebind `ctx` to the
|
|
58
|
+
* caller. That lets a facet's registration unwind even when `apply` throws
|
|
59
|
+
* before it can return its disposer.
|
|
60
|
+
*/
|
|
61
|
+
var ScopedDoomServerHost = class extends _deepseek_ai_cordis.Service {
|
|
62
|
+
host;
|
|
63
|
+
scope;
|
|
64
|
+
context;
|
|
65
|
+
constructor(ctx, host) {
|
|
66
|
+
super(ctx, require_serverFacet.DOOM_SERVER_HOST_SERVICE);
|
|
67
|
+
this.host = host;
|
|
68
|
+
this.scope = host.scope;
|
|
69
|
+
this.context = host.context;
|
|
70
|
+
}
|
|
71
|
+
registerApi(api) {
|
|
72
|
+
const headless = this.scope === "session" ? require_headless.readDoomHeadlessHost(this.ctx) : void 0;
|
|
73
|
+
if (headless) {
|
|
74
|
+
const activity = headless.registerActivity({
|
|
75
|
+
name: `api:${api.basePath}`,
|
|
76
|
+
start: () => {
|
|
77
|
+
const registration = this.host.registerApi(api);
|
|
78
|
+
if (registration.mounted !== true) {
|
|
79
|
+
registration.dispose();
|
|
80
|
+
throw new Error(`package API '${api.basePath}' did not mount.`);
|
|
81
|
+
}
|
|
82
|
+
return () => {
|
|
83
|
+
registration.dispose();
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
return {
|
|
88
|
+
mounted: true,
|
|
89
|
+
dispose: () => activity.dispose()
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const registration = this.host.registerApi(api);
|
|
93
|
+
if (registration.mounted !== true) {
|
|
94
|
+
registration.dispose();
|
|
95
|
+
throw new Error(`package API '${api.basePath}' did not mount.`);
|
|
96
|
+
}
|
|
97
|
+
this.ctx.effect(() => () => registration.dispose(), "server facet API registration");
|
|
98
|
+
return registration;
|
|
99
|
+
}
|
|
100
|
+
registerChannel(channel) {
|
|
101
|
+
const registration = this.host.registerChannel(channel);
|
|
102
|
+
if (registration.mounted !== true) {
|
|
103
|
+
registration.dispose();
|
|
104
|
+
throw new Error(`hub channel '${channel.frameType}' did not mount.`);
|
|
105
|
+
}
|
|
106
|
+
this.ctx.effect(() => () => registration.dispose(), "server facet channel registration");
|
|
107
|
+
return registration;
|
|
108
|
+
}
|
|
109
|
+
registerMethod = (definition, handler) => {
|
|
110
|
+
const registration = this.host.registerMethod(definition, handler);
|
|
111
|
+
if (registration.mounted !== true) {
|
|
112
|
+
registration.dispose();
|
|
113
|
+
throw new Error(`plugin method '${definition.service}.${definition.method}' did not mount.`);
|
|
114
|
+
}
|
|
115
|
+
this.ctx.effect(() => () => registration.dispose(), "server facet method registration");
|
|
116
|
+
return registration;
|
|
117
|
+
};
|
|
118
|
+
mounted() {
|
|
119
|
+
return this.host.mounted();
|
|
120
|
+
}
|
|
121
|
+
mountedChannels() {
|
|
122
|
+
return this.host.mountedChannels();
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
/** Publishes the host service from inside a mounted plugin, so it unwinds with the root. */
|
|
126
|
+
function serverHostProvider(context, host) {
|
|
127
|
+
new ScopedDoomServerHost(context, host);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Installs server facets into a cordis root that provides the server host.
|
|
131
|
+
*
|
|
132
|
+
* A cordis root rather than plain calls, because a facet is a Doom
|
|
133
|
+
* contribution like any other: it may inject services a host provides later,
|
|
134
|
+
* and it unwinds through the same fiber disposal the Pi facet uses. One root
|
|
135
|
+
* per host process, created here, so no host has to know cordis to run one.
|
|
136
|
+
*
|
|
137
|
+
* Facets are awaited one at a time and each is a single fiber, because a
|
|
138
|
+
* facet declares its `inject` on itself. `fiber.await()` therefore settles
|
|
139
|
+
* once `apply` has run, and the caller can read a complete mount table before
|
|
140
|
+
* deciding whether to open a listener.
|
|
141
|
+
*/
|
|
142
|
+
async function installServerFacets(options) {
|
|
143
|
+
const notice = options.onNotice ?? (() => {});
|
|
144
|
+
const root = new _deepseek_ai_cordis.Context();
|
|
145
|
+
await root.plugin(serverHostProvider, options.host).await();
|
|
146
|
+
try {
|
|
147
|
+
await options.prepare?.(root);
|
|
148
|
+
} catch (error) {
|
|
149
|
+
await root.fiber.dispose();
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
if (options.facets.some((candidate) => "retained" in candidate && candidate.retained === true) && !require_headless.readDoomHeadlessHost(root)) {
|
|
153
|
+
await root.fiber.dispose();
|
|
154
|
+
throw new Error("Retained server candidates require a gated headless host");
|
|
155
|
+
}
|
|
156
|
+
const installed = [];
|
|
157
|
+
const installedPackages = [];
|
|
158
|
+
const disposeInstalled = async () => {
|
|
159
|
+
for (const fiber of [...installed].reverse()) await fiber.dispose();
|
|
160
|
+
};
|
|
161
|
+
const factoryTimeoutMs = options.factoryTimeoutMs ?? 1e4;
|
|
162
|
+
let abandoned = false;
|
|
163
|
+
const disposeRoot = async () => {
|
|
164
|
+
if (!abandoned) return root.fiber.dispose();
|
|
165
|
+
await require_liveImport.withTimeout(root.fiber.dispose(), factoryTimeoutMs, "server facet root dispose").catch((error) => notice(error instanceof Error ? error.message : String(error)));
|
|
166
|
+
};
|
|
167
|
+
for (const candidate of options.facets) {
|
|
168
|
+
const facet = "declaration" in candidate ? candidate.facet : candidate;
|
|
169
|
+
const declaration = "declaration" in candidate ? candidate.declaration : void 0;
|
|
170
|
+
let fiber;
|
|
171
|
+
let applySettled = false;
|
|
172
|
+
try {
|
|
173
|
+
fiber = (declaration ? root.extend({ [require_headless.DOOM_HEADLESS_OWNER]: declaration }) : root).plugin(facet);
|
|
174
|
+
const applied = fiber.await();
|
|
175
|
+
const markSettled = () => {
|
|
176
|
+
applySettled = true;
|
|
177
|
+
};
|
|
178
|
+
applied.then(markSettled, markSettled);
|
|
179
|
+
await require_liveImport.withTimeout(applied, factoryTimeoutMs, declaration === void 0 ? "server facet apply" : `server facet '${declaration.packageName}' apply`);
|
|
180
|
+
installed.push(fiber);
|
|
181
|
+
if (declaration) installedPackages.push(declaration.packageName);
|
|
182
|
+
} catch (error) {
|
|
183
|
+
if (fiber && !applySettled) {
|
|
184
|
+
abandoned = true;
|
|
185
|
+
fiber.dispose().catch((disposeError) => notice(`abandoned server facet did not dispose (${disposeError instanceof Error ? disposeError.message : String(disposeError)})`));
|
|
186
|
+
} else await fiber?.dispose();
|
|
187
|
+
const message = `${declaration === void 0 ? "a server facet" : `server facet '${declaration.packageName}'`} did not install (${error instanceof Error ? error.message : String(error)})`;
|
|
188
|
+
if (declaration?.required === true && !("initiallyEligible" in candidate && candidate.initiallyEligible === false)) {
|
|
189
|
+
await disposeInstalled();
|
|
190
|
+
await disposeRoot();
|
|
191
|
+
throw new Error(message, { cause: error });
|
|
192
|
+
}
|
|
193
|
+
notice(message);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
let disposePromise;
|
|
197
|
+
return {
|
|
198
|
+
root,
|
|
199
|
+
installedPackages,
|
|
200
|
+
dispose: () => {
|
|
201
|
+
disposePromise ??= (async () => {
|
|
202
|
+
await disposeInstalled();
|
|
203
|
+
await disposeRoot();
|
|
204
|
+
})();
|
|
205
|
+
return disposePromise;
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
//#endregion
|
|
210
|
+
exports.installServerFacets = installServerFacets;
|
|
211
|
+
exports.loadServerFacets = loadServerFacets;
|
|
212
|
+
exports.selectedServerProviderOverrides = selectedServerProviderOverrides;
|
|
213
|
+
|
|
214
|
+
//# sourceMappingURL=serverFacetLoader.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverFacetLoader.cjs","names":["isDoomServerFacet","guardedImport","Service","DOOM_SERVER_HOST_SERVICE","readDoomHeadlessHost","Context","withTimeout","DOOM_HEADLESS_OWNER"],"sources":["../../../src/server/serverFacetLoader.ts"],"sourcesContent":["import { Context, Service, type Fiber } from '@deepseek-ai/cordis';\n\nimport { DOOM_HEADLESS_OWNER, readDoomHeadlessHost } from '../schemas/headless';\nimport type { DoomApiScope } from '../schemas/packageApi';\nimport type { DoomServerBundleEntry } from '../schemas/serverBundle';\nimport {\n DOOM_SERVER_HOST_SERVICE,\n type DoomServerFacet,\n type DoomServerProviderOverride,\n type DoomServerHostService,\n isDoomServerFacet,\n} from '../schemas/serverFacet';\nimport { guardedImport, LIVE_FACTORY_TIMEOUT_MS, type LiveImportGuard, withTimeout } from './liveImport';\n\nexport interface LoadedServerFacet {\n readonly declaration: DoomServerBundleEntry;\n readonly facet: DoomServerFacet;\n readonly retained?: true;\n readonly initiallyEligible?: boolean;\n}\n\n/** One live server facet: the bundle entry shape plus the URL its package module imports from. */\nexport interface LiveServerFacetEntry extends DoomServerBundleEntry {\n /** Content-addressed import URL for `module`, see the po server's `packageUrl`. */\n readonly url: string;\n}\n\nexport interface LoadServerFacetsOptions extends LiveImportGuard {\n readonly entries: readonly LiveServerFacetEntry[];\n readonly majorMode: string;\n readonly activeLayers: readonly string[];\n readonly onNotice?: (message: string) => void;\n /** Only a session host with declarative contribution gating may retain all candidates. */\n readonly retainCandidates?: boolean;\n /** Test seam; defaults to native `import()`. */\n readonly importer?: (url: string) => Promise<unknown>;\n}\n\nexport interface LoadedServerFacets {\n readonly entries: readonly LiveServerFacetEntry[];\n readonly facets: readonly LoadedServerFacet[];\n}\n\n/** Pure pre-model metadata from initially admitted session facets, never from retained candidates. */\nexport function selectedServerProviderOverrides(\n facets: readonly LoadedServerFacet[],\n environment: Readonly<Record<string, string | undefined>>,\n): readonly DoomServerProviderOverride[] {\n return facets.flatMap(({ declaration, facet, initiallyEligible }) =>\n initiallyEligible === false || !declaration.scopes.includes('session')\n ? []\n : (facet.providerOverrides?.({ environment }) ?? []),\n );\n}\n\nfunction ownedBy(\n owners: readonly { readonly majorMode: string; readonly layer: string }[],\n majorMode: string,\n activeLayers: readonly string[],\n): boolean {\n return owners.some(\n (owner) => owner.majorMode === majorMode && (owner.layer === 'default' || activeLayers.includes(owner.layer)),\n );\n}\n\nasync function loadFacetEntries(\n scope: DoomApiScope,\n entries: readonly DoomServerBundleEntry[],\n options: Pick<LoadServerFacetsOptions, 'majorMode' | 'activeLayers' | 'onNotice' | 'retainCandidates'>,\n importUrl: (declaration: DoomServerBundleEntry) => Promise<unknown>,\n): Promise<LoadedServerFacet[]> {\n const facets: LoadedServerFacet[] = [];\n for (const declaration of entries) {\n if (!declaration.scopes.includes(scope)) continue;\n const eligible = ownedBy(declaration.owners, options.majorMode, options.activeLayers);\n if (!(scope === 'session' && options.retainCandidates === true) && !eligible) continue;\n try {\n const imported = (await importUrl(declaration)) as { default?: unknown } | undefined;\n if (!isDoomServerFacet(imported?.default)) throw new Error('default export is not a server object facet');\n facets.push({\n declaration,\n facet: imported.default,\n ...(scope === 'session' && options.retainCandidates\n ? { retained: true as const, initiallyEligible: eligible }\n : {}),\n });\n } catch (error) {\n const message = `Server facet '${declaration.packageName}' could not load (${error instanceof Error ? error.message : String(error)})`;\n if (declaration.required && eligible) throw new Error(message, { cause: error });\n options.onNotice?.(message);\n }\n }\n return facets;\n}\n\n/**\n * Live reader: imports each package's built entry from its content-addressed URL.\n *\n * Applies the scope, ownership and `required` rules of each entry. Each import is bounded and a URL that\n * timed out or threw is poisoned (see `guardedImport`); a poisoned required facet fails\n * exactly as a load failure does.\n */\nexport async function loadServerFacets(\n scope: DoomApiScope,\n options: LoadServerFacetsOptions,\n): Promise<LoadedServerFacets> {\n const importer = options.importer ?? ((url: string) => import(url));\n const urls = new Map(options.entries.map((entry) => [entry as DoomServerBundleEntry, entry.url]));\n const facets = await loadFacetEntries(scope, options.entries, options, (declaration) =>\n guardedImport(urls.get(declaration)!, importer, options),\n );\n return { entries: options.entries, facets };\n}\n\nexport interface InstallServerFacetsOptions {\n host: DoomServerHostService;\n facets: readonly (DoomServerFacet | LoadedServerFacet)[];\n onNotice?: (message: string) => void;\n /** Install additional typed services before any package facet is applied. */\n prepare?: (root: Context) => void | Promise<void>;\n /** Bound on each facet's `apply`; defaults to `LIVE_FACTORY_TIMEOUT_MS`. */\n factoryTimeoutMs?: number;\n}\n\nexport interface InstalledServerFacets {\n /** The cordis root the facets were installed into, for a host that provides more services. */\n readonly root: Context;\n readonly installedPackages: readonly string[];\n dispose(): Promise<void>;\n}\n\n/**\n * Binds registrations to the Cordis fiber that calls the host service.\n *\n * The host itself is shared, but Cordis traceable services rebind `ctx` to the\n * caller. That lets a facet's registration unwind even when `apply` throws\n * before it can return its disposer.\n */\nclass ScopedDoomServerHost extends Service<DoomServerHostService> implements DoomServerHostService {\n readonly scope: DoomServerHostService['scope'];\n readonly context: DoomServerHostService['context'];\n\n constructor(\n ctx: Context,\n private readonly host: DoomServerHostService,\n ) {\n super(ctx, DOOM_SERVER_HOST_SERVICE);\n this.scope = host.scope;\n this.context = host.context;\n }\n\n registerApi(api: Parameters<DoomServerHostService['registerApi']>[0]) {\n const headless = this.scope === 'session' ? readDoomHeadlessHost(this.ctx) : undefined;\n if (headless) {\n const activity = headless.registerActivity({\n name: `api:${api.basePath}`,\n start: () => {\n const registration = this.host.registerApi(api);\n if (registration.mounted !== true) {\n registration.dispose();\n throw new Error(`package API '${api.basePath}' did not mount.`);\n }\n return () => {\n registration.dispose();\n };\n },\n });\n return {\n mounted: true,\n dispose: () => activity.dispose(),\n };\n }\n const registration = this.host.registerApi(api);\n if (registration.mounted !== true) {\n registration.dispose();\n throw new Error(`package API '${api.basePath}' did not mount.`);\n }\n this.ctx.effect(() => () => registration.dispose(), 'server facet API registration');\n return registration;\n }\n\n registerChannel(channel: Parameters<DoomServerHostService['registerChannel']>[0]) {\n const registration = this.host.registerChannel(channel);\n if (registration.mounted !== true) {\n registration.dispose();\n throw new Error(`hub channel '${channel.frameType}' did not mount.`);\n }\n this.ctx.effect(() => () => registration.dispose(), 'server facet channel registration');\n return registration;\n }\n\n registerMethod: DoomServerHostService['registerMethod'] = (definition, handler) => {\n const registration = this.host.registerMethod(definition, handler);\n if (registration.mounted !== true) {\n registration.dispose();\n throw new Error(`plugin method '${definition.service}.${definition.method}' did not mount.`);\n }\n this.ctx.effect(() => () => registration.dispose(), 'server facet method registration');\n return registration;\n };\n\n mounted(): readonly string[] {\n return this.host.mounted();\n }\n\n mountedChannels(): readonly string[] {\n return this.host.mountedChannels();\n }\n}\n\n/** Publishes the host service from inside a mounted plugin, so it unwinds with the root. */\nfunction serverHostProvider(context: Context, host: DoomServerHostService): void {\n new ScopedDoomServerHost(context, host);\n}\n\n/**\n * Installs server facets into a cordis root that provides the server host.\n *\n * A cordis root rather than plain calls, because a facet is a Doom\n * contribution like any other: it may inject services a host provides later,\n * and it unwinds through the same fiber disposal the Pi facet uses. One root\n * per host process, created here, so no host has to know cordis to run one.\n *\n * Facets are awaited one at a time and each is a single fiber, because a\n * facet declares its `inject` on itself. `fiber.await()` therefore settles\n * once `apply` has run, and the caller can read a complete mount table before\n * deciding whether to open a listener.\n */\nexport async function installServerFacets(options: InstallServerFacetsOptions): Promise<InstalledServerFacets> {\n const notice = options.onNotice ?? ((): void => {});\n const root = new Context();\n await root.plugin(serverHostProvider, options.host).await();\n try {\n await options.prepare?.(root);\n } catch (error) {\n await root.fiber.dispose();\n throw error;\n }\n if (\n options.facets.some((candidate) => 'retained' in candidate && candidate.retained === true) &&\n !readDoomHeadlessHost(root)\n ) {\n await root.fiber.dispose();\n throw new Error('Retained server candidates require a gated headless host');\n }\n const installed: Fiber[] = [];\n const installedPackages: string[] = [];\n\n const disposeInstalled = async (): Promise<void> => {\n for (const fiber of [...installed].reverse()) await fiber.dispose();\n };\n const factoryTimeoutMs = options.factoryTimeoutMs ?? LIVE_FACTORY_TIMEOUT_MS;\n // A fiber whose apply never settles also never finishes disposing, and holds its root\n // open. Once one is abandoned, root disposal is bounded so teardown cannot hang.\n let abandoned = false;\n const disposeRoot = async (): Promise<void> => {\n if (!abandoned) return root.fiber.dispose();\n await withTimeout(root.fiber.dispose(), factoryTimeoutMs, 'server facet root dispose').catch((error: unknown) =>\n notice(error instanceof Error ? error.message : String(error)),\n );\n };\n\n for (const candidate of options.facets) {\n const facet = 'declaration' in candidate ? candidate.facet : candidate;\n const declaration = 'declaration' in candidate ? candidate.declaration : undefined;\n let fiber: Fiber | undefined;\n let applySettled = false;\n try {\n const scope = declaration ? root.extend({ [DOOM_HEADLESS_OWNER]: declaration }) : root;\n fiber = scope.plugin(facet);\n const applied = fiber.await();\n const markSettled = (): void => {\n applySettled = true;\n };\n applied.then(markSettled, markSettled);\n await withTimeout(\n applied,\n factoryTimeoutMs,\n declaration === undefined ? 'server facet apply' : `server facet '${declaration.packageName}' apply`,\n );\n installed.push(fiber);\n if (declaration) installedPackages.push(declaration.packageName);\n } catch (error) {\n if (fiber && !applySettled) {\n abandoned = true;\n void fiber\n .dispose()\n .catch((disposeError: unknown) =>\n notice(\n `abandoned server facet did not dispose (${disposeError instanceof Error ? disposeError.message : String(disposeError)})`,\n ),\n );\n } else await fiber?.dispose();\n const message = `${declaration === undefined ? 'a server facet' : `server facet '${declaration.packageName}'`} did not install (${error instanceof Error ? error.message : String(error)})`;\n if (\n declaration?.required === true &&\n !('initiallyEligible' in candidate && candidate.initiallyEligible === false)\n ) {\n await disposeInstalled();\n await disposeRoot();\n throw new Error(message, { cause: error });\n }\n notice(message);\n }\n }\n\n let disposePromise: Promise<void> | undefined;\n return {\n root,\n installedPackages,\n dispose: () => {\n disposePromise ??= (async () => {\n await disposeInstalled();\n await disposeRoot();\n })();\n return disposePromise;\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { DoomApiScope } from "../schemas/packageApi.mjs";
|
|
2
|
+
import { DoomServerBundleEntry } from "../schemas/serverBundle.mjs";
|
|
3
|
+
import { DoomServerFacet, DoomServerHostService, DoomServerProviderOverride } from "../schemas/serverFacet.mjs";
|
|
4
|
+
import { LiveImportGuard } from "./liveImport.mjs";
|
|
5
|
+
import { Context } from "@deepseek-ai/cordis";
|
|
6
|
+
//#region src/server/serverFacetLoader.d.ts
|
|
7
|
+
export interface LoadedServerFacet {
|
|
8
|
+
readonly declaration: DoomServerBundleEntry;
|
|
9
|
+
readonly facet: DoomServerFacet;
|
|
10
|
+
readonly retained?: true;
|
|
11
|
+
readonly initiallyEligible?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/** One live server facet: the bundle entry shape plus the URL its package module imports from. */
|
|
14
|
+
export interface LiveServerFacetEntry extends DoomServerBundleEntry {
|
|
15
|
+
/** Content-addressed import URL for `module`, see the po server's `packageUrl`. */
|
|
16
|
+
readonly url: string;
|
|
17
|
+
}
|
|
18
|
+
export interface LoadServerFacetsOptions extends LiveImportGuard {
|
|
19
|
+
readonly entries: readonly LiveServerFacetEntry[];
|
|
20
|
+
readonly majorMode: string;
|
|
21
|
+
readonly activeLayers: readonly string[];
|
|
22
|
+
readonly onNotice?: (message: string) => void;
|
|
23
|
+
/** Only a session host with declarative contribution gating may retain all candidates. */
|
|
24
|
+
readonly retainCandidates?: boolean;
|
|
25
|
+
/** Test seam; defaults to native `import()`. */
|
|
26
|
+
readonly importer?: (url: string) => Promise<unknown>;
|
|
27
|
+
}
|
|
28
|
+
export interface LoadedServerFacets {
|
|
29
|
+
readonly entries: readonly LiveServerFacetEntry[];
|
|
30
|
+
readonly facets: readonly LoadedServerFacet[];
|
|
31
|
+
}
|
|
32
|
+
/** Pure pre-model metadata from initially admitted session facets, never from retained candidates. */
|
|
33
|
+
export declare function selectedServerProviderOverrides(facets: readonly LoadedServerFacet[], environment: Readonly<Record<string, string | undefined>>): readonly DoomServerProviderOverride[];
|
|
34
|
+
/**
|
|
35
|
+
* Live reader: imports each package's built entry from its content-addressed URL.
|
|
36
|
+
*
|
|
37
|
+
* Applies the scope, ownership and `required` rules of each entry. Each import is bounded and a URL that
|
|
38
|
+
* timed out or threw is poisoned (see `guardedImport`); a poisoned required facet fails
|
|
39
|
+
* exactly as a load failure does.
|
|
40
|
+
*/
|
|
41
|
+
export declare function loadServerFacets(scope: DoomApiScope, options: LoadServerFacetsOptions): Promise<LoadedServerFacets>;
|
|
42
|
+
export interface InstallServerFacetsOptions {
|
|
43
|
+
host: DoomServerHostService;
|
|
44
|
+
facets: readonly (DoomServerFacet | LoadedServerFacet)[];
|
|
45
|
+
onNotice?: (message: string) => void;
|
|
46
|
+
/** Install additional typed services before any package facet is applied. */
|
|
47
|
+
prepare?: (root: Context) => void | Promise<void>;
|
|
48
|
+
/** Bound on each facet's `apply`; defaults to `LIVE_FACTORY_TIMEOUT_MS`. */
|
|
49
|
+
factoryTimeoutMs?: number;
|
|
50
|
+
}
|
|
51
|
+
export interface InstalledServerFacets {
|
|
52
|
+
/** The cordis root the facets were installed into, for a host that provides more services. */
|
|
53
|
+
readonly root: Context;
|
|
54
|
+
readonly installedPackages: readonly string[];
|
|
55
|
+
dispose(): Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Installs server facets into a cordis root that provides the server host.
|
|
59
|
+
*
|
|
60
|
+
* A cordis root rather than plain calls, because a facet is a Doom
|
|
61
|
+
* contribution like any other: it may inject services a host provides later,
|
|
62
|
+
* and it unwinds through the same fiber disposal the Pi facet uses. One root
|
|
63
|
+
* per host process, created here, so no host has to know cordis to run one.
|
|
64
|
+
*
|
|
65
|
+
* Facets are awaited one at a time and each is a single fiber, because a
|
|
66
|
+
* facet declares its `inject` on itself. `fiber.await()` therefore settles
|
|
67
|
+
* once `apply` has run, and the caller can read a complete mount table before
|
|
68
|
+
* deciding whether to open a listener.
|
|
69
|
+
*/
|
|
70
|
+
export declare function installServerFacets(options: InstallServerFacetsOptions): Promise<InstalledServerFacets>;
|
|
71
|
+
//#endregion
|
|
72
|
+
//# sourceMappingURL=serverFacetLoader.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverFacetLoader.d.mts","names":[],"sources":["../../../src/server/serverFacetLoader.ts"],"mappings":";;;;;;iBAciB;WACN,aAAa;WACb,OAAO;WACP;WACA;;;iBAIM,6BAA6B;;WAEnC;;iBAGM,gCAAgC;WACtC,kBAAkB;WAClB;WACA;WACA,YAAY;;WAEZ;;WAEA,YAAY,gBAAgB;;iBAGtB;WACN,kBAAkB;WAClB,iBAAiB;;;wBAIZ,gCACd,iBAAiB,qBACjB,aAAa,SAAS,+CACZ;;;;;;;;wBAuDU,iBACpB,OAAO,cACP,SAAS,0BACR,QAAQ;iBASM;EACf,MAAM;EACN,kBAAkB,kBAAkB;EACpC,YAAY;;EAEZ,WAAW,MAAM,mBAAmB;;EAEpC;;iBAGe;;WAEN,MAAM;WACN;EACT,WAAW;;;;;;;;;;;;;;;wBAoGS,oBAAoB,SAAS,6BAA6B,QAAQ"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { DOOM_HEADLESS_OWNER, readDoomHeadlessHost } from "../schemas/headless.mjs";
|
|
2
|
+
import { guardedImport, withTimeout } from "./liveImport.mjs";
|
|
3
|
+
import { DOOM_SERVER_HOST_SERVICE, isDoomServerFacet } from "../schemas/serverFacet.mjs";
|
|
4
|
+
import { Context, Service } from "@deepseek-ai/cordis";
|
|
5
|
+
//#region src/server/serverFacetLoader.ts
|
|
6
|
+
/** Pure pre-model metadata from initially admitted session facets, never from retained candidates. */
|
|
7
|
+
function selectedServerProviderOverrides(facets, environment) {
|
|
8
|
+
return facets.flatMap(({ declaration, facet, initiallyEligible }) => initiallyEligible === false || !declaration.scopes.includes("session") ? [] : facet.providerOverrides?.({ environment }) ?? []);
|
|
9
|
+
}
|
|
10
|
+
function ownedBy(owners, majorMode, activeLayers) {
|
|
11
|
+
return owners.some((owner) => owner.majorMode === majorMode && (owner.layer === "default" || activeLayers.includes(owner.layer)));
|
|
12
|
+
}
|
|
13
|
+
async function loadFacetEntries(scope, entries, options, importUrl) {
|
|
14
|
+
const facets = [];
|
|
15
|
+
for (const declaration of entries) {
|
|
16
|
+
if (!declaration.scopes.includes(scope)) continue;
|
|
17
|
+
const eligible = ownedBy(declaration.owners, options.majorMode, options.activeLayers);
|
|
18
|
+
if (!(scope === "session" && options.retainCandidates === true) && !eligible) continue;
|
|
19
|
+
try {
|
|
20
|
+
const imported = await importUrl(declaration);
|
|
21
|
+
if (!isDoomServerFacet(imported?.default)) throw new Error("default export is not a server object facet");
|
|
22
|
+
facets.push({
|
|
23
|
+
declaration,
|
|
24
|
+
facet: imported.default,
|
|
25
|
+
...scope === "session" && options.retainCandidates ? {
|
|
26
|
+
retained: true,
|
|
27
|
+
initiallyEligible: eligible
|
|
28
|
+
} : {}
|
|
29
|
+
});
|
|
30
|
+
} catch (error) {
|
|
31
|
+
const message = `Server facet '${declaration.packageName}' could not load (${error instanceof Error ? error.message : String(error)})`;
|
|
32
|
+
if (declaration.required && eligible) throw new Error(message, { cause: error });
|
|
33
|
+
options.onNotice?.(message);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return facets;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Live reader: imports each package's built entry from its content-addressed URL.
|
|
40
|
+
*
|
|
41
|
+
* Applies the scope, ownership and `required` rules of each entry. Each import is bounded and a URL that
|
|
42
|
+
* timed out or threw is poisoned (see `guardedImport`); a poisoned required facet fails
|
|
43
|
+
* exactly as a load failure does.
|
|
44
|
+
*/
|
|
45
|
+
async function loadServerFacets(scope, options) {
|
|
46
|
+
const importer = options.importer ?? ((url) => import(url));
|
|
47
|
+
const urls = new Map(options.entries.map((entry) => [entry, entry.url]));
|
|
48
|
+
const facets = await loadFacetEntries(scope, options.entries, options, (declaration) => guardedImport(urls.get(declaration), importer, options));
|
|
49
|
+
return {
|
|
50
|
+
entries: options.entries,
|
|
51
|
+
facets
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Binds registrations to the Cordis fiber that calls the host service.
|
|
56
|
+
*
|
|
57
|
+
* The host itself is shared, but Cordis traceable services rebind `ctx` to the
|
|
58
|
+
* caller. That lets a facet's registration unwind even when `apply` throws
|
|
59
|
+
* before it can return its disposer.
|
|
60
|
+
*/
|
|
61
|
+
var ScopedDoomServerHost = class extends Service {
|
|
62
|
+
host;
|
|
63
|
+
scope;
|
|
64
|
+
context;
|
|
65
|
+
constructor(ctx, host) {
|
|
66
|
+
super(ctx, DOOM_SERVER_HOST_SERVICE);
|
|
67
|
+
this.host = host;
|
|
68
|
+
this.scope = host.scope;
|
|
69
|
+
this.context = host.context;
|
|
70
|
+
}
|
|
71
|
+
registerApi(api) {
|
|
72
|
+
const headless = this.scope === "session" ? readDoomHeadlessHost(this.ctx) : void 0;
|
|
73
|
+
if (headless) {
|
|
74
|
+
const activity = headless.registerActivity({
|
|
75
|
+
name: `api:${api.basePath}`,
|
|
76
|
+
start: () => {
|
|
77
|
+
const registration = this.host.registerApi(api);
|
|
78
|
+
if (registration.mounted !== true) {
|
|
79
|
+
registration.dispose();
|
|
80
|
+
throw new Error(`package API '${api.basePath}' did not mount.`);
|
|
81
|
+
}
|
|
82
|
+
return () => {
|
|
83
|
+
registration.dispose();
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
return {
|
|
88
|
+
mounted: true,
|
|
89
|
+
dispose: () => activity.dispose()
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const registration = this.host.registerApi(api);
|
|
93
|
+
if (registration.mounted !== true) {
|
|
94
|
+
registration.dispose();
|
|
95
|
+
throw new Error(`package API '${api.basePath}' did not mount.`);
|
|
96
|
+
}
|
|
97
|
+
this.ctx.effect(() => () => registration.dispose(), "server facet API registration");
|
|
98
|
+
return registration;
|
|
99
|
+
}
|
|
100
|
+
registerChannel(channel) {
|
|
101
|
+
const registration = this.host.registerChannel(channel);
|
|
102
|
+
if (registration.mounted !== true) {
|
|
103
|
+
registration.dispose();
|
|
104
|
+
throw new Error(`hub channel '${channel.frameType}' did not mount.`);
|
|
105
|
+
}
|
|
106
|
+
this.ctx.effect(() => () => registration.dispose(), "server facet channel registration");
|
|
107
|
+
return registration;
|
|
108
|
+
}
|
|
109
|
+
registerMethod = (definition, handler) => {
|
|
110
|
+
const registration = this.host.registerMethod(definition, handler);
|
|
111
|
+
if (registration.mounted !== true) {
|
|
112
|
+
registration.dispose();
|
|
113
|
+
throw new Error(`plugin method '${definition.service}.${definition.method}' did not mount.`);
|
|
114
|
+
}
|
|
115
|
+
this.ctx.effect(() => () => registration.dispose(), "server facet method registration");
|
|
116
|
+
return registration;
|
|
117
|
+
};
|
|
118
|
+
mounted() {
|
|
119
|
+
return this.host.mounted();
|
|
120
|
+
}
|
|
121
|
+
mountedChannels() {
|
|
122
|
+
return this.host.mountedChannels();
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
/** Publishes the host service from inside a mounted plugin, so it unwinds with the root. */
|
|
126
|
+
function serverHostProvider(context, host) {
|
|
127
|
+
new ScopedDoomServerHost(context, host);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Installs server facets into a cordis root that provides the server host.
|
|
131
|
+
*
|
|
132
|
+
* A cordis root rather than plain calls, because a facet is a Doom
|
|
133
|
+
* contribution like any other: it may inject services a host provides later,
|
|
134
|
+
* and it unwinds through the same fiber disposal the Pi facet uses. One root
|
|
135
|
+
* per host process, created here, so no host has to know cordis to run one.
|
|
136
|
+
*
|
|
137
|
+
* Facets are awaited one at a time and each is a single fiber, because a
|
|
138
|
+
* facet declares its `inject` on itself. `fiber.await()` therefore settles
|
|
139
|
+
* once `apply` has run, and the caller can read a complete mount table before
|
|
140
|
+
* deciding whether to open a listener.
|
|
141
|
+
*/
|
|
142
|
+
async function installServerFacets(options) {
|
|
143
|
+
const notice = options.onNotice ?? (() => {});
|
|
144
|
+
const root = new Context();
|
|
145
|
+
await root.plugin(serverHostProvider, options.host).await();
|
|
146
|
+
try {
|
|
147
|
+
await options.prepare?.(root);
|
|
148
|
+
} catch (error) {
|
|
149
|
+
await root.fiber.dispose();
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
if (options.facets.some((candidate) => "retained" in candidate && candidate.retained === true) && !readDoomHeadlessHost(root)) {
|
|
153
|
+
await root.fiber.dispose();
|
|
154
|
+
throw new Error("Retained server candidates require a gated headless host");
|
|
155
|
+
}
|
|
156
|
+
const installed = [];
|
|
157
|
+
const installedPackages = [];
|
|
158
|
+
const disposeInstalled = async () => {
|
|
159
|
+
for (const fiber of [...installed].reverse()) await fiber.dispose();
|
|
160
|
+
};
|
|
161
|
+
const factoryTimeoutMs = options.factoryTimeoutMs ?? 1e4;
|
|
162
|
+
let abandoned = false;
|
|
163
|
+
const disposeRoot = async () => {
|
|
164
|
+
if (!abandoned) return root.fiber.dispose();
|
|
165
|
+
await withTimeout(root.fiber.dispose(), factoryTimeoutMs, "server facet root dispose").catch((error) => notice(error instanceof Error ? error.message : String(error)));
|
|
166
|
+
};
|
|
167
|
+
for (const candidate of options.facets) {
|
|
168
|
+
const facet = "declaration" in candidate ? candidate.facet : candidate;
|
|
169
|
+
const declaration = "declaration" in candidate ? candidate.declaration : void 0;
|
|
170
|
+
let fiber;
|
|
171
|
+
let applySettled = false;
|
|
172
|
+
try {
|
|
173
|
+
fiber = (declaration ? root.extend({ [DOOM_HEADLESS_OWNER]: declaration }) : root).plugin(facet);
|
|
174
|
+
const applied = fiber.await();
|
|
175
|
+
const markSettled = () => {
|
|
176
|
+
applySettled = true;
|
|
177
|
+
};
|
|
178
|
+
applied.then(markSettled, markSettled);
|
|
179
|
+
await withTimeout(applied, factoryTimeoutMs, declaration === void 0 ? "server facet apply" : `server facet '${declaration.packageName}' apply`);
|
|
180
|
+
installed.push(fiber);
|
|
181
|
+
if (declaration) installedPackages.push(declaration.packageName);
|
|
182
|
+
} catch (error) {
|
|
183
|
+
if (fiber && !applySettled) {
|
|
184
|
+
abandoned = true;
|
|
185
|
+
fiber.dispose().catch((disposeError) => notice(`abandoned server facet did not dispose (${disposeError instanceof Error ? disposeError.message : String(disposeError)})`));
|
|
186
|
+
} else await fiber?.dispose();
|
|
187
|
+
const message = `${declaration === void 0 ? "a server facet" : `server facet '${declaration.packageName}'`} did not install (${error instanceof Error ? error.message : String(error)})`;
|
|
188
|
+
if (declaration?.required === true && !("initiallyEligible" in candidate && candidate.initiallyEligible === false)) {
|
|
189
|
+
await disposeInstalled();
|
|
190
|
+
await disposeRoot();
|
|
191
|
+
throw new Error(message, { cause: error });
|
|
192
|
+
}
|
|
193
|
+
notice(message);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
let disposePromise;
|
|
197
|
+
return {
|
|
198
|
+
root,
|
|
199
|
+
installedPackages,
|
|
200
|
+
dispose: () => {
|
|
201
|
+
disposePromise ??= (async () => {
|
|
202
|
+
await disposeInstalled();
|
|
203
|
+
await disposeRoot();
|
|
204
|
+
})();
|
|
205
|
+
return disposePromise;
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
//#endregion
|
|
210
|
+
export { installServerFacets, loadServerFacets, selectedServerProviderOverrides };
|
|
211
|
+
|
|
212
|
+
//# sourceMappingURL=serverFacetLoader.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverFacetLoader.mjs","names":[],"sources":["../../../src/server/serverFacetLoader.ts"],"sourcesContent":["import { Context, Service, type Fiber } from '@deepseek-ai/cordis';\n\nimport { DOOM_HEADLESS_OWNER, readDoomHeadlessHost } from '../schemas/headless';\nimport type { DoomApiScope } from '../schemas/packageApi';\nimport type { DoomServerBundleEntry } from '../schemas/serverBundle';\nimport {\n DOOM_SERVER_HOST_SERVICE,\n type DoomServerFacet,\n type DoomServerProviderOverride,\n type DoomServerHostService,\n isDoomServerFacet,\n} from '../schemas/serverFacet';\nimport { guardedImport, LIVE_FACTORY_TIMEOUT_MS, type LiveImportGuard, withTimeout } from './liveImport';\n\nexport interface LoadedServerFacet {\n readonly declaration: DoomServerBundleEntry;\n readonly facet: DoomServerFacet;\n readonly retained?: true;\n readonly initiallyEligible?: boolean;\n}\n\n/** One live server facet: the bundle entry shape plus the URL its package module imports from. */\nexport interface LiveServerFacetEntry extends DoomServerBundleEntry {\n /** Content-addressed import URL for `module`, see the po server's `packageUrl`. */\n readonly url: string;\n}\n\nexport interface LoadServerFacetsOptions extends LiveImportGuard {\n readonly entries: readonly LiveServerFacetEntry[];\n readonly majorMode: string;\n readonly activeLayers: readonly string[];\n readonly onNotice?: (message: string) => void;\n /** Only a session host with declarative contribution gating may retain all candidates. */\n readonly retainCandidates?: boolean;\n /** Test seam; defaults to native `import()`. */\n readonly importer?: (url: string) => Promise<unknown>;\n}\n\nexport interface LoadedServerFacets {\n readonly entries: readonly LiveServerFacetEntry[];\n readonly facets: readonly LoadedServerFacet[];\n}\n\n/** Pure pre-model metadata from initially admitted session facets, never from retained candidates. */\nexport function selectedServerProviderOverrides(\n facets: readonly LoadedServerFacet[],\n environment: Readonly<Record<string, string | undefined>>,\n): readonly DoomServerProviderOverride[] {\n return facets.flatMap(({ declaration, facet, initiallyEligible }) =>\n initiallyEligible === false || !declaration.scopes.includes('session')\n ? []\n : (facet.providerOverrides?.({ environment }) ?? []),\n );\n}\n\nfunction ownedBy(\n owners: readonly { readonly majorMode: string; readonly layer: string }[],\n majorMode: string,\n activeLayers: readonly string[],\n): boolean {\n return owners.some(\n (owner) => owner.majorMode === majorMode && (owner.layer === 'default' || activeLayers.includes(owner.layer)),\n );\n}\n\nasync function loadFacetEntries(\n scope: DoomApiScope,\n entries: readonly DoomServerBundleEntry[],\n options: Pick<LoadServerFacetsOptions, 'majorMode' | 'activeLayers' | 'onNotice' | 'retainCandidates'>,\n importUrl: (declaration: DoomServerBundleEntry) => Promise<unknown>,\n): Promise<LoadedServerFacet[]> {\n const facets: LoadedServerFacet[] = [];\n for (const declaration of entries) {\n if (!declaration.scopes.includes(scope)) continue;\n const eligible = ownedBy(declaration.owners, options.majorMode, options.activeLayers);\n if (!(scope === 'session' && options.retainCandidates === true) && !eligible) continue;\n try {\n const imported = (await importUrl(declaration)) as { default?: unknown } | undefined;\n if (!isDoomServerFacet(imported?.default)) throw new Error('default export is not a server object facet');\n facets.push({\n declaration,\n facet: imported.default,\n ...(scope === 'session' && options.retainCandidates\n ? { retained: true as const, initiallyEligible: eligible }\n : {}),\n });\n } catch (error) {\n const message = `Server facet '${declaration.packageName}' could not load (${error instanceof Error ? error.message : String(error)})`;\n if (declaration.required && eligible) throw new Error(message, { cause: error });\n options.onNotice?.(message);\n }\n }\n return facets;\n}\n\n/**\n * Live reader: imports each package's built entry from its content-addressed URL.\n *\n * Applies the scope, ownership and `required` rules of each entry. Each import is bounded and a URL that\n * timed out or threw is poisoned (see `guardedImport`); a poisoned required facet fails\n * exactly as a load failure does.\n */\nexport async function loadServerFacets(\n scope: DoomApiScope,\n options: LoadServerFacetsOptions,\n): Promise<LoadedServerFacets> {\n const importer = options.importer ?? ((url: string) => import(url));\n const urls = new Map(options.entries.map((entry) => [entry as DoomServerBundleEntry, entry.url]));\n const facets = await loadFacetEntries(scope, options.entries, options, (declaration) =>\n guardedImport(urls.get(declaration)!, importer, options),\n );\n return { entries: options.entries, facets };\n}\n\nexport interface InstallServerFacetsOptions {\n host: DoomServerHostService;\n facets: readonly (DoomServerFacet | LoadedServerFacet)[];\n onNotice?: (message: string) => void;\n /** Install additional typed services before any package facet is applied. */\n prepare?: (root: Context) => void | Promise<void>;\n /** Bound on each facet's `apply`; defaults to `LIVE_FACTORY_TIMEOUT_MS`. */\n factoryTimeoutMs?: number;\n}\n\nexport interface InstalledServerFacets {\n /** The cordis root the facets were installed into, for a host that provides more services. */\n readonly root: Context;\n readonly installedPackages: readonly string[];\n dispose(): Promise<void>;\n}\n\n/**\n * Binds registrations to the Cordis fiber that calls the host service.\n *\n * The host itself is shared, but Cordis traceable services rebind `ctx` to the\n * caller. That lets a facet's registration unwind even when `apply` throws\n * before it can return its disposer.\n */\nclass ScopedDoomServerHost extends Service<DoomServerHostService> implements DoomServerHostService {\n readonly scope: DoomServerHostService['scope'];\n readonly context: DoomServerHostService['context'];\n\n constructor(\n ctx: Context,\n private readonly host: DoomServerHostService,\n ) {\n super(ctx, DOOM_SERVER_HOST_SERVICE);\n this.scope = host.scope;\n this.context = host.context;\n }\n\n registerApi(api: Parameters<DoomServerHostService['registerApi']>[0]) {\n const headless = this.scope === 'session' ? readDoomHeadlessHost(this.ctx) : undefined;\n if (headless) {\n const activity = headless.registerActivity({\n name: `api:${api.basePath}`,\n start: () => {\n const registration = this.host.registerApi(api);\n if (registration.mounted !== true) {\n registration.dispose();\n throw new Error(`package API '${api.basePath}' did not mount.`);\n }\n return () => {\n registration.dispose();\n };\n },\n });\n return {\n mounted: true,\n dispose: () => activity.dispose(),\n };\n }\n const registration = this.host.registerApi(api);\n if (registration.mounted !== true) {\n registration.dispose();\n throw new Error(`package API '${api.basePath}' did not mount.`);\n }\n this.ctx.effect(() => () => registration.dispose(), 'server facet API registration');\n return registration;\n }\n\n registerChannel(channel: Parameters<DoomServerHostService['registerChannel']>[0]) {\n const registration = this.host.registerChannel(channel);\n if (registration.mounted !== true) {\n registration.dispose();\n throw new Error(`hub channel '${channel.frameType}' did not mount.`);\n }\n this.ctx.effect(() => () => registration.dispose(), 'server facet channel registration');\n return registration;\n }\n\n registerMethod: DoomServerHostService['registerMethod'] = (definition, handler) => {\n const registration = this.host.registerMethod(definition, handler);\n if (registration.mounted !== true) {\n registration.dispose();\n throw new Error(`plugin method '${definition.service}.${definition.method}' did not mount.`);\n }\n this.ctx.effect(() => () => registration.dispose(), 'server facet method registration');\n return registration;\n };\n\n mounted(): readonly string[] {\n return this.host.mounted();\n }\n\n mountedChannels(): readonly string[] {\n return this.host.mountedChannels();\n }\n}\n\n/** Publishes the host service from inside a mounted plugin, so it unwinds with the root. */\nfunction serverHostProvider(context: Context, host: DoomServerHostService): void {\n new ScopedDoomServerHost(context, host);\n}\n\n/**\n * Installs server facets into a cordis root that provides the server host.\n *\n * A cordis root rather than plain calls, because a facet is a Doom\n * contribution like any other: it may inject services a host provides later,\n * and it unwinds through the same fiber disposal the Pi facet uses. One root\n * per host process, created here, so no host has to know cordis to run one.\n *\n * Facets are awaited one at a time and each is a single fiber, because a\n * facet declares its `inject` on itself. `fiber.await()` therefore settles\n * once `apply` has run, and the caller can read a complete mount table before\n * deciding whether to open a listener.\n */\nexport async function installServerFacets(options: InstallServerFacetsOptions): Promise<InstalledServerFacets> {\n const notice = options.onNotice ?? ((): void => {});\n const root = new Context();\n await root.plugin(serverHostProvider, options.host).await();\n try {\n await options.prepare?.(root);\n } catch (error) {\n await root.fiber.dispose();\n throw error;\n }\n if (\n options.facets.some((candidate) => 'retained' in candidate && candidate.retained === true) &&\n !readDoomHeadlessHost(root)\n ) {\n await root.fiber.dispose();\n throw new Error('Retained server candidates require a gated headless host');\n }\n const installed: Fiber[] = [];\n const installedPackages: string[] = [];\n\n const disposeInstalled = async (): Promise<void> => {\n for (const fiber of [...installed].reverse()) await fiber.dispose();\n };\n const factoryTimeoutMs = options.factoryTimeoutMs ?? LIVE_FACTORY_TIMEOUT_MS;\n // A fiber whose apply never settles also never finishes disposing, and holds its root\n // open. Once one is abandoned, root disposal is bounded so teardown cannot hang.\n let abandoned = false;\n const disposeRoot = async (): Promise<void> => {\n if (!abandoned) return root.fiber.dispose();\n await withTimeout(root.fiber.dispose(), factoryTimeoutMs, 'server facet root dispose').catch((error: unknown) =>\n notice(error instanceof Error ? error.message : String(error)),\n );\n };\n\n for (const candidate of options.facets) {\n const facet = 'declaration' in candidate ? candidate.facet : candidate;\n const declaration = 'declaration' in candidate ? candidate.declaration : undefined;\n let fiber: Fiber | undefined;\n let applySettled = false;\n try {\n const scope = declaration ? root.extend({ [DOOM_HEADLESS_OWNER]: declaration }) : root;\n fiber = scope.plugin(facet);\n const applied = fiber.await();\n const markSettled = (): void => {\n applySettled = true;\n };\n applied.then(markSettled, markSettled);\n await withTimeout(\n applied,\n factoryTimeoutMs,\n declaration === undefined ? 'server facet apply' : `server facet '${declaration.packageName}' apply`,\n );\n installed.push(fiber);\n if (declaration) installedPackages.push(declaration.packageName);\n } catch (error) {\n if (fiber && !applySettled) {\n abandoned = true;\n void fiber\n .dispose()\n .catch((disposeError: unknown) =>\n notice(\n `abandoned server facet did not dispose (${disposeError instanceof Error ? disposeError.message : String(disposeError)})`,\n ),\n );\n } else await fiber?.dispose();\n const message = `${declaration === undefined ? 'a server facet' : `server facet '${declaration.packageName}'`} did not install (${error instanceof Error ? error.message : String(error)})`;\n if (\n declaration?.required === true &&\n !('initiallyEligible' in candidate && candidate.initiallyEligible === false)\n ) {\n await disposeInstalled();\n await disposeRoot();\n throw new Error(message, { cause: error });\n }\n notice(message);\n }\n }\n\n let disposePromise: Promise<void> | undefined;\n return {\n root,\n installedPackages,\n dispose: () => {\n disposePromise ??= (async () => {\n await disposeInstalled();\n await disposeRoot();\n })();\n return disposePromise;\n },\n };\n}\n"],"mappings":"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"}
|