@agimon-ai/doompi-core 0.0.1-alpha.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/agentModel.cjs +4 -0
- package/dist/agentModel.d.mts +2 -0
- package/dist/agentModel.mjs +2 -0
- package/dist/apiContracts.cjs +2009 -0
- package/dist/apiContracts.cjs.map +1 -0
- package/dist/apiContracts.d.mts +1018 -0
- package/dist/apiContracts.d.mts.map +1 -0
- package/dist/apiContracts.mjs +1989 -0
- package/dist/apiContracts.mjs.map +1 -0
- package/dist/askUser.cjs +8 -0
- package/dist/askUser.d.mts +2 -0
- package/dist/askUser.mjs +2 -0
- package/dist/authorTools.cjs +5 -0
- package/dist/authorTools.d.mts +2 -0
- package/dist/authorTools.mjs +2 -0
- package/dist/backgroundWork.cjs +7 -0
- package/dist/backgroundWork.d.mts +2 -0
- package/dist/backgroundWork.mjs +2 -0
- package/dist/bundleAssetPolicy.cjs +5 -0
- package/dist/bundleAssetPolicy.d.mts +2 -0
- package/dist/bundleAssetPolicy.mjs +2 -0
- package/dist/childProcess.cjs +15 -0
- package/dist/childProcess.d.mts +2 -0
- package/dist/childProcess.mjs +2 -0
- package/dist/childSession.cjs +8 -0
- package/dist/childSession.d.mts +3 -0
- package/dist/childSession.mjs +3 -0
- package/dist/cockpitContainer.cjs +4 -0
- package/dist/cockpitContainer.d.mts +2 -0
- package/dist/cockpitContainer.mjs +2 -0
- package/dist/config.cjs +13 -0
- package/dist/config.d.mts +3 -0
- package/dist/config.mjs +2 -0
- package/dist/contextApi.cjs +10 -0
- package/dist/contextApi.d.mts +4 -0
- package/dist/contextApi.mjs +3 -0
- package/dist/contextContributions.cjs +7 -0
- package/dist/contextContributions.d.mts +3 -0
- package/dist/contextContributions.mjs +3 -0
- package/dist/contextDetail.cjs +65 -0
- package/dist/contextDetail.cjs.map +1 -0
- package/dist/contextDetail.d.mts +19 -0
- package/dist/contextDetail.d.mts.map +1 -0
- package/dist/contextDetail.mjs +64 -0
- package/dist/contextDetail.mjs.map +1 -0
- package/dist/contextDetailStore.cjs +100 -0
- package/dist/contextDetailStore.cjs.map +1 -0
- package/dist/contextDetailStore.d.mts +19 -0
- package/dist/contextDetailStore.d.mts.map +1 -0
- package/dist/contextDetailStore.mjs +91 -0
- package/dist/contextDetailStore.mjs.map +1 -0
- package/dist/contextProjection.cjs +121 -0
- package/dist/contextProjection.cjs.map +1 -0
- package/dist/contextProjection.d.mts +130 -0
- package/dist/contextProjection.d.mts.map +1 -0
- package/dist/contextProjection.mjs +117 -0
- package/dist/contextProjection.mjs.map +1 -0
- package/dist/cordisHost.cjs +11 -0
- package/dist/cordisHost.d.mts +2 -0
- package/dist/cordisHost.mjs +2 -0
- package/dist/delegation.cjs +18 -0
- package/dist/delegation.d.mts +2 -0
- package/dist/delegation.mjs +2 -0
- package/dist/doomPackage.cjs +61 -0
- package/dist/doomPackage.cjs.map +1 -0
- package/dist/doomPackage.d.mts +17 -0
- package/dist/doomPackage.d.mts.map +1 -0
- package/dist/doomPackage.mjs +54 -0
- package/dist/doomPackage.mjs.map +1 -0
- package/dist/executionBudget.cjs +231 -0
- package/dist/executionBudget.cjs.map +1 -0
- package/dist/executionBudget.d.mts +11 -0
- package/dist/executionBudget.d.mts.map +1 -0
- package/dist/executionBudget.mjs +225 -0
- package/dist/executionBudget.mjs.map +1 -0
- package/dist/extensionFile.cjs +24 -0
- package/dist/extensionFile.d.mts +3 -0
- package/dist/extensionFile.mjs +2 -0
- package/dist/footer.cjs +6 -0
- package/dist/footer.d.mts +2 -0
- package/dist/footer.mjs +2 -0
- package/dist/headless.cjs +9 -0
- package/dist/headless.d.mts +2 -0
- package/dist/headless.mjs +2 -0
- package/dist/headlessHub.cjs +914 -0
- package/dist/headlessHub.cjs.map +1 -0
- package/dist/headlessHub.d.mts +157 -0
- package/dist/headlessHub.d.mts.map +1 -0
- package/dist/headlessHub.mjs +911 -0
- package/dist/headlessHub.mjs.map +1 -0
- package/dist/headlessServer.cjs +910 -0
- package/dist/headlessServer.cjs.map +1 -0
- package/dist/headlessServer.d.mts +64 -0
- package/dist/headlessServer.d.mts.map +1 -0
- package/dist/headlessServer.mjs +904 -0
- package/dist/headlessServer.mjs.map +1 -0
- package/dist/headlessSessionHost.cjs +0 -0
- package/dist/headlessSessionHost.d.mts +71 -0
- package/dist/headlessSessionHost.d.mts.map +1 -0
- package/dist/headlessSessionHost.mjs +1 -0
- package/dist/headlessSessionManager.cjs +51 -0
- package/dist/headlessSessionManager.cjs.map +1 -0
- package/dist/headlessSessionManager.d.mts +6 -0
- package/dist/headlessSessionManager.d.mts.map +1 -0
- package/dist/headlessSessionManager.mjs +50 -0
- package/dist/headlessSessionManager.mjs.map +1 -0
- package/dist/help.cjs +24 -0
- package/dist/help.d.mts +3 -0
- package/dist/help.mjs +3 -0
- package/dist/history.cjs +25 -0
- package/dist/history.d.mts +10 -0
- package/dist/history.mjs +10 -0
- package/dist/historyImport.cjs +553 -0
- package/dist/historyImport.cjs.map +1 -0
- package/dist/historyImport.d.mts +76 -0
- package/dist/historyImport.d.mts.map +1 -0
- package/dist/historyImport.mjs +547 -0
- package/dist/historyImport.mjs.map +1 -0
- package/dist/historyOwnership.cjs +253 -0
- package/dist/historyOwnership.cjs.map +1 -0
- package/dist/historyOwnership.d.mts +23 -0
- package/dist/historyOwnership.d.mts.map +1 -0
- package/dist/historyOwnership.mjs +247 -0
- package/dist/historyOwnership.mjs.map +1 -0
- package/dist/hubChannel.cjs +4 -0
- package/dist/hubChannel.d.mts +2 -0
- package/dist/hubChannel.mjs +2 -0
- package/dist/index.cjs +44 -0
- package/dist/index.d.mts +6 -0
- package/dist/index.mjs +6 -0
- package/dist/json.cjs +6 -0
- package/dist/json.d.mts +2 -0
- package/dist/json.mjs +2 -0
- package/dist/jsonlSessionRepo.cjs +217 -0
- package/dist/jsonlSessionRepo.cjs.map +1 -0
- package/dist/jsonlSessionRepo.d.mts +7 -0
- package/dist/jsonlSessionRepo.d.mts.map +1 -0
- package/dist/jsonlSessionRepo.mjs +212 -0
- package/dist/jsonlSessionRepo.mjs.map +1 -0
- package/dist/kernel.cjs +3 -0
- package/dist/kernel.d.mts +3 -0
- package/dist/kernel.mjs +2 -0
- package/dist/leader.cjs +9 -0
- package/dist/leader.d.mts +2 -0
- package/dist/leader.mjs +2 -0
- package/dist/logSinkTelemetry.cjs +5 -0
- package/dist/logSinkTelemetry.d.mts +2 -0
- package/dist/logSinkTelemetry.mjs +2 -0
- package/dist/machineApi.cjs +92 -0
- package/dist/machineApi.cjs.map +1 -0
- package/dist/machineApi.d.mts +7 -0
- package/dist/machineApi.d.mts.map +1 -0
- package/dist/machineApi.mjs +88 -0
- package/dist/machineApi.mjs.map +1 -0
- package/dist/main.cjs +11 -0
- package/dist/main.d.mts +5 -0
- package/dist/main.mjs +4 -0
- package/dist/mcpFacet.cjs +12 -0
- package/dist/mcpFacet.d.mts +4 -0
- package/dist/mcpFacet.mjs +4 -0
- package/dist/mcpProjection.cjs +16 -0
- package/dist/mcpProjection.d.mts +2 -0
- package/dist/mcpProjection.mjs +2 -0
- package/dist/mcpSchemaCost.cjs +195 -0
- package/dist/mcpSchemaCost.cjs.map +1 -0
- package/dist/mcpSchemaCost.d.mts +35 -0
- package/dist/mcpSchemaCost.d.mts.map +1 -0
- package/dist/mcpSchemaCost.mjs +190 -0
- package/dist/mcpSchemaCost.mjs.map +1 -0
- package/dist/mcpSession.cjs +9 -0
- package/dist/mcpSession.d.mts +2 -0
- package/dist/mcpSession.mjs +2 -0
- package/dist/mcpStatus.cjs +7 -0
- package/dist/mcpStatus.d.mts +2 -0
- package/dist/mcpStatus.mjs +2 -0
- package/dist/mcpToolResolver.cjs +5 -0
- package/dist/mcpToolResolver.d.mts +2 -0
- package/dist/mcpToolResolver.mjs +2 -0
- package/dist/mcpWidget.cjs +0 -0
- package/dist/mcpWidget.d.mts +2 -0
- package/dist/mcpWidget.mjs +1 -0
- package/dist/moduleResolution.cjs +405 -0
- package/dist/moduleResolution.cjs.map +1 -0
- package/dist/moduleResolution.d.mts +67 -0
- package/dist/moduleResolution.d.mts.map +1 -0
- package/dist/moduleResolution.mjs +389 -0
- package/dist/moduleResolution.mjs.map +1 -0
- package/dist/narration.cjs +10 -0
- package/dist/narration.d.mts +2 -0
- package/dist/narration.mjs +2 -0
- package/dist/notification.cjs +17 -0
- package/dist/notification.d.mts +2 -0
- package/dist/notification.mjs +2 -0
- package/dist/packageApi.cjs +16 -0
- package/dist/packageApi.d.mts +3 -0
- package/dist/packageApi.mjs +3 -0
- package/dist/packageApiServer.cjs +191 -0
- package/dist/packageApiServer.cjs.map +1 -0
- package/dist/packageApiServer.d.mts +57 -0
- package/dist/packageApiServer.d.mts.map +1 -0
- package/dist/packageApiServer.mjs +189 -0
- package/dist/packageApiServer.mjs.map +1 -0
- package/dist/piExtension.cjs +13 -0
- package/dist/piExtension.d.mts +5 -0
- package/dist/piExtension.mjs +4 -0
- package/dist/piSettings.cjs +12 -0
- package/dist/piSettings.d.mts +2 -0
- package/dist/piSettings.mjs +2 -0
- package/dist/pluginProtocol.cjs +10 -0
- package/dist/pluginProtocol.d.mts +2 -0
- package/dist/pluginProtocol.mjs +2 -0
- package/dist/profileIdentity.cjs +6 -0
- package/dist/profileIdentity.d.mts +2 -0
- package/dist/profileIdentity.mjs +2 -0
- package/dist/protocol.cjs +10 -0
- package/dist/protocol.d.mts +2 -0
- package/dist/protocol.mjs +2 -0
- package/dist/readiness.cjs +8 -0
- package/dist/readiness.d.mts +2 -0
- package/dist/readiness.mjs +2 -0
- package/dist/relaunchHandoff.cjs +6 -0
- package/dist/relaunchHandoff.d.mts +2 -0
- package/dist/relaunchHandoff.mjs +2 -0
- package/dist/remoteApi.cjs +42 -0
- package/dist/remoteApi.cjs.map +1 -0
- package/dist/remoteApi.d.mts +7 -0
- package/dist/remoteApi.d.mts.map +1 -0
- package/dist/remoteApi.mjs +41 -0
- package/dist/remoteApi.mjs.map +1 -0
- package/dist/remoteRuntime.cjs +460 -0
- package/dist/remoteRuntime.cjs.map +1 -0
- package/dist/remoteRuntime.d.mts +28 -0
- package/dist/remoteRuntime.d.mts.map +1 -0
- package/dist/remoteRuntime.mjs +456 -0
- package/dist/remoteRuntime.mjs.map +1 -0
- package/dist/runtimeConfig.cjs +232 -0
- package/dist/runtimeConfig.cjs.map +1 -0
- package/dist/runtimeConfig.d.mts +313 -0
- package/dist/runtimeConfig.d.mts.map +1 -0
- package/dist/runtimeConfig.mjs +221 -0
- package/dist/runtimeConfig.mjs.map +1 -0
- package/dist/runtimeContextApi.cjs +64 -0
- package/dist/runtimeContextApi.cjs.map +1 -0
- package/dist/runtimeContextApi.d.mts +16 -0
- package/dist/runtimeContextApi.d.mts.map +1 -0
- package/dist/runtimeContextApi.mjs +62 -0
- package/dist/runtimeContextApi.mjs.map +1 -0
- package/dist/runtimeCordisHost.cjs +193 -0
- package/dist/runtimeCordisHost.cjs.map +1 -0
- package/dist/runtimeCordisHost.d.mts +63 -0
- package/dist/runtimeCordisHost.d.mts.map +1 -0
- package/dist/runtimeCordisHost.mjs +184 -0
- package/dist/runtimeCordisHost.mjs.map +1 -0
- package/dist/runtimeHeadlessSessionManager.cjs +0 -0
- package/dist/runtimeHeadlessSessionManager.d.mts +18 -0
- package/dist/runtimeHeadlessSessionManager.d.mts.map +1 -0
- package/dist/runtimeHeadlessSessionManager.mjs +1 -0
- package/dist/runtimeIdentity.cjs +26 -0
- package/dist/runtimeIdentity.cjs.map +1 -0
- package/dist/runtimeIdentity.d.mts +7 -0
- package/dist/runtimeIdentity.d.mts.map +1 -0
- package/dist/runtimeIdentity.mjs +21 -0
- package/dist/runtimeIdentity.mjs.map +1 -0
- package/dist/runtimeJson.cjs +46 -0
- package/dist/runtimeJson.cjs.map +1 -0
- package/dist/runtimeJson.d.mts +22 -0
- package/dist/runtimeJson.d.mts.map +1 -0
- package/dist/runtimeJson.mjs +39 -0
- package/dist/runtimeJson.mjs.map +1 -0
- package/dist/runtimeLogSinkTelemetry.cjs +102 -0
- package/dist/runtimeLogSinkTelemetry.cjs.map +1 -0
- package/dist/runtimeLogSinkTelemetry.d.mts +49 -0
- package/dist/runtimeLogSinkTelemetry.d.mts.map +1 -0
- package/dist/runtimeLogSinkTelemetry.mjs +99 -0
- package/dist/runtimeLogSinkTelemetry.mjs.map +1 -0
- package/dist/runtimePiExtension.cjs +339 -0
- package/dist/runtimePiExtension.cjs.map +1 -0
- package/dist/runtimePiExtension.d.mts +160 -0
- package/dist/runtimePiExtension.d.mts.map +1 -0
- package/dist/runtimePiExtension.mjs +333 -0
- package/dist/runtimePiExtension.mjs.map +1 -0
- package/dist/runtimePiSettings.cjs +116 -0
- package/dist/runtimePiSettings.cjs.map +1 -0
- package/dist/runtimePiSettings.d.mts +29 -0
- package/dist/runtimePiSettings.d.mts.map +1 -0
- package/dist/runtimePiSettings.mjs +103 -0
- package/dist/runtimePiSettings.mjs.map +1 -0
- package/dist/runtimeProtocol.cjs +223 -0
- package/dist/runtimeProtocol.cjs.map +1 -0
- package/dist/runtimeProtocol.d.mts +84 -0
- package/dist/runtimeProtocol.d.mts.map +1 -0
- package/dist/runtimeProtocol.mjs +215 -0
- package/dist/runtimeProtocol.mjs.map +1 -0
- package/dist/runtimeToolNames.cjs +51 -0
- package/dist/runtimeToolNames.cjs.map +1 -0
- package/dist/runtimeToolNames.d.mts +24 -0
- package/dist/runtimeToolNames.d.mts.map +1 -0
- package/dist/runtimeToolNames.mjs +49 -0
- package/dist/runtimeToolNames.mjs.map +1 -0
- package/dist/runtimeTransition.cjs +27 -0
- package/dist/runtimeTransition.cjs.map +1 -0
- package/dist/runtimeTransition.d.mts +114 -0
- package/dist/runtimeTransition.d.mts.map +1 -0
- package/dist/runtimeTransition.mjs +24 -0
- package/dist/runtimeTransition.mjs.map +1 -0
- package/dist/sandboxHarness.cjs +6 -0
- package/dist/sandboxHarness.d.mts +2 -0
- package/dist/sandboxHarness.mjs +2 -0
- package/dist/server.cjs +17 -0
- package/dist/server.d.mts +10 -0
- package/dist/server.mjs +7 -0
- package/dist/serverFacet.cjs +30 -0
- package/dist/serverFacet.d.mts +8 -0
- package/dist/serverFacet.mjs +8 -0
- package/dist/serverTelemetry.cjs +25 -0
- package/dist/serverTelemetry.cjs.map +1 -0
- package/dist/serverTelemetry.d.mts +12 -0
- package/dist/serverTelemetry.d.mts.map +1 -0
- package/dist/serverTelemetry.mjs +23 -0
- package/dist/serverTelemetry.mjs.map +1 -0
- package/dist/sessionFilesApi.cjs +96 -0
- package/dist/sessionFilesApi.cjs.map +1 -0
- package/dist/sessionFilesApi.d.mts +7 -0
- package/dist/sessionFilesApi.d.mts.map +1 -0
- package/dist/sessionFilesApi.mjs +91 -0
- package/dist/sessionFilesApi.mjs.map +1 -0
- package/dist/sessionMcp.cjs +6 -0
- package/dist/sessionMcp.d.mts +5 -0
- package/dist/sessionMcp.mjs +3 -0
- package/dist/sessionProtocol.cjs +8 -0
- package/dist/sessionProtocol.d.mts +3 -0
- package/dist/sessionProtocol.mjs +2 -0
- package/dist/skills.cjs +9 -0
- package/dist/skills.d.mts +2 -0
- package/dist/skills.mjs +2 -0
- package/dist/sqliteHistoryImport.cjs +151 -0
- package/dist/sqliteHistoryImport.cjs.map +1 -0
- package/dist/sqliteHistoryImport.d.mts +8 -0
- package/dist/sqliteHistoryImport.d.mts.map +1 -0
- package/dist/sqliteHistoryImport.mjs +146 -0
- package/dist/sqliteHistoryImport.mjs.map +1 -0
- package/dist/sqliteSessionStorage.cjs +53 -0
- package/dist/sqliteSessionStorage.cjs.map +1 -0
- package/dist/sqliteSessionStorage.d.mts +7 -0
- package/dist/sqliteSessionStorage.d.mts.map +1 -0
- package/dist/sqliteSessionStorage.mjs +49 -0
- package/dist/sqliteSessionStorage.mjs.map +1 -0
- package/dist/src/constants/authorTools.cjs +10 -0
- package/dist/src/constants/authorTools.cjs.map +1 -0
- package/dist/src/constants/authorTools.d.mts +6 -0
- package/dist/src/constants/authorTools.d.mts.map +1 -0
- package/dist/src/constants/authorTools.mjs +8 -0
- package/dist/src/constants/authorTools.mjs.map +1 -0
- package/dist/src/constants/contextApi.cjs +28 -0
- package/dist/src/constants/contextApi.cjs.map +1 -0
- package/dist/src/constants/contextApi.d.mts +21 -0
- package/dist/src/constants/contextApi.d.mts.map +1 -0
- package/dist/src/constants/contextApi.mjs +23 -0
- package/dist/src/constants/contextApi.mjs.map +1 -0
- package/dist/src/constants/remote.cjs +90 -0
- package/dist/src/constants/remote.cjs.map +1 -0
- package/dist/src/constants/remote.mjs +69 -0
- package/dist/src/constants/remote.mjs.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.cjs +12 -0
- package/dist/src/constants/voiceReloadHandoff.cjs.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.d.mts +7 -0
- package/dist/src/constants/voiceReloadHandoff.d.mts.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.mjs +9 -0
- package/dist/src/constants/voiceReloadHandoff.mjs.map +1 -0
- package/dist/src/constants/voiceTools.cjs +96 -0
- package/dist/src/constants/voiceTools.cjs.map +1 -0
- package/dist/src/constants/voiceTools.d.mts +58 -0
- package/dist/src/constants/voiceTools.d.mts.map +1 -0
- package/dist/src/constants/voiceTools.mjs +60 -0
- package/dist/src/constants/voiceTools.mjs.map +1 -0
- package/dist/src/extensions/extensionFile.cjs +165 -0
- package/dist/src/extensions/extensionFile.cjs.map +1 -0
- package/dist/src/extensions/extensionFile.d.mts +79 -0
- package/dist/src/extensions/extensionFile.d.mts.map +1 -0
- package/dist/src/extensions/extensionFile.mjs +144 -0
- package/dist/src/extensions/extensionFile.mjs.map +1 -0
- package/dist/src/extensions/serverPlugin.cjs +106 -0
- package/dist/src/extensions/serverPlugin.cjs.map +1 -0
- package/dist/src/extensions/serverPlugin.d.mts +5 -0
- package/dist/src/extensions/serverPlugin.d.mts.map +1 -0
- package/dist/src/extensions/serverPlugin.mjs +106 -0
- package/dist/src/extensions/serverPlugin.mjs.map +1 -0
- package/dist/src/extensions/webPlugin.cjs +131 -0
- package/dist/src/extensions/webPlugin.cjs.map +1 -0
- package/dist/src/extensions/webPlugin.d.mts +66 -0
- package/dist/src/extensions/webPlugin.d.mts.map +1 -0
- package/dist/src/extensions/webPlugin.mjs +110 -0
- package/dist/src/extensions/webPlugin.mjs.map +1 -0
- package/dist/src/pi/piSessionRuntime.cjs +572 -0
- package/dist/src/pi/piSessionRuntime.cjs.map +1 -0
- package/dist/src/pi/piSessionRuntime.d.mts +43 -0
- package/dist/src/pi/piSessionRuntime.d.mts.map +1 -0
- package/dist/src/pi/piSessionRuntime.mjs +571 -0
- package/dist/src/pi/piSessionRuntime.mjs.map +1 -0
- package/dist/src/pi/piWebSocketListener.cjs +115 -0
- package/dist/src/pi/piWebSocketListener.cjs.map +1 -0
- package/dist/src/pi/piWebSocketListener.mjs +115 -0
- package/dist/src/pi/piWebSocketListener.mjs.map +1 -0
- package/dist/src/schemas/agentModel.cjs +33 -0
- package/dist/src/schemas/agentModel.cjs.map +1 -0
- package/dist/src/schemas/agentModel.d.mts +26 -0
- package/dist/src/schemas/agentModel.d.mts.map +1 -0
- package/dist/src/schemas/agentModel.mjs +32 -0
- package/dist/src/schemas/agentModel.mjs.map +1 -0
- package/dist/src/schemas/apiContracts.d.mts +58 -0
- package/dist/src/schemas/apiContracts.d.mts.map +1 -0
- package/dist/src/schemas/askUser.cjs +42 -0
- package/dist/src/schemas/askUser.cjs.map +1 -0
- package/dist/src/schemas/askUser.d.mts +47 -0
- package/dist/src/schemas/askUser.d.mts.map +1 -0
- package/dist/src/schemas/askUser.mjs +37 -0
- package/dist/src/schemas/askUser.mjs.map +1 -0
- package/dist/src/schemas/backgroundWork.cjs +31 -0
- package/dist/src/schemas/backgroundWork.cjs.map +1 -0
- package/dist/src/schemas/backgroundWork.d.mts +72 -0
- package/dist/src/schemas/backgroundWork.d.mts.map +1 -0
- package/dist/src/schemas/backgroundWork.mjs +27 -0
- package/dist/src/schemas/backgroundWork.mjs.map +1 -0
- package/dist/src/schemas/childProcess.cjs +67 -0
- package/dist/src/schemas/childProcess.cjs.map +1 -0
- package/dist/src/schemas/childProcess.d.mts +30 -0
- package/dist/src/schemas/childProcess.d.mts.map +1 -0
- package/dist/src/schemas/childProcess.mjs +55 -0
- package/dist/src/schemas/childProcess.mjs.map +1 -0
- package/dist/src/schemas/cockpitContainer.cjs +31 -0
- package/dist/src/schemas/cockpitContainer.cjs.map +1 -0
- package/dist/src/schemas/cockpitContainer.d.mts +80 -0
- package/dist/src/schemas/cockpitContainer.d.mts.map +1 -0
- package/dist/src/schemas/cockpitContainer.mjs +30 -0
- package/dist/src/schemas/cockpitContainer.mjs.map +1 -0
- package/dist/src/schemas/contextContributions.cjs +17 -0
- package/dist/src/schemas/contextContributions.cjs.map +1 -0
- package/dist/src/schemas/contextContributions.d.mts +49 -0
- package/dist/src/schemas/contextContributions.d.mts.map +1 -0
- package/dist/src/schemas/contextContributions.mjs +15 -0
- package/dist/src/schemas/contextContributions.mjs.map +1 -0
- package/dist/src/schemas/delegation.cjs +91 -0
- package/dist/src/schemas/delegation.cjs.map +1 -0
- package/dist/src/schemas/delegation.d.mts +95 -0
- package/dist/src/schemas/delegation.d.mts.map +1 -0
- package/dist/src/schemas/delegation.mjs +76 -0
- package/dist/src/schemas/delegation.mjs.map +1 -0
- package/dist/src/schemas/extensionFile.d.mts +136 -0
- package/dist/src/schemas/extensionFile.d.mts.map +1 -0
- package/dist/src/schemas/footer.cjs +48 -0
- package/dist/src/schemas/footer.cjs.map +1 -0
- package/dist/src/schemas/footer.d.mts +48 -0
- package/dist/src/schemas/footer.d.mts.map +1 -0
- package/dist/src/schemas/footer.mjs +45 -0
- package/dist/src/schemas/footer.mjs.map +1 -0
- package/dist/src/schemas/headless.cjs +44 -0
- package/dist/src/schemas/headless.cjs.map +1 -0
- package/dist/src/schemas/headless.d.mts +370 -0
- package/dist/src/schemas/headless.d.mts.map +1 -0
- package/dist/src/schemas/headless.mjs +38 -0
- package/dist/src/schemas/headless.mjs.map +1 -0
- package/dist/src/schemas/help.cjs +281 -0
- package/dist/src/schemas/help.cjs.map +1 -0
- package/dist/src/schemas/help.d.mts +119 -0
- package/dist/src/schemas/help.d.mts.map +1 -0
- package/dist/src/schemas/help.mjs +262 -0
- package/dist/src/schemas/help.mjs.map +1 -0
- package/dist/src/schemas/hubChannel.cjs +20 -0
- package/dist/src/schemas/hubChannel.cjs.map +1 -0
- package/dist/src/schemas/hubChannel.d.mts +236 -0
- package/dist/src/schemas/hubChannel.d.mts.map +1 -0
- package/dist/src/schemas/hubChannel.mjs +19 -0
- package/dist/src/schemas/hubChannel.mjs.map +1 -0
- package/dist/src/schemas/leader.cjs +57 -0
- package/dist/src/schemas/leader.cjs.map +1 -0
- package/dist/src/schemas/leader.d.mts +107 -0
- package/dist/src/schemas/leader.d.mts.map +1 -0
- package/dist/src/schemas/leader.mjs +51 -0
- package/dist/src/schemas/leader.mjs.map +1 -0
- package/dist/src/schemas/mcpBundle.cjs +92 -0
- package/dist/src/schemas/mcpBundle.cjs.map +1 -0
- package/dist/src/schemas/mcpBundle.d.mts +33 -0
- package/dist/src/schemas/mcpBundle.d.mts.map +1 -0
- package/dist/src/schemas/mcpBundle.mjs +90 -0
- package/dist/src/schemas/mcpBundle.mjs.map +1 -0
- package/dist/src/schemas/mcpFacet.cjs +24 -0
- package/dist/src/schemas/mcpFacet.cjs.map +1 -0
- package/dist/src/schemas/mcpFacet.d.mts +91 -0
- package/dist/src/schemas/mcpFacet.d.mts.map +1 -0
- package/dist/src/schemas/mcpFacet.mjs +21 -0
- package/dist/src/schemas/mcpFacet.mjs.map +1 -0
- package/dist/src/schemas/mcpProjection.cjs +117 -0
- package/dist/src/schemas/mcpProjection.cjs.map +1 -0
- package/dist/src/schemas/mcpProjection.d.mts +124 -0
- package/dist/src/schemas/mcpProjection.d.mts.map +1 -0
- package/dist/src/schemas/mcpProjection.mjs +104 -0
- package/dist/src/schemas/mcpProjection.mjs.map +1 -0
- package/dist/src/schemas/mcpSession.cjs +57 -0
- package/dist/src/schemas/mcpSession.cjs.map +1 -0
- package/dist/src/schemas/mcpSession.d.mts +57 -0
- package/dist/src/schemas/mcpSession.d.mts.map +1 -0
- package/dist/src/schemas/mcpSession.mjs +51 -0
- package/dist/src/schemas/mcpSession.mjs.map +1 -0
- package/dist/src/schemas/mcpStatus.cjs +52 -0
- package/dist/src/schemas/mcpStatus.cjs.map +1 -0
- package/dist/src/schemas/mcpStatus.d.mts +73 -0
- package/dist/src/schemas/mcpStatus.d.mts.map +1 -0
- package/dist/src/schemas/mcpStatus.mjs +48 -0
- package/dist/src/schemas/mcpStatus.mjs.map +1 -0
- package/dist/src/schemas/mcpToolResolver.cjs +17 -0
- package/dist/src/schemas/mcpToolResolver.cjs.map +1 -0
- package/dist/src/schemas/mcpToolResolver.d.mts +24 -0
- package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -0
- package/dist/src/schemas/mcpToolResolver.mjs +15 -0
- package/dist/src/schemas/mcpToolResolver.mjs.map +1 -0
- package/dist/src/schemas/narration.cjs +54 -0
- package/dist/src/schemas/narration.cjs.map +1 -0
- package/dist/src/schemas/narration.d.mts +29 -0
- package/dist/src/schemas/narration.d.mts.map +1 -0
- package/dist/src/schemas/narration.mjs +47 -0
- package/dist/src/schemas/narration.mjs.map +1 -0
- package/dist/src/schemas/notification.cjs +122 -0
- package/dist/src/schemas/notification.cjs.map +1 -0
- package/dist/src/schemas/notification.d.mts +48 -0
- package/dist/src/schemas/notification.d.mts.map +1 -0
- package/dist/src/schemas/notification.mjs +108 -0
- package/dist/src/schemas/notification.mjs.map +1 -0
- package/dist/src/schemas/packageApi.cjs +73 -0
- package/dist/src/schemas/packageApi.cjs.map +1 -0
- package/dist/src/schemas/packageApi.d.mts +249 -0
- package/dist/src/schemas/packageApi.d.mts.map +1 -0
- package/dist/src/schemas/packageApi.mjs +64 -0
- package/dist/src/schemas/packageApi.mjs.map +1 -0
- package/dist/src/schemas/piTool.cjs +26 -0
- package/dist/src/schemas/piTool.cjs.map +1 -0
- package/dist/src/schemas/piTool.d.mts +25 -0
- package/dist/src/schemas/piTool.d.mts.map +1 -0
- package/dist/src/schemas/piTool.mjs +26 -0
- package/dist/src/schemas/piTool.mjs.map +1 -0
- package/dist/src/schemas/pluginContributions.cjs +19 -0
- package/dist/src/schemas/pluginContributions.cjs.map +1 -0
- package/dist/src/schemas/pluginContributions.d.mts +56 -0
- package/dist/src/schemas/pluginContributions.d.mts.map +1 -0
- package/dist/src/schemas/pluginContributions.mjs +18 -0
- package/dist/src/schemas/pluginContributions.mjs.map +1 -0
- package/dist/src/schemas/pluginProtocol.cjs +103 -0
- package/dist/src/schemas/pluginProtocol.cjs.map +1 -0
- package/dist/src/schemas/pluginProtocol.d.mts +68 -0
- package/dist/src/schemas/pluginProtocol.d.mts.map +1 -0
- package/dist/src/schemas/pluginProtocol.mjs +96 -0
- package/dist/src/schemas/pluginProtocol.mjs.map +1 -0
- package/dist/src/schemas/profileIdentity.cjs +67 -0
- package/dist/src/schemas/profileIdentity.cjs.map +1 -0
- package/dist/src/schemas/profileIdentity.d.mts +50 -0
- package/dist/src/schemas/profileIdentity.d.mts.map +1 -0
- package/dist/src/schemas/profileIdentity.mjs +64 -0
- package/dist/src/schemas/profileIdentity.mjs.map +1 -0
- package/dist/src/schemas/readiness.cjs +251 -0
- package/dist/src/schemas/readiness.cjs.map +1 -0
- package/dist/src/schemas/readiness.d.mts +84 -0
- package/dist/src/schemas/readiness.d.mts.map +1 -0
- package/dist/src/schemas/readiness.mjs +246 -0
- package/dist/src/schemas/readiness.mjs.map +1 -0
- package/dist/src/schemas/relaunchHandoff.cjs +47 -0
- package/dist/src/schemas/relaunchHandoff.cjs.map +1 -0
- package/dist/src/schemas/relaunchHandoff.d.mts +25 -0
- package/dist/src/schemas/relaunchHandoff.d.mts.map +1 -0
- package/dist/src/schemas/relaunchHandoff.mjs +44 -0
- package/dist/src/schemas/relaunchHandoff.mjs.map +1 -0
- package/dist/src/schemas/sandboxHarness.cjs +29 -0
- package/dist/src/schemas/sandboxHarness.cjs.map +1 -0
- package/dist/src/schemas/sandboxHarness.d.mts +39 -0
- package/dist/src/schemas/sandboxHarness.d.mts.map +1 -0
- package/dist/src/schemas/sandboxHarness.mjs +26 -0
- package/dist/src/schemas/sandboxHarness.mjs.map +1 -0
- package/dist/src/schemas/serverBundle.cjs +79 -0
- package/dist/src/schemas/serverBundle.cjs.map +1 -0
- package/dist/src/schemas/serverBundle.d.mts +34 -0
- package/dist/src/schemas/serverBundle.d.mts.map +1 -0
- package/dist/src/schemas/serverBundle.mjs +77 -0
- package/dist/src/schemas/serverBundle.mjs.map +1 -0
- package/dist/src/schemas/serverFacet.cjs +102 -0
- package/dist/src/schemas/serverFacet.cjs.map +1 -0
- package/dist/src/schemas/serverFacet.d.mts +141 -0
- package/dist/src/schemas/serverFacet.d.mts.map +1 -0
- package/dist/src/schemas/serverFacet.mjs +93 -0
- package/dist/src/schemas/serverFacet.mjs.map +1 -0
- package/dist/src/schemas/sessionMcpActivity.d.mts +45 -0
- package/dist/src/schemas/sessionMcpActivity.d.mts.map +1 -0
- package/dist/src/schemas/sessionProtocol.cjs +17 -0
- package/dist/src/schemas/sessionProtocol.cjs.map +1 -0
- package/dist/src/schemas/sessionProtocol.d.mts +308 -0
- package/dist/src/schemas/sessionProtocol.d.mts.map +1 -0
- package/dist/src/schemas/sessionProtocol.mjs +12 -0
- package/dist/src/schemas/sessionProtocol.mjs.map +1 -0
- package/dist/src/schemas/sessionUpdates.d.mts +34 -0
- package/dist/src/schemas/sessionUpdates.d.mts.map +1 -0
- package/dist/src/schemas/skills.cjs +115 -0
- package/dist/src/schemas/skills.cjs.map +1 -0
- package/dist/src/schemas/skills.d.mts +65 -0
- package/dist/src/schemas/skills.d.mts.map +1 -0
- package/dist/src/schemas/skills.mjs +109 -0
- package/dist/src/schemas/skills.mjs.map +1 -0
- package/dist/src/schemas/toolOverrides.cjs +17 -0
- package/dist/src/schemas/toolOverrides.cjs.map +1 -0
- package/dist/src/schemas/toolOverrides.d.mts +29 -0
- package/dist/src/schemas/toolOverrides.d.mts.map +1 -0
- package/dist/src/schemas/toolOverrides.mjs +15 -0
- package/dist/src/schemas/toolOverrides.mjs.map +1 -0
- package/dist/src/schemas/toolSurface.cjs +17 -0
- package/dist/src/schemas/toolSurface.cjs.map +1 -0
- package/dist/src/schemas/toolSurface.d.mts +70 -0
- package/dist/src/schemas/toolSurface.d.mts.map +1 -0
- package/dist/src/schemas/toolSurface.mjs +15 -0
- package/dist/src/schemas/toolSurface.mjs.map +1 -0
- package/dist/src/schemas/uiHub.cjs +17 -0
- package/dist/src/schemas/uiHub.cjs.map +1 -0
- package/dist/src/schemas/uiHub.d.mts +23 -0
- package/dist/src/schemas/uiHub.d.mts.map +1 -0
- package/dist/src/schemas/uiHub.mjs +15 -0
- package/dist/src/schemas/uiHub.mjs.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.cjs +78 -0
- package/dist/src/schemas/voiceReloadHandoff.cjs.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.d.mts +31 -0
- package/dist/src/schemas/voiceReloadHandoff.d.mts.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.mjs +75 -0
- package/dist/src/schemas/voiceReloadHandoff.mjs.map +1 -0
- package/dist/src/schemas/voiceTools.cjs +205 -0
- package/dist/src/schemas/voiceTools.cjs.map +1 -0
- package/dist/src/schemas/voiceTools.d.mts +120 -0
- package/dist/src/schemas/voiceTools.d.mts.map +1 -0
- package/dist/src/schemas/voiceTools.mjs +194 -0
- package/dist/src/schemas/voiceTools.mjs.map +1 -0
- package/dist/src/server/devProxyForward.cjs +141 -0
- package/dist/src/server/devProxyForward.cjs.map +1 -0
- package/dist/src/server/devProxyForward.mjs +139 -0
- package/dist/src/server/devProxyForward.mjs.map +1 -0
- package/dist/src/server/devProxyRoutes.cjs +97 -0
- package/dist/src/server/devProxyRoutes.cjs.map +1 -0
- package/dist/src/server/devProxyRoutes.mjs +97 -0
- package/dist/src/server/devProxyRoutes.mjs.map +1 -0
- package/dist/src/server/devProxySocket.cjs +87 -0
- package/dist/src/server/devProxySocket.cjs.map +1 -0
- package/dist/src/server/devProxySocket.mjs +87 -0
- package/dist/src/server/devProxySocket.mjs.map +1 -0
- package/dist/src/server/directHarnessRuntime.cjs +1964 -0
- package/dist/src/server/directHarnessRuntime.cjs.map +1 -0
- package/dist/src/server/directHarnessRuntime.d.mts +3 -0
- package/dist/src/server/directHarnessRuntime.mjs +1958 -0
- package/dist/src/server/directHarnessRuntime.mjs.map +1 -0
- package/dist/src/server/harnessErrorMessage.cjs +13 -0
- package/dist/src/server/harnessErrorMessage.cjs.map +1 -0
- package/dist/src/server/harnessErrorMessage.mjs +13 -0
- package/dist/src/server/harnessErrorMessage.mjs.map +1 -0
- package/dist/src/server/headlessProtocol.cjs +366 -0
- package/dist/src/server/headlessProtocol.cjs.map +1 -0
- package/dist/src/server/headlessProtocol.mjs +366 -0
- package/dist/src/server/headlessProtocol.mjs.map +1 -0
- package/dist/src/server/jsonlTranscriptReader.cjs +85 -0
- package/dist/src/server/jsonlTranscriptReader.cjs.map +1 -0
- package/dist/src/server/jsonlTranscriptReader.mjs +83 -0
- package/dist/src/server/jsonlTranscriptReader.mjs.map +1 -0
- package/dist/src/server/mcpBundleLoader.cjs +115 -0
- package/dist/src/server/mcpBundleLoader.cjs.map +1 -0
- package/dist/src/server/mcpBundleLoader.d.mts +27 -0
- package/dist/src/server/mcpBundleLoader.d.mts.map +1 -0
- package/dist/src/server/mcpBundleLoader.mjs +111 -0
- package/dist/src/server/mcpBundleLoader.mjs.map +1 -0
- package/dist/src/server/nativeChildTranscriptReader.cjs +20 -0
- package/dist/src/server/nativeChildTranscriptReader.cjs.map +1 -0
- package/dist/src/server/nativeChildTranscriptReader.mjs +18 -0
- package/dist/src/server/nativeChildTranscriptReader.mjs.map +1 -0
- package/dist/src/server/remoteRoutes.cjs +386 -0
- package/dist/src/server/remoteRoutes.cjs.map +1 -0
- package/dist/src/server/remoteRoutes.mjs +386 -0
- package/dist/src/server/remoteRoutes.mjs.map +1 -0
- package/dist/src/server/serverFacetLoader.cjs +220 -0
- package/dist/src/server/serverFacetLoader.cjs.map +1 -0
- package/dist/src/server/serverFacetLoader.d.mts +77 -0
- package/dist/src/server/serverFacetLoader.d.mts.map +1 -0
- package/dist/src/server/serverFacetLoader.mjs +215 -0
- package/dist/src/server/serverFacetLoader.mjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.cjs +494 -0
- package/dist/src/server/sessionMcpHandler.cjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.d.mts +47 -0
- package/dist/src/server/sessionMcpHandler.d.mts.map +1 -0
- package/dist/src/server/sessionMcpHandler.mjs +493 -0
- package/dist/src/server/sessionMcpHandler.mjs.map +1 -0
- package/dist/src/server/sessionMcpRoutes.cjs +780 -0
- package/dist/src/server/sessionMcpRoutes.cjs.map +1 -0
- package/dist/src/server/sessionMcpRoutes.mjs +775 -0
- package/dist/src/server/sessionMcpRoutes.mjs.map +1 -0
- package/dist/src/server/threadJournals.cjs +172 -0
- package/dist/src/server/threadJournals.cjs.map +1 -0
- package/dist/src/server/threadJournals.mjs +169 -0
- package/dist/src/server/threadJournals.mjs.map +1 -0
- package/dist/src/services/acpSessionUpdates/index.cjs +129 -0
- package/dist/src/services/acpSessionUpdates/index.cjs.map +1 -0
- package/dist/src/services/acpSessionUpdates/index.mjs +129 -0
- package/dist/src/services/acpSessionUpdates/index.mjs.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.cjs +60 -0
- package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.d.mts +24 -0
- package/dist/src/services/apiSurfaceAssert/index.d.mts.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.mjs +60 -0
- package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -0
- package/dist/src/services/bundlePublication/index.cjs +88 -0
- package/dist/src/services/bundlePublication/index.cjs.map +1 -0
- package/dist/src/services/bundlePublication/index.mjs +85 -0
- package/dist/src/services/bundlePublication/index.mjs.map +1 -0
- package/dist/src/services/contextApiUrls/index.cjs +14 -0
- package/dist/src/services/contextApiUrls/index.cjs.map +1 -0
- package/dist/src/services/contextApiUrls/index.d.mts +6 -0
- package/dist/src/services/contextApiUrls/index.d.mts.map +1 -0
- package/dist/src/services/contextApiUrls/index.mjs +14 -0
- package/dist/src/services/contextApiUrls/index.mjs.map +1 -0
- package/dist/src/services/contextContributions/index.cjs +79 -0
- package/dist/src/services/contextContributions/index.cjs.map +1 -0
- package/dist/src/services/contextContributions/index.d.mts +6 -0
- package/dist/src/services/contextContributions/index.d.mts.map +1 -0
- package/dist/src/services/contextContributions/index.mjs +79 -0
- package/dist/src/services/contextContributions/index.mjs.map +1 -0
- package/dist/src/services/contextUsage/index.cjs +27 -0
- package/dist/src/services/contextUsage/index.cjs.map +1 -0
- package/dist/src/services/contextUsage/index.mjs +25 -0
- package/dist/src/services/contextUsage/index.mjs.map +1 -0
- package/dist/src/services/devProxyPolicy/index.cjs +168 -0
- package/dist/src/services/devProxyPolicy/index.cjs.map +1 -0
- package/dist/src/services/devProxyPolicy/index.mjs +165 -0
- package/dist/src/services/devProxyPolicy/index.mjs.map +1 -0
- package/dist/src/services/devProxyStore/index.cjs +107 -0
- package/dist/src/services/devProxyStore/index.cjs.map +1 -0
- package/dist/src/services/devProxyStore/index.mjs +104 -0
- package/dist/src/services/devProxyStore/index.mjs.map +1 -0
- package/dist/src/services/deviceAuth/index.cjs +125 -0
- package/dist/src/services/deviceAuth/index.cjs.map +1 -0
- package/dist/src/services/deviceAuth/index.d.mts +9 -0
- package/dist/src/services/deviceAuth/index.d.mts.map +1 -0
- package/dist/src/services/deviceAuth/index.mjs +125 -0
- package/dist/src/services/deviceAuth/index.mjs.map +1 -0
- package/dist/src/services/deviceSessions/index.cjs +147 -0
- package/dist/src/services/deviceSessions/index.cjs.map +1 -0
- package/dist/src/services/deviceSessions/index.d.mts +15 -0
- package/dist/src/services/deviceSessions/index.d.mts.map +1 -0
- package/dist/src/services/deviceSessions/index.mjs +141 -0
- package/dist/src/services/deviceSessions/index.mjs.map +1 -0
- package/dist/src/services/headlessClient/index.cjs +125 -0
- package/dist/src/services/headlessClient/index.cjs.map +1 -0
- package/dist/src/services/headlessClient/index.mjs +125 -0
- package/dist/src/services/headlessClient/index.mjs.map +1 -0
- package/dist/src/services/historyCreationFileSystem/index.cjs +115 -0
- package/dist/src/services/historyCreationFileSystem/index.cjs.map +1 -0
- package/dist/src/services/historyCreationFileSystem/index.mjs +115 -0
- package/dist/src/services/historyCreationFileSystem/index.mjs.map +1 -0
- package/dist/src/services/hubChannelHarness/index.cjs +50 -0
- package/dist/src/services/hubChannelHarness/index.cjs.map +1 -0
- package/dist/src/services/hubChannelHarness/index.d.mts +17 -0
- package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -0
- package/dist/src/services/hubChannelHarness/index.mjs +50 -0
- package/dist/src/services/hubChannelHarness/index.mjs.map +1 -0
- package/dist/src/services/kernel/index.cjs +147 -0
- package/dist/src/services/kernel/index.cjs.map +1 -0
- package/dist/src/services/kernel/index.d.mts +9 -0
- package/dist/src/services/kernel/index.d.mts.map +1 -0
- package/dist/src/services/kernel/index.mjs +147 -0
- package/dist/src/services/kernel/index.mjs.map +1 -0
- package/dist/src/services/loginFlow/index.cjs +131 -0
- package/dist/src/services/loginFlow/index.cjs.map +1 -0
- package/dist/src/services/loginFlow/index.mjs +131 -0
- package/dist/src/services/loginFlow/index.mjs.map +1 -0
- package/dist/src/services/loopbackAddress/index.cjs +58 -0
- package/dist/src/services/loopbackAddress/index.cjs.map +1 -0
- package/dist/src/services/loopbackAddress/index.mjs +56 -0
- package/dist/src/services/loopbackAddress/index.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.cjs +144 -0
- package/dist/src/services/openSessionRegistry/index.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.d.mts +40 -0
- package/dist/src/services/openSessionRegistry/index.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/index.mjs +141 -0
- package/dist/src/services/openSessionRegistry/index.mjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.cjs +36 -0
- package/dist/src/services/packageApiHarness/index.cjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.d.mts +40 -0
- package/dist/src/services/packageApiHarness/index.d.mts.map +1 -0
- package/dist/src/services/packageApiHarness/index.mjs +36 -0
- package/dist/src/services/packageApiHarness/index.mjs.map +1 -0
- package/dist/src/services/packageResource/index.cjs +54 -0
- package/dist/src/services/packageResource/index.cjs.map +1 -0
- package/dist/src/services/packageResource/index.d.mts +26 -0
- package/dist/src/services/packageResource/index.d.mts.map +1 -0
- package/dist/src/services/packageResource/index.mjs +51 -0
- package/dist/src/services/packageResource/index.mjs.map +1 -0
- package/dist/src/services/pairingFlow/index.cjs +145 -0
- package/dist/src/services/pairingFlow/index.cjs.map +1 -0
- package/dist/src/services/pairingFlow/index.d.mts +44 -0
- package/dist/src/services/pairingFlow/index.d.mts.map +1 -0
- package/dist/src/services/pairingFlow/index.mjs +145 -0
- package/dist/src/services/pairingFlow/index.mjs.map +1 -0
- package/dist/src/services/pairingPage/index.cjs +450 -0
- package/dist/src/services/pairingPage/index.cjs.map +1 -0
- package/dist/src/services/pairingPage/index.mjs +447 -0
- package/dist/src/services/pairingPage/index.mjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.cjs +821 -0
- package/dist/src/services/piExtensionHost/index.cjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.mjs +817 -0
- package/dist/src/services/piExtensionHost/index.mjs.map +1 -0
- package/dist/src/services/piHelpTools/index.cjs +68 -0
- package/dist/src/services/piHelpTools/index.cjs.map +1 -0
- package/dist/src/services/piHelpTools/index.d.mts +10 -0
- package/dist/src/services/piHelpTools/index.d.mts.map +1 -0
- package/dist/src/services/piHelpTools/index.mjs +68 -0
- package/dist/src/services/piHelpTools/index.mjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.cjs +112 -0
- package/dist/src/services/piSessionEntries/index.cjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.mjs +108 -0
- package/dist/src/services/piSessionEntries/index.mjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.cjs +71 -0
- package/dist/src/services/pluginLifecycle/index.cjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.d.mts +11 -0
- package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -0
- package/dist/src/services/pluginLifecycle/index.mjs +71 -0
- package/dist/src/services/pluginLifecycle/index.mjs.map +1 -0
- package/dist/src/services/providerAuth/index.cjs +156 -0
- package/dist/src/services/providerAuth/index.cjs.map +1 -0
- package/dist/src/services/providerAuth/index.mjs +154 -0
- package/dist/src/services/providerAuth/index.mjs.map +1 -0
- package/dist/src/services/remoteAccess/index.cjs +396 -0
- package/dist/src/services/remoteAccess/index.cjs.map +1 -0
- package/dist/src/services/remoteAccess/index.d.mts +81 -0
- package/dist/src/services/remoteAccess/index.d.mts.map +1 -0
- package/dist/src/services/remoteAccess/index.mjs +396 -0
- package/dist/src/services/remoteAccess/index.mjs.map +1 -0
- package/dist/src/services/remoteAccessSettings/index.cjs +151 -0
- package/dist/src/services/remoteAccessSettings/index.cjs.map +1 -0
- package/dist/src/services/remoteAccessSettings/index.mjs +149 -0
- package/dist/src/services/remoteAccessSettings/index.mjs.map +1 -0
- package/dist/src/services/remoteAccessStore/index.cjs +126 -0
- package/dist/src/services/remoteAccessStore/index.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/index.mjs +121 -0
- package/dist/src/services/remoteAccessStore/index.mjs.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.cjs +190 -0
- package/dist/src/services/remoteGuardPolicy/index.cjs.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.d.mts +7 -0
- package/dist/src/services/remoteGuardPolicy/index.d.mts.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.mjs +186 -0
- package/dist/src/services/remoteGuardPolicy/index.mjs.map +1 -0
- package/dist/src/services/requestReceipts/index.cjs +161 -0
- package/dist/src/services/requestReceipts/index.cjs.map +1 -0
- package/dist/src/services/requestReceipts/index.d.mts +11 -0
- package/dist/src/services/requestReceipts/index.d.mts.map +1 -0
- package/dist/src/services/requestReceipts/index.mjs +161 -0
- package/dist/src/services/requestReceipts/index.mjs.map +1 -0
- package/dist/src/services/rpcTranscript/index.cjs +590 -0
- package/dist/src/services/rpcTranscript/index.cjs.map +1 -0
- package/dist/src/services/rpcTranscript/index.d.mts +50 -0
- package/dist/src/services/rpcTranscript/index.d.mts.map +1 -0
- package/dist/src/services/rpcTranscript/index.mjs +589 -0
- package/dist/src/services/rpcTranscript/index.mjs.map +1 -0
- package/dist/src/services/serverFacet/index.cjs +197 -0
- package/dist/src/services/serverFacet/index.cjs.map +1 -0
- package/dist/src/services/serverFacet/index.d.mts +31 -0
- package/dist/src/services/serverFacet/index.d.mts.map +1 -0
- package/dist/src/services/serverFacet/index.mjs +197 -0
- package/dist/src/services/serverFacet/index.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.cjs +46 -0
- package/dist/src/services/sessionGitStatus/index.cjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.mjs +46 -0
- package/dist/src/services/sessionGitStatus/index.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/type.d.mts +8 -0
- package/dist/src/services/sessionGitStatus/type.d.mts.map +1 -0
- package/dist/src/services/sessionMcpActivity/index.cjs +115 -0
- package/dist/src/services/sessionMcpActivity/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpActivity/index.mjs +111 -0
- package/dist/src/services/sessionMcpActivity/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.cjs +432 -0
- package/dist/src/services/sessionMcpAuthorization/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.d.mts +123 -0
- package/dist/src/services/sessionMcpAuthorization/index.d.mts.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.mjs +430 -0
- package/dist/src/services/sessionMcpAuthorization/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpConversations/index.cjs +217 -0
- package/dist/src/services/sessionMcpConversations/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpConversations/index.mjs +212 -0
- package/dist/src/services/sessionMcpConversations/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.cjs +86 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.mjs +83 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.mjs.map +1 -0
- package/dist/src/services/sessionPresentation/index.cjs +119 -0
- package/dist/src/services/sessionPresentation/index.cjs.map +1 -0
- package/dist/src/services/sessionPresentation/index.mjs +119 -0
- package/dist/src/services/sessionPresentation/index.mjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs +105 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.d.mts +29 -0
- package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.mjs +100 -0
- package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.cjs +70 -0
- package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.d.mts +14 -0
- package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.mjs +67 -0
- package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -0
- package/dist/src/services/toolCost/index.cjs +47 -0
- package/dist/src/services/toolCost/index.cjs.map +1 -0
- package/dist/src/services/toolCost/index.d.mts +38 -0
- package/dist/src/services/toolCost/index.d.mts.map +1 -0
- package/dist/src/services/toolCost/index.mjs +46 -0
- package/dist/src/services/toolCost/index.mjs.map +1 -0
- package/dist/src/services/toolOverrides/index.cjs +45 -0
- package/dist/src/services/toolOverrides/index.cjs.map +1 -0
- package/dist/src/services/toolOverrides/index.d.mts +6 -0
- package/dist/src/services/toolOverrides/index.d.mts.map +1 -0
- package/dist/src/services/toolOverrides/index.mjs +45 -0
- package/dist/src/services/toolOverrides/index.mjs.map +1 -0
- package/dist/src/services/toolPrompt/index.cjs +13 -0
- package/dist/src/services/toolPrompt/index.cjs.map +1 -0
- package/dist/src/services/toolPrompt/index.mjs +13 -0
- package/dist/src/services/toolPrompt/index.mjs.map +1 -0
- package/dist/src/services/toolSurface/index.cjs +134 -0
- package/dist/src/services/toolSurface/index.cjs.map +1 -0
- package/dist/src/services/toolSurface/index.d.mts +19 -0
- package/dist/src/services/toolSurface/index.d.mts.map +1 -0
- package/dist/src/services/toolSurface/index.mjs +134 -0
- package/dist/src/services/toolSurface/index.mjs.map +1 -0
- package/dist/src/services/traceContext/index.cjs +13 -0
- package/dist/src/services/traceContext/index.cjs.map +1 -0
- package/dist/src/services/traceContext/index.mjs +13 -0
- package/dist/src/services/traceContext/index.mjs.map +1 -0
- package/dist/src/services/transcriptPages/index.cjs +74 -0
- package/dist/src/services/transcriptPages/index.cjs.map +1 -0
- package/dist/src/services/transcriptPages/index.mjs +73 -0
- package/dist/src/services/transcriptPages/index.mjs.map +1 -0
- package/dist/src/services/tunnelOutput/index.cjs +58 -0
- package/dist/src/services/tunnelOutput/index.cjs.map +1 -0
- package/dist/src/services/tunnelOutput/index.mjs +54 -0
- package/dist/src/services/tunnelOutput/index.mjs.map +1 -0
- package/dist/src/services/tunnelProcess/index.cjs +487 -0
- package/dist/src/services/tunnelProcess/index.cjs.map +1 -0
- package/dist/src/services/tunnelProcess/index.mjs +481 -0
- package/dist/src/services/tunnelProcess/index.mjs.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.cjs +136 -0
- package/dist/src/services/voiceReloadHandoff/index.cjs.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.d.mts +34 -0
- package/dist/src/services/voiceReloadHandoff/index.d.mts.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.mjs +135 -0
- package/dist/src/services/voiceReloadHandoff/index.mjs.map +1 -0
- package/dist/src/services/voiceToolsContract/index.cjs +26 -0
- package/dist/src/services/voiceToolsContract/index.cjs.map +1 -0
- package/dist/src/services/voiceToolsContract/index.d.mts +76 -0
- package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -0
- package/dist/src/services/voiceToolsContract/index.mjs +24 -0
- package/dist/src/services/voiceToolsContract/index.mjs.map +1 -0
- package/dist/src/services/webauthn/index.cjs +262 -0
- package/dist/src/services/webauthn/index.cjs.map +1 -0
- package/dist/src/services/webauthn/index.d.mts +39 -0
- package/dist/src/services/webauthn/index.d.mts.map +1 -0
- package/dist/src/services/webauthn/index.mjs +262 -0
- package/dist/src/services/webauthn/index.mjs.map +1 -0
- package/dist/src/services/webauthnPolicy/index.cjs +163 -0
- package/dist/src/services/webauthnPolicy/index.cjs.map +1 -0
- package/dist/src/services/webauthnPolicy/index.d.mts +41 -0
- package/dist/src/services/webauthnPolicy/index.d.mts.map +1 -0
- package/dist/src/services/webauthnPolicy/index.mjs +156 -0
- package/dist/src/services/webauthnPolicy/index.mjs.map +1 -0
- package/dist/src/services/workspaceRegistry/index.cjs +151 -0
- package/dist/src/services/workspaceRegistry/index.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/index.d.mts +47 -0
- package/dist/src/services/workspaceRegistry/index.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/index.mjs +144 -0
- package/dist/src/services/workspaceRegistry/index.mjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +261 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +32 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +254 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +28 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +1 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +25 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +1 -0
- package/dist/src/systems/child/services/childSession/index.cjs +219 -0
- package/dist/src/systems/child/services/childSession/index.cjs.map +1 -0
- package/dist/src/systems/child/services/childSession/index.d.mts +14 -0
- package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -0
- package/dist/src/systems/child/services/childSession/index.mjs +219 -0
- package/dist/src/systems/child/services/childSession/index.mjs.map +1 -0
- package/dist/src/systems/child/types/childSession.cjs +19 -0
- package/dist/src/systems/child/types/childSession.cjs.map +1 -0
- package/dist/src/systems/child/types/childSession.d.mts +148 -0
- package/dist/src/systems/child/types/childSession.d.mts.map +1 -0
- package/dist/src/systems/child/types/childSession.mjs +16 -0
- package/dist/src/systems/child/types/childSession.mjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.cjs +554 -0
- package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.d.mts +111 -0
- package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.mjs +552 -0
- package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs +1293 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +14 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs +1288 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -0
- package/dist/src/systems/main/types/headlessHost.d.mts +36 -0
- package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.cjs +73 -0
- package/dist/src/testing/pi/extensionScenarios.cjs.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.d.mts +41 -0
- package/dist/src/testing/pi/extensionScenarios.d.mts.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.mjs +73 -0
- package/dist/src/testing/pi/extensionScenarios.mjs.map +1 -0
- package/dist/src/testing/pi/testHost.cjs +398 -0
- package/dist/src/testing/pi/testHost.cjs.map +1 -0
- package/dist/src/testing/pi/testHost.d.mts +160 -0
- package/dist/src/testing/pi/testHost.d.mts.map +1 -0
- package/dist/src/testing/pi/testHost.mjs +398 -0
- package/dist/src/testing/pi/testHost.mjs.map +1 -0
- package/dist/src/types/config.d.mts +20 -0
- package/dist/src/types/config.d.mts.map +1 -0
- package/dist/src/types/kernel.d.mts +69 -0
- package/dist/src/types/kernel.d.mts.map +1 -0
- package/dist/src/types/remote.d.mts +124 -0
- package/dist/src/types/remote.d.mts.map +1 -0
- package/dist/src/types/server/directHarnessRuntime.d.mts +209 -0
- package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -0
- package/dist/src/types/server/session.d.mts +5 -0
- package/dist/src/types/server/session.d.mts.map +1 -0
- package/dist/src/types/server/sessionToolSurface.d.mts +44 -0
- package/dist/src/types/server/sessionToolSurface.d.mts.map +1 -0
- package/dist/src/web/models/globalStore.cjs +23 -0
- package/dist/src/web/models/globalStore.cjs.map +1 -0
- package/dist/src/web/models/globalStore.d.mts +6 -0
- package/dist/src/web/models/globalStore.d.mts.map +1 -0
- package/dist/src/web/models/globalStore.mjs +23 -0
- package/dist/src/web/models/globalStore.mjs.map +1 -0
- package/dist/src/web/models/sessionStore.cjs +56 -0
- package/dist/src/web/models/sessionStore.cjs.map +1 -0
- package/dist/src/web/models/sessionStore.d.mts +14 -0
- package/dist/src/web/models/sessionStore.d.mts.map +1 -0
- package/dist/src/web/models/sessionStore.mjs +56 -0
- package/dist/src/web/models/sessionStore.mjs.map +1 -0
- package/dist/src/web/models/workspaceStore.cjs +50 -0
- package/dist/src/web/models/workspaceStore.cjs.map +1 -0
- package/dist/src/web/models/workspaceStore.d.mts +18 -0
- package/dist/src/web/models/workspaceStore.d.mts.map +1 -0
- package/dist/src/web/models/workspaceStore.mjs +50 -0
- package/dist/src/web/models/workspaceStore.mjs.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.cjs +20 -0
- package/dist/src/web/schemas/bundleAssetPolicy.cjs.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.d.mts +10 -0
- package/dist/src/web/schemas/bundleAssetPolicy.d.mts.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.mjs +18 -0
- package/dist/src/web/schemas/bundleAssetPolicy.mjs.map +1 -0
- package/dist/src/web/schemas/template.cjs +15 -0
- package/dist/src/web/schemas/template.cjs.map +1 -0
- package/dist/src/web/schemas/template.d.mts +6 -0
- package/dist/src/web/schemas/template.d.mts.map +1 -0
- package/dist/src/web/schemas/template.mjs +15 -0
- package/dist/src/web/schemas/template.mjs.map +1 -0
- package/dist/src/web/services/apiClient/index.cjs +156 -0
- package/dist/src/web/services/apiClient/index.cjs.map +1 -0
- package/dist/src/web/services/apiClient/index.d.mts +152 -0
- package/dist/src/web/services/apiClient/index.d.mts.map +1 -0
- package/dist/src/web/services/apiClient/index.mjs +154 -0
- package/dist/src/web/services/apiClient/index.mjs.map +1 -0
- package/dist/src/web/services/apiPaths/index.cjs +83 -0
- package/dist/src/web/services/apiPaths/index.cjs.map +1 -0
- package/dist/src/web/services/apiPaths/index.d.mts +81 -0
- package/dist/src/web/services/apiPaths/index.d.mts.map +1 -0
- package/dist/src/web/services/apiPaths/index.mjs +78 -0
- package/dist/src/web/services/apiPaths/index.mjs.map +1 -0
- package/dist/src/web/services/apiRoutes/index.cjs +47 -0
- package/dist/src/web/services/apiRoutes/index.cjs.map +1 -0
- package/dist/src/web/services/apiRoutes/index.d.mts +21 -0
- package/dist/src/web/services/apiRoutes/index.d.mts.map +1 -0
- package/dist/src/web/services/apiRoutes/index.mjs +43 -0
- package/dist/src/web/services/apiRoutes/index.mjs.map +1 -0
- package/dist/src/web/services/mcpWidget.cjs +9 -0
- package/dist/src/web/services/mcpWidget.cjs.map +1 -0
- package/dist/src/web/services/mcpWidget.d.mts +6 -0
- package/dist/src/web/services/mcpWidget.d.mts.map +1 -0
- package/dist/src/web/services/mcpWidget.mjs +9 -0
- package/dist/src/web/services/mcpWidget.mjs.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.cjs +70 -0
- package/dist/src/web/services/sessionRegistry/index.cjs.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.d.mts +29 -0
- package/dist/src/web/services/sessionRegistry/index.d.mts.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.mjs +66 -0
- package/dist/src/web/services/sessionRegistry/index.mjs.map +1 -0
- package/dist/src/web/services/testing/channels.cjs +11 -0
- package/dist/src/web/services/testing/channels.cjs.map +1 -0
- package/dist/src/web/services/testing/channels.d.mts +8 -0
- package/dist/src/web/services/testing/channels.d.mts.map +1 -0
- package/dist/src/web/services/testing/channels.mjs +11 -0
- package/dist/src/web/services/testing/channels.mjs.map +1 -0
- package/dist/src/web/services/testing/index.cjs +27 -0
- package/dist/src/web/services/testing/index.cjs.map +1 -0
- package/dist/src/web/services/testing/index.d.mts +31 -0
- package/dist/src/web/services/testing/index.d.mts.map +1 -0
- package/dist/src/web/services/testing/index.mjs +27 -0
- package/dist/src/web/services/testing/index.mjs.map +1 -0
- package/dist/src/web/services/testing/rpcStub.cjs +58 -0
- package/dist/src/web/services/testing/rpcStub.cjs.map +1 -0
- package/dist/src/web/services/testing/rpcStub.d.mts +37 -0
- package/dist/src/web/services/testing/rpcStub.d.mts.map +1 -0
- package/dist/src/web/services/testing/rpcStub.mjs +58 -0
- package/dist/src/web/services/testing/rpcStub.mjs.map +1 -0
- package/dist/src/web/services/testing/slotProps.cjs +91 -0
- package/dist/src/web/services/testing/slotProps.cjs.map +1 -0
- package/dist/src/web/services/testing/slotProps.d.mts +69 -0
- package/dist/src/web/services/testing/slotProps.d.mts.map +1 -0
- package/dist/src/web/services/testing/slotProps.mjs +90 -0
- package/dist/src/web/services/testing/slotProps.mjs.map +1 -0
- package/dist/src/web/services/testing/templateRail.cjs +128 -0
- package/dist/src/web/services/testing/templateRail.cjs.map +1 -0
- package/dist/src/web/services/testing/templateRail.d.mts +31 -0
- package/dist/src/web/services/testing/templateRail.d.mts.map +1 -0
- package/dist/src/web/services/testing/templateRail.mjs +126 -0
- package/dist/src/web/services/testing/templateRail.mjs.map +1 -0
- package/dist/src/web/services/toolResult/index.cjs +30 -0
- package/dist/src/web/services/toolResult/index.cjs.map +1 -0
- package/dist/src/web/services/toolResult/index.d.mts +14 -0
- package/dist/src/web/services/toolResult/index.d.mts.map +1 -0
- package/dist/src/web/services/toolResult/index.mjs +29 -0
- package/dist/src/web/services/toolResult/index.mjs.map +1 -0
- package/dist/src/web/types/extensionFile.d.mts +59 -0
- package/dist/src/web/types/extensionFile.d.mts.map +1 -0
- package/dist/src/web/types/mcpWidget.d.mts +14 -0
- package/dist/src/web/types/mcpWidget.d.mts.map +1 -0
- package/dist/src/web/types/modelContext.d.mts +43 -0
- package/dist/src/web/types/modelContext.d.mts.map +1 -0
- package/dist/src/web/types/sessionRegistry.d.mts +43 -0
- package/dist/src/web/types/sessionRegistry.d.mts.map +1 -0
- package/dist/src/web/types/template.d.mts +155 -0
- package/dist/src/web/types/template.d.mts.map +1 -0
- package/dist/src/web/types/webPlugin.d.mts +896 -0
- package/dist/src/web/types/webPlugin.d.mts.map +1 -0
- package/dist/syncLocation.cjs +244 -0
- package/dist/syncLocation.cjs.map +1 -0
- package/dist/syncLocation.d.mts +37 -0
- package/dist/syncLocation.d.mts.map +1 -0
- package/dist/syncLocation.mjs +231 -0
- package/dist/syncLocation.mjs.map +1 -0
- package/dist/syncRegistration.cjs +171 -0
- package/dist/syncRegistration.cjs.map +1 -0
- package/dist/syncRegistration.d.mts +48 -0
- package/dist/syncRegistration.d.mts.map +1 -0
- package/dist/syncRegistration.mjs +159 -0
- package/dist/syncRegistration.mjs.map +1 -0
- package/dist/syncStateContract.cjs +19 -0
- package/dist/syncStateContract.cjs.map +1 -0
- package/dist/syncStateContract.d.mts +14 -0
- package/dist/syncStateContract.d.mts.map +1 -0
- package/dist/syncStateContract.mjs +16 -0
- package/dist/syncStateContract.mjs.map +1 -0
- package/dist/terminalPiChildSessionService.cjs +267 -0
- package/dist/terminalPiChildSessionService.cjs.map +1 -0
- package/dist/terminalPiChildSessionService.d.mts +42 -0
- package/dist/terminalPiChildSessionService.d.mts.map +1 -0
- package/dist/terminalPiChildSessionService.mjs +260 -0
- package/dist/terminalPiChildSessionService.mjs.map +1 -0
- package/dist/testing.cjs +11 -0
- package/dist/testing.d.mts +6 -0
- package/dist/testing.mjs +6 -0
- package/dist/toolInventory.cjs +136 -0
- package/dist/toolInventory.cjs.map +1 -0
- package/dist/toolInventory.d.mts +66 -0
- package/dist/toolInventory.d.mts.map +1 -0
- package/dist/toolInventory.mjs +133 -0
- package/dist/toolInventory.mjs.map +1 -0
- package/dist/toolNames.cjs +4 -0
- package/dist/toolNames.d.mts +2 -0
- package/dist/toolNames.mjs +2 -0
- package/dist/toolOverrides.cjs +7 -0
- package/dist/toolOverrides.d.mts +3 -0
- package/dist/toolOverrides.mjs +3 -0
- package/dist/toolSurface.cjs +7 -0
- package/dist/toolSurface.d.mts +3 -0
- package/dist/toolSurface.mjs +3 -0
- package/dist/transition.cjs +5 -0
- package/dist/transition.d.cjs +5 -0
- package/dist/transition.d.mts +2 -0
- package/dist/transition.mjs +2 -0
- package/dist/transitionClassifier.cjs +112 -0
- package/dist/transitionClassifier.cjs.map +1 -0
- package/dist/transitionClassifier.d.mts +18 -0
- package/dist/transitionClassifier.d.mts.map +1 -0
- package/dist/transitionClassifier.mjs +111 -0
- package/dist/transitionClassifier.mjs.map +1 -0
- package/dist/transitionCoordinator.cjs +131 -0
- package/dist/transitionCoordinator.cjs.map +1 -0
- package/dist/transitionCoordinator.d.mts +16 -0
- package/dist/transitionCoordinator.d.mts.map +1 -0
- package/dist/transitionCoordinator.mjs +130 -0
- package/dist/transitionCoordinator.mjs.map +1 -0
- package/dist/typesContextApi.cjs +0 -0
- package/dist/typesContextApi.d.mts +73 -0
- package/dist/typesContextApi.d.mts.map +1 -0
- package/dist/typesContextApi.mjs +1 -0
- package/dist/uiHub.cjs +5 -0
- package/dist/uiHub.d.mts +2 -0
- package/dist/uiHub.mjs +2 -0
- package/dist/v3Export.cjs +1004 -0
- package/dist/v3Export.cjs.map +1 -0
- package/dist/v3Export.d.mts +34 -0
- package/dist/v3Export.d.mts.map +1 -0
- package/dist/v3Export.mjs +1000 -0
- package/dist/v3Export.mjs.map +1 -0
- package/dist/voiceReloadHandoff.cjs +14 -0
- package/dist/voiceReloadHandoff.d.mts +4 -0
- package/dist/voiceReloadHandoff.mjs +4 -0
- package/dist/voiceTools.cjs +56 -0
- package/dist/voiceTools.d.mts +4 -0
- package/dist/voiceTools.mjs +4 -0
- package/dist/web.cjs +64 -0
- package/dist/web.d.mts +19 -0
- package/dist/web.mjs +13 -0
- package/dist/webCompositions.cjs +100 -0
- package/dist/webCompositions.cjs.map +1 -0
- package/dist/webCompositions.d.mts +20 -0
- package/dist/webCompositions.d.mts.map +1 -0
- package/dist/webCompositions.mjs +95 -0
- package/dist/webCompositions.mjs.map +1 -0
- package/dist/webTesting.cjs +14 -0
- package/dist/webTesting.d.mts +6 -0
- package/dist/webTesting.mjs +6 -0
- package/package.json +616 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
const require_index = require("../kernel/index.cjs");
|
|
2
|
+
//#region src/services/toolSurface/index.ts
|
|
3
|
+
/**
|
|
4
|
+
* The tool surface arbiter.
|
|
5
|
+
*
|
|
6
|
+
* DESIGN PATTERNS:
|
|
7
|
+
* - One writer. Every owner registers a restriction; only this service calls
|
|
8
|
+
* the host setter. Two owners can no longer overwrite each other's list.
|
|
9
|
+
* - Removal is inherent. The surface is recomputed from the full registered
|
|
10
|
+
* tool set on every change, so dropping a restriction restores the tools it
|
|
11
|
+
* hid without any owner keeping a snapshot.
|
|
12
|
+
* - Restrictions are pure and ordered by registration. The result is a
|
|
13
|
+
* function of (registered tools, active layers, registered restrictions).
|
|
14
|
+
* - Application is synchronous. A tool change has to be visible to the very
|
|
15
|
+
* next line, because callers gate user-facing messages on it. The kernel's
|
|
16
|
+
* coalesced flush still drives layer switches; it just lands on the same
|
|
17
|
+
* idempotent apply.
|
|
18
|
+
*
|
|
19
|
+
* AVOID:
|
|
20
|
+
* - Letting one broken restriction take the surface down. A throwing
|
|
21
|
+
* restriction is skipped and reported; the rest still reach the host.
|
|
22
|
+
* - Returning tool names the host does not know. Unknown names are dropped so
|
|
23
|
+
* a stale restriction cannot resurrect a tool that was never registered.
|
|
24
|
+
*/
|
|
25
|
+
const SLOT = "tools";
|
|
26
|
+
function sameList(left, right) {
|
|
27
|
+
if (left.length !== right.length) return false;
|
|
28
|
+
return left.every((name, index) => name === right[index]);
|
|
29
|
+
}
|
|
30
|
+
function createDoomToolSurface(options) {
|
|
31
|
+
const kernel = require_index.createDoomKernel({ activeLayers: options.activeLayers });
|
|
32
|
+
let pushed;
|
|
33
|
+
let disposed = false;
|
|
34
|
+
let inspection = [];
|
|
35
|
+
let fingerprint = "";
|
|
36
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
37
|
+
const apply = (holders) => {
|
|
38
|
+
const available = [...new Set(options.allTools())];
|
|
39
|
+
const known = new Set(available);
|
|
40
|
+
let current = available;
|
|
41
|
+
for (const holder of holders) try {
|
|
42
|
+
const result = holder.restrict(current, available);
|
|
43
|
+
current = [...new Set(result)].filter((name) => known.has(name));
|
|
44
|
+
} catch (error) {
|
|
45
|
+
current = current.filter((name) => !holder.controlledTools?.includes(name));
|
|
46
|
+
options.onError?.(holder.source, error);
|
|
47
|
+
}
|
|
48
|
+
if (!sameList(options.activeTools(), current)) options.setActiveTools([...current]);
|
|
49
|
+
pushed = [...current];
|
|
50
|
+
inspection = holders.flatMap((holder) => (holder.controlledTools ?? []).filter((name) => known.has(name)).map((name) => ({
|
|
51
|
+
source: holder.source,
|
|
52
|
+
name,
|
|
53
|
+
active: current.includes(name),
|
|
54
|
+
...holder.attribution ? { attribution: { ...holder.attribution } } : {}
|
|
55
|
+
})));
|
|
56
|
+
const next = JSON.stringify([pushed, inspection]);
|
|
57
|
+
if (next !== fingerprint) {
|
|
58
|
+
fingerprint = next;
|
|
59
|
+
for (const listener of listeners) listener();
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const slot = kernel.defineSlot(SLOT, apply);
|
|
63
|
+
const applyNow = () => {
|
|
64
|
+
if (!disposed) apply(kernel.activeValues(SLOT));
|
|
65
|
+
};
|
|
66
|
+
return Object.freeze({
|
|
67
|
+
generation: options.generation,
|
|
68
|
+
register(definition) {
|
|
69
|
+
if (disposed) throw new Error("The tool surface is disposed.");
|
|
70
|
+
if (definition.source.trim().length === 0) throw new Error("A tool restriction needs a source.");
|
|
71
|
+
const holder = {
|
|
72
|
+
source: definition.source,
|
|
73
|
+
restrict: definition.restrict,
|
|
74
|
+
controlledTools: definition.controlledTools ? [...new Set(definition.controlledTools)] : void 0,
|
|
75
|
+
attribution: definition.attribution ? { ...definition.attribution } : void 0
|
|
76
|
+
};
|
|
77
|
+
const registration = slot.contribute({
|
|
78
|
+
source: definition.source,
|
|
79
|
+
layer: definition.layer,
|
|
80
|
+
value: holder
|
|
81
|
+
});
|
|
82
|
+
applyNow();
|
|
83
|
+
let removed = false;
|
|
84
|
+
return Object.freeze({
|
|
85
|
+
update(restrict) {
|
|
86
|
+
if (removed) return;
|
|
87
|
+
holder.restrict = restrict;
|
|
88
|
+
applyNow();
|
|
89
|
+
},
|
|
90
|
+
dispose() {
|
|
91
|
+
if (removed) return;
|
|
92
|
+
removed = true;
|
|
93
|
+
registration.dispose();
|
|
94
|
+
applyNow();
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
},
|
|
98
|
+
refresh() {
|
|
99
|
+
applyNow();
|
|
100
|
+
},
|
|
101
|
+
setActiveLayers(layers) {
|
|
102
|
+
if (disposed) return;
|
|
103
|
+
kernel.setActiveLayers(layers).catch(() => void 0);
|
|
104
|
+
applyNow();
|
|
105
|
+
},
|
|
106
|
+
active() {
|
|
107
|
+
return disposed ? [] : [...pushed ?? options.activeTools()];
|
|
108
|
+
},
|
|
109
|
+
inspect() {
|
|
110
|
+
return disposed ? [] : inspection.map((entry) => ({
|
|
111
|
+
...entry,
|
|
112
|
+
...entry.attribution ? { attribution: { ...entry.attribution } } : {}
|
|
113
|
+
}));
|
|
114
|
+
},
|
|
115
|
+
subscribe(listener) {
|
|
116
|
+
if (disposed) throw new Error("The tool surface is disposed.");
|
|
117
|
+
listeners.add(listener);
|
|
118
|
+
return () => {
|
|
119
|
+
listeners.delete(listener);
|
|
120
|
+
};
|
|
121
|
+
},
|
|
122
|
+
dispose() {
|
|
123
|
+
if (disposed) return;
|
|
124
|
+
disposed = true;
|
|
125
|
+
listeners.clear();
|
|
126
|
+
inspection = [];
|
|
127
|
+
kernel.dispose();
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
//#endregion
|
|
132
|
+
exports.createDoomToolSurface = createDoomToolSurface;
|
|
133
|
+
|
|
134
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["createDoomKernel"],"sources":["../../../../src/services/toolSurface/index.ts"],"sourcesContent":["/**\n * The tool surface arbiter.\n *\n * DESIGN PATTERNS:\n * - One writer. Every owner registers a restriction; only this service calls\n * the host setter. Two owners can no longer overwrite each other's list.\n * - Removal is inherent. The surface is recomputed from the full registered\n * tool set on every change, so dropping a restriction restores the tools it\n * hid without any owner keeping a snapshot.\n * - Restrictions are pure and ordered by registration. The result is a\n * function of (registered tools, active layers, registered restrictions).\n * - Application is synchronous. A tool change has to be visible to the very\n * next line, because callers gate user-facing messages on it. The kernel's\n * coalesced flush still drives layer switches; it just lands on the same\n * idempotent apply.\n *\n * AVOID:\n * - Letting one broken restriction take the surface down. A throwing\n * restriction is skipped and reported; the rest still reach the host.\n * - Returning tool names the host does not know. Unknown names are dropped so\n * a stale restriction cannot resurrect a tool that was never registered.\n */\n\nimport { createDoomKernel } from '../../exports/kernel';\nimport type {\n DoomToolRestriction,\n DoomToolRestrictionDefinition,\n DoomToolRestrictionHandle,\n DoomToolSurfaceService,\n DoomToolSurfaceEntry,\n} from '../../schemas/toolSurface';\n\nconst SLOT = 'tools';\n\ninterface RestrictionHolder extends Pick<DoomToolRestrictionDefinition, 'source' | 'controlledTools' | 'attribution'> {\n restrict: DoomToolRestriction;\n}\n\nexport interface CreateDoomToolSurfaceOptions {\n /** Runtime generation, mirrored onto the service for diagnostics. */\n readonly generation: string;\n /** Every tool registered with the host, in host order. */\n readonly allTools: () => readonly string[];\n /** The tools the host currently exposes, in host order. */\n readonly activeTools: () => readonly string[];\n /** The host's whole-list setter. Called only when actual activation differs. */\n readonly setActiveTools: (names: string[]) => void;\n /** Layers active at creation. */\n readonly activeLayers?: readonly string[];\n /** Receives a restriction that threw. Defaults to silence. */\n readonly onError?: (source: string, error: unknown) => void;\n}\n\nfunction sameList(left: readonly string[], right: readonly string[]): boolean {\n if (left.length !== right.length) return false;\n return left.every((name, index) => name === right[index]);\n}\n\nexport function createDoomToolSurface(options: CreateDoomToolSurfaceOptions): DoomToolSurfaceService {\n const kernel = createDoomKernel({ activeLayers: options.activeLayers });\n let pushed: readonly string[] | undefined;\n let disposed = false;\n let inspection: readonly DoomToolSurfaceEntry[] = [];\n let fingerprint = '';\n const listeners = new Set<() => void>();\n\n const apply = (holders: readonly RestrictionHolder[]): void => {\n const available = [...new Set(options.allTools())];\n const known = new Set(available);\n let current: readonly string[] = available;\n for (const holder of holders) {\n try {\n const result = holder.restrict(current, available);\n current = [...new Set(result)].filter((name) => known.has(name));\n } catch (error) {\n current = current.filter((name) => !holder.controlledTools?.includes(name));\n options.onError?.(holder.source, error);\n }\n }\n const actual = options.activeTools();\n if (!sameList(actual, current)) options.setActiveTools([...current]);\n pushed = [...current];\n inspection = holders.flatMap((holder) =>\n (holder.controlledTools ?? [])\n .filter((name) => known.has(name))\n .map((name) => ({\n source: holder.source,\n name,\n active: current.includes(name),\n ...(holder.attribution ? { attribution: { ...holder.attribution } } : {}),\n })),\n );\n const next = JSON.stringify([pushed, inspection]);\n if (next !== fingerprint) {\n fingerprint = next;\n for (const listener of listeners) listener();\n }\n };\n\n const slot = kernel.defineSlot<RestrictionHolder>(SLOT, apply);\n const applyNow = (): void => {\n if (!disposed) apply(kernel.activeValues<RestrictionHolder>(SLOT));\n };\n\n return Object.freeze({\n generation: options.generation,\n register(definition: DoomToolRestrictionDefinition): DoomToolRestrictionHandle {\n if (disposed) throw new Error('The tool surface is disposed.');\n if (definition.source.trim().length === 0) throw new Error('A tool restriction needs a source.');\n const holder: RestrictionHolder = {\n source: definition.source,\n restrict: definition.restrict,\n controlledTools: definition.controlledTools ? [...new Set(definition.controlledTools)] : undefined,\n attribution: definition.attribution ? { ...definition.attribution } : undefined,\n };\n const registration = slot.contribute({ source: definition.source, layer: definition.layer, value: holder });\n applyNow();\n let removed = false;\n return Object.freeze({\n update(restrict: DoomToolRestriction): void {\n if (removed) return;\n holder.restrict = restrict;\n applyNow();\n },\n dispose(): void {\n if (removed) return;\n removed = true;\n registration.dispose();\n applyNow();\n },\n });\n },\n refresh(): void {\n applyNow();\n },\n setActiveLayers(layers: readonly string[]): void {\n if (disposed) return;\n void kernel.setActiveLayers(layers).catch(() => undefined);\n applyNow();\n },\n active(): readonly string[] {\n return disposed ? [] : [...(pushed ?? options.activeTools())];\n },\n inspect(): readonly DoomToolSurfaceEntry[] {\n return disposed\n ? []\n : inspection.map((entry) => ({\n ...entry,\n ...(entry.attribution ? { attribution: { ...entry.attribution } } : {}),\n }));\n },\n subscribe(listener: () => void): () => void {\n if (disposed) throw new Error('The tool surface is disposed.');\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n dispose(): void {\n if (disposed) return;\n disposed = true;\n listeners.clear();\n inspection = [];\n kernel.dispose();\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAM,OAAO;AAqBb,SAAS,SAAS,MAAyB,OAAmC;CAC5E,IAAI,KAAK,WAAW,MAAM,QAAQ,OAAO;CACzC,OAAO,KAAK,OAAO,MAAM,UAAU,SAAS,MAAM,MAAM;AAC1D;AAEA,SAAgB,sBAAsB,SAA+D;CACnG,MAAM,SAASA,cAAAA,iBAAiB,EAAE,cAAc,QAAQ,aAAa,CAAC;CACtE,IAAI;CACJ,IAAI,WAAW;CACf,IAAI,aAA8C,CAAC;CACnD,IAAI,cAAc;CAClB,MAAM,4BAAY,IAAI,IAAgB;CAEtC,MAAM,SAAS,YAAgD;EAC7D,MAAM,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,SAAS,CAAC,CAAC;EACjD,MAAM,QAAQ,IAAI,IAAI,SAAS;EAC/B,IAAI,UAA6B;EACjC,KAAK,MAAM,UAAU,SACnB,IAAI;GACF,MAAM,SAAS,OAAO,SAAS,SAAS,SAAS;GACjD,UAAU,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,SAAS,MAAM,IAAI,IAAI,CAAC;EACjE,SAAS,OAAO;GACd,UAAU,QAAQ,QAAQ,SAAS,CAAC,OAAO,iBAAiB,SAAS,IAAI,CAAC;GAC1E,QAAQ,UAAU,OAAO,QAAQ,KAAK;EACxC;EAGF,IAAI,CAAC,SADU,QAAQ,YACJ,GAAG,OAAO,GAAG,QAAQ,eAAe,CAAC,GAAG,OAAO,CAAC;EACnE,SAAS,CAAC,GAAG,OAAO;EACpB,aAAa,QAAQ,SAAS,YAC3B,OAAO,mBAAmB,CAAC,EAAA,CACzB,QAAQ,SAAS,MAAM,IAAI,IAAI,CAAC,CAAC,CACjC,KAAK,UAAU;GACd,QAAQ,OAAO;GACf;GACA,QAAQ,QAAQ,SAAS,IAAI;GAC7B,GAAI,OAAO,cAAc,EAAE,aAAa,EAAE,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;EACzE,EAAE,CACN;EACA,MAAM,OAAO,KAAK,UAAU,CAAC,QAAQ,UAAU,CAAC;EAChD,IAAI,SAAS,aAAa;GACxB,cAAc;GACd,KAAK,MAAM,YAAY,WAAW,SAAS;EAC7C;CACF;CAEA,MAAM,OAAO,OAAO,WAA8B,MAAM,KAAK;CAC7D,MAAM,iBAAuB;EAC3B,IAAI,CAAC,UAAU,MAAM,OAAO,aAAgC,IAAI,CAAC;CACnE;CAEA,OAAO,OAAO,OAAO;EACnB,YAAY,QAAQ;EACpB,SAAS,YAAsE;GAC7E,IAAI,UAAU,MAAM,IAAI,MAAM,+BAA+B;GAC7D,IAAI,WAAW,OAAO,KAAK,CAAC,CAAC,WAAW,GAAG,MAAM,IAAI,MAAM,oCAAoC;GAC/F,MAAM,SAA4B;IAChC,QAAQ,WAAW;IACnB,UAAU,WAAW;IACrB,iBAAiB,WAAW,kBAAkB,CAAC,GAAG,IAAI,IAAI,WAAW,eAAe,CAAC,IAAI,KAAA;IACzF,aAAa,WAAW,cAAc,EAAE,GAAG,WAAW,YAAY,IAAI,KAAA;GACxE;GACA,MAAM,eAAe,KAAK,WAAW;IAAE,QAAQ,WAAW;IAAQ,OAAO,WAAW;IAAO,OAAO;GAAO,CAAC;GAC1G,SAAS;GACT,IAAI,UAAU;GACd,OAAO,OAAO,OAAO;IACnB,OAAO,UAAqC;KAC1C,IAAI,SAAS;KACb,OAAO,WAAW;KAClB,SAAS;IACX;IACA,UAAgB;KACd,IAAI,SAAS;KACb,UAAU;KACV,aAAa,QAAQ;KACrB,SAAS;IACX;GACF,CAAC;EACH;EACA,UAAgB;GACd,SAAS;EACX;EACA,gBAAgB,QAAiC;GAC/C,IAAI,UAAU;GACd,OAAY,gBAAgB,MAAM,CAAC,CAAC,YAAY,KAAA,CAAS;GACzD,SAAS;EACX;EACA,SAA4B;GAC1B,OAAO,WAAW,CAAC,IAAI,CAAC,GAAI,UAAU,QAAQ,YAAY,CAAE;EAC9D;EACA,UAA2C;GACzC,OAAO,WACH,CAAC,IACD,WAAW,KAAK,WAAW;IACzB,GAAG;IACH,GAAI,MAAM,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,YAAY,EAAE,IAAI,CAAC;GACvE,EAAE;EACR;EACA,UAAU,UAAkC;GAC1C,IAAI,UAAU,MAAM,IAAI,MAAM,+BAA+B;GAC7D,UAAU,IAAI,QAAQ;GACtB,aAAa;IACX,UAAU,OAAO,QAAQ;GAC3B;EACF;EACA,UAAgB;GACd,IAAI,UAAU;GACd,WAAW;GACX,UAAU,MAAM;GAChB,aAAa,CAAC;GACd,OAAO,QAAQ;EACjB;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DoomToolSurfaceService } from "../../schemas/toolSurface.mjs";
|
|
2
|
+
//#region src/services/toolSurface/index.d.ts
|
|
3
|
+
export interface CreateDoomToolSurfaceOptions {
|
|
4
|
+
/** Runtime generation, mirrored onto the service for diagnostics. */
|
|
5
|
+
readonly generation: string;
|
|
6
|
+
/** Every tool registered with the host, in host order. */
|
|
7
|
+
readonly allTools: () => readonly string[];
|
|
8
|
+
/** The tools the host currently exposes, in host order. */
|
|
9
|
+
readonly activeTools: () => readonly string[];
|
|
10
|
+
/** The host's whole-list setter. Called only when actual activation differs. */
|
|
11
|
+
readonly setActiveTools: (names: string[]) => void;
|
|
12
|
+
/** Layers active at creation. */
|
|
13
|
+
readonly activeLayers?: readonly string[];
|
|
14
|
+
/** Receives a restriction that threw. Defaults to silence. */
|
|
15
|
+
readonly onError?: (source: string, error: unknown) => void;
|
|
16
|
+
}
|
|
17
|
+
export declare function createDoomToolSurface(options: CreateDoomToolSurfaceOptions): DoomToolSurfaceService;
|
|
18
|
+
//#endregion
|
|
19
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/toolSurface/index.ts"],"mappings":";;iBAsCiB;;WAEN;;WAEA;;WAEA;;WAEA,iBAAiB;;WAEjB;;WAEA,WAAW,gBAAgB;;wBAQtB,sBAAsB,SAAS,+BAA+B"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { createDoomKernel } from "../kernel/index.mjs";
|
|
2
|
+
//#region src/services/toolSurface/index.ts
|
|
3
|
+
/**
|
|
4
|
+
* The tool surface arbiter.
|
|
5
|
+
*
|
|
6
|
+
* DESIGN PATTERNS:
|
|
7
|
+
* - One writer. Every owner registers a restriction; only this service calls
|
|
8
|
+
* the host setter. Two owners can no longer overwrite each other's list.
|
|
9
|
+
* - Removal is inherent. The surface is recomputed from the full registered
|
|
10
|
+
* tool set on every change, so dropping a restriction restores the tools it
|
|
11
|
+
* hid without any owner keeping a snapshot.
|
|
12
|
+
* - Restrictions are pure and ordered by registration. The result is a
|
|
13
|
+
* function of (registered tools, active layers, registered restrictions).
|
|
14
|
+
* - Application is synchronous. A tool change has to be visible to the very
|
|
15
|
+
* next line, because callers gate user-facing messages on it. The kernel's
|
|
16
|
+
* coalesced flush still drives layer switches; it just lands on the same
|
|
17
|
+
* idempotent apply.
|
|
18
|
+
*
|
|
19
|
+
* AVOID:
|
|
20
|
+
* - Letting one broken restriction take the surface down. A throwing
|
|
21
|
+
* restriction is skipped and reported; the rest still reach the host.
|
|
22
|
+
* - Returning tool names the host does not know. Unknown names are dropped so
|
|
23
|
+
* a stale restriction cannot resurrect a tool that was never registered.
|
|
24
|
+
*/
|
|
25
|
+
const SLOT = "tools";
|
|
26
|
+
function sameList(left, right) {
|
|
27
|
+
if (left.length !== right.length) return false;
|
|
28
|
+
return left.every((name, index) => name === right[index]);
|
|
29
|
+
}
|
|
30
|
+
function createDoomToolSurface(options) {
|
|
31
|
+
const kernel = createDoomKernel({ activeLayers: options.activeLayers });
|
|
32
|
+
let pushed;
|
|
33
|
+
let disposed = false;
|
|
34
|
+
let inspection = [];
|
|
35
|
+
let fingerprint = "";
|
|
36
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
37
|
+
const apply = (holders) => {
|
|
38
|
+
const available = [...new Set(options.allTools())];
|
|
39
|
+
const known = new Set(available);
|
|
40
|
+
let current = available;
|
|
41
|
+
for (const holder of holders) try {
|
|
42
|
+
const result = holder.restrict(current, available);
|
|
43
|
+
current = [...new Set(result)].filter((name) => known.has(name));
|
|
44
|
+
} catch (error) {
|
|
45
|
+
current = current.filter((name) => !holder.controlledTools?.includes(name));
|
|
46
|
+
options.onError?.(holder.source, error);
|
|
47
|
+
}
|
|
48
|
+
if (!sameList(options.activeTools(), current)) options.setActiveTools([...current]);
|
|
49
|
+
pushed = [...current];
|
|
50
|
+
inspection = holders.flatMap((holder) => (holder.controlledTools ?? []).filter((name) => known.has(name)).map((name) => ({
|
|
51
|
+
source: holder.source,
|
|
52
|
+
name,
|
|
53
|
+
active: current.includes(name),
|
|
54
|
+
...holder.attribution ? { attribution: { ...holder.attribution } } : {}
|
|
55
|
+
})));
|
|
56
|
+
const next = JSON.stringify([pushed, inspection]);
|
|
57
|
+
if (next !== fingerprint) {
|
|
58
|
+
fingerprint = next;
|
|
59
|
+
for (const listener of listeners) listener();
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const slot = kernel.defineSlot(SLOT, apply);
|
|
63
|
+
const applyNow = () => {
|
|
64
|
+
if (!disposed) apply(kernel.activeValues(SLOT));
|
|
65
|
+
};
|
|
66
|
+
return Object.freeze({
|
|
67
|
+
generation: options.generation,
|
|
68
|
+
register(definition) {
|
|
69
|
+
if (disposed) throw new Error("The tool surface is disposed.");
|
|
70
|
+
if (definition.source.trim().length === 0) throw new Error("A tool restriction needs a source.");
|
|
71
|
+
const holder = {
|
|
72
|
+
source: definition.source,
|
|
73
|
+
restrict: definition.restrict,
|
|
74
|
+
controlledTools: definition.controlledTools ? [...new Set(definition.controlledTools)] : void 0,
|
|
75
|
+
attribution: definition.attribution ? { ...definition.attribution } : void 0
|
|
76
|
+
};
|
|
77
|
+
const registration = slot.contribute({
|
|
78
|
+
source: definition.source,
|
|
79
|
+
layer: definition.layer,
|
|
80
|
+
value: holder
|
|
81
|
+
});
|
|
82
|
+
applyNow();
|
|
83
|
+
let removed = false;
|
|
84
|
+
return Object.freeze({
|
|
85
|
+
update(restrict) {
|
|
86
|
+
if (removed) return;
|
|
87
|
+
holder.restrict = restrict;
|
|
88
|
+
applyNow();
|
|
89
|
+
},
|
|
90
|
+
dispose() {
|
|
91
|
+
if (removed) return;
|
|
92
|
+
removed = true;
|
|
93
|
+
registration.dispose();
|
|
94
|
+
applyNow();
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
},
|
|
98
|
+
refresh() {
|
|
99
|
+
applyNow();
|
|
100
|
+
},
|
|
101
|
+
setActiveLayers(layers) {
|
|
102
|
+
if (disposed) return;
|
|
103
|
+
kernel.setActiveLayers(layers).catch(() => void 0);
|
|
104
|
+
applyNow();
|
|
105
|
+
},
|
|
106
|
+
active() {
|
|
107
|
+
return disposed ? [] : [...pushed ?? options.activeTools()];
|
|
108
|
+
},
|
|
109
|
+
inspect() {
|
|
110
|
+
return disposed ? [] : inspection.map((entry) => ({
|
|
111
|
+
...entry,
|
|
112
|
+
...entry.attribution ? { attribution: { ...entry.attribution } } : {}
|
|
113
|
+
}));
|
|
114
|
+
},
|
|
115
|
+
subscribe(listener) {
|
|
116
|
+
if (disposed) throw new Error("The tool surface is disposed.");
|
|
117
|
+
listeners.add(listener);
|
|
118
|
+
return () => {
|
|
119
|
+
listeners.delete(listener);
|
|
120
|
+
};
|
|
121
|
+
},
|
|
122
|
+
dispose() {
|
|
123
|
+
if (disposed) return;
|
|
124
|
+
disposed = true;
|
|
125
|
+
listeners.clear();
|
|
126
|
+
inspection = [];
|
|
127
|
+
kernel.dispose();
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
//#endregion
|
|
132
|
+
export { createDoomToolSurface };
|
|
133
|
+
|
|
134
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/toolSurface/index.ts"],"sourcesContent":["/**\n * The tool surface arbiter.\n *\n * DESIGN PATTERNS:\n * - One writer. Every owner registers a restriction; only this service calls\n * the host setter. Two owners can no longer overwrite each other's list.\n * - Removal is inherent. The surface is recomputed from the full registered\n * tool set on every change, so dropping a restriction restores the tools it\n * hid without any owner keeping a snapshot.\n * - Restrictions are pure and ordered by registration. The result is a\n * function of (registered tools, active layers, registered restrictions).\n * - Application is synchronous. A tool change has to be visible to the very\n * next line, because callers gate user-facing messages on it. The kernel's\n * coalesced flush still drives layer switches; it just lands on the same\n * idempotent apply.\n *\n * AVOID:\n * - Letting one broken restriction take the surface down. A throwing\n * restriction is skipped and reported; the rest still reach the host.\n * - Returning tool names the host does not know. Unknown names are dropped so\n * a stale restriction cannot resurrect a tool that was never registered.\n */\n\nimport { createDoomKernel } from '../../exports/kernel';\nimport type {\n DoomToolRestriction,\n DoomToolRestrictionDefinition,\n DoomToolRestrictionHandle,\n DoomToolSurfaceService,\n DoomToolSurfaceEntry,\n} from '../../schemas/toolSurface';\n\nconst SLOT = 'tools';\n\ninterface RestrictionHolder extends Pick<DoomToolRestrictionDefinition, 'source' | 'controlledTools' | 'attribution'> {\n restrict: DoomToolRestriction;\n}\n\nexport interface CreateDoomToolSurfaceOptions {\n /** Runtime generation, mirrored onto the service for diagnostics. */\n readonly generation: string;\n /** Every tool registered with the host, in host order. */\n readonly allTools: () => readonly string[];\n /** The tools the host currently exposes, in host order. */\n readonly activeTools: () => readonly string[];\n /** The host's whole-list setter. Called only when actual activation differs. */\n readonly setActiveTools: (names: string[]) => void;\n /** Layers active at creation. */\n readonly activeLayers?: readonly string[];\n /** Receives a restriction that threw. Defaults to silence. */\n readonly onError?: (source: string, error: unknown) => void;\n}\n\nfunction sameList(left: readonly string[], right: readonly string[]): boolean {\n if (left.length !== right.length) return false;\n return left.every((name, index) => name === right[index]);\n}\n\nexport function createDoomToolSurface(options: CreateDoomToolSurfaceOptions): DoomToolSurfaceService {\n const kernel = createDoomKernel({ activeLayers: options.activeLayers });\n let pushed: readonly string[] | undefined;\n let disposed = false;\n let inspection: readonly DoomToolSurfaceEntry[] = [];\n let fingerprint = '';\n const listeners = new Set<() => void>();\n\n const apply = (holders: readonly RestrictionHolder[]): void => {\n const available = [...new Set(options.allTools())];\n const known = new Set(available);\n let current: readonly string[] = available;\n for (const holder of holders) {\n try {\n const result = holder.restrict(current, available);\n current = [...new Set(result)].filter((name) => known.has(name));\n } catch (error) {\n current = current.filter((name) => !holder.controlledTools?.includes(name));\n options.onError?.(holder.source, error);\n }\n }\n const actual = options.activeTools();\n if (!sameList(actual, current)) options.setActiveTools([...current]);\n pushed = [...current];\n inspection = holders.flatMap((holder) =>\n (holder.controlledTools ?? [])\n .filter((name) => known.has(name))\n .map((name) => ({\n source: holder.source,\n name,\n active: current.includes(name),\n ...(holder.attribution ? { attribution: { ...holder.attribution } } : {}),\n })),\n );\n const next = JSON.stringify([pushed, inspection]);\n if (next !== fingerprint) {\n fingerprint = next;\n for (const listener of listeners) listener();\n }\n };\n\n const slot = kernel.defineSlot<RestrictionHolder>(SLOT, apply);\n const applyNow = (): void => {\n if (!disposed) apply(kernel.activeValues<RestrictionHolder>(SLOT));\n };\n\n return Object.freeze({\n generation: options.generation,\n register(definition: DoomToolRestrictionDefinition): DoomToolRestrictionHandle {\n if (disposed) throw new Error('The tool surface is disposed.');\n if (definition.source.trim().length === 0) throw new Error('A tool restriction needs a source.');\n const holder: RestrictionHolder = {\n source: definition.source,\n restrict: definition.restrict,\n controlledTools: definition.controlledTools ? [...new Set(definition.controlledTools)] : undefined,\n attribution: definition.attribution ? { ...definition.attribution } : undefined,\n };\n const registration = slot.contribute({ source: definition.source, layer: definition.layer, value: holder });\n applyNow();\n let removed = false;\n return Object.freeze({\n update(restrict: DoomToolRestriction): void {\n if (removed) return;\n holder.restrict = restrict;\n applyNow();\n },\n dispose(): void {\n if (removed) return;\n removed = true;\n registration.dispose();\n applyNow();\n },\n });\n },\n refresh(): void {\n applyNow();\n },\n setActiveLayers(layers: readonly string[]): void {\n if (disposed) return;\n void kernel.setActiveLayers(layers).catch(() => undefined);\n applyNow();\n },\n active(): readonly string[] {\n return disposed ? [] : [...(pushed ?? options.activeTools())];\n },\n inspect(): readonly DoomToolSurfaceEntry[] {\n return disposed\n ? []\n : inspection.map((entry) => ({\n ...entry,\n ...(entry.attribution ? { attribution: { ...entry.attribution } } : {}),\n }));\n },\n subscribe(listener: () => void): () => void {\n if (disposed) throw new Error('The tool surface is disposed.');\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n dispose(): void {\n if (disposed) return;\n disposed = true;\n listeners.clear();\n inspection = [];\n kernel.dispose();\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAM,OAAO;AAqBb,SAAS,SAAS,MAAyB,OAAmC;CAC5E,IAAI,KAAK,WAAW,MAAM,QAAQ,OAAO;CACzC,OAAO,KAAK,OAAO,MAAM,UAAU,SAAS,MAAM,MAAM;AAC1D;AAEA,SAAgB,sBAAsB,SAA+D;CACnG,MAAM,SAAS,iBAAiB,EAAE,cAAc,QAAQ,aAAa,CAAC;CACtE,IAAI;CACJ,IAAI,WAAW;CACf,IAAI,aAA8C,CAAC;CACnD,IAAI,cAAc;CAClB,MAAM,4BAAY,IAAI,IAAgB;CAEtC,MAAM,SAAS,YAAgD;EAC7D,MAAM,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,SAAS,CAAC,CAAC;EACjD,MAAM,QAAQ,IAAI,IAAI,SAAS;EAC/B,IAAI,UAA6B;EACjC,KAAK,MAAM,UAAU,SACnB,IAAI;GACF,MAAM,SAAS,OAAO,SAAS,SAAS,SAAS;GACjD,UAAU,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,SAAS,MAAM,IAAI,IAAI,CAAC;EACjE,SAAS,OAAO;GACd,UAAU,QAAQ,QAAQ,SAAS,CAAC,OAAO,iBAAiB,SAAS,IAAI,CAAC;GAC1E,QAAQ,UAAU,OAAO,QAAQ,KAAK;EACxC;EAGF,IAAI,CAAC,SADU,QAAQ,YACJ,GAAG,OAAO,GAAG,QAAQ,eAAe,CAAC,GAAG,OAAO,CAAC;EACnE,SAAS,CAAC,GAAG,OAAO;EACpB,aAAa,QAAQ,SAAS,YAC3B,OAAO,mBAAmB,CAAC,EAAA,CACzB,QAAQ,SAAS,MAAM,IAAI,IAAI,CAAC,CAAC,CACjC,KAAK,UAAU;GACd,QAAQ,OAAO;GACf;GACA,QAAQ,QAAQ,SAAS,IAAI;GAC7B,GAAI,OAAO,cAAc,EAAE,aAAa,EAAE,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;EACzE,EAAE,CACN;EACA,MAAM,OAAO,KAAK,UAAU,CAAC,QAAQ,UAAU,CAAC;EAChD,IAAI,SAAS,aAAa;GACxB,cAAc;GACd,KAAK,MAAM,YAAY,WAAW,SAAS;EAC7C;CACF;CAEA,MAAM,OAAO,OAAO,WAA8B,MAAM,KAAK;CAC7D,MAAM,iBAAuB;EAC3B,IAAI,CAAC,UAAU,MAAM,OAAO,aAAgC,IAAI,CAAC;CACnE;CAEA,OAAO,OAAO,OAAO;EACnB,YAAY,QAAQ;EACpB,SAAS,YAAsE;GAC7E,IAAI,UAAU,MAAM,IAAI,MAAM,+BAA+B;GAC7D,IAAI,WAAW,OAAO,KAAK,CAAC,CAAC,WAAW,GAAG,MAAM,IAAI,MAAM,oCAAoC;GAC/F,MAAM,SAA4B;IAChC,QAAQ,WAAW;IACnB,UAAU,WAAW;IACrB,iBAAiB,WAAW,kBAAkB,CAAC,GAAG,IAAI,IAAI,WAAW,eAAe,CAAC,IAAI,KAAA;IACzF,aAAa,WAAW,cAAc,EAAE,GAAG,WAAW,YAAY,IAAI,KAAA;GACxE;GACA,MAAM,eAAe,KAAK,WAAW;IAAE,QAAQ,WAAW;IAAQ,OAAO,WAAW;IAAO,OAAO;GAAO,CAAC;GAC1G,SAAS;GACT,IAAI,UAAU;GACd,OAAO,OAAO,OAAO;IACnB,OAAO,UAAqC;KAC1C,IAAI,SAAS;KACb,OAAO,WAAW;KAClB,SAAS;IACX;IACA,UAAgB;KACd,IAAI,SAAS;KACb,UAAU;KACV,aAAa,QAAQ;KACrB,SAAS;IACX;GACF,CAAC;EACH;EACA,UAAgB;GACd,SAAS;EACX;EACA,gBAAgB,QAAiC;GAC/C,IAAI,UAAU;GACd,OAAY,gBAAgB,MAAM,CAAC,CAAC,YAAY,KAAA,CAAS;GACzD,SAAS;EACX;EACA,SAA4B;GAC1B,OAAO,WAAW,CAAC,IAAI,CAAC,GAAI,UAAU,QAAQ,YAAY,CAAE;EAC9D;EACA,UAA2C;GACzC,OAAO,WACH,CAAC,IACD,WAAW,KAAK,WAAW;IACzB,GAAG;IACH,GAAI,MAAM,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,YAAY,EAAE,IAAI,CAAC;GACvE,EAAE;EACR;EACA,UAAU,UAAkC;GAC1C,IAAI,UAAU,MAAM,IAAI,MAAM,+BAA+B;GAC7D,UAAU,IAAI,QAAQ;GACtB,aAAa;IACX,UAAU,OAAO,QAAQ;GAC3B;EACF;EACA,UAAgB;GACd,IAAI,UAAU;GACd,WAAW;GACX,UAAU,MAAM;GAChB,aAAa,CAAC;GACd,OAAO,QAAQ;EACjB;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/services/traceContext/index.ts
|
|
2
|
+
const TRACEPARENT = /^00-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/u;
|
|
3
|
+
/** Accepts only a valid W3C traceparent and never forwards tracestate or baggage. */
|
|
4
|
+
function validatedTraceContext(value) {
|
|
5
|
+
if (typeof value !== "string") return void 0;
|
|
6
|
+
const match = TRACEPARENT.exec(value);
|
|
7
|
+
if (!match || /^0+$/u.test(match[1] ?? "") || /^0+$/u.test(match[2] ?? "")) return void 0;
|
|
8
|
+
return { traceparent: value };
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
exports.validatedTraceContext = validatedTraceContext;
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/traceContext/index.ts"],"sourcesContent":["import type { DoomTraceContext } from '@agimon-ai/doompi-telemetry';\n\nconst TRACEPARENT = /^00-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/u;\n\n/** Accepts only a valid W3C traceparent and never forwards tracestate or baggage. */\nexport function validatedTraceContext(value: unknown): DoomTraceContext | undefined {\n if (typeof value !== 'string') return undefined;\n const match = TRACEPARENT.exec(value);\n if (!match || /^0+$/u.test(match[1] ?? '') || /^0+$/u.test(match[2] ?? '')) return undefined;\n return { traceparent: value };\n}\n"],"mappings":";AAEA,MAAM,cAAc;;AAGpB,SAAgB,sBAAsB,OAA8C;CAClF,IAAI,OAAO,UAAU,UAAU,OAAO,KAAA;CACtC,MAAM,QAAQ,YAAY,KAAK,KAAK;CACpC,IAAI,CAAC,SAAS,QAAQ,KAAK,MAAM,MAAM,EAAE,KAAK,QAAQ,KAAK,MAAM,MAAM,EAAE,GAAG,OAAO,KAAA;CACnF,OAAO,EAAE,aAAa,MAAM;AAC9B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/services/traceContext/index.ts
|
|
2
|
+
const TRACEPARENT = /^00-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/u;
|
|
3
|
+
/** Accepts only a valid W3C traceparent and never forwards tracestate or baggage. */
|
|
4
|
+
function validatedTraceContext(value) {
|
|
5
|
+
if (typeof value !== "string") return void 0;
|
|
6
|
+
const match = TRACEPARENT.exec(value);
|
|
7
|
+
if (!match || /^0+$/u.test(match[1] ?? "") || /^0+$/u.test(match[2] ?? "")) return void 0;
|
|
8
|
+
return { traceparent: value };
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { validatedTraceContext };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/traceContext/index.ts"],"sourcesContent":["import type { DoomTraceContext } from '@agimon-ai/doompi-telemetry';\n\nconst TRACEPARENT = /^00-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/u;\n\n/** Accepts only a valid W3C traceparent and never forwards tracestate or baggage. */\nexport function validatedTraceContext(value: unknown): DoomTraceContext | undefined {\n if (typeof value !== 'string') return undefined;\n const match = TRACEPARENT.exec(value);\n if (!match || /^0+$/u.test(match[1] ?? '') || /^0+$/u.test(match[2] ?? '')) return undefined;\n return { traceparent: value };\n}\n"],"mappings":";AAEA,MAAM,cAAc;;AAGpB,SAAgB,sBAAsB,OAA8C;CAClF,IAAI,OAAO,UAAU,UAAU,OAAO,KAAA;CACtC,MAAM,QAAQ,YAAY,KAAK,KAAK;CACpC,IAAI,CAAC,SAAS,QAAQ,KAAK,MAAM,MAAM,EAAE,KAAK,QAAQ,KAAK,MAAM,MAAM,EAAE,GAAG,OAAO,KAAA;CACnF,OAAO,EAAE,aAAa,MAAM;AAC9B"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
//#region src/services/transcriptPages/index.ts
|
|
2
|
+
const PAGE_SIZE = 100;
|
|
3
|
+
function transcriptCursor(sessionId, lane, generation, seq) {
|
|
4
|
+
return Buffer.from(JSON.stringify([
|
|
5
|
+
sessionId,
|
|
6
|
+
lane,
|
|
7
|
+
generation,
|
|
8
|
+
seq
|
|
9
|
+
])).toString("base64url");
|
|
10
|
+
}
|
|
11
|
+
/** Branch-relative keyset reads never materialize the complete conversation. */
|
|
12
|
+
async function readTranscriptPage(runtime, request, generation, context) {
|
|
13
|
+
const limit = request.limit ?? PAGE_SIZE;
|
|
14
|
+
if (!Number.isInteger(limit) || limit < 1 || limit > PAGE_SIZE) throw new Error("Transcript page limit must be between 1 and 100");
|
|
15
|
+
const newer = request.direction === "newer";
|
|
16
|
+
if (request.direction !== void 0 && !["older", "newer"].includes(request.direction)) throw new Error("Invalid transcript direction");
|
|
17
|
+
let seq;
|
|
18
|
+
if (request.cursor !== void 0) {
|
|
19
|
+
if (typeof request.cursor !== "string" || request.cursor.length > 1024) throw new Error("Invalid transcript cursor");
|
|
20
|
+
let cursor;
|
|
21
|
+
try {
|
|
22
|
+
cursor = JSON.parse(Buffer.from(request.cursor, "base64url").toString("utf8"));
|
|
23
|
+
} catch {
|
|
24
|
+
throw new Error("Invalid transcript cursor");
|
|
25
|
+
}
|
|
26
|
+
if (!Array.isArray(cursor) || cursor.length !== 4 || cursor[0] !== runtime.sessionId || cursor[1] !== runtime.laneName || !Number.isSafeInteger(cursor[3]) || cursor[3] < 0) throw new Error("Invalid transcript cursor");
|
|
27
|
+
if (cursor[2] !== generation) throw new Error("STALE_TRANSCRIPT_CURSOR");
|
|
28
|
+
seq = cursor[3];
|
|
29
|
+
} else if (newer) throw new Error("Loading newer entries requires a cursor");
|
|
30
|
+
const tip = await runtime.lane.getTipId(context);
|
|
31
|
+
if (!tip) return {
|
|
32
|
+
entries: [],
|
|
33
|
+
context: [],
|
|
34
|
+
startCursor: null,
|
|
35
|
+
endCursor: null,
|
|
36
|
+
olderCursor: null,
|
|
37
|
+
newerCursor: null,
|
|
38
|
+
generation
|
|
39
|
+
};
|
|
40
|
+
const rows = await runtime.lane.findEntries({
|
|
41
|
+
start: tip,
|
|
42
|
+
order: newer ? "oldestFirst" : "newestFirst",
|
|
43
|
+
limit: limit + 1,
|
|
44
|
+
...seq === void 0 ? {} : { cursor: { seq } }
|
|
45
|
+
}, context);
|
|
46
|
+
const more = rows.length > limit;
|
|
47
|
+
const entries = rows.slice(0, limit);
|
|
48
|
+
if (!newer) entries.reverse();
|
|
49
|
+
const encode = (position) => transcriptCursor(runtime.sessionId, runtime.laneName, generation, position);
|
|
50
|
+
const first = entries[0];
|
|
51
|
+
const last = entries.at(-1);
|
|
52
|
+
const identities = first ? await runtime.lane.findEntries({
|
|
53
|
+
start: tip,
|
|
54
|
+
type: "custom",
|
|
55
|
+
customType: "doom-profile-identity",
|
|
56
|
+
order: "newestFirst",
|
|
57
|
+
limit: 1,
|
|
58
|
+
cursor: { seq: first.seq }
|
|
59
|
+
}, context) : [];
|
|
60
|
+
return {
|
|
61
|
+
entries: JSON.parse(JSON.stringify(entries)),
|
|
62
|
+
context: JSON.parse(JSON.stringify(identities)),
|
|
63
|
+
startCursor: first ? encode(first.seq) : null,
|
|
64
|
+
endCursor: last ? encode(last.seq) : null,
|
|
65
|
+
olderCursor: first && (newer ? seq !== void 0 : more) ? encode(first.seq) : null,
|
|
66
|
+
newerCursor: last && (newer ? more : seq !== void 0) ? encode(last.seq) : null,
|
|
67
|
+
generation
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
exports.readTranscriptPage = readTranscriptPage;
|
|
72
|
+
exports.transcriptCursor = transcriptCursor;
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/transcriptPages/index.ts"],"sourcesContent":["import type { Context } from '@earendil-works/chord';\n\nimport type { JsonValue, TranscriptPage, TranscriptPageRequest } from '../../exports/sessionProtocol';\nimport type { DirectHarnessRuntime } from '../../types/server/directHarnessRuntime';\n\nconst PAGE_SIZE = 100;\n\nexport function transcriptCursor(sessionId: string, lane: string, generation: number, seq: number): string {\n return Buffer.from(JSON.stringify([sessionId, lane, generation, seq])).toString('base64url');\n}\n\n/** Branch-relative keyset reads never materialize the complete conversation. */\nexport async function readTranscriptPage(\n runtime: Pick<DirectHarnessRuntime, 'sessionId' | 'laneName'> & {\n lane: Pick<DirectHarnessRuntime['lane'], 'getTipId' | 'findEntries'>;\n },\n request: TranscriptPageRequest,\n generation: number,\n context: Context,\n): Promise<Omit<TranscriptPage, 'revision' | 'drafts'>> {\n const limit = request.limit ?? PAGE_SIZE;\n if (!Number.isInteger(limit) || limit < 1 || limit > PAGE_SIZE)\n throw new Error('Transcript page limit must be between 1 and 100');\n const newer = request.direction === 'newer';\n if (request.direction !== undefined && !['older', 'newer'].includes(request.direction))\n throw new Error('Invalid transcript direction');\n let seq: number | undefined;\n if (request.cursor !== undefined) {\n if (typeof request.cursor !== 'string' || request.cursor.length > 1024)\n throw new Error('Invalid transcript cursor');\n let cursor: unknown;\n try {\n cursor = JSON.parse(Buffer.from(request.cursor, 'base64url').toString('utf8'));\n } catch {\n throw new Error('Invalid transcript cursor');\n }\n if (\n !Array.isArray(cursor) ||\n cursor.length !== 4 ||\n cursor[0] !== runtime.sessionId ||\n cursor[1] !== runtime.laneName ||\n !Number.isSafeInteger(cursor[3]) ||\n cursor[3] < 0\n )\n throw new Error('Invalid transcript cursor');\n if (cursor[2] !== generation) throw new Error('STALE_TRANSCRIPT_CURSOR');\n seq = cursor[3] as number;\n } else if (newer) throw new Error('Loading newer entries requires a cursor');\n const tip = await runtime.lane.getTipId(context);\n if (!tip)\n return {\n entries: [],\n context: [],\n startCursor: null,\n endCursor: null,\n olderCursor: null,\n newerCursor: null,\n generation,\n };\n const rows = await runtime.lane.findEntries(\n {\n start: tip,\n order: newer ? 'oldestFirst' : 'newestFirst',\n limit: limit + 1,\n ...(seq === undefined ? {} : { cursor: { seq } }),\n },\n context,\n );\n const more = rows.length > limit;\n const entries = rows.slice(0, limit);\n if (!newer) entries.reverse();\n const encode = (position: number): string =>\n transcriptCursor(runtime.sessionId, runtime.laneName, generation, position);\n const first = entries[0];\n const last = entries.at(-1);\n const identities = first\n ? await runtime.lane.findEntries(\n {\n start: tip,\n type: 'custom',\n customType: 'doom-profile-identity',\n order: 'newestFirst',\n limit: 1,\n cursor: { seq: first.seq },\n },\n context,\n )\n : [];\n return {\n entries: JSON.parse(JSON.stringify(entries)) as JsonValue[],\n context: JSON.parse(JSON.stringify(identities)) as JsonValue[],\n startCursor: first ? encode(first.seq) : null,\n endCursor: last ? encode(last.seq) : null,\n olderCursor: first && (newer ? seq !== undefined : more) ? encode(first.seq) : null,\n newerCursor: last && (newer ? more : seq !== undefined) ? encode(last.seq) : null,\n generation,\n };\n}\n"],"mappings":";AAKA,MAAM,YAAY;AAElB,SAAgB,iBAAiB,WAAmB,MAAc,YAAoB,KAAqB;CACzG,OAAO,OAAO,KAAK,KAAK,UAAU;EAAC;EAAW;EAAM;EAAY;CAAG,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW;AAC7F;;AAGA,eAAsB,mBACpB,SAGA,SACA,YACA,SACsD;CACtD,MAAM,QAAQ,QAAQ,SAAS;CAC/B,IAAI,CAAC,OAAO,UAAU,KAAK,KAAK,QAAQ,KAAK,QAAQ,WACnD,MAAM,IAAI,MAAM,iDAAiD;CACnE,MAAM,QAAQ,QAAQ,cAAc;CACpC,IAAI,QAAQ,cAAc,KAAA,KAAa,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,QAAQ,SAAS,GACnF,MAAM,IAAI,MAAM,8BAA8B;CAChD,IAAI;CACJ,IAAI,QAAQ,WAAW,KAAA,GAAW;EAChC,IAAI,OAAO,QAAQ,WAAW,YAAY,QAAQ,OAAO,SAAS,MAChE,MAAM,IAAI,MAAM,2BAA2B;EAC7C,IAAI;EACJ,IAAI;GACF,SAAS,KAAK,MAAM,OAAO,KAAK,QAAQ,QAAQ,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC;EAC/E,QAAQ;GACN,MAAM,IAAI,MAAM,2BAA2B;EAC7C;EACA,IACE,CAAC,MAAM,QAAQ,MAAM,KACrB,OAAO,WAAW,KAClB,OAAO,OAAO,QAAQ,aACtB,OAAO,OAAO,QAAQ,YACtB,CAAC,OAAO,cAAc,OAAO,EAAE,KAC/B,OAAO,KAAK,GAEZ,MAAM,IAAI,MAAM,2BAA2B;EAC7C,IAAI,OAAO,OAAO,YAAY,MAAM,IAAI,MAAM,yBAAyB;EACvE,MAAM,OAAO;CACf,OAAO,IAAI,OAAO,MAAM,IAAI,MAAM,yCAAyC;CAC3E,MAAM,MAAM,MAAM,QAAQ,KAAK,SAAS,OAAO;CAC/C,IAAI,CAAC,KACH,OAAO;EACL,SAAS,CAAC;EACV,SAAS,CAAC;EACV,aAAa;EACb,WAAW;EACX,aAAa;EACb,aAAa;EACb;CACF;CACF,MAAM,OAAO,MAAM,QAAQ,KAAK,YAC9B;EACE,OAAO;EACP,OAAO,QAAQ,gBAAgB;EAC/B,OAAO,QAAQ;EACf,GAAI,QAAQ,KAAA,IAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;CACjD,GACA,OACF;CACA,MAAM,OAAO,KAAK,SAAS;CAC3B,MAAM,UAAU,KAAK,MAAM,GAAG,KAAK;CACnC,IAAI,CAAC,OAAO,QAAQ,QAAQ;CAC5B,MAAM,UAAU,aACd,iBAAiB,QAAQ,WAAW,QAAQ,UAAU,YAAY,QAAQ;CAC5E,MAAM,QAAQ,QAAQ;CACtB,MAAM,OAAO,QAAQ,GAAG,EAAE;CAC1B,MAAM,aAAa,QACf,MAAM,QAAQ,KAAK,YACjB;EACE,OAAO;EACP,MAAM;EACN,YAAY;EACZ,OAAO;EACP,OAAO;EACP,QAAQ,EAAE,KAAK,MAAM,IAAI;CAC3B,GACA,OACF,IACA,CAAC;CACL,OAAO;EACL,SAAS,KAAK,MAAM,KAAK,UAAU,OAAO,CAAC;EAC3C,SAAS,KAAK,MAAM,KAAK,UAAU,UAAU,CAAC;EAC9C,aAAa,QAAQ,OAAO,MAAM,GAAG,IAAI;EACzC,WAAW,OAAO,OAAO,KAAK,GAAG,IAAI;EACrC,aAAa,UAAU,QAAQ,QAAQ,KAAA,IAAY,QAAQ,OAAO,MAAM,GAAG,IAAI;EAC/E,aAAa,SAAS,QAAQ,OAAO,QAAQ,KAAA,KAAa,OAAO,KAAK,GAAG,IAAI;EAC7E;CACF;AACF"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
//#region src/services/transcriptPages/index.ts
|
|
2
|
+
const PAGE_SIZE = 100;
|
|
3
|
+
function transcriptCursor(sessionId, lane, generation, seq) {
|
|
4
|
+
return Buffer.from(JSON.stringify([
|
|
5
|
+
sessionId,
|
|
6
|
+
lane,
|
|
7
|
+
generation,
|
|
8
|
+
seq
|
|
9
|
+
])).toString("base64url");
|
|
10
|
+
}
|
|
11
|
+
/** Branch-relative keyset reads never materialize the complete conversation. */
|
|
12
|
+
async function readTranscriptPage(runtime, request, generation, context) {
|
|
13
|
+
const limit = request.limit ?? PAGE_SIZE;
|
|
14
|
+
if (!Number.isInteger(limit) || limit < 1 || limit > PAGE_SIZE) throw new Error("Transcript page limit must be between 1 and 100");
|
|
15
|
+
const newer = request.direction === "newer";
|
|
16
|
+
if (request.direction !== void 0 && !["older", "newer"].includes(request.direction)) throw new Error("Invalid transcript direction");
|
|
17
|
+
let seq;
|
|
18
|
+
if (request.cursor !== void 0) {
|
|
19
|
+
if (typeof request.cursor !== "string" || request.cursor.length > 1024) throw new Error("Invalid transcript cursor");
|
|
20
|
+
let cursor;
|
|
21
|
+
try {
|
|
22
|
+
cursor = JSON.parse(Buffer.from(request.cursor, "base64url").toString("utf8"));
|
|
23
|
+
} catch {
|
|
24
|
+
throw new Error("Invalid transcript cursor");
|
|
25
|
+
}
|
|
26
|
+
if (!Array.isArray(cursor) || cursor.length !== 4 || cursor[0] !== runtime.sessionId || cursor[1] !== runtime.laneName || !Number.isSafeInteger(cursor[3]) || cursor[3] < 0) throw new Error("Invalid transcript cursor");
|
|
27
|
+
if (cursor[2] !== generation) throw new Error("STALE_TRANSCRIPT_CURSOR");
|
|
28
|
+
seq = cursor[3];
|
|
29
|
+
} else if (newer) throw new Error("Loading newer entries requires a cursor");
|
|
30
|
+
const tip = await runtime.lane.getTipId(context);
|
|
31
|
+
if (!tip) return {
|
|
32
|
+
entries: [],
|
|
33
|
+
context: [],
|
|
34
|
+
startCursor: null,
|
|
35
|
+
endCursor: null,
|
|
36
|
+
olderCursor: null,
|
|
37
|
+
newerCursor: null,
|
|
38
|
+
generation
|
|
39
|
+
};
|
|
40
|
+
const rows = await runtime.lane.findEntries({
|
|
41
|
+
start: tip,
|
|
42
|
+
order: newer ? "oldestFirst" : "newestFirst",
|
|
43
|
+
limit: limit + 1,
|
|
44
|
+
...seq === void 0 ? {} : { cursor: { seq } }
|
|
45
|
+
}, context);
|
|
46
|
+
const more = rows.length > limit;
|
|
47
|
+
const entries = rows.slice(0, limit);
|
|
48
|
+
if (!newer) entries.reverse();
|
|
49
|
+
const encode = (position) => transcriptCursor(runtime.sessionId, runtime.laneName, generation, position);
|
|
50
|
+
const first = entries[0];
|
|
51
|
+
const last = entries.at(-1);
|
|
52
|
+
const identities = first ? await runtime.lane.findEntries({
|
|
53
|
+
start: tip,
|
|
54
|
+
type: "custom",
|
|
55
|
+
customType: "doom-profile-identity",
|
|
56
|
+
order: "newestFirst",
|
|
57
|
+
limit: 1,
|
|
58
|
+
cursor: { seq: first.seq }
|
|
59
|
+
}, context) : [];
|
|
60
|
+
return {
|
|
61
|
+
entries: JSON.parse(JSON.stringify(entries)),
|
|
62
|
+
context: JSON.parse(JSON.stringify(identities)),
|
|
63
|
+
startCursor: first ? encode(first.seq) : null,
|
|
64
|
+
endCursor: last ? encode(last.seq) : null,
|
|
65
|
+
olderCursor: first && (newer ? seq !== void 0 : more) ? encode(first.seq) : null,
|
|
66
|
+
newerCursor: last && (newer ? more : seq !== void 0) ? encode(last.seq) : null,
|
|
67
|
+
generation
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { readTranscriptPage, transcriptCursor };
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/transcriptPages/index.ts"],"sourcesContent":["import type { Context } from '@earendil-works/chord';\n\nimport type { JsonValue, TranscriptPage, TranscriptPageRequest } from '../../exports/sessionProtocol';\nimport type { DirectHarnessRuntime } from '../../types/server/directHarnessRuntime';\n\nconst PAGE_SIZE = 100;\n\nexport function transcriptCursor(sessionId: string, lane: string, generation: number, seq: number): string {\n return Buffer.from(JSON.stringify([sessionId, lane, generation, seq])).toString('base64url');\n}\n\n/** Branch-relative keyset reads never materialize the complete conversation. */\nexport async function readTranscriptPage(\n runtime: Pick<DirectHarnessRuntime, 'sessionId' | 'laneName'> & {\n lane: Pick<DirectHarnessRuntime['lane'], 'getTipId' | 'findEntries'>;\n },\n request: TranscriptPageRequest,\n generation: number,\n context: Context,\n): Promise<Omit<TranscriptPage, 'revision' | 'drafts'>> {\n const limit = request.limit ?? PAGE_SIZE;\n if (!Number.isInteger(limit) || limit < 1 || limit > PAGE_SIZE)\n throw new Error('Transcript page limit must be between 1 and 100');\n const newer = request.direction === 'newer';\n if (request.direction !== undefined && !['older', 'newer'].includes(request.direction))\n throw new Error('Invalid transcript direction');\n let seq: number | undefined;\n if (request.cursor !== undefined) {\n if (typeof request.cursor !== 'string' || request.cursor.length > 1024)\n throw new Error('Invalid transcript cursor');\n let cursor: unknown;\n try {\n cursor = JSON.parse(Buffer.from(request.cursor, 'base64url').toString('utf8'));\n } catch {\n throw new Error('Invalid transcript cursor');\n }\n if (\n !Array.isArray(cursor) ||\n cursor.length !== 4 ||\n cursor[0] !== runtime.sessionId ||\n cursor[1] !== runtime.laneName ||\n !Number.isSafeInteger(cursor[3]) ||\n cursor[3] < 0\n )\n throw new Error('Invalid transcript cursor');\n if (cursor[2] !== generation) throw new Error('STALE_TRANSCRIPT_CURSOR');\n seq = cursor[3] as number;\n } else if (newer) throw new Error('Loading newer entries requires a cursor');\n const tip = await runtime.lane.getTipId(context);\n if (!tip)\n return {\n entries: [],\n context: [],\n startCursor: null,\n endCursor: null,\n olderCursor: null,\n newerCursor: null,\n generation,\n };\n const rows = await runtime.lane.findEntries(\n {\n start: tip,\n order: newer ? 'oldestFirst' : 'newestFirst',\n limit: limit + 1,\n ...(seq === undefined ? {} : { cursor: { seq } }),\n },\n context,\n );\n const more = rows.length > limit;\n const entries = rows.slice(0, limit);\n if (!newer) entries.reverse();\n const encode = (position: number): string =>\n transcriptCursor(runtime.sessionId, runtime.laneName, generation, position);\n const first = entries[0];\n const last = entries.at(-1);\n const identities = first\n ? await runtime.lane.findEntries(\n {\n start: tip,\n type: 'custom',\n customType: 'doom-profile-identity',\n order: 'newestFirst',\n limit: 1,\n cursor: { seq: first.seq },\n },\n context,\n )\n : [];\n return {\n entries: JSON.parse(JSON.stringify(entries)) as JsonValue[],\n context: JSON.parse(JSON.stringify(identities)) as JsonValue[],\n startCursor: first ? encode(first.seq) : null,\n endCursor: last ? encode(last.seq) : null,\n olderCursor: first && (newer ? seq !== undefined : more) ? encode(first.seq) : null,\n newerCursor: last && (newer ? more : seq !== undefined) ? encode(last.seq) : null,\n generation,\n };\n}\n"],"mappings":";AAKA,MAAM,YAAY;AAElB,SAAgB,iBAAiB,WAAmB,MAAc,YAAoB,KAAqB;CACzG,OAAO,OAAO,KAAK,KAAK,UAAU;EAAC;EAAW;EAAM;EAAY;CAAG,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW;AAC7F;;AAGA,eAAsB,mBACpB,SAGA,SACA,YACA,SACsD;CACtD,MAAM,QAAQ,QAAQ,SAAS;CAC/B,IAAI,CAAC,OAAO,UAAU,KAAK,KAAK,QAAQ,KAAK,QAAQ,WACnD,MAAM,IAAI,MAAM,iDAAiD;CACnE,MAAM,QAAQ,QAAQ,cAAc;CACpC,IAAI,QAAQ,cAAc,KAAA,KAAa,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,QAAQ,SAAS,GACnF,MAAM,IAAI,MAAM,8BAA8B;CAChD,IAAI;CACJ,IAAI,QAAQ,WAAW,KAAA,GAAW;EAChC,IAAI,OAAO,QAAQ,WAAW,YAAY,QAAQ,OAAO,SAAS,MAChE,MAAM,IAAI,MAAM,2BAA2B;EAC7C,IAAI;EACJ,IAAI;GACF,SAAS,KAAK,MAAM,OAAO,KAAK,QAAQ,QAAQ,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC;EAC/E,QAAQ;GACN,MAAM,IAAI,MAAM,2BAA2B;EAC7C;EACA,IACE,CAAC,MAAM,QAAQ,MAAM,KACrB,OAAO,WAAW,KAClB,OAAO,OAAO,QAAQ,aACtB,OAAO,OAAO,QAAQ,YACtB,CAAC,OAAO,cAAc,OAAO,EAAE,KAC/B,OAAO,KAAK,GAEZ,MAAM,IAAI,MAAM,2BAA2B;EAC7C,IAAI,OAAO,OAAO,YAAY,MAAM,IAAI,MAAM,yBAAyB;EACvE,MAAM,OAAO;CACf,OAAO,IAAI,OAAO,MAAM,IAAI,MAAM,yCAAyC;CAC3E,MAAM,MAAM,MAAM,QAAQ,KAAK,SAAS,OAAO;CAC/C,IAAI,CAAC,KACH,OAAO;EACL,SAAS,CAAC;EACV,SAAS,CAAC;EACV,aAAa;EACb,WAAW;EACX,aAAa;EACb,aAAa;EACb;CACF;CACF,MAAM,OAAO,MAAM,QAAQ,KAAK,YAC9B;EACE,OAAO;EACP,OAAO,QAAQ,gBAAgB;EAC/B,OAAO,QAAQ;EACf,GAAI,QAAQ,KAAA,IAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;CACjD,GACA,OACF;CACA,MAAM,OAAO,KAAK,SAAS;CAC3B,MAAM,UAAU,KAAK,MAAM,GAAG,KAAK;CACnC,IAAI,CAAC,OAAO,QAAQ,QAAQ;CAC5B,MAAM,UAAU,aACd,iBAAiB,QAAQ,WAAW,QAAQ,UAAU,YAAY,QAAQ;CAC5E,MAAM,QAAQ,QAAQ;CACtB,MAAM,OAAO,QAAQ,GAAG,EAAE;CAC1B,MAAM,aAAa,QACf,MAAM,QAAQ,KAAK,YACjB;EACE,OAAO;EACP,MAAM;EACN,YAAY;EACZ,OAAO;EACP,OAAO;EACP,QAAQ,EAAE,KAAK,MAAM,IAAI;CAC3B,GACA,OACF,IACA,CAAC;CACL,OAAO;EACL,SAAS,KAAK,MAAM,KAAK,UAAU,OAAO,CAAC;EAC3C,SAAS,KAAK,MAAM,KAAK,UAAU,UAAU,CAAC;EAC9C,aAAa,QAAQ,OAAO,MAAM,GAAG,IAAI;EACzC,WAAW,OAAO,OAAO,KAAK,GAAG,IAAI;EACrC,aAAa,UAAU,QAAQ,QAAQ,KAAA,IAAY,QAAQ,OAAO,MAAM,GAAG,IAAI;EAC/E,aAAa,SAAS,QAAQ,OAAO,QAAQ,KAAA,KAAa,OAAO,KAAK,GAAG,IAAI;EAC7E;CACF;AACF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
//#region src/services/tunnelOutput/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* A trycloudflare hostname, and nothing that merely ends near one.
|
|
4
|
+
*
|
|
5
|
+
* The trailing lookahead is the whole point. Without it,
|
|
6
|
+
* `https://evil.trycloudflare.com.attacker.tld` printed by a confused or
|
|
7
|
+
* hostile process would match, and the extracted value becomes the origin the
|
|
8
|
+
* guard then trusts for every subsequent request.
|
|
9
|
+
*/
|
|
10
|
+
const QUICK_TUNNEL_URL = /https:\/\/[a-z0-9][a-z0-9-]*(?:\.[a-z0-9-]+)*\.trycloudflare\.com(?![a-z0-9.-])/iu;
|
|
11
|
+
/** Cloudflare reports a connection registered; readiness waits for this as well as a URL. */
|
|
12
|
+
const CONNECTION_READY = /registered tunnel connection|connection .* registered/iu;
|
|
13
|
+
function tunnelTarget(port) {
|
|
14
|
+
return `http://127.0.0.1:${String(port)}`;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The cloudflared argument vector.
|
|
18
|
+
*
|
|
19
|
+
* `--url` is a flag on the `tunnel` command rather than on `run`, so it comes
|
|
20
|
+
* before the subcommand in both shapes. `--token-file` belongs to `run`.
|
|
21
|
+
*
|
|
22
|
+
* Flag placement here follows cloudflared's documented usage and local help.
|
|
23
|
+
*/
|
|
24
|
+
function tunnelArgs(config, port, tokenFile) {
|
|
25
|
+
const args = ["tunnel", "--no-autoupdate"];
|
|
26
|
+
if (config.kind === "named" && config.configFile !== void 0) args.push("--config", config.configFile);
|
|
27
|
+
args.push("--url", tunnelTarget(port));
|
|
28
|
+
if (config.kind === "quick") return args;
|
|
29
|
+
args.push("run");
|
|
30
|
+
if (tokenFile !== void 0 && tokenFile !== "") args.push("--token-file", tokenFile);
|
|
31
|
+
if (config.name !== void 0) args.push(config.name);
|
|
32
|
+
return args;
|
|
33
|
+
}
|
|
34
|
+
/** The public origin a quick tunnel announced, or undefined if this output does not carry one. */
|
|
35
|
+
function extractTunnelUrl(text) {
|
|
36
|
+
return QUICK_TUNNEL_URL.exec(text)?.[0].toLowerCase();
|
|
37
|
+
}
|
|
38
|
+
function mentionsRegisteredConnection(text) {
|
|
39
|
+
return CONNECTION_READY.test(text);
|
|
40
|
+
}
|
|
41
|
+
/** Operator-facing copy for a failure, with the cause appended by the caller. */
|
|
42
|
+
function describeTunnelFailure(failure) {
|
|
43
|
+
switch (failure) {
|
|
44
|
+
case "not_installed": return "cloudflared is not installed. Install it (brew install cloudflared) or set DOOMPI_CLOUDFLARED.";
|
|
45
|
+
case "spawn_failed": return "cloudflared could not be started.";
|
|
46
|
+
case "timeout": return "cloudflared did not report a public URL in time.";
|
|
47
|
+
case "self_test_failed": return "The tunnel came up unguarded and was closed immediately.";
|
|
48
|
+
case "exited": return "cloudflared stopped on its own.";
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//#endregion
|
|
52
|
+
exports.describeTunnelFailure = describeTunnelFailure;
|
|
53
|
+
exports.extractTunnelUrl = extractTunnelUrl;
|
|
54
|
+
exports.mentionsRegisteredConnection = mentionsRegisteredConnection;
|
|
55
|
+
exports.tunnelArgs = tunnelArgs;
|
|
56
|
+
exports.tunnelTarget = tunnelTarget;
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/tunnelOutput/index.ts"],"sourcesContent":["/**\n * Turning a tunnel configuration into a command line, and cloudflared's output\n * back into a public origin.\n *\n * The parsing half only exists for quick tunnels. A named tunnel is configured\n * with its hostname, so nothing has to be scraped and the origin is known\n * before the process starts. That difference is the strongest practical\n * argument for named mode: the banner cloudflared prints is an undocumented\n * detail of its logging, and a release that reformats it breaks quick mode\n * until the readiness deadline fires.\n */\n\nimport type { TunnelConfig, TunnelFailure } from '../../types/remote';\n\n/**\n * A trycloudflare hostname, and nothing that merely ends near one.\n *\n * The trailing lookahead is the whole point. Without it,\n * `https://evil.trycloudflare.com.attacker.tld` printed by a confused or\n * hostile process would match, and the extracted value becomes the origin the\n * guard then trusts for every subsequent request.\n */\nconst QUICK_TUNNEL_URL = /https:\\/\\/[a-z0-9][a-z0-9-]*(?:\\.[a-z0-9-]+)*\\.trycloudflare\\.com(?![a-z0-9.-])/iu;\n\n/** Cloudflare reports a connection registered; readiness waits for this as well as a URL. */\nconst CONNECTION_READY = /registered tunnel connection|connection .* registered/iu;\n\nexport function tunnelTarget(port: number): string {\n return `http://127.0.0.1:${String(port)}`;\n}\n\n/**\n * The cloudflared argument vector.\n *\n * `--url` is a flag on the `tunnel` command rather than on `run`, so it comes\n * before the subcommand in both shapes. `--token-file` belongs to `run`.\n *\n * Flag placement here follows cloudflared's documented usage and local help.\n */\nexport function tunnelArgs(config: TunnelConfig, port: number, tokenFile?: string): string[] {\n const args = ['tunnel', '--no-autoupdate'];\n if (config.kind === 'named' && config.configFile !== undefined) args.push('--config', config.configFile);\n args.push('--url', tunnelTarget(port));\n if (config.kind === 'quick') return args;\n args.push('run');\n if (tokenFile !== undefined && tokenFile !== '') args.push('--token-file', tokenFile);\n if (config.name !== undefined) args.push(config.name);\n return args;\n}\n\n/** The public origin a quick tunnel announced, or undefined if this output does not carry one. */\nexport function extractTunnelUrl(text: string): string | undefined {\n return QUICK_TUNNEL_URL.exec(text)?.[0].toLowerCase();\n}\n\nexport function mentionsRegisteredConnection(text: string): boolean {\n return CONNECTION_READY.test(text);\n}\n\n/** Operator-facing copy for a failure, with the cause appended by the caller. */\nexport function describeTunnelFailure(failure: TunnelFailure): string {\n switch (failure) {\n case 'not_installed':\n return 'cloudflared is not installed. Install it (brew install cloudflared) or set DOOMPI_CLOUDFLARED.';\n case 'spawn_failed':\n return 'cloudflared could not be started.';\n case 'timeout':\n return 'cloudflared did not report a public URL in time.';\n case 'self_test_failed':\n return 'The tunnel came up unguarded and was closed immediately.';\n case 'exited':\n return 'cloudflared stopped on its own.';\n }\n}\n"],"mappings":";;;;;;;;;AAsBA,MAAM,mBAAmB;;AAGzB,MAAM,mBAAmB;AAEzB,SAAgB,aAAa,MAAsB;CACjD,OAAO,oBAAoB,OAAO,IAAI;AACxC;;;;;;;;;AAUA,SAAgB,WAAW,QAAsB,MAAc,WAA8B;CAC3F,MAAM,OAAO,CAAC,UAAU,iBAAiB;CACzC,IAAI,OAAO,SAAS,WAAW,OAAO,eAAe,KAAA,GAAW,KAAK,KAAK,YAAY,OAAO,UAAU;CACvG,KAAK,KAAK,SAAS,aAAa,IAAI,CAAC;CACrC,IAAI,OAAO,SAAS,SAAS,OAAO;CACpC,KAAK,KAAK,KAAK;CACf,IAAI,cAAc,KAAA,KAAa,cAAc,IAAI,KAAK,KAAK,gBAAgB,SAAS;CACpF,IAAI,OAAO,SAAS,KAAA,GAAW,KAAK,KAAK,OAAO,IAAI;CACpD,OAAO;AACT;;AAGA,SAAgB,iBAAiB,MAAkC;CACjE,OAAO,iBAAiB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY;AACtD;AAEA,SAAgB,6BAA6B,MAAuB;CAClE,OAAO,iBAAiB,KAAK,IAAI;AACnC;;AAGA,SAAgB,sBAAsB,SAAgC;CACpE,QAAQ,SAAR;EACE,KAAK,iBACH,OAAO;EACT,KAAK,gBACH,OAAO;EACT,KAAK,WACH,OAAO;EACT,KAAK,oBACH,OAAO;EACT,KAAK,UACH,OAAO;CACX;AACF"}
|