@agimon-ai/po-core 0.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +7 -0
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/agentModel.cjs +4 -0
- package/dist/agentModel.d.mts +2 -0
- package/dist/agentModel.mjs +2 -0
- package/dist/apiContracts.cjs +2094 -0
- package/dist/apiContracts.cjs.map +1 -0
- package/dist/apiContracts.d.mts +1086 -0
- package/dist/apiContracts.d.mts.map +1 -0
- package/dist/apiContracts.mjs +2074 -0
- package/dist/apiContracts.mjs.map +1 -0
- package/dist/askUser.cjs +8 -0
- package/dist/askUser.d.mts +2 -0
- package/dist/askUser.mjs +2 -0
- package/dist/authorTools.cjs +5 -0
- package/dist/authorTools.d.mts +2 -0
- package/dist/authorTools.mjs +2 -0
- package/dist/backgroundWork.cjs +9 -0
- package/dist/backgroundWork.d.mts +2 -0
- package/dist/backgroundWork.mjs +2 -0
- package/dist/bundleAssetPolicy.cjs +5 -0
- package/dist/bundleAssetPolicy.d.mts +2 -0
- package/dist/bundleAssetPolicy.mjs +2 -0
- package/dist/childProcess.cjs +15 -0
- package/dist/childProcess.d.mts +2 -0
- package/dist/childProcess.mjs +2 -0
- package/dist/childSession.cjs +9 -0
- package/dist/childSession.d.mts +3 -0
- package/dist/childSession.mjs +3 -0
- package/dist/cockpitContainer.cjs +4 -0
- package/dist/cockpitContainer.d.mts +2 -0
- package/dist/cockpitContainer.mjs +2 -0
- package/dist/config.cjs +13 -0
- package/dist/config.d.mts +3 -0
- package/dist/config.mjs +2 -0
- package/dist/contextApi.cjs +12 -0
- package/dist/contextApi.d.mts +4 -0
- package/dist/contextApi.mjs +3 -0
- package/dist/contextContributions.cjs +7 -0
- package/dist/contextContributions.d.mts +3 -0
- package/dist/contextContributions.mjs +3 -0
- package/dist/contextDetail.cjs +65 -0
- package/dist/contextDetail.cjs.map +1 -0
- package/dist/contextDetail.d.mts +19 -0
- package/dist/contextDetail.d.mts.map +1 -0
- package/dist/contextDetail.mjs +64 -0
- package/dist/contextDetail.mjs.map +1 -0
- package/dist/contextDetailStore.cjs +96 -0
- package/dist/contextDetailStore.cjs.map +1 -0
- package/dist/contextDetailStore.d.mts +21 -0
- package/dist/contextDetailStore.d.mts.map +1 -0
- package/dist/contextDetailStore.mjs +87 -0
- package/dist/contextDetailStore.mjs.map +1 -0
- package/dist/contextProjection.cjs +121 -0
- package/dist/contextProjection.cjs.map +1 -0
- package/dist/contextProjection.d.mts +130 -0
- package/dist/contextProjection.d.mts.map +1 -0
- package/dist/contextProjection.mjs +117 -0
- package/dist/contextProjection.mjs.map +1 -0
- package/dist/cordisHost.cjs +13 -0
- package/dist/cordisHost.d.mts +2 -0
- package/dist/cordisHost.mjs +2 -0
- package/dist/delegation.cjs +18 -0
- package/dist/delegation.d.mts +2 -0
- package/dist/delegation.mjs +2 -0
- package/dist/doomPackage.cjs +61 -0
- package/dist/doomPackage.cjs.map +1 -0
- package/dist/doomPackage.d.mts +17 -0
- package/dist/doomPackage.d.mts.map +1 -0
- package/dist/doomPackage.mjs +54 -0
- package/dist/doomPackage.mjs.map +1 -0
- package/dist/executionBudget.cjs +232 -0
- package/dist/executionBudget.cjs.map +1 -0
- package/dist/executionBudget.d.mts +11 -0
- package/dist/executionBudget.d.mts.map +1 -0
- package/dist/executionBudget.mjs +226 -0
- package/dist/executionBudget.mjs.map +1 -0
- package/dist/extensionFile.cjs +19 -0
- package/dist/extensionFile.d.mts +3 -0
- package/dist/extensionFile.mjs +2 -0
- package/dist/footer.cjs +6 -0
- package/dist/footer.d.mts +2 -0
- package/dist/footer.mjs +2 -0
- package/dist/headless.cjs +16 -0
- package/dist/headless.d.mts +2 -0
- package/dist/headless.mjs +2 -0
- package/dist/headlessHub.cjs +1008 -0
- package/dist/headlessHub.cjs.map +1 -0
- package/dist/headlessHub.d.mts +176 -0
- package/dist/headlessHub.d.mts.map +1 -0
- package/dist/headlessHub.mjs +1005 -0
- package/dist/headlessHub.mjs.map +1 -0
- package/dist/headlessServer.cjs +956 -0
- package/dist/headlessServer.cjs.map +1 -0
- package/dist/headlessServer.d.mts +66 -0
- package/dist/headlessServer.d.mts.map +1 -0
- package/dist/headlessServer.mjs +949 -0
- package/dist/headlessServer.mjs.map +1 -0
- package/dist/headlessSessionHost.cjs +0 -0
- package/dist/headlessSessionHost.d.mts +89 -0
- package/dist/headlessSessionHost.d.mts.map +1 -0
- package/dist/headlessSessionHost.mjs +1 -0
- package/dist/headlessSessionManager.cjs +51 -0
- package/dist/headlessSessionManager.cjs.map +1 -0
- package/dist/headlessSessionManager.d.mts +6 -0
- package/dist/headlessSessionManager.d.mts.map +1 -0
- package/dist/headlessSessionManager.mjs +50 -0
- package/dist/headlessSessionManager.mjs.map +1 -0
- package/dist/help.cjs +24 -0
- package/dist/help.d.mts +3 -0
- package/dist/help.mjs +3 -0
- package/dist/history.cjs +25 -0
- package/dist/history.d.mts +10 -0
- package/dist/history.mjs +10 -0
- package/dist/historyOwnership.cjs +253 -0
- package/dist/historyOwnership.cjs.map +1 -0
- package/dist/historyOwnership.d.mts +23 -0
- package/dist/historyOwnership.d.mts.map +1 -0
- package/dist/historyOwnership.mjs +247 -0
- package/dist/historyOwnership.mjs.map +1 -0
- package/dist/hubChannel.cjs +4 -0
- package/dist/hubChannel.d.mts +2 -0
- package/dist/hubChannel.mjs +2 -0
- package/dist/index.cjs +44 -0
- package/dist/index.d.mts +6 -0
- package/dist/index.mjs +6 -0
- package/dist/json.cjs +6 -0
- package/dist/json.d.mts +2 -0
- package/dist/json.mjs +2 -0
- package/dist/jsonlSessionRepo.cjs +44 -0
- package/dist/jsonlSessionRepo.cjs.map +1 -0
- package/dist/jsonlSessionRepo.d.mts +7 -0
- package/dist/jsonlSessionRepo.d.mts.map +1 -0
- package/dist/jsonlSessionRepo.mjs +42 -0
- package/dist/jsonlSessionRepo.mjs.map +1 -0
- package/dist/kernel.cjs +3 -0
- package/dist/kernel.d.mts +3 -0
- package/dist/kernel.mjs +2 -0
- package/dist/leader.cjs +9 -0
- package/dist/leader.d.mts +2 -0
- package/dist/leader.mjs +2 -0
- package/dist/logSinkTelemetry.cjs +5 -0
- package/dist/logSinkTelemetry.d.mts +2 -0
- package/dist/logSinkTelemetry.mjs +2 -0
- package/dist/machineApi.cjs +92 -0
- package/dist/machineApi.cjs.map +1 -0
- package/dist/machineApi.d.mts +7 -0
- package/dist/machineApi.d.mts.map +1 -0
- package/dist/machineApi.mjs +88 -0
- package/dist/machineApi.mjs.map +1 -0
- package/dist/main.cjs +11 -0
- package/dist/main.d.mts +5 -0
- package/dist/main.mjs +4 -0
- package/dist/mcpFacet.cjs +9 -0
- package/dist/mcpFacet.d.mts +4 -0
- package/dist/mcpFacet.mjs +3 -0
- package/dist/mcpProjection.cjs +16 -0
- package/dist/mcpProjection.d.mts +2 -0
- package/dist/mcpProjection.mjs +2 -0
- package/dist/mcpSchemaCost.cjs +195 -0
- package/dist/mcpSchemaCost.cjs.map +1 -0
- package/dist/mcpSchemaCost.d.mts +35 -0
- package/dist/mcpSchemaCost.d.mts.map +1 -0
- package/dist/mcpSchemaCost.mjs +190 -0
- package/dist/mcpSchemaCost.mjs.map +1 -0
- package/dist/mcpSession.cjs +9 -0
- package/dist/mcpSession.d.mts +2 -0
- package/dist/mcpSession.mjs +2 -0
- package/dist/mcpStatus.cjs +7 -0
- package/dist/mcpStatus.d.mts +2 -0
- package/dist/mcpStatus.mjs +2 -0
- package/dist/mcpToolResolver.cjs +5 -0
- package/dist/mcpToolResolver.d.mts +2 -0
- package/dist/mcpToolResolver.mjs +2 -0
- package/dist/mcpWidget.cjs +0 -0
- package/dist/mcpWidget.d.mts +2 -0
- package/dist/mcpWidget.mjs +1 -0
- package/dist/moduleResolution.cjs +412 -0
- package/dist/moduleResolution.cjs.map +1 -0
- package/dist/moduleResolution.d.mts +72 -0
- package/dist/moduleResolution.d.mts.map +1 -0
- package/dist/moduleResolution.mjs +396 -0
- package/dist/moduleResolution.mjs.map +1 -0
- package/dist/narration.cjs +10 -0
- package/dist/narration.d.mts +2 -0
- package/dist/narration.mjs +2 -0
- package/dist/native.cjs +29 -0
- package/dist/native.d.mts +12 -0
- package/dist/native.mjs +8 -0
- package/dist/notification.cjs +17 -0
- package/dist/notification.d.mts +2 -0
- package/dist/notification.mjs +2 -0
- package/dist/packageApi.cjs +17 -0
- package/dist/packageApi.d.mts +3 -0
- package/dist/packageApi.mjs +3 -0
- package/dist/packageApiServer.cjs +196 -0
- package/dist/packageApiServer.cjs.map +1 -0
- package/dist/packageApiServer.d.mts +62 -0
- package/dist/packageApiServer.d.mts.map +1 -0
- package/dist/packageApiServer.mjs +194 -0
- package/dist/packageApiServer.mjs.map +1 -0
- package/dist/piSettings.cjs +20 -0
- package/dist/piSettings.d.mts +2 -0
- package/dist/piSettings.mjs +2 -0
- package/dist/pluginProtocol.cjs +10 -0
- package/dist/pluginProtocol.d.mts +2 -0
- package/dist/pluginProtocol.mjs +2 -0
- package/dist/profileIdentity.cjs +6 -0
- package/dist/profileIdentity.d.mts +2 -0
- package/dist/profileIdentity.mjs +2 -0
- package/dist/protocol.cjs +10 -0
- package/dist/protocol.d.mts +2 -0
- package/dist/protocol.mjs +2 -0
- package/dist/readiness.cjs +8 -0
- package/dist/readiness.d.mts +2 -0
- package/dist/readiness.mjs +2 -0
- package/dist/remoteApi.cjs +45 -0
- package/dist/remoteApi.cjs.map +1 -0
- package/dist/remoteApi.d.mts +7 -0
- package/dist/remoteApi.d.mts.map +1 -0
- package/dist/remoteApi.mjs +44 -0
- package/dist/remoteApi.mjs.map +1 -0
- package/dist/remoteRuntime.cjs +498 -0
- package/dist/remoteRuntime.cjs.map +1 -0
- package/dist/remoteRuntime.d.mts +36 -0
- package/dist/remoteRuntime.d.mts.map +1 -0
- package/dist/remoteRuntime.mjs +494 -0
- package/dist/remoteRuntime.mjs.map +1 -0
- package/dist/runtimeConfig.cjs +232 -0
- package/dist/runtimeConfig.cjs.map +1 -0
- package/dist/runtimeConfig.d.mts +313 -0
- package/dist/runtimeConfig.d.mts.map +1 -0
- package/dist/runtimeConfig.mjs +221 -0
- package/dist/runtimeConfig.mjs.map +1 -0
- package/dist/runtimeContextApi.cjs +64 -0
- package/dist/runtimeContextApi.cjs.map +1 -0
- package/dist/runtimeContextApi.d.mts +16 -0
- package/dist/runtimeContextApi.d.mts.map +1 -0
- package/dist/runtimeContextApi.mjs +62 -0
- package/dist/runtimeContextApi.mjs.map +1 -0
- package/dist/runtimeCordisHost.cjs +223 -0
- package/dist/runtimeCordisHost.cjs.map +1 -0
- package/dist/runtimeCordisHost.d.mts +78 -0
- package/dist/runtimeCordisHost.d.mts.map +1 -0
- package/dist/runtimeCordisHost.mjs +212 -0
- package/dist/runtimeCordisHost.mjs.map +1 -0
- package/dist/runtimeHeadlessSessionManager.cjs +0 -0
- package/dist/runtimeHeadlessSessionManager.d.mts +18 -0
- package/dist/runtimeHeadlessSessionManager.d.mts.map +1 -0
- package/dist/runtimeHeadlessSessionManager.mjs +1 -0
- package/dist/runtimeIdentity.cjs +26 -0
- package/dist/runtimeIdentity.cjs.map +1 -0
- package/dist/runtimeIdentity.d.mts +7 -0
- package/dist/runtimeIdentity.d.mts.map +1 -0
- package/dist/runtimeIdentity.mjs +21 -0
- package/dist/runtimeIdentity.mjs.map +1 -0
- package/dist/runtimeJson.cjs +46 -0
- package/dist/runtimeJson.cjs.map +1 -0
- package/dist/runtimeJson.d.mts +22 -0
- package/dist/runtimeJson.d.mts.map +1 -0
- package/dist/runtimeJson.mjs +39 -0
- package/dist/runtimeJson.mjs.map +1 -0
- package/dist/runtimeLogSinkTelemetry.cjs +102 -0
- package/dist/runtimeLogSinkTelemetry.cjs.map +1 -0
- package/dist/runtimeLogSinkTelemetry.d.mts +49 -0
- package/dist/runtimeLogSinkTelemetry.d.mts.map +1 -0
- package/dist/runtimeLogSinkTelemetry.mjs +99 -0
- package/dist/runtimeLogSinkTelemetry.mjs.map +1 -0
- package/dist/runtimePackages.cjs +120 -0
- package/dist/runtimePackages.cjs.map +1 -0
- package/dist/runtimePackages.d.mts +57 -0
- package/dist/runtimePackages.d.mts.map +1 -0
- package/dist/runtimePackages.mjs +110 -0
- package/dist/runtimePackages.mjs.map +1 -0
- package/dist/runtimePiSettings.cjs +257 -0
- package/dist/runtimePiSettings.cjs.map +1 -0
- package/dist/runtimePiSettings.d.mts +70 -0
- package/dist/runtimePiSettings.d.mts.map +1 -0
- package/dist/runtimePiSettings.mjs +235 -0
- package/dist/runtimePiSettings.mjs.map +1 -0
- package/dist/runtimeProtocol.cjs +228 -0
- package/dist/runtimeProtocol.cjs.map +1 -0
- package/dist/runtimeProtocol.d.mts +86 -0
- package/dist/runtimeProtocol.d.mts.map +1 -0
- package/dist/runtimeProtocol.mjs +219 -0
- package/dist/runtimeProtocol.mjs.map +1 -0
- package/dist/runtimeToolNames.cjs +51 -0
- package/dist/runtimeToolNames.cjs.map +1 -0
- package/dist/runtimeToolNames.d.mts +24 -0
- package/dist/runtimeToolNames.d.mts.map +1 -0
- package/dist/runtimeToolNames.mjs +49 -0
- package/dist/runtimeToolNames.mjs.map +1 -0
- package/dist/runtimeTransition.cjs +27 -0
- package/dist/runtimeTransition.cjs.map +1 -0
- package/dist/runtimeTransition.d.mts +114 -0
- package/dist/runtimeTransition.d.mts.map +1 -0
- package/dist/runtimeTransition.mjs +24 -0
- package/dist/runtimeTransition.mjs.map +1 -0
- package/dist/sandboxHarness.cjs +6 -0
- package/dist/sandboxHarness.d.mts +2 -0
- package/dist/sandboxHarness.mjs +2 -0
- package/dist/server.cjs +17 -0
- package/dist/server.d.mts +10 -0
- package/dist/server.mjs +7 -0
- package/dist/serverFacet.cjs +34 -0
- package/dist/serverFacet.d.mts +10 -0
- package/dist/serverFacet.mjs +9 -0
- package/dist/serverTelemetry.cjs +25 -0
- package/dist/serverTelemetry.cjs.map +1 -0
- package/dist/serverTelemetry.d.mts +12 -0
- package/dist/serverTelemetry.d.mts.map +1 -0
- package/dist/serverTelemetry.mjs +23 -0
- package/dist/serverTelemetry.mjs.map +1 -0
- package/dist/sessionFilesApi.cjs +96 -0
- package/dist/sessionFilesApi.cjs.map +1 -0
- package/dist/sessionFilesApi.d.mts +7 -0
- package/dist/sessionFilesApi.d.mts.map +1 -0
- package/dist/sessionFilesApi.mjs +91 -0
- package/dist/sessionFilesApi.mjs.map +1 -0
- package/dist/sessionMcp.cjs +6 -0
- package/dist/sessionMcp.d.mts +5 -0
- package/dist/sessionMcp.mjs +3 -0
- package/dist/sessionProtocol.cjs +8 -0
- package/dist/sessionProtocol.d.mts +3 -0
- package/dist/sessionProtocol.mjs +2 -0
- package/dist/skills.cjs +9 -0
- package/dist/skills.d.mts +2 -0
- package/dist/skills.mjs +2 -0
- package/dist/sqliteSessionStorage.cjs +168 -0
- package/dist/sqliteSessionStorage.cjs.map +1 -0
- package/dist/sqliteSessionStorage.d.mts +35 -0
- package/dist/sqliteSessionStorage.d.mts.map +1 -0
- package/dist/sqliteSessionStorage.mjs +158 -0
- package/dist/sqliteSessionStorage.mjs.map +1 -0
- package/dist/src/constants/authorTools.cjs +10 -0
- package/dist/src/constants/authorTools.cjs.map +1 -0
- package/dist/src/constants/authorTools.d.mts +6 -0
- package/dist/src/constants/authorTools.d.mts.map +1 -0
- package/dist/src/constants/authorTools.mjs +8 -0
- package/dist/src/constants/authorTools.mjs.map +1 -0
- package/dist/src/constants/contextApi.cjs +31 -0
- package/dist/src/constants/contextApi.cjs.map +1 -0
- package/dist/src/constants/contextApi.d.mts +23 -0
- package/dist/src/constants/contextApi.d.mts.map +1 -0
- package/dist/src/constants/contextApi.mjs +25 -0
- package/dist/src/constants/contextApi.mjs.map +1 -0
- package/dist/src/constants/nativeHost.cjs +56 -0
- package/dist/src/constants/nativeHost.cjs.map +1 -0
- package/dist/src/constants/nativeHost.d.mts +21 -0
- package/dist/src/constants/nativeHost.d.mts.map +1 -0
- package/dist/src/constants/nativeHost.mjs +53 -0
- package/dist/src/constants/nativeHost.mjs.map +1 -0
- package/dist/src/constants/remote.cjs +132 -0
- package/dist/src/constants/remote.cjs.map +1 -0
- package/dist/src/constants/remote.mjs +99 -0
- package/dist/src/constants/remote.mjs.map +1 -0
- package/dist/src/constants/sessionFiles.cjs +27 -0
- package/dist/src/constants/sessionFiles.cjs.map +1 -0
- package/dist/src/constants/sessionFiles.mjs +25 -0
- package/dist/src/constants/sessionFiles.mjs.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.cjs +12 -0
- package/dist/src/constants/voiceReloadHandoff.cjs.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.d.mts +7 -0
- package/dist/src/constants/voiceReloadHandoff.d.mts.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.mjs +9 -0
- package/dist/src/constants/voiceReloadHandoff.mjs.map +1 -0
- package/dist/src/constants/voiceTools.cjs +96 -0
- package/dist/src/constants/voiceTools.cjs.map +1 -0
- package/dist/src/constants/voiceTools.d.mts +58 -0
- package/dist/src/constants/voiceTools.d.mts.map +1 -0
- package/dist/src/constants/voiceTools.mjs +60 -0
- package/dist/src/constants/voiceTools.mjs.map +1 -0
- package/dist/src/extensions/extensionFile.cjs +140 -0
- package/dist/src/extensions/extensionFile.cjs.map +1 -0
- package/dist/src/extensions/extensionFile.d.mts +69 -0
- package/dist/src/extensions/extensionFile.d.mts.map +1 -0
- package/dist/src/extensions/extensionFile.mjs +124 -0
- package/dist/src/extensions/extensionFile.mjs.map +1 -0
- package/dist/src/extensions/serverPlugin.cjs +107 -0
- package/dist/src/extensions/serverPlugin.cjs.map +1 -0
- package/dist/src/extensions/serverPlugin.d.mts +5 -0
- package/dist/src/extensions/serverPlugin.d.mts.map +1 -0
- package/dist/src/extensions/serverPlugin.mjs +107 -0
- package/dist/src/extensions/serverPlugin.mjs.map +1 -0
- package/dist/src/extensions/webPlugin.cjs +136 -0
- package/dist/src/extensions/webPlugin.cjs.map +1 -0
- package/dist/src/extensions/webPlugin.d.mts +68 -0
- package/dist/src/extensions/webPlugin.d.mts.map +1 -0
- package/dist/src/extensions/webPlugin.mjs +114 -0
- package/dist/src/extensions/webPlugin.mjs.map +1 -0
- package/dist/src/pi/piSessionRuntime.cjs +625 -0
- package/dist/src/pi/piSessionRuntime.cjs.map +1 -0
- package/dist/src/pi/piSessionRuntime.d.mts +43 -0
- package/dist/src/pi/piSessionRuntime.d.mts.map +1 -0
- package/dist/src/pi/piSessionRuntime.mjs +624 -0
- package/dist/src/pi/piSessionRuntime.mjs.map +1 -0
- package/dist/src/pi/piWebSocketListener.cjs +115 -0
- package/dist/src/pi/piWebSocketListener.cjs.map +1 -0
- package/dist/src/pi/piWebSocketListener.mjs +115 -0
- package/dist/src/pi/piWebSocketListener.mjs.map +1 -0
- package/dist/src/schemas/agentModel.cjs +33 -0
- package/dist/src/schemas/agentModel.cjs.map +1 -0
- package/dist/src/schemas/agentModel.d.mts +26 -0
- package/dist/src/schemas/agentModel.d.mts.map +1 -0
- package/dist/src/schemas/agentModel.mjs +32 -0
- package/dist/src/schemas/agentModel.mjs.map +1 -0
- package/dist/src/schemas/apiContracts.d.mts +58 -0
- package/dist/src/schemas/apiContracts.d.mts.map +1 -0
- package/dist/src/schemas/askUser.cjs +42 -0
- package/dist/src/schemas/askUser.cjs.map +1 -0
- package/dist/src/schemas/askUser.d.mts +47 -0
- package/dist/src/schemas/askUser.d.mts.map +1 -0
- package/dist/src/schemas/askUser.mjs +37 -0
- package/dist/src/schemas/askUser.mjs.map +1 -0
- package/dist/src/schemas/backgroundWork.cjs +44 -0
- package/dist/src/schemas/backgroundWork.cjs.map +1 -0
- package/dist/src/schemas/backgroundWork.d.mts +76 -0
- package/dist/src/schemas/backgroundWork.d.mts.map +1 -0
- package/dist/src/schemas/backgroundWork.mjs +38 -0
- package/dist/src/schemas/backgroundWork.mjs.map +1 -0
- package/dist/src/schemas/childProcess.cjs +67 -0
- package/dist/src/schemas/childProcess.cjs.map +1 -0
- package/dist/src/schemas/childProcess.d.mts +30 -0
- package/dist/src/schemas/childProcess.d.mts.map +1 -0
- package/dist/src/schemas/childProcess.mjs +55 -0
- package/dist/src/schemas/childProcess.mjs.map +1 -0
- package/dist/src/schemas/cockpitContainer.cjs +31 -0
- package/dist/src/schemas/cockpitContainer.cjs.map +1 -0
- package/dist/src/schemas/cockpitContainer.d.mts +80 -0
- package/dist/src/schemas/cockpitContainer.d.mts.map +1 -0
- package/dist/src/schemas/cockpitContainer.mjs +30 -0
- package/dist/src/schemas/cockpitContainer.mjs.map +1 -0
- package/dist/src/schemas/contextContributions.cjs +17 -0
- package/dist/src/schemas/contextContributions.cjs.map +1 -0
- package/dist/src/schemas/contextContributions.d.mts +49 -0
- package/dist/src/schemas/contextContributions.d.mts.map +1 -0
- package/dist/src/schemas/contextContributions.mjs +15 -0
- package/dist/src/schemas/contextContributions.mjs.map +1 -0
- package/dist/src/schemas/delegation.cjs +91 -0
- package/dist/src/schemas/delegation.cjs.map +1 -0
- package/dist/src/schemas/delegation.d.mts +95 -0
- package/dist/src/schemas/delegation.d.mts.map +1 -0
- package/dist/src/schemas/delegation.mjs +76 -0
- package/dist/src/schemas/delegation.mjs.map +1 -0
- package/dist/src/schemas/extensionFile.d.mts +116 -0
- package/dist/src/schemas/extensionFile.d.mts.map +1 -0
- package/dist/src/schemas/footer.cjs +48 -0
- package/dist/src/schemas/footer.cjs.map +1 -0
- package/dist/src/schemas/footer.d.mts +48 -0
- package/dist/src/schemas/footer.d.mts.map +1 -0
- package/dist/src/schemas/footer.mjs +45 -0
- package/dist/src/schemas/footer.mjs.map +1 -0
- package/dist/src/schemas/headless.cjs +97 -0
- package/dist/src/schemas/headless.cjs.map +1 -0
- package/dist/src/schemas/headless.d.mts +472 -0
- package/dist/src/schemas/headless.d.mts.map +1 -0
- package/dist/src/schemas/headless.mjs +84 -0
- package/dist/src/schemas/headless.mjs.map +1 -0
- package/dist/src/schemas/help.cjs +281 -0
- package/dist/src/schemas/help.cjs.map +1 -0
- package/dist/src/schemas/help.d.mts +119 -0
- package/dist/src/schemas/help.d.mts.map +1 -0
- package/dist/src/schemas/help.mjs +262 -0
- package/dist/src/schemas/help.mjs.map +1 -0
- package/dist/src/schemas/hubChannel.cjs +20 -0
- package/dist/src/schemas/hubChannel.cjs.map +1 -0
- package/dist/src/schemas/hubChannel.d.mts +271 -0
- package/dist/src/schemas/hubChannel.d.mts.map +1 -0
- package/dist/src/schemas/hubChannel.mjs +19 -0
- package/dist/src/schemas/hubChannel.mjs.map +1 -0
- package/dist/src/schemas/leader.cjs +57 -0
- package/dist/src/schemas/leader.cjs.map +1 -0
- package/dist/src/schemas/leader.d.mts +107 -0
- package/dist/src/schemas/leader.d.mts.map +1 -0
- package/dist/src/schemas/leader.mjs +51 -0
- package/dist/src/schemas/leader.mjs.map +1 -0
- package/dist/src/schemas/mcpBundle.d.mts +13 -0
- package/dist/src/schemas/mcpBundle.d.mts.map +1 -0
- package/dist/src/schemas/mcpFacet.cjs +24 -0
- package/dist/src/schemas/mcpFacet.cjs.map +1 -0
- package/dist/src/schemas/mcpFacet.d.mts +91 -0
- package/dist/src/schemas/mcpFacet.d.mts.map +1 -0
- package/dist/src/schemas/mcpFacet.mjs +21 -0
- package/dist/src/schemas/mcpFacet.mjs.map +1 -0
- package/dist/src/schemas/mcpProjection.cjs +117 -0
- package/dist/src/schemas/mcpProjection.cjs.map +1 -0
- package/dist/src/schemas/mcpProjection.d.mts +124 -0
- package/dist/src/schemas/mcpProjection.d.mts.map +1 -0
- package/dist/src/schemas/mcpProjection.mjs +104 -0
- package/dist/src/schemas/mcpProjection.mjs.map +1 -0
- package/dist/src/schemas/mcpSession.cjs +57 -0
- package/dist/src/schemas/mcpSession.cjs.map +1 -0
- package/dist/src/schemas/mcpSession.d.mts +57 -0
- package/dist/src/schemas/mcpSession.d.mts.map +1 -0
- package/dist/src/schemas/mcpSession.mjs +51 -0
- package/dist/src/schemas/mcpSession.mjs.map +1 -0
- package/dist/src/schemas/mcpStatus.cjs +52 -0
- package/dist/src/schemas/mcpStatus.cjs.map +1 -0
- package/dist/src/schemas/mcpStatus.d.mts +73 -0
- package/dist/src/schemas/mcpStatus.d.mts.map +1 -0
- package/dist/src/schemas/mcpStatus.mjs +48 -0
- package/dist/src/schemas/mcpStatus.mjs.map +1 -0
- package/dist/src/schemas/mcpToolResolver.cjs +17 -0
- package/dist/src/schemas/mcpToolResolver.cjs.map +1 -0
- package/dist/src/schemas/mcpToolResolver.d.mts +24 -0
- package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -0
- package/dist/src/schemas/mcpToolResolver.mjs +15 -0
- package/dist/src/schemas/mcpToolResolver.mjs.map +1 -0
- package/dist/src/schemas/narration.cjs +54 -0
- package/dist/src/schemas/narration.cjs.map +1 -0
- package/dist/src/schemas/narration.d.mts +29 -0
- package/dist/src/schemas/narration.d.mts.map +1 -0
- package/dist/src/schemas/narration.mjs +47 -0
- package/dist/src/schemas/narration.mjs.map +1 -0
- package/dist/src/schemas/notification.cjs +122 -0
- package/dist/src/schemas/notification.cjs.map +1 -0
- package/dist/src/schemas/notification.d.mts +48 -0
- package/dist/src/schemas/notification.d.mts.map +1 -0
- package/dist/src/schemas/notification.mjs +108 -0
- package/dist/src/schemas/notification.mjs.map +1 -0
- package/dist/src/schemas/packageApi.cjs +76 -0
- package/dist/src/schemas/packageApi.cjs.map +1 -0
- package/dist/src/schemas/packageApi.d.mts +302 -0
- package/dist/src/schemas/packageApi.d.mts.map +1 -0
- package/dist/src/schemas/packageApi.mjs +66 -0
- package/dist/src/schemas/packageApi.mjs.map +1 -0
- package/dist/src/schemas/pluginContributions.cjs +19 -0
- package/dist/src/schemas/pluginContributions.cjs.map +1 -0
- package/dist/src/schemas/pluginContributions.d.mts +56 -0
- package/dist/src/schemas/pluginContributions.d.mts.map +1 -0
- package/dist/src/schemas/pluginContributions.mjs +18 -0
- package/dist/src/schemas/pluginContributions.mjs.map +1 -0
- package/dist/src/schemas/pluginProtocol.cjs +103 -0
- package/dist/src/schemas/pluginProtocol.cjs.map +1 -0
- package/dist/src/schemas/pluginProtocol.d.mts +70 -0
- package/dist/src/schemas/pluginProtocol.d.mts.map +1 -0
- package/dist/src/schemas/pluginProtocol.mjs +96 -0
- package/dist/src/schemas/pluginProtocol.mjs.map +1 -0
- package/dist/src/schemas/profileIdentity.cjs +67 -0
- package/dist/src/schemas/profileIdentity.cjs.map +1 -0
- package/dist/src/schemas/profileIdentity.d.mts +50 -0
- package/dist/src/schemas/profileIdentity.d.mts.map +1 -0
- package/dist/src/schemas/profileIdentity.mjs +64 -0
- package/dist/src/schemas/profileIdentity.mjs.map +1 -0
- package/dist/src/schemas/readiness.cjs +251 -0
- package/dist/src/schemas/readiness.cjs.map +1 -0
- package/dist/src/schemas/readiness.d.mts +84 -0
- package/dist/src/schemas/readiness.d.mts.map +1 -0
- package/dist/src/schemas/readiness.mjs +246 -0
- package/dist/src/schemas/readiness.mjs.map +1 -0
- package/dist/src/schemas/sandboxHarness.cjs +29 -0
- package/dist/src/schemas/sandboxHarness.cjs.map +1 -0
- package/dist/src/schemas/sandboxHarness.d.mts +39 -0
- package/dist/src/schemas/sandboxHarness.d.mts.map +1 -0
- package/dist/src/schemas/sandboxHarness.mjs +26 -0
- package/dist/src/schemas/sandboxHarness.mjs.map +1 -0
- package/dist/src/schemas/serverBundle.d.mts +19 -0
- package/dist/src/schemas/serverBundle.d.mts.map +1 -0
- package/dist/src/schemas/serverFacet.cjs +111 -0
- package/dist/src/schemas/serverFacet.cjs.map +1 -0
- package/dist/src/schemas/serverFacet.d.mts +152 -0
- package/dist/src/schemas/serverFacet.d.mts.map +1 -0
- package/dist/src/schemas/serverFacet.mjs +101 -0
- package/dist/src/schemas/serverFacet.mjs.map +1 -0
- package/dist/src/schemas/sessionMcpActivity.d.mts +47 -0
- package/dist/src/schemas/sessionMcpActivity.d.mts.map +1 -0
- package/dist/src/schemas/sessionProtocol.cjs +17 -0
- package/dist/src/schemas/sessionProtocol.cjs.map +1 -0
- package/dist/src/schemas/sessionProtocol.d.mts +313 -0
- package/dist/src/schemas/sessionProtocol.d.mts.map +1 -0
- package/dist/src/schemas/sessionProtocol.mjs +12 -0
- package/dist/src/schemas/sessionProtocol.mjs.map +1 -0
- package/dist/src/schemas/sessionUpdates.d.mts +34 -0
- package/dist/src/schemas/sessionUpdates.d.mts.map +1 -0
- package/dist/src/schemas/skills.cjs +115 -0
- package/dist/src/schemas/skills.cjs.map +1 -0
- package/dist/src/schemas/skills.d.mts +65 -0
- package/dist/src/schemas/skills.d.mts.map +1 -0
- package/dist/src/schemas/skills.mjs +109 -0
- package/dist/src/schemas/skills.mjs.map +1 -0
- package/dist/src/schemas/toolOverrides.cjs +17 -0
- package/dist/src/schemas/toolOverrides.cjs.map +1 -0
- package/dist/src/schemas/toolOverrides.d.mts +29 -0
- package/dist/src/schemas/toolOverrides.d.mts.map +1 -0
- package/dist/src/schemas/toolOverrides.mjs +15 -0
- package/dist/src/schemas/toolOverrides.mjs.map +1 -0
- package/dist/src/schemas/toolSurface.cjs +17 -0
- package/dist/src/schemas/toolSurface.cjs.map +1 -0
- package/dist/src/schemas/toolSurface.d.mts +70 -0
- package/dist/src/schemas/toolSurface.d.mts.map +1 -0
- package/dist/src/schemas/toolSurface.mjs +15 -0
- package/dist/src/schemas/toolSurface.mjs.map +1 -0
- package/dist/src/schemas/uiHub.cjs +17 -0
- package/dist/src/schemas/uiHub.cjs.map +1 -0
- package/dist/src/schemas/uiHub.d.mts +23 -0
- package/dist/src/schemas/uiHub.d.mts.map +1 -0
- package/dist/src/schemas/uiHub.mjs +15 -0
- package/dist/src/schemas/uiHub.mjs.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.cjs +78 -0
- package/dist/src/schemas/voiceReloadHandoff.cjs.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.d.mts +31 -0
- package/dist/src/schemas/voiceReloadHandoff.d.mts.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.mjs +75 -0
- package/dist/src/schemas/voiceReloadHandoff.mjs.map +1 -0
- package/dist/src/schemas/voiceTools.cjs +205 -0
- package/dist/src/schemas/voiceTools.cjs.map +1 -0
- package/dist/src/schemas/voiceTools.d.mts +120 -0
- package/dist/src/schemas/voiceTools.d.mts.map +1 -0
- package/dist/src/schemas/voiceTools.mjs +194 -0
- package/dist/src/schemas/voiceTools.mjs.map +1 -0
- package/dist/src/server/devProxyForward.cjs +141 -0
- package/dist/src/server/devProxyForward.cjs.map +1 -0
- package/dist/src/server/devProxyForward.mjs +139 -0
- package/dist/src/server/devProxyForward.mjs.map +1 -0
- package/dist/src/server/devProxyRoutes.cjs +97 -0
- package/dist/src/server/devProxyRoutes.cjs.map +1 -0
- package/dist/src/server/devProxyRoutes.mjs +97 -0
- package/dist/src/server/devProxyRoutes.mjs.map +1 -0
- package/dist/src/server/devProxySocket.cjs +93 -0
- package/dist/src/server/devProxySocket.cjs.map +1 -0
- package/dist/src/server/devProxySocket.d.mts +25 -0
- package/dist/src/server/devProxySocket.d.mts.map +1 -0
- package/dist/src/server/devProxySocket.mjs +93 -0
- package/dist/src/server/devProxySocket.mjs.map +1 -0
- package/dist/src/server/directHarnessRuntime.cjs +2387 -0
- package/dist/src/server/directHarnessRuntime.cjs.map +1 -0
- package/dist/src/server/directHarnessRuntime.d.mts +4 -0
- package/dist/src/server/directHarnessRuntime.mjs +2384 -0
- package/dist/src/server/directHarnessRuntime.mjs.map +1 -0
- package/dist/src/server/harnessErrorMessage.cjs +13 -0
- package/dist/src/server/harnessErrorMessage.cjs.map +1 -0
- package/dist/src/server/harnessErrorMessage.mjs +13 -0
- package/dist/src/server/harnessErrorMessage.mjs.map +1 -0
- package/dist/src/server/headlessProtocol.cjs +382 -0
- package/dist/src/server/headlessProtocol.cjs.map +1 -0
- package/dist/src/server/headlessProtocol.mjs +382 -0
- package/dist/src/server/headlessProtocol.mjs.map +1 -0
- package/dist/src/server/liveImport.cjs +37 -0
- package/dist/src/server/liveImport.cjs.map +1 -0
- package/dist/src/server/liveImport.d.mts +27 -0
- package/dist/src/server/liveImport.d.mts.map +1 -0
- package/dist/src/server/liveImport.mjs +34 -0
- package/dist/src/server/liveImport.mjs.map +1 -0
- package/dist/src/server/mcpBundleLoader.cjs +108 -0
- package/dist/src/server/mcpBundleLoader.cjs.map +1 -0
- package/dist/src/server/mcpBundleLoader.d.mts +46 -0
- package/dist/src/server/mcpBundleLoader.d.mts.map +1 -0
- package/dist/src/server/mcpBundleLoader.mjs +107 -0
- package/dist/src/server/mcpBundleLoader.mjs.map +1 -0
- package/dist/src/server/nativeChildTranscriptReader.cjs +20 -0
- package/dist/src/server/nativeChildTranscriptReader.cjs.map +1 -0
- package/dist/src/server/nativeChildTranscriptReader.mjs +18 -0
- package/dist/src/server/nativeChildTranscriptReader.mjs.map +1 -0
- package/dist/src/server/remoteRoutes.cjs +463 -0
- package/dist/src/server/remoteRoutes.cjs.map +1 -0
- package/dist/src/server/remoteRoutes.mjs +463 -0
- package/dist/src/server/remoteRoutes.mjs.map +1 -0
- package/dist/src/server/serverFacetLoader.cjs +214 -0
- package/dist/src/server/serverFacetLoader.cjs.map +1 -0
- package/dist/src/server/serverFacetLoader.d.mts +72 -0
- package/dist/src/server/serverFacetLoader.d.mts.map +1 -0
- package/dist/src/server/serverFacetLoader.mjs +212 -0
- package/dist/src/server/serverFacetLoader.mjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.cjs +585 -0
- package/dist/src/server/sessionMcpHandler.cjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.d.mts +50 -0
- package/dist/src/server/sessionMcpHandler.d.mts.map +1 -0
- package/dist/src/server/sessionMcpHandler.mjs +582 -0
- package/dist/src/server/sessionMcpHandler.mjs.map +1 -0
- package/dist/src/server/sessionMcpRoutes.cjs +809 -0
- package/dist/src/server/sessionMcpRoutes.cjs.map +1 -0
- package/dist/src/server/sessionMcpRoutes.mjs +804 -0
- package/dist/src/server/sessionMcpRoutes.mjs.map +1 -0
- package/dist/src/server/threadJournals.cjs +172 -0
- package/dist/src/server/threadJournals.cjs.map +1 -0
- package/dist/src/server/threadJournals.mjs +169 -0
- package/dist/src/server/threadJournals.mjs.map +1 -0
- package/dist/src/services/acpSessionUpdates/index.cjs +129 -0
- package/dist/src/services/acpSessionUpdates/index.cjs.map +1 -0
- package/dist/src/services/acpSessionUpdates/index.mjs +129 -0
- package/dist/src/services/acpSessionUpdates/index.mjs.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.cjs +60 -0
- package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.d.mts +24 -0
- package/dist/src/services/apiSurfaceAssert/index.d.mts.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.mjs +60 -0
- package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -0
- package/dist/src/services/bundlePublication/index.cjs +89 -0
- package/dist/src/services/bundlePublication/index.cjs.map +1 -0
- package/dist/src/services/bundlePublication/index.mjs +86 -0
- package/dist/src/services/bundlePublication/index.mjs.map +1 -0
- package/dist/src/services/contextApiUrls/index.cjs +53 -0
- package/dist/src/services/contextApiUrls/index.cjs.map +1 -0
- package/dist/src/services/contextApiUrls/index.d.mts +8 -0
- package/dist/src/services/contextApiUrls/index.d.mts.map +1 -0
- package/dist/src/services/contextApiUrls/index.mjs +52 -0
- package/dist/src/services/contextApiUrls/index.mjs.map +1 -0
- package/dist/src/services/contextContributions/index.cjs +79 -0
- package/dist/src/services/contextContributions/index.cjs.map +1 -0
- package/dist/src/services/contextContributions/index.d.mts +6 -0
- package/dist/src/services/contextContributions/index.d.mts.map +1 -0
- package/dist/src/services/contextContributions/index.mjs +79 -0
- package/dist/src/services/contextContributions/index.mjs.map +1 -0
- package/dist/src/services/contextUsage/index.cjs +27 -0
- package/dist/src/services/contextUsage/index.cjs.map +1 -0
- package/dist/src/services/contextUsage/index.mjs +25 -0
- package/dist/src/services/contextUsage/index.mjs.map +1 -0
- package/dist/src/services/devProxyPolicy/index.cjs +168 -0
- package/dist/src/services/devProxyPolicy/index.cjs.map +1 -0
- package/dist/src/services/devProxyPolicy/index.mjs +165 -0
- package/dist/src/services/devProxyPolicy/index.mjs.map +1 -0
- package/dist/src/services/devProxyStore/index.cjs +107 -0
- package/dist/src/services/devProxyStore/index.cjs.map +1 -0
- package/dist/src/services/devProxyStore/index.mjs +104 -0
- package/dist/src/services/devProxyStore/index.mjs.map +1 -0
- package/dist/src/services/deviceAuth/index.cjs +146 -0
- package/dist/src/services/deviceAuth/index.cjs.map +1 -0
- package/dist/src/services/deviceAuth/index.d.mts +9 -0
- package/dist/src/services/deviceAuth/index.d.mts.map +1 -0
- package/dist/src/services/deviceAuth/index.mjs +146 -0
- package/dist/src/services/deviceAuth/index.mjs.map +1 -0
- package/dist/src/services/deviceSessions/index.cjs +147 -0
- package/dist/src/services/deviceSessions/index.cjs.map +1 -0
- package/dist/src/services/deviceSessions/index.d.mts +18 -0
- package/dist/src/services/deviceSessions/index.d.mts.map +1 -0
- package/dist/src/services/deviceSessions/index.mjs +141 -0
- package/dist/src/services/deviceSessions/index.mjs.map +1 -0
- package/dist/src/services/deviceTrust/index.cjs +294 -0
- package/dist/src/services/deviceTrust/index.cjs.map +1 -0
- package/dist/src/services/deviceTrust/index.mjs +282 -0
- package/dist/src/services/deviceTrust/index.mjs.map +1 -0
- package/dist/src/services/durableNavigation/index.cjs +46 -0
- package/dist/src/services/durableNavigation/index.cjs.map +1 -0
- package/dist/src/services/durableNavigation/index.mjs +45 -0
- package/dist/src/services/durableNavigation/index.mjs.map +1 -0
- package/dist/src/services/headlessClient/index.cjs +126 -0
- package/dist/src/services/headlessClient/index.cjs.map +1 -0
- package/dist/src/services/headlessClient/index.mjs +126 -0
- package/dist/src/services/headlessClient/index.mjs.map +1 -0
- package/dist/src/services/historyImport/index.cjs +8 -0
- package/dist/src/services/historyImport/index.cjs.map +1 -0
- package/dist/src/services/historyImport/index.d.mts +68 -0
- package/dist/src/services/historyImport/index.d.mts.map +1 -0
- package/dist/src/services/historyImport/index.mjs +8 -0
- package/dist/src/services/historyImport/index.mjs.map +1 -0
- package/dist/src/services/hubChannelHarness/index.cjs +50 -0
- package/dist/src/services/hubChannelHarness/index.cjs.map +1 -0
- package/dist/src/services/hubChannelHarness/index.d.mts +17 -0
- package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -0
- package/dist/src/services/hubChannelHarness/index.mjs +50 -0
- package/dist/src/services/hubChannelHarness/index.mjs.map +1 -0
- package/dist/src/services/kernel/index.cjs +147 -0
- package/dist/src/services/kernel/index.cjs.map +1 -0
- package/dist/src/services/kernel/index.d.mts +9 -0
- package/dist/src/services/kernel/index.d.mts.map +1 -0
- package/dist/src/services/kernel/index.mjs +147 -0
- package/dist/src/services/kernel/index.mjs.map +1 -0
- package/dist/src/services/loginFlow/index.cjs +131 -0
- package/dist/src/services/loginFlow/index.cjs.map +1 -0
- package/dist/src/services/loginFlow/index.mjs +131 -0
- package/dist/src/services/loginFlow/index.mjs.map +1 -0
- package/dist/src/services/loopbackAddress/index.cjs +58 -0
- package/dist/src/services/loopbackAddress/index.cjs.map +1 -0
- package/dist/src/services/loopbackAddress/index.mjs +56 -0
- package/dist/src/services/loopbackAddress/index.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.cjs +134 -0
- package/dist/src/services/openSessionRegistry/index.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.d.mts +36 -0
- package/dist/src/services/openSessionRegistry/index.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/index.mjs +131 -0
- package/dist/src/services/openSessionRegistry/index.mjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.cjs +36 -0
- package/dist/src/services/packageApiHarness/index.cjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.d.mts +40 -0
- package/dist/src/services/packageApiHarness/index.d.mts.map +1 -0
- package/dist/src/services/packageApiHarness/index.mjs +36 -0
- package/dist/src/services/packageApiHarness/index.mjs.map +1 -0
- package/dist/src/services/packageResource/index.cjs +54 -0
- package/dist/src/services/packageResource/index.cjs.map +1 -0
- package/dist/src/services/packageResource/index.d.mts +26 -0
- package/dist/src/services/packageResource/index.d.mts.map +1 -0
- package/dist/src/services/packageResource/index.mjs +51 -0
- package/dist/src/services/packageResource/index.mjs.map +1 -0
- package/dist/src/services/pairingFlow/index.cjs +145 -0
- package/dist/src/services/pairingFlow/index.cjs.map +1 -0
- package/dist/src/services/pairingFlow/index.d.mts +44 -0
- package/dist/src/services/pairingFlow/index.d.mts.map +1 -0
- package/dist/src/services/pairingFlow/index.mjs +145 -0
- package/dist/src/services/pairingFlow/index.mjs.map +1 -0
- package/dist/src/services/pairingPage/index.cjs +450 -0
- package/dist/src/services/pairingPage/index.cjs.map +1 -0
- package/dist/src/services/pairingPage/index.mjs +447 -0
- package/dist/src/services/pairingPage/index.mjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.cjs +889 -0
- package/dist/src/services/piExtensionHost/index.cjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.mjs +885 -0
- package/dist/src/services/piExtensionHost/index.mjs.map +1 -0
- package/dist/src/services/piHelpTools/index.cjs +68 -0
- package/dist/src/services/piHelpTools/index.cjs.map +1 -0
- package/dist/src/services/piHelpTools/index.d.mts +10 -0
- package/dist/src/services/piHelpTools/index.d.mts.map +1 -0
- package/dist/src/services/piHelpTools/index.mjs +68 -0
- package/dist/src/services/piHelpTools/index.mjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.cjs +121 -0
- package/dist/src/services/piSessionEntries/index.cjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.mjs +117 -0
- package/dist/src/services/piSessionEntries/index.mjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.cjs +71 -0
- package/dist/src/services/pluginLifecycle/index.cjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.d.mts +8 -0
- package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -0
- package/dist/src/services/pluginLifecycle/index.mjs +71 -0
- package/dist/src/services/pluginLifecycle/index.mjs.map +1 -0
- package/dist/src/services/providerAuth/index.cjs +156 -0
- package/dist/src/services/providerAuth/index.cjs.map +1 -0
- package/dist/src/services/providerAuth/index.mjs +154 -0
- package/dist/src/services/providerAuth/index.mjs.map +1 -0
- package/dist/src/services/publicFileShares/index.cjs +192 -0
- package/dist/src/services/publicFileShares/index.cjs.map +1 -0
- package/dist/src/services/publicFileShares/index.d.mts +16 -0
- package/dist/src/services/publicFileShares/index.d.mts.map +1 -0
- package/dist/src/services/publicFileShares/index.mjs +188 -0
- package/dist/src/services/publicFileShares/index.mjs.map +1 -0
- package/dist/src/services/remoteAccess/index.cjs +567 -0
- package/dist/src/services/remoteAccess/index.cjs.map +1 -0
- package/dist/src/services/remoteAccess/index.d.mts +121 -0
- package/dist/src/services/remoteAccess/index.d.mts.map +1 -0
- package/dist/src/services/remoteAccess/index.mjs +567 -0
- package/dist/src/services/remoteAccess/index.mjs.map +1 -0
- package/dist/src/services/remoteAccessSettings/index.cjs +151 -0
- package/dist/src/services/remoteAccessSettings/index.cjs.map +1 -0
- package/dist/src/services/remoteAccessSettings/index.mjs +149 -0
- package/dist/src/services/remoteAccessSettings/index.mjs.map +1 -0
- package/dist/src/services/remoteAccessStore/index.cjs +197 -0
- package/dist/src/services/remoteAccessStore/index.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/index.mjs +192 -0
- package/dist/src/services/remoteAccessStore/index.mjs.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.cjs +200 -0
- package/dist/src/services/remoteGuardPolicy/index.cjs.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.d.mts +7 -0
- package/dist/src/services/remoteGuardPolicy/index.d.mts.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.mjs +196 -0
- package/dist/src/services/remoteGuardPolicy/index.mjs.map +1 -0
- package/dist/src/services/requestReceipts/index.cjs +167 -0
- package/dist/src/services/requestReceipts/index.cjs.map +1 -0
- package/dist/src/services/requestReceipts/index.d.mts +11 -0
- package/dist/src/services/requestReceipts/index.d.mts.map +1 -0
- package/dist/src/services/requestReceipts/index.mjs +167 -0
- package/dist/src/services/requestReceipts/index.mjs.map +1 -0
- package/dist/src/services/rpcTranscript/index.cjs +633 -0
- package/dist/src/services/rpcTranscript/index.cjs.map +1 -0
- package/dist/src/services/rpcTranscript/index.d.mts +50 -0
- package/dist/src/services/rpcTranscript/index.d.mts.map +1 -0
- package/dist/src/services/rpcTranscript/index.mjs +632 -0
- package/dist/src/services/rpcTranscript/index.mjs.map +1 -0
- package/dist/src/services/serverFacet/index.cjs +197 -0
- package/dist/src/services/serverFacet/index.cjs.map +1 -0
- package/dist/src/services/serverFacet/index.d.mts +31 -0
- package/dist/src/services/serverFacet/index.d.mts.map +1 -0
- package/dist/src/services/serverFacet/index.mjs +197 -0
- package/dist/src/services/serverFacet/index.mjs.map +1 -0
- package/dist/src/services/sessionAttachments/index.cjs +111 -0
- package/dist/src/services/sessionAttachments/index.cjs.map +1 -0
- package/dist/src/services/sessionAttachments/index.d.mts +11 -0
- package/dist/src/services/sessionAttachments/index.d.mts.map +1 -0
- package/dist/src/services/sessionAttachments/index.mjs +107 -0
- package/dist/src/services/sessionAttachments/index.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.cjs +46 -0
- package/dist/src/services/sessionGitStatus/index.cjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.mjs +46 -0
- package/dist/src/services/sessionGitStatus/index.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/type.d.mts +8 -0
- package/dist/src/services/sessionGitStatus/type.d.mts.map +1 -0
- package/dist/src/services/sessionMcpActivity/index.cjs +115 -0
- package/dist/src/services/sessionMcpActivity/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpActivity/index.mjs +111 -0
- package/dist/src/services/sessionMcpActivity/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.cjs +473 -0
- package/dist/src/services/sessionMcpAuthorization/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.d.mts +125 -0
- package/dist/src/services/sessionMcpAuthorization/index.d.mts.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.mjs +469 -0
- package/dist/src/services/sessionMcpAuthorization/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpConversations/index.cjs +217 -0
- package/dist/src/services/sessionMcpConversations/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpConversations/index.mjs +212 -0
- package/dist/src/services/sessionMcpConversations/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.cjs +86 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.mjs +83 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.mjs.map +1 -0
- package/dist/src/services/sessionPresentation/index.cjs +120 -0
- package/dist/src/services/sessionPresentation/index.cjs.map +1 -0
- package/dist/src/services/sessionPresentation/index.mjs +120 -0
- package/dist/src/services/sessionPresentation/index.mjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs +97 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.d.mts +28 -0
- package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.mjs +92 -0
- package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.cjs +67 -0
- package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.d.mts +14 -0
- package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.mjs +65 -0
- package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -0
- package/dist/src/services/toolCost/index.cjs +47 -0
- package/dist/src/services/toolCost/index.cjs.map +1 -0
- package/dist/src/services/toolCost/index.d.mts +38 -0
- package/dist/src/services/toolCost/index.d.mts.map +1 -0
- package/dist/src/services/toolCost/index.mjs +46 -0
- package/dist/src/services/toolCost/index.mjs.map +1 -0
- package/dist/src/services/toolOverrides/index.cjs +45 -0
- package/dist/src/services/toolOverrides/index.cjs.map +1 -0
- package/dist/src/services/toolOverrides/index.d.mts +6 -0
- package/dist/src/services/toolOverrides/index.d.mts.map +1 -0
- package/dist/src/services/toolOverrides/index.mjs +45 -0
- package/dist/src/services/toolOverrides/index.mjs.map +1 -0
- package/dist/src/services/toolPrompt/index.cjs +13 -0
- package/dist/src/services/toolPrompt/index.cjs.map +1 -0
- package/dist/src/services/toolPrompt/index.mjs +13 -0
- package/dist/src/services/toolPrompt/index.mjs.map +1 -0
- package/dist/src/services/toolSurface/index.cjs +134 -0
- package/dist/src/services/toolSurface/index.cjs.map +1 -0
- package/dist/src/services/toolSurface/index.d.mts +19 -0
- package/dist/src/services/toolSurface/index.d.mts.map +1 -0
- package/dist/src/services/toolSurface/index.mjs +134 -0
- package/dist/src/services/toolSurface/index.mjs.map +1 -0
- package/dist/src/services/traceContext/index.cjs +13 -0
- package/dist/src/services/traceContext/index.cjs.map +1 -0
- package/dist/src/services/traceContext/index.mjs +13 -0
- package/dist/src/services/traceContext/index.mjs.map +1 -0
- package/dist/src/services/transcriptPages/index.cjs +117 -0
- package/dist/src/services/transcriptPages/index.cjs.map +1 -0
- package/dist/src/services/transcriptPages/index.mjs +115 -0
- package/dist/src/services/transcriptPages/index.mjs.map +1 -0
- package/dist/src/services/tunnelOutput/index.cjs +58 -0
- package/dist/src/services/tunnelOutput/index.cjs.map +1 -0
- package/dist/src/services/tunnelOutput/index.mjs +54 -0
- package/dist/src/services/tunnelOutput/index.mjs.map +1 -0
- package/dist/src/services/tunnelProcess/index.cjs +487 -0
- package/dist/src/services/tunnelProcess/index.cjs.map +1 -0
- package/dist/src/services/tunnelProcess/index.mjs +481 -0
- package/dist/src/services/tunnelProcess/index.mjs.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.cjs +136 -0
- package/dist/src/services/voiceReloadHandoff/index.cjs.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.d.mts +34 -0
- package/dist/src/services/voiceReloadHandoff/index.d.mts.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.mjs +135 -0
- package/dist/src/services/voiceReloadHandoff/index.mjs.map +1 -0
- package/dist/src/services/voiceToolsContract/index.cjs +26 -0
- package/dist/src/services/voiceToolsContract/index.cjs.map +1 -0
- package/dist/src/services/voiceToolsContract/index.d.mts +76 -0
- package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -0
- package/dist/src/services/voiceToolsContract/index.mjs +24 -0
- package/dist/src/services/voiceToolsContract/index.mjs.map +1 -0
- package/dist/src/services/webauthn/index.cjs +262 -0
- package/dist/src/services/webauthn/index.cjs.map +1 -0
- package/dist/src/services/webauthn/index.d.mts +39 -0
- package/dist/src/services/webauthn/index.d.mts.map +1 -0
- package/dist/src/services/webauthn/index.mjs +262 -0
- package/dist/src/services/webauthn/index.mjs.map +1 -0
- package/dist/src/services/webauthnPolicy/index.cjs +174 -0
- package/dist/src/services/webauthnPolicy/index.cjs.map +1 -0
- package/dist/src/services/webauthnPolicy/index.d.mts +41 -0
- package/dist/src/services/webauthnPolicy/index.d.mts.map +1 -0
- package/dist/src/services/webauthnPolicy/index.mjs +167 -0
- package/dist/src/services/webauthnPolicy/index.mjs.map +1 -0
- package/dist/src/services/workspaceRegistry/index.cjs +187 -0
- package/dist/src/services/workspaceRegistry/index.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/index.d.mts +47 -0
- package/dist/src/services/workspaceRegistry/index.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/index.mjs +179 -0
- package/dist/src/services/workspaceRegistry/index.mjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +466 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +36 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +457 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +28 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +1 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +25 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +1 -0
- package/dist/src/systems/child/services/childSession/index.cjs +219 -0
- package/dist/src/systems/child/services/childSession/index.cjs.map +1 -0
- package/dist/src/systems/child/services/childSession/index.d.mts +14 -0
- package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -0
- package/dist/src/systems/child/services/childSession/index.mjs +219 -0
- package/dist/src/systems/child/services/childSession/index.mjs.map +1 -0
- package/dist/src/systems/child/types/childSession.cjs +21 -0
- package/dist/src/systems/child/types/childSession.cjs.map +1 -0
- package/dist/src/systems/child/types/childSession.d.mts +182 -0
- package/dist/src/systems/child/types/childSession.d.mts.map +1 -0
- package/dist/src/systems/child/types/childSession.mjs +17 -0
- package/dist/src/systems/child/types/childSession.mjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.cjs +597 -0
- package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.d.mts +116 -0
- package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.mjs +595 -0
- package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs +1668 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +20 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs +1663 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -0
- package/dist/src/systems/main/types/headlessHost.d.mts +37 -0
- package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.cjs +73 -0
- package/dist/src/testing/pi/extensionScenarios.cjs.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.d.mts +41 -0
- package/dist/src/testing/pi/extensionScenarios.d.mts.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.mjs +73 -0
- package/dist/src/testing/pi/extensionScenarios.mjs.map +1 -0
- package/dist/src/testing/pi/testHost.cjs +399 -0
- package/dist/src/testing/pi/testHost.cjs.map +1 -0
- package/dist/src/testing/pi/testHost.d.mts +160 -0
- package/dist/src/testing/pi/testHost.d.mts.map +1 -0
- package/dist/src/testing/pi/testHost.mjs +399 -0
- package/dist/src/testing/pi/testHost.mjs.map +1 -0
- package/dist/src/types/config.d.mts +20 -0
- package/dist/src/types/config.d.mts.map +1 -0
- package/dist/src/types/kernel.d.mts +69 -0
- package/dist/src/types/kernel.d.mts.map +1 -0
- package/dist/src/types/remote.d.mts +152 -0
- package/dist/src/types/remote.d.mts.map +1 -0
- package/dist/src/types/server/directHarnessRuntime.d.mts +526 -0
- package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -0
- package/dist/src/types/server/session.d.mts +5 -0
- package/dist/src/types/server/session.d.mts.map +1 -0
- package/dist/src/types/server/sessionToolSurface.d.mts +44 -0
- package/dist/src/types/server/sessionToolSurface.d.mts.map +1 -0
- package/dist/src/web/models/globalStore.cjs +23 -0
- package/dist/src/web/models/globalStore.cjs.map +1 -0
- package/dist/src/web/models/globalStore.d.mts +6 -0
- package/dist/src/web/models/globalStore.d.mts.map +1 -0
- package/dist/src/web/models/globalStore.mjs +23 -0
- package/dist/src/web/models/globalStore.mjs.map +1 -0
- package/dist/src/web/models/sessionStore.cjs +56 -0
- package/dist/src/web/models/sessionStore.cjs.map +1 -0
- package/dist/src/web/models/sessionStore.d.mts +14 -0
- package/dist/src/web/models/sessionStore.d.mts.map +1 -0
- package/dist/src/web/models/sessionStore.mjs +56 -0
- package/dist/src/web/models/sessionStore.mjs.map +1 -0
- package/dist/src/web/models/workspaceStore.cjs +50 -0
- package/dist/src/web/models/workspaceStore.cjs.map +1 -0
- package/dist/src/web/models/workspaceStore.d.mts +18 -0
- package/dist/src/web/models/workspaceStore.d.mts.map +1 -0
- package/dist/src/web/models/workspaceStore.mjs +50 -0
- package/dist/src/web/models/workspaceStore.mjs.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.cjs +20 -0
- package/dist/src/web/schemas/bundleAssetPolicy.cjs.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.d.mts +10 -0
- package/dist/src/web/schemas/bundleAssetPolicy.d.mts.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.mjs +18 -0
- package/dist/src/web/schemas/bundleAssetPolicy.mjs.map +1 -0
- package/dist/src/web/schemas/template.cjs +35 -0
- package/dist/src/web/schemas/template.cjs.map +1 -0
- package/dist/src/web/schemas/template.d.mts +9 -0
- package/dist/src/web/schemas/template.d.mts.map +1 -0
- package/dist/src/web/schemas/template.mjs +34 -0
- package/dist/src/web/schemas/template.mjs.map +1 -0
- package/dist/src/web/services/apiClient/index.cjs +156 -0
- package/dist/src/web/services/apiClient/index.cjs.map +1 -0
- package/dist/src/web/services/apiClient/index.d.mts +152 -0
- package/dist/src/web/services/apiClient/index.d.mts.map +1 -0
- package/dist/src/web/services/apiClient/index.mjs +154 -0
- package/dist/src/web/services/apiClient/index.mjs.map +1 -0
- package/dist/src/web/services/apiPaths/index.cjs +83 -0
- package/dist/src/web/services/apiPaths/index.cjs.map +1 -0
- package/dist/src/web/services/apiPaths/index.d.mts +81 -0
- package/dist/src/web/services/apiPaths/index.d.mts.map +1 -0
- package/dist/src/web/services/apiPaths/index.mjs +78 -0
- package/dist/src/web/services/apiPaths/index.mjs.map +1 -0
- package/dist/src/web/services/apiRoutes/index.cjs +47 -0
- package/dist/src/web/services/apiRoutes/index.cjs.map +1 -0
- package/dist/src/web/services/apiRoutes/index.d.mts +21 -0
- package/dist/src/web/services/apiRoutes/index.d.mts.map +1 -0
- package/dist/src/web/services/apiRoutes/index.mjs +43 -0
- package/dist/src/web/services/apiRoutes/index.mjs.map +1 -0
- package/dist/src/web/services/mcpWidget.cjs +9 -0
- package/dist/src/web/services/mcpWidget.cjs.map +1 -0
- package/dist/src/web/services/mcpWidget.d.mts +6 -0
- package/dist/src/web/services/mcpWidget.d.mts.map +1 -0
- package/dist/src/web/services/mcpWidget.mjs +9 -0
- package/dist/src/web/services/mcpWidget.mjs.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.cjs +70 -0
- package/dist/src/web/services/sessionRegistry/index.cjs.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.d.mts +29 -0
- package/dist/src/web/services/sessionRegistry/index.d.mts.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.mjs +66 -0
- package/dist/src/web/services/sessionRegistry/index.mjs.map +1 -0
- package/dist/src/web/services/testing/channels.cjs +11 -0
- package/dist/src/web/services/testing/channels.cjs.map +1 -0
- package/dist/src/web/services/testing/channels.d.mts +8 -0
- package/dist/src/web/services/testing/channels.d.mts.map +1 -0
- package/dist/src/web/services/testing/channels.mjs +11 -0
- package/dist/src/web/services/testing/channels.mjs.map +1 -0
- package/dist/src/web/services/testing/index.cjs +27 -0
- package/dist/src/web/services/testing/index.cjs.map +1 -0
- package/dist/src/web/services/testing/index.d.mts +31 -0
- package/dist/src/web/services/testing/index.d.mts.map +1 -0
- package/dist/src/web/services/testing/index.mjs +27 -0
- package/dist/src/web/services/testing/index.mjs.map +1 -0
- package/dist/src/web/services/testing/rpcStub.cjs +58 -0
- package/dist/src/web/services/testing/rpcStub.cjs.map +1 -0
- package/dist/src/web/services/testing/rpcStub.d.mts +37 -0
- package/dist/src/web/services/testing/rpcStub.d.mts.map +1 -0
- package/dist/src/web/services/testing/rpcStub.mjs +58 -0
- package/dist/src/web/services/testing/rpcStub.mjs.map +1 -0
- package/dist/src/web/services/testing/slotProps.cjs +97 -0
- package/dist/src/web/services/testing/slotProps.cjs.map +1 -0
- package/dist/src/web/services/testing/slotProps.d.mts +69 -0
- package/dist/src/web/services/testing/slotProps.d.mts.map +1 -0
- package/dist/src/web/services/testing/slotProps.mjs +96 -0
- package/dist/src/web/services/testing/slotProps.mjs.map +1 -0
- package/dist/src/web/services/testing/templateRail.cjs +156 -0
- package/dist/src/web/services/testing/templateRail.cjs.map +1 -0
- package/dist/src/web/services/testing/templateRail.d.mts +32 -0
- package/dist/src/web/services/testing/templateRail.d.mts.map +1 -0
- package/dist/src/web/services/testing/templateRail.mjs +154 -0
- package/dist/src/web/services/testing/templateRail.mjs.map +1 -0
- package/dist/src/web/services/toolResult/index.cjs +30 -0
- package/dist/src/web/services/toolResult/index.cjs.map +1 -0
- package/dist/src/web/services/toolResult/index.d.mts +14 -0
- package/dist/src/web/services/toolResult/index.d.mts.map +1 -0
- package/dist/src/web/services/toolResult/index.mjs +29 -0
- package/dist/src/web/services/toolResult/index.mjs.map +1 -0
- package/dist/src/web/types/extensionFile.d.mts +62 -0
- package/dist/src/web/types/extensionFile.d.mts.map +1 -0
- package/dist/src/web/types/mcpWidget.d.mts +14 -0
- package/dist/src/web/types/mcpWidget.d.mts.map +1 -0
- package/dist/src/web/types/modelContext.d.mts +43 -0
- package/dist/src/web/types/modelContext.d.mts.map +1 -0
- package/dist/src/web/types/nativeTemplate.d.mts +29 -0
- package/dist/src/web/types/nativeTemplate.d.mts.map +1 -0
- package/dist/src/web/types/sessionRegistry.d.mts +46 -0
- package/dist/src/web/types/sessionRegistry.d.mts.map +1 -0
- package/dist/src/web/types/template.d.mts +135 -0
- package/dist/src/web/types/template.d.mts.map +1 -0
- package/dist/src/web/types/webPlugin.d.mts +915 -0
- package/dist/src/web/types/webPlugin.d.mts.map +1 -0
- package/dist/terminalPiChildSessionService.cjs +324 -0
- package/dist/terminalPiChildSessionService.cjs.map +1 -0
- package/dist/terminalPiChildSessionService.d.mts +46 -0
- package/dist/terminalPiChildSessionService.d.mts.map +1 -0
- package/dist/terminalPiChildSessionService.mjs +318 -0
- package/dist/terminalPiChildSessionService.mjs.map +1 -0
- package/dist/testing.cjs +11 -0
- package/dist/testing.d.mts +6 -0
- package/dist/testing.mjs +6 -0
- package/dist/toolInventory.cjs +136 -0
- package/dist/toolInventory.cjs.map +1 -0
- package/dist/toolInventory.d.mts +66 -0
- package/dist/toolInventory.d.mts.map +1 -0
- package/dist/toolInventory.mjs +133 -0
- package/dist/toolInventory.mjs.map +1 -0
- package/dist/toolNames.cjs +4 -0
- package/dist/toolNames.d.mts +2 -0
- package/dist/toolNames.mjs +2 -0
- package/dist/toolOverrides.cjs +7 -0
- package/dist/toolOverrides.d.mts +3 -0
- package/dist/toolOverrides.mjs +3 -0
- package/dist/toolSurface.cjs +7 -0
- package/dist/toolSurface.d.mts +3 -0
- package/dist/toolSurface.mjs +3 -0
- package/dist/transition.cjs +5 -0
- package/dist/transition.d.cjs +5 -0
- package/dist/transition.d.mts +2 -0
- package/dist/transition.mjs +2 -0
- package/dist/transitionClassifier.cjs +112 -0
- package/dist/transitionClassifier.cjs.map +1 -0
- package/dist/transitionClassifier.d.mts +18 -0
- package/dist/transitionClassifier.d.mts.map +1 -0
- package/dist/transitionClassifier.mjs +111 -0
- package/dist/transitionClassifier.mjs.map +1 -0
- package/dist/transitionCoordinator.cjs +131 -0
- package/dist/transitionCoordinator.cjs.map +1 -0
- package/dist/transitionCoordinator.d.mts +16 -0
- package/dist/transitionCoordinator.d.mts.map +1 -0
- package/dist/transitionCoordinator.mjs +130 -0
- package/dist/transitionCoordinator.mjs.map +1 -0
- package/dist/typesContextApi.cjs +0 -0
- package/dist/typesContextApi.d.mts +79 -0
- package/dist/typesContextApi.d.mts.map +1 -0
- package/dist/typesContextApi.mjs +1 -0
- package/dist/uiHub.cjs +5 -0
- package/dist/uiHub.d.mts +2 -0
- package/dist/uiHub.mjs +2 -0
- package/dist/v3Export.cjs +10 -0
- package/dist/v3Export.cjs.map +1 -0
- package/dist/v3Export.d.mts +35 -0
- package/dist/v3Export.d.mts.map +1 -0
- package/dist/v3Export.mjs +9 -0
- package/dist/v3Export.mjs.map +1 -0
- package/dist/voiceReloadHandoff.cjs +14 -0
- package/dist/voiceReloadHandoff.d.mts +4 -0
- package/dist/voiceReloadHandoff.mjs +4 -0
- package/dist/voiceTools.cjs +56 -0
- package/dist/voiceTools.d.mts +4 -0
- package/dist/voiceTools.mjs +4 -0
- package/dist/web.cjs +65 -0
- package/dist/web.d.mts +20 -0
- package/dist/web.mjs +13 -0
- package/dist/webCompositions.cjs +181 -0
- package/dist/webCompositions.cjs.map +1 -0
- package/dist/webCompositions.d.mts +79 -0
- package/dist/webCompositions.d.mts.map +1 -0
- package/dist/webCompositions.mjs +174 -0
- package/dist/webCompositions.mjs.map +1 -0
- package/dist/webTesting.cjs +14 -0
- package/dist/webTesting.d.mts +6 -0
- package/dist/webTesting.mjs +6 -0
- package/package.json +586 -0
|
@@ -0,0 +1,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":"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"}
|
|
@@ -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":"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"}
|
|
@@ -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/po-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/po-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,117 @@
|
|
|
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
|
+
/** Protocol identities are strings; durable record IDs remain numeric internally. */
|
|
71
|
+
function projectDurableEntries(records) {
|
|
72
|
+
return records.flatMap((raw, index) => {
|
|
73
|
+
const data = raw.data && typeof raw.data === "object" && !Array.isArray(raw.data) ? raw.data : void 0;
|
|
74
|
+
const message = raw.model?.[0];
|
|
75
|
+
const timestamp = message && "timestamp" in message && typeof message.timestamp === "number" ? message.timestamp : typeof data?.timestamp === "number" ? data.timestamp : 0;
|
|
76
|
+
const base = {
|
|
77
|
+
id: String(raw.id),
|
|
78
|
+
parentId: index ? String(records[index - 1].id) : null,
|
|
79
|
+
timestamp,
|
|
80
|
+
seq: Number(raw.id)
|
|
81
|
+
};
|
|
82
|
+
if (raw.kind === "po.entry" && data) return [{
|
|
83
|
+
...data,
|
|
84
|
+
...base
|
|
85
|
+
}];
|
|
86
|
+
if (raw.kind === "pi.compaction") {
|
|
87
|
+
const content = message?.content;
|
|
88
|
+
const summary = typeof content === "string" ? content : Array.isArray(content) ? content.filter((part) => part.type === "text").map((part) => part.text).join("") : "";
|
|
89
|
+
return [{
|
|
90
|
+
...base,
|
|
91
|
+
type: "compaction",
|
|
92
|
+
summary,
|
|
93
|
+
tokensBefore: 0,
|
|
94
|
+
retainedTail: [],
|
|
95
|
+
fromHook: false
|
|
96
|
+
}];
|
|
97
|
+
}
|
|
98
|
+
if (raw.model?.length) return raw.model.map((item, position) => ({
|
|
99
|
+
...base,
|
|
100
|
+
id: position === 0 ? base.id : `${base.id}:${position}`,
|
|
101
|
+
type: "message",
|
|
102
|
+
message: item
|
|
103
|
+
}));
|
|
104
|
+
return [{
|
|
105
|
+
...base,
|
|
106
|
+
type: "custom",
|
|
107
|
+
customType: raw.kind,
|
|
108
|
+
...raw.data === void 0 ? {} : { data: raw.data }
|
|
109
|
+
}];
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
exports.projectDurableEntries = projectDurableEntries;
|
|
114
|
+
exports.readTranscriptPage = readTranscriptPage;
|
|
115
|
+
exports.transcriptCursor = transcriptCursor;
|
|
116
|
+
|
|
117
|
+
//# 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, Entry } from '../../types/server/directHarnessRuntime';\n\nconst PAGE_SIZE = 100;\n\nexport interface TranscriptEntryQuery {\n start?: string;\n order?: 'oldestFirst' | 'newestFirst';\n limit?: number;\n cursor?: { seq: number };\n type?: Entry['type'];\n customType?: string;\n}\nexport interface TranscriptLane {\n getTipId(context: Context): Promise<string | null>;\n findEntries(query: TranscriptEntryQuery, context: Context): Promise<Entry[]>;\n}\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: TranscriptLane;\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\n/** Protocol identities are strings; durable record IDs remain numeric internally. */\nexport function projectDurableEntries(\n records: readonly import('@earendil-works/pi-durable').EntryRecord[],\n): import('../../types/server/directHarnessRuntime').Entry[] {\n return records.flatMap((raw, index) => {\n const data = raw.data && typeof raw.data === 'object' && !Array.isArray(raw.data) ? raw.data : undefined;\n const message = raw.model?.[0];\n const timestamp =\n message && 'timestamp' in message && typeof message.timestamp === 'number'\n ? message.timestamp\n : typeof data?.timestamp === 'number'\n ? data.timestamp\n : 0;\n const base = {\n id: String(raw.id),\n parentId: index ? String(records[index - 1]!.id) : null,\n timestamp,\n seq: Number(raw.id),\n };\n if (raw.kind === 'po.entry' && data)\n return [{ ...data, ...base } as import('../../types/server/directHarnessRuntime').Entry];\n if (raw.kind === 'pi.compaction') {\n const content = message?.content;\n const summary =\n typeof content === 'string'\n ? content\n : Array.isArray(content)\n ? content\n .filter((part) => part.type === 'text')\n .map((part) => part.text)\n .join('')\n : '';\n return [{ ...base, type: 'compaction' as const, summary, tokensBefore: 0, retainedTail: [], fromHook: false }];\n }\n if (raw.model?.length)\n return raw.model.map((item, position) => ({\n ...base,\n id: position === 0 ? base.id : `${base.id}:${position}`,\n type: 'message' as const,\n message: item,\n }));\n return [\n { ...base, type: 'custom' as const, customType: raw.kind, ...(raw.data === undefined ? {} : { data: raw.data }) },\n ];\n });\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
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
|
+
/** Protocol identities are strings; durable record IDs remain numeric internally. */
|
|
71
|
+
function projectDurableEntries(records) {
|
|
72
|
+
return records.flatMap((raw, index) => {
|
|
73
|
+
const data = raw.data && typeof raw.data === "object" && !Array.isArray(raw.data) ? raw.data : void 0;
|
|
74
|
+
const message = raw.model?.[0];
|
|
75
|
+
const timestamp = message && "timestamp" in message && typeof message.timestamp === "number" ? message.timestamp : typeof data?.timestamp === "number" ? data.timestamp : 0;
|
|
76
|
+
const base = {
|
|
77
|
+
id: String(raw.id),
|
|
78
|
+
parentId: index ? String(records[index - 1].id) : null,
|
|
79
|
+
timestamp,
|
|
80
|
+
seq: Number(raw.id)
|
|
81
|
+
};
|
|
82
|
+
if (raw.kind === "po.entry" && data) return [{
|
|
83
|
+
...data,
|
|
84
|
+
...base
|
|
85
|
+
}];
|
|
86
|
+
if (raw.kind === "pi.compaction") {
|
|
87
|
+
const content = message?.content;
|
|
88
|
+
const summary = typeof content === "string" ? content : Array.isArray(content) ? content.filter((part) => part.type === "text").map((part) => part.text).join("") : "";
|
|
89
|
+
return [{
|
|
90
|
+
...base,
|
|
91
|
+
type: "compaction",
|
|
92
|
+
summary,
|
|
93
|
+
tokensBefore: 0,
|
|
94
|
+
retainedTail: [],
|
|
95
|
+
fromHook: false
|
|
96
|
+
}];
|
|
97
|
+
}
|
|
98
|
+
if (raw.model?.length) return raw.model.map((item, position) => ({
|
|
99
|
+
...base,
|
|
100
|
+
id: position === 0 ? base.id : `${base.id}:${position}`,
|
|
101
|
+
type: "message",
|
|
102
|
+
message: item
|
|
103
|
+
}));
|
|
104
|
+
return [{
|
|
105
|
+
...base,
|
|
106
|
+
type: "custom",
|
|
107
|
+
customType: raw.kind,
|
|
108
|
+
...raw.data === void 0 ? {} : { data: raw.data }
|
|
109
|
+
}];
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
export { projectDurableEntries, readTranscriptPage, transcriptCursor };
|
|
114
|
+
|
|
115
|
+
//# 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, Entry } from '../../types/server/directHarnessRuntime';\n\nconst PAGE_SIZE = 100;\n\nexport interface TranscriptEntryQuery {\n start?: string;\n order?: 'oldestFirst' | 'newestFirst';\n limit?: number;\n cursor?: { seq: number };\n type?: Entry['type'];\n customType?: string;\n}\nexport interface TranscriptLane {\n getTipId(context: Context): Promise<string | null>;\n findEntries(query: TranscriptEntryQuery, context: Context): Promise<Entry[]>;\n}\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: TranscriptLane;\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\n/** Protocol identities are strings; durable record IDs remain numeric internally. */\nexport function projectDurableEntries(\n records: readonly import('@earendil-works/pi-durable').EntryRecord[],\n): import('../../types/server/directHarnessRuntime').Entry[] {\n return records.flatMap((raw, index) => {\n const data = raw.data && typeof raw.data === 'object' && !Array.isArray(raw.data) ? raw.data : undefined;\n const message = raw.model?.[0];\n const timestamp =\n message && 'timestamp' in message && typeof message.timestamp === 'number'\n ? message.timestamp\n : typeof data?.timestamp === 'number'\n ? data.timestamp\n : 0;\n const base = {\n id: String(raw.id),\n parentId: index ? String(records[index - 1]!.id) : null,\n timestamp,\n seq: Number(raw.id),\n };\n if (raw.kind === 'po.entry' && data)\n return [{ ...data, ...base } as import('../../types/server/directHarnessRuntime').Entry];\n if (raw.kind === 'pi.compaction') {\n const content = message?.content;\n const summary =\n typeof content === 'string'\n ? content\n : Array.isArray(content)\n ? content\n .filter((part) => part.type === 'text')\n .map((part) => part.text)\n .join('')\n : '';\n return [{ ...base, type: 'compaction' as const, summary, tokensBefore: 0, retainedTail: [], fromHook: false }];\n }\n if (raw.model?.length)\n return raw.model.map((item, position) => ({\n ...base,\n id: position === 0 ? base.id : `${base.id}:${position}`,\n type: 'message' as const,\n message: item,\n }));\n return [\n { ...base, type: 'custom' as const, customType: raw.kind, ...(raw.data === undefined ? {} : { data: raw.data }) },\n ];\n });\n}\n"],"mappings":"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"}
|