@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,92 @@
|
|
|
1
|
+
import { DURABLE_BACKGROUND_CONTEXT, DURABLE_DIRECTORY, SessionIdentityDoc, SessionMetadataDoc, openReadOnlyDurableStorage } from "../../../sqliteSessionStorage.mjs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import fs from "node:fs/promises";
|
|
4
|
+
import { createSession } from "@earendil-works/pi-durable";
|
|
5
|
+
//#region src/services/sqliteSessionHistory/index.ts
|
|
6
|
+
function readSavedExecution(raw, owner) {
|
|
7
|
+
if (typeof raw !== "string") return void 0;
|
|
8
|
+
let parsed;
|
|
9
|
+
try {
|
|
10
|
+
parsed = JSON.parse(raw);
|
|
11
|
+
} catch {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if (typeof parsed !== "object" || parsed === null) return void 0;
|
|
15
|
+
const record = parsed;
|
|
16
|
+
if (typeof record.cwd !== "string" || !path.isAbsolute(record.cwd) || typeof record.repoRoot !== "string" || !path.isAbsolute(record.repoRoot) || record.repoRoot !== owner || typeof record.workspaceId !== "string" || record.workspaceId === "" || typeof record.groupingRoot !== "string" || !path.isAbsolute(record.groupingRoot)) return void 0;
|
|
17
|
+
if (record.parentSessionId !== void 0 && typeof record.parentSessionId !== "string") return void 0;
|
|
18
|
+
if (record.sessionProvenance !== void 0 && typeof record.sessionProvenance !== "string") return void 0;
|
|
19
|
+
return {
|
|
20
|
+
cwd: record.cwd,
|
|
21
|
+
repoRoot: record.repoRoot,
|
|
22
|
+
workspaceId: record.workspaceId,
|
|
23
|
+
groupingRoot: record.groupingRoot,
|
|
24
|
+
...typeof record.parentSessionId === "string" ? { parentSessionId: record.parentSessionId } : {},
|
|
25
|
+
...typeof record.sessionProvenance === "string" ? { sessionProvenance: record.sessionProvenance } : {}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** Lists only fresh durable containers, never legacy journals. */
|
|
29
|
+
async function listSavedSessionRecords(sessionsRoot, workspaceRoot, activeSessionIds, workspaceId) {
|
|
30
|
+
const directory = path.join(sessionsRoot, DURABLE_DIRECTORY);
|
|
31
|
+
const files = await fs.readdir(directory).catch((error) => {
|
|
32
|
+
if (error.code === "ENOENT") return [];
|
|
33
|
+
throw error;
|
|
34
|
+
});
|
|
35
|
+
const result = [];
|
|
36
|
+
for (const file of files) {
|
|
37
|
+
if (!/^[a-zA-Z0-9_-]+\.sqlite$/u.test(file)) continue;
|
|
38
|
+
const id = path.basename(file, ".sqlite");
|
|
39
|
+
if (activeSessionIds.has(id)) continue;
|
|
40
|
+
const filePath = path.join(directory, file);
|
|
41
|
+
const storage = await openReadOnlyDurableStorage(filePath);
|
|
42
|
+
const session = createSession(storage);
|
|
43
|
+
try {
|
|
44
|
+
const identity = await session.snapshot(SessionIdentityDoc, DURABLE_BACKGROUND_CONTEXT);
|
|
45
|
+
if (!identity || identity.id !== id) throw new Error("Durable session identity mismatch");
|
|
46
|
+
const metadata = await session.snapshot(SessionMetadataDoc, DURABLE_BACKGROUND_CONTEXT);
|
|
47
|
+
if (!metadata?.workspaceRoot) continue;
|
|
48
|
+
const execution = readSavedExecution(metadata.execution, metadata.workspaceRoot);
|
|
49
|
+
if (!execution || execution.groupingRoot !== workspaceRoot || workspaceId && execution.workspaceId !== workspaceId) continue;
|
|
50
|
+
const entries = /* @__PURE__ */ new Map();
|
|
51
|
+
let conversationCursor;
|
|
52
|
+
do {
|
|
53
|
+
const conversations = await storage.scanConversations({}, 100, conversationCursor, DURABLE_BACKGROUND_CONTEXT);
|
|
54
|
+
for (const conversation of conversations.items) {
|
|
55
|
+
let cursor;
|
|
56
|
+
do {
|
|
57
|
+
const page = await storage.scanEntries({ conversationId: conversation.id }, 100, cursor, DURABLE_BACKGROUND_CONTEXT);
|
|
58
|
+
for (const entry of page.items) entries.set(entry.id, entry);
|
|
59
|
+
cursor = page.next;
|
|
60
|
+
} while (cursor);
|
|
61
|
+
}
|
|
62
|
+
conversationCursor = conversations.next;
|
|
63
|
+
} while (conversationCursor);
|
|
64
|
+
const messages = [...entries.values()].sort((a, b) => a.id - b.id).flatMap((entry) => entry.model ?? []);
|
|
65
|
+
const content = messages.find((message) => message.role === "user")?.content;
|
|
66
|
+
const firstMessage = typeof content === "string" ? content : Array.isArray(content) ? content.filter((part) => part.type === "text").map((part) => part.text).join("\n") : "";
|
|
67
|
+
const stat = await fs.stat(filePath);
|
|
68
|
+
result.push({
|
|
69
|
+
summary: {
|
|
70
|
+
id,
|
|
71
|
+
...metadata.name ? { name: metadata.name } : {},
|
|
72
|
+
firstMessage,
|
|
73
|
+
createdAt: new Date(identity.createdAt).toISOString(),
|
|
74
|
+
updatedAt: stat.mtime.toISOString(),
|
|
75
|
+
messageCount: messages.length
|
|
76
|
+
},
|
|
77
|
+
execution
|
|
78
|
+
});
|
|
79
|
+
} finally {
|
|
80
|
+
await session.close(DURABLE_BACKGROUND_CONTEXT);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return result.sort((a, b) => b.summary.updatedAt.localeCompare(a.summary.updatedAt));
|
|
84
|
+
}
|
|
85
|
+
/** Public summaries do not expose private execution metadata. */
|
|
86
|
+
async function listSavedSessions(sessionsRoot, workspaceRoot, activeSessionIds, workspaceId) {
|
|
87
|
+
return (await listSavedSessionRecords(sessionsRoot, workspaceRoot, activeSessionIds, workspaceId)).map((record) => record.summary);
|
|
88
|
+
}
|
|
89
|
+
//#endregion
|
|
90
|
+
export { listSavedSessionRecords, listSavedSessions, readSavedExecution };
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["context"],"sources":["../../../../src/services/sqliteSessionHistory/index.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { createSession, type Cursor, type EntryRecord } from '@earendil-works/pi-durable';\n\nimport {\n DURABLE_DIRECTORY,\n DURABLE_BACKGROUND_CONTEXT as context,\n SessionIdentityDoc,\n SessionMetadataDoc,\n openReadOnlyDurableStorage,\n} from '../sqliteSessionStorage';\n\nexport interface SavedSession {\n id: string;\n name?: string;\n firstMessage: string;\n createdAt: string;\n updatedAt: string;\n messageCount: number;\n}\n\n/** Private execution context, never included in the HTTP history summary. */\nexport interface SavedSessionExecution {\n cwd: string;\n repoRoot: string;\n workspaceId: string;\n groupingRoot: string;\n parentSessionId?: string;\n sessionProvenance?: string;\n}\n\nexport interface SavedSessionRecord {\n summary: SavedSession;\n execution: SavedSessionExecution;\n}\n\nexport function readSavedExecution(raw: unknown, owner: string): SavedSessionExecution | undefined {\n if (typeof raw !== 'string') return undefined;\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw);\n } catch {\n return undefined;\n }\n if (typeof parsed !== 'object' || parsed === null) return undefined;\n const record = parsed as Record<string, unknown>;\n if (\n typeof record.cwd !== 'string' ||\n !path.isAbsolute(record.cwd) ||\n typeof record.repoRoot !== 'string' ||\n !path.isAbsolute(record.repoRoot) ||\n record.repoRoot !== owner ||\n typeof record.workspaceId !== 'string' ||\n record.workspaceId === '' ||\n typeof record.groupingRoot !== 'string' ||\n !path.isAbsolute(record.groupingRoot)\n )\n return undefined;\n if (record.parentSessionId !== undefined && typeof record.parentSessionId !== 'string') return undefined;\n if (record.sessionProvenance !== undefined && typeof record.sessionProvenance !== 'string') return undefined;\n return {\n cwd: record.cwd,\n repoRoot: record.repoRoot,\n workspaceId: record.workspaceId,\n groupingRoot: record.groupingRoot,\n ...(typeof record.parentSessionId === 'string' ? { parentSessionId: record.parentSessionId } : {}),\n ...(typeof record.sessionProvenance === 'string' ? { sessionProvenance: record.sessionProvenance } : {}),\n };\n}\n\n/** Lists only fresh durable containers, never legacy journals. */\nexport async function listSavedSessionRecords(\n sessionsRoot: string,\n workspaceRoot: string,\n activeSessionIds: ReadonlySet<string>,\n workspaceId?: string,\n): Promise<SavedSessionRecord[]> {\n const directory = path.join(sessionsRoot, DURABLE_DIRECTORY);\n const files = await fs.readdir(directory).catch((error: NodeJS.ErrnoException) => {\n if (error.code === 'ENOENT') return [];\n throw error;\n });\n const result: SavedSessionRecord[] = [];\n for (const file of files) {\n if (!/^[a-zA-Z0-9_-]+\\.sqlite$/u.test(file)) continue;\n const id = path.basename(file, '.sqlite');\n if (activeSessionIds.has(id)) continue;\n const filePath = path.join(directory, file);\n const storage = await openReadOnlyDurableStorage(filePath);\n const session = createSession(storage);\n try {\n const identity = await session.snapshot(SessionIdentityDoc, context);\n if (!identity || identity.id !== id) throw new Error('Durable session identity mismatch');\n const metadata = await session.snapshot(SessionMetadataDoc, context);\n if (!metadata?.workspaceRoot) continue;\n const execution = readSavedExecution(metadata.execution, metadata.workspaceRoot);\n if (\n !execution ||\n execution.groupingRoot !== workspaceRoot ||\n (workspaceId && execution.workspaceId !== workspaceId)\n )\n continue;\n const entries = new Map<number, EntryRecord>();\n let conversationCursor: Cursor | undefined;\n do {\n const conversations = await storage.scanConversations({}, 100, conversationCursor, context);\n for (const conversation of conversations.items) {\n let cursor: Cursor | undefined;\n do {\n const page = await storage.scanEntries({ conversationId: conversation.id }, 100, cursor, context);\n for (const entry of page.items) entries.set(entry.id, entry);\n cursor = page.next;\n } while (cursor);\n }\n conversationCursor = conversations.next;\n } while (conversationCursor);\n const ordered = [...entries.values()].sort((a, b) => a.id - b.id);\n const messages = ordered.flatMap((entry) => entry.model ?? []);\n const content = messages.find((message) => message.role === 'user')?.content;\n const firstMessage =\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 : '';\n const stat = await fs.stat(filePath);\n result.push({\n summary: {\n id,\n ...(metadata.name ? { name: metadata.name } : {}),\n firstMessage,\n createdAt: new Date(identity.createdAt).toISOString(),\n updatedAt: stat.mtime.toISOString(),\n messageCount: messages.length,\n },\n execution,\n });\n } finally {\n await session.close(context);\n }\n }\n return result.sort((a, b) => b.summary.updatedAt.localeCompare(a.summary.updatedAt));\n}\n\n/** Public summaries do not expose private execution metadata. */\nexport async function listSavedSessions(\n sessionsRoot: string,\n workspaceRoot: string,\n activeSessionIds: ReadonlySet<string>,\n workspaceId?: string,\n): Promise<SavedSession[]> {\n return (await listSavedSessionRecords(sessionsRoot, workspaceRoot, activeSessionIds, workspaceId)).map(\n (record) => record.summary,\n );\n}\n"],"mappings":";;;;;AAqCA,SAAgB,mBAAmB,KAAc,OAAkD;CACjG,IAAI,OAAO,QAAQ,UAAU,OAAO,KAAA;CACpC,IAAI;CACJ,IAAI;EACF,SAAS,KAAK,MAAM,GAAG;CACzB,QAAQ;EACN;CACF;CACA,IAAI,OAAO,WAAW,YAAY,WAAW,MAAM,OAAO,KAAA;CAC1D,MAAM,SAAS;CACf,IACE,OAAO,OAAO,QAAQ,YACtB,CAAC,KAAK,WAAW,OAAO,GAAG,KAC3B,OAAO,OAAO,aAAa,YAC3B,CAAC,KAAK,WAAW,OAAO,QAAQ,KAChC,OAAO,aAAa,SACpB,OAAO,OAAO,gBAAgB,YAC9B,OAAO,gBAAgB,MACvB,OAAO,OAAO,iBAAiB,YAC/B,CAAC,KAAK,WAAW,OAAO,YAAY,GAEpC,OAAO,KAAA;CACT,IAAI,OAAO,oBAAoB,KAAA,KAAa,OAAO,OAAO,oBAAoB,UAAU,OAAO,KAAA;CAC/F,IAAI,OAAO,sBAAsB,KAAA,KAAa,OAAO,OAAO,sBAAsB,UAAU,OAAO,KAAA;CACnG,OAAO;EACL,KAAK,OAAO;EACZ,UAAU,OAAO;EACjB,aAAa,OAAO;EACpB,cAAc,OAAO;EACrB,GAAI,OAAO,OAAO,oBAAoB,WAAW,EAAE,iBAAiB,OAAO,gBAAgB,IAAI,CAAC;EAChG,GAAI,OAAO,OAAO,sBAAsB,WAAW,EAAE,mBAAmB,OAAO,kBAAkB,IAAI,CAAC;CACxG;AACF;;AAGA,eAAsB,wBACpB,cACA,eACA,kBACA,aAC+B;CAC/B,MAAM,YAAY,KAAK,KAAK,cAAc,iBAAiB;CAC3D,MAAM,QAAQ,MAAM,GAAG,QAAQ,SAAS,CAAC,CAAC,OAAO,UAAiC;EAChF,IAAI,MAAM,SAAS,UAAU,OAAO,CAAC;EACrC,MAAM;CACR,CAAC;CACD,MAAM,SAA+B,CAAC;CACtC,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,CAAC,4BAA4B,KAAK,IAAI,GAAG;EAC7C,MAAM,KAAK,KAAK,SAAS,MAAM,SAAS;EACxC,IAAI,iBAAiB,IAAI,EAAE,GAAG;EAC9B,MAAM,WAAW,KAAK,KAAK,WAAW,IAAI;EAC1C,MAAM,UAAU,MAAM,2BAA2B,QAAQ;EACzD,MAAM,UAAU,cAAc,OAAO;EACrC,IAAI;GACF,MAAM,WAAW,MAAM,QAAQ,SAAS,oBAAoBA,0BAAO;GACnE,IAAI,CAAC,YAAY,SAAS,OAAO,IAAI,MAAM,IAAI,MAAM,mCAAmC;GACxF,MAAM,WAAW,MAAM,QAAQ,SAAS,oBAAoBA,0BAAO;GACnE,IAAI,CAAC,UAAU,eAAe;GAC9B,MAAM,YAAY,mBAAmB,SAAS,WAAW,SAAS,aAAa;GAC/E,IACE,CAAC,aACD,UAAU,iBAAiB,iBAC1B,eAAe,UAAU,gBAAgB,aAE1C;GACF,MAAM,0BAAU,IAAI,IAAyB;GAC7C,IAAI;GACJ,GAAG;IACD,MAAM,gBAAgB,MAAM,QAAQ,kBAAkB,CAAC,GAAG,KAAK,oBAAoBA,0BAAO;IAC1F,KAAK,MAAM,gBAAgB,cAAc,OAAO;KAC9C,IAAI;KACJ,GAAG;MACD,MAAM,OAAO,MAAM,QAAQ,YAAY,EAAE,gBAAgB,aAAa,GAAG,GAAG,KAAK,QAAQA,0BAAO;MAChG,KAAK,MAAM,SAAS,KAAK,OAAO,QAAQ,IAAI,MAAM,IAAI,KAAK;MAC3D,SAAS,KAAK;KAChB,SAAS;IACX;IACA,qBAAqB,cAAc;GACrC,SAAS;GAET,MAAM,WADU,CAAC,GAAG,QAAQ,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,EACvC,CAAC,CAAC,SAAS,UAAU,MAAM,SAAS,CAAC,CAAC;GAC7D,MAAM,UAAU,SAAS,MAAM,YAAY,QAAQ,SAAS,MAAM,CAAC,EAAE;GACrE,MAAM,eACJ,OAAO,YAAY,WACf,UACA,MAAM,QAAQ,OAAO,IACnB,QACG,QAAQ,SAAS,KAAK,SAAS,MAAM,CAAC,CACtC,KAAK,SAAS,KAAK,IAAI,CAAC,CACxB,KAAK,IAAI,IACZ;GACR,MAAM,OAAO,MAAM,GAAG,KAAK,QAAQ;GACnC,OAAO,KAAK;IACV,SAAS;KACP;KACA,GAAI,SAAS,OAAO,EAAE,MAAM,SAAS,KAAK,IAAI,CAAC;KAC/C;KACA,WAAW,IAAI,KAAK,SAAS,SAAS,CAAC,CAAC,YAAY;KACpD,WAAW,KAAK,MAAM,YAAY;KAClC,cAAc,SAAS;IACzB;IACA;GACF,CAAC;EACH,UAAU;GACR,MAAM,QAAQ,MAAMA,0BAAO;EAC7B;CACF;CACA,OAAO,OAAO,MAAM,GAAG,MAAM,EAAE,QAAQ,UAAU,cAAc,EAAE,QAAQ,SAAS,CAAC;AACrF;;AAGA,eAAsB,kBACpB,cACA,eACA,kBACA,aACyB;CACzB,QAAQ,MAAM,wBAAwB,cAAc,eAAe,kBAAkB,WAAW,EAAA,CAAG,KAChG,WAAW,OAAO,OACrB;AACF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_sqliteSessionStorage = require("../../../sqliteSessionStorage.cjs");
|
|
3
|
+
const require_index = require("../sqliteSessionHistory/index.cjs");
|
|
4
|
+
const require_index$1 = require("../durableNavigation/index.cjs");
|
|
5
|
+
const require_index$2 = require("../transcriptPages/index.cjs");
|
|
6
|
+
let node_path = require("node:path");
|
|
7
|
+
node_path = require_runtime.__toESM(node_path, 1);
|
|
8
|
+
let _earendil_works_pi_durable = require("@earendil-works/pi-durable");
|
|
9
|
+
//#region src/services/sqliteTranscriptReader/index.ts
|
|
10
|
+
/** A completed child is read without admitting a writer or updating the schema. */
|
|
11
|
+
async function readSqliteTranscript(file, request, context, ownership) {
|
|
12
|
+
if (node_path.default.basename(node_path.default.dirname(file)) !== "durable-v1") throw new Error("Legacy SQLite transcripts are unsupported");
|
|
13
|
+
const storage = await require_sqliteSessionStorage.openReadOnlyDurableStorage(file);
|
|
14
|
+
const session = (0, _earendil_works_pi_durable.createSession)(storage);
|
|
15
|
+
try {
|
|
16
|
+
const identity = await session.snapshot(require_sqliteSessionStorage.SessionIdentityDoc, context);
|
|
17
|
+
if (!identity || identity.id !== node_path.default.basename(file, ".sqlite") || ownership && identity.id !== ownership.sessionId) throw new Error("Saved transcript does not belong to this session");
|
|
18
|
+
if (ownership) {
|
|
19
|
+
const metadata = await session.snapshot(require_sqliteSessionStorage.SessionMetadataDoc, context);
|
|
20
|
+
const execution = require_index.readSavedExecution(metadata?.execution, ownership.workspaceRoot);
|
|
21
|
+
if (metadata?.workspaceRoot !== ownership.workspaceRoot || !execution || ownership.workspaceId !== void 0 && execution.workspaceId !== ownership.workspaceId || ownership.groupingRoot !== void 0 && execution.groupingRoot !== ownership.groupingRoot) throw new Error("Saved transcript does not belong to this workspace");
|
|
22
|
+
}
|
|
23
|
+
const conversationId = (await session.snapshot(require_index$1.DurableNavigationDoc, context))?.activeConversationId;
|
|
24
|
+
const raw = [];
|
|
25
|
+
if (conversationId !== null && conversationId !== void 0) {
|
|
26
|
+
let cursor;
|
|
27
|
+
do {
|
|
28
|
+
const page = await storage.scanEntries({ conversationId }, 100, cursor, context);
|
|
29
|
+
raw.push(...page.items);
|
|
30
|
+
cursor = page.next;
|
|
31
|
+
} while (cursor);
|
|
32
|
+
}
|
|
33
|
+
const entries = require_index$2.projectDurableEntries(raw.reverse());
|
|
34
|
+
const tip = entries.at(-1)?.id ?? null;
|
|
35
|
+
const laneName = (await session.snapshot(require_sqliteSessionStorage.SessionMetadataDoc, context))?.laneName ?? "main";
|
|
36
|
+
return {
|
|
37
|
+
...await require_index$2.readTranscriptPage({
|
|
38
|
+
sessionId: identity.id,
|
|
39
|
+
laneName,
|
|
40
|
+
lane: {
|
|
41
|
+
getTipId: async () => tip,
|
|
42
|
+
findEntries: async (query) => {
|
|
43
|
+
let rows = entries;
|
|
44
|
+
if (query.start) {
|
|
45
|
+
const index = rows.findIndex((entry) => entry.id === query.start);
|
|
46
|
+
if (index < 0) throw new Error("Transcript references missing entry");
|
|
47
|
+
rows = rows.slice(0, index + 1);
|
|
48
|
+
}
|
|
49
|
+
if (query.cursor) rows = rows.filter((entry) => query.order === "oldestFirst" ? entry.seq > query.cursor.seq : entry.seq < query.cursor.seq);
|
|
50
|
+
if (query.type) rows = rows.filter((entry) => entry.type === query.type);
|
|
51
|
+
if (query.customType) rows = rows.filter((entry) => entry.type === "custom" && entry.customType === query.customType);
|
|
52
|
+
if (query.order !== "oldestFirst") rows = [...rows].reverse();
|
|
53
|
+
return rows.slice(0, query.limit);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}, request, 0, context),
|
|
57
|
+
revision: 0,
|
|
58
|
+
drafts: []
|
|
59
|
+
};
|
|
60
|
+
} finally {
|
|
61
|
+
await session.close(context);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//#endregion
|
|
65
|
+
exports.readSqliteTranscript = readSqliteTranscript;
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["path","openReadOnlyDurableStorage","createSession","SessionIdentityDoc","SessionMetadataDoc","readSavedExecution","DurableNavigationDoc","projectDurableEntries","readTranscriptPage"],"sources":["../../../../src/services/sqliteTranscriptReader/index.ts"],"sourcesContent":["import path from 'node:path';\n\nimport type { Context } from '@earendil-works/chord';\nimport { createSession, type Cursor, type EntryRecord } from '@earendil-works/pi-durable';\n\nimport type { TranscriptPageRequest, TranscriptPage } from '../../exports/sessionProtocol';\nimport { DurableNavigationDoc } from '../durableNavigation';\nimport { readSavedExecution } from '../sqliteSessionHistory';\nimport {\n DURABLE_DIRECTORY,\n SessionIdentityDoc,\n SessionMetadataDoc,\n openReadOnlyDurableStorage,\n} from '../sqliteSessionStorage';\nimport { projectDurableEntries, readTranscriptPage } from '../transcriptPages';\n\nexport interface SqliteTranscriptOwnership {\n sessionId: string;\n workspaceRoot: string;\n workspaceId?: string;\n groupingRoot?: string;\n}\n\n/** A completed child is read without admitting a writer or updating the schema. */\nexport async function readSqliteTranscript(\n file: string,\n request: TranscriptPageRequest,\n context: Context,\n ownership?: SqliteTranscriptOwnership,\n): Promise<TranscriptPage> {\n if (path.basename(path.dirname(file)) !== DURABLE_DIRECTORY)\n throw new Error('Legacy SQLite transcripts are unsupported');\n const storage = await openReadOnlyDurableStorage(file);\n const session = createSession(storage);\n try {\n const identity = await session.snapshot(SessionIdentityDoc, context);\n if (\n !identity ||\n identity.id !== path.basename(file, '.sqlite') ||\n (ownership && identity.id !== ownership.sessionId)\n )\n throw new Error('Saved transcript does not belong to this session');\n if (ownership) {\n const metadata = await session.snapshot(SessionMetadataDoc, context);\n const execution = readSavedExecution(metadata?.execution, ownership.workspaceRoot);\n if (\n metadata?.workspaceRoot !== ownership.workspaceRoot ||\n !execution ||\n (ownership.workspaceId !== undefined && execution.workspaceId !== ownership.workspaceId) ||\n (ownership.groupingRoot !== undefined && execution.groupingRoot !== ownership.groupingRoot)\n )\n throw new Error('Saved transcript does not belong to this workspace');\n }\n const navigation = await session.snapshot(DurableNavigationDoc, context);\n const conversationId = navigation?.activeConversationId;\n const raw: EntryRecord[] = [];\n if (conversationId !== null && conversationId !== undefined) {\n let cursor: Cursor | undefined;\n do {\n const page = await storage.scanEntries({ conversationId }, 100, cursor, context);\n raw.push(...page.items);\n cursor = page.next;\n } while (cursor);\n }\n const entries = projectDurableEntries(raw.reverse());\n const tip = entries.at(-1)?.id ?? null;\n const metadata = await session.snapshot(SessionMetadataDoc, context);\n const laneName = metadata?.laneName ?? 'main';\n const page = await readTranscriptPage(\n {\n sessionId: identity.id,\n laneName,\n lane: {\n getTipId: async () => tip,\n findEntries: async (query) => {\n let rows = entries;\n if (query.start) {\n const index = rows.findIndex((entry) => entry.id === query.start);\n if (index < 0) throw new Error('Transcript references missing entry');\n rows = rows.slice(0, index + 1);\n }\n if (query.cursor)\n rows = rows.filter((entry) =>\n query.order === 'oldestFirst' ? entry.seq > query.cursor!.seq : entry.seq < query.cursor!.seq,\n );\n if (query.type) rows = rows.filter((entry) => entry.type === query.type);\n if (query.customType)\n rows = rows.filter((entry) => entry.type === 'custom' && entry.customType === query.customType);\n if (query.order !== 'oldestFirst') rows = [...rows].reverse();\n return rows.slice(0, query.limit);\n },\n },\n },\n request,\n 0,\n context,\n );\n return { ...page, revision: 0, drafts: [] };\n } finally {\n await session.close(context);\n }\n}\n"],"mappings":";;;;;;;;;;AAwBA,eAAsB,qBACpB,MACA,SACA,SACA,WACyB;CACzB,IAAIA,UAAAA,QAAK,SAASA,UAAAA,QAAK,QAAQ,IAAI,CAAC,MAAA,cAClC,MAAM,IAAI,MAAM,2CAA2C;CAC7D,MAAM,UAAU,MAAMC,6BAAAA,2BAA2B,IAAI;CACrD,MAAM,WAAA,GAAUC,2BAAAA,cAAAA,CAAc,OAAO;CACrC,IAAI;EACF,MAAM,WAAW,MAAM,QAAQ,SAASC,6BAAAA,oBAAoB,OAAO;EACnE,IACE,CAAC,YACD,SAAS,OAAOH,UAAAA,QAAK,SAAS,MAAM,SAAS,KAC5C,aAAa,SAAS,OAAO,UAAU,WAExC,MAAM,IAAI,MAAM,kDAAkD;EACpE,IAAI,WAAW;GACb,MAAM,WAAW,MAAM,QAAQ,SAASI,6BAAAA,oBAAoB,OAAO;GACnE,MAAM,YAAYC,cAAAA,mBAAmB,UAAU,WAAW,UAAU,aAAa;GACjF,IACE,UAAU,kBAAkB,UAAU,iBACtC,CAAC,aACA,UAAU,gBAAgB,KAAA,KAAa,UAAU,gBAAgB,UAAU,eAC3E,UAAU,iBAAiB,KAAA,KAAa,UAAU,iBAAiB,UAAU,cAE9E,MAAM,IAAI,MAAM,oDAAoD;EACxE;EAEA,MAAM,kBAAiB,MADE,QAAQ,SAASC,gBAAAA,sBAAsB,OAAO,EAAA,EACpC;EACnC,MAAM,MAAqB,CAAC;EAC5B,IAAI,mBAAmB,QAAQ,mBAAmB,KAAA,GAAW;GAC3D,IAAI;GACJ,GAAG;IACD,MAAM,OAAO,MAAM,QAAQ,YAAY,EAAE,eAAe,GAAG,KAAK,QAAQ,OAAO;IAC/E,IAAI,KAAK,GAAG,KAAK,KAAK;IACtB,SAAS,KAAK;GAChB,SAAS;EACX;EACA,MAAM,UAAUC,gBAAAA,sBAAsB,IAAI,QAAQ,CAAC;EACnD,MAAM,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,MAAM;EAElC,MAAM,YAAW,MADM,QAAQ,SAASH,6BAAAA,oBAAoB,OAAO,EAAA,EACxC,YAAY;EA8BvC,OAAO;GAAE,GAAG,MA7BOI,gBAAAA,mBACjB;IACE,WAAW,SAAS;IACpB;IACA,MAAM;KACJ,UAAU,YAAY;KACtB,aAAa,OAAO,UAAU;MAC5B,IAAI,OAAO;MACX,IAAI,MAAM,OAAO;OACf,MAAM,QAAQ,KAAK,WAAW,UAAU,MAAM,OAAO,MAAM,KAAK;OAChE,IAAI,QAAQ,GAAG,MAAM,IAAI,MAAM,qCAAqC;OACpE,OAAO,KAAK,MAAM,GAAG,QAAQ,CAAC;MAChC;MACA,IAAI,MAAM,QACR,OAAO,KAAK,QAAQ,UAClB,MAAM,UAAU,gBAAgB,MAAM,MAAM,MAAM,OAAQ,MAAM,MAAM,MAAM,MAAM,OAAQ,GAC5F;MACF,IAAI,MAAM,MAAM,OAAO,KAAK,QAAQ,UAAU,MAAM,SAAS,MAAM,IAAI;MACvE,IAAI,MAAM,YACR,OAAO,KAAK,QAAQ,UAAU,MAAM,SAAS,YAAY,MAAM,eAAe,MAAM,UAAU;MAChG,IAAI,MAAM,UAAU,eAAe,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;MAC5D,OAAO,KAAK,MAAM,GAAG,MAAM,KAAK;KAClC;IACF;GACF,GACA,SACA,GACA,OACF;GACkB,UAAU;GAAG,QAAQ,CAAC;EAAE;CAC5C,UAAU;EACR,MAAM,QAAQ,MAAM,OAAO;CAC7B;AACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TranscriptPage, TranscriptPageRequest } from "../../schemas/sessionProtocol.mjs";
|
|
2
|
+
import "../../../sessionProtocol.mjs";
|
|
3
|
+
import { Context } from "@earendil-works/chord";
|
|
4
|
+
//#region src/services/sqliteTranscriptReader/index.d.ts
|
|
5
|
+
export interface SqliteTranscriptOwnership {
|
|
6
|
+
sessionId: string;
|
|
7
|
+
workspaceRoot: string;
|
|
8
|
+
workspaceId?: string;
|
|
9
|
+
groupingRoot?: string;
|
|
10
|
+
}
|
|
11
|
+
/** A completed child is read without admitting a writer or updating the schema. */
|
|
12
|
+
export declare function readSqliteTranscript(file: string, request: TranscriptPageRequest, context: Context, ownership?: SqliteTranscriptOwnership): Promise<TranscriptPage>;
|
|
13
|
+
//#endregion
|
|
14
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/sqliteTranscriptReader/index.ts"],"mappings":";;;;iBAgBiB;EACf;EACA;EACA;EACA;;;wBAIoB,qBACpB,cACA,SAAS,uBACT,SAAS,SACT,YAAY,4BACX,QAAQ"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { SessionIdentityDoc, SessionMetadataDoc, openReadOnlyDurableStorage } from "../../../sqliteSessionStorage.mjs";
|
|
2
|
+
import { readSavedExecution } from "../sqliteSessionHistory/index.mjs";
|
|
3
|
+
import { DurableNavigationDoc } from "../durableNavigation/index.mjs";
|
|
4
|
+
import { projectDurableEntries, readTranscriptPage } from "../transcriptPages/index.mjs";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { createSession } from "@earendil-works/pi-durable";
|
|
7
|
+
//#region src/services/sqliteTranscriptReader/index.ts
|
|
8
|
+
/** A completed child is read without admitting a writer or updating the schema. */
|
|
9
|
+
async function readSqliteTranscript(file, request, context, ownership) {
|
|
10
|
+
if (path.basename(path.dirname(file)) !== "durable-v1") throw new Error("Legacy SQLite transcripts are unsupported");
|
|
11
|
+
const storage = await openReadOnlyDurableStorage(file);
|
|
12
|
+
const session = createSession(storage);
|
|
13
|
+
try {
|
|
14
|
+
const identity = await session.snapshot(SessionIdentityDoc, context);
|
|
15
|
+
if (!identity || identity.id !== path.basename(file, ".sqlite") || ownership && identity.id !== ownership.sessionId) throw new Error("Saved transcript does not belong to this session");
|
|
16
|
+
if (ownership) {
|
|
17
|
+
const metadata = await session.snapshot(SessionMetadataDoc, context);
|
|
18
|
+
const execution = readSavedExecution(metadata?.execution, ownership.workspaceRoot);
|
|
19
|
+
if (metadata?.workspaceRoot !== ownership.workspaceRoot || !execution || ownership.workspaceId !== void 0 && execution.workspaceId !== ownership.workspaceId || ownership.groupingRoot !== void 0 && execution.groupingRoot !== ownership.groupingRoot) throw new Error("Saved transcript does not belong to this workspace");
|
|
20
|
+
}
|
|
21
|
+
const conversationId = (await session.snapshot(DurableNavigationDoc, context))?.activeConversationId;
|
|
22
|
+
const raw = [];
|
|
23
|
+
if (conversationId !== null && conversationId !== void 0) {
|
|
24
|
+
let cursor;
|
|
25
|
+
do {
|
|
26
|
+
const page = await storage.scanEntries({ conversationId }, 100, cursor, context);
|
|
27
|
+
raw.push(...page.items);
|
|
28
|
+
cursor = page.next;
|
|
29
|
+
} while (cursor);
|
|
30
|
+
}
|
|
31
|
+
const entries = projectDurableEntries(raw.reverse());
|
|
32
|
+
const tip = entries.at(-1)?.id ?? null;
|
|
33
|
+
const laneName = (await session.snapshot(SessionMetadataDoc, context))?.laneName ?? "main";
|
|
34
|
+
return {
|
|
35
|
+
...await readTranscriptPage({
|
|
36
|
+
sessionId: identity.id,
|
|
37
|
+
laneName,
|
|
38
|
+
lane: {
|
|
39
|
+
getTipId: async () => tip,
|
|
40
|
+
findEntries: async (query) => {
|
|
41
|
+
let rows = entries;
|
|
42
|
+
if (query.start) {
|
|
43
|
+
const index = rows.findIndex((entry) => entry.id === query.start);
|
|
44
|
+
if (index < 0) throw new Error("Transcript references missing entry");
|
|
45
|
+
rows = rows.slice(0, index + 1);
|
|
46
|
+
}
|
|
47
|
+
if (query.cursor) rows = rows.filter((entry) => query.order === "oldestFirst" ? entry.seq > query.cursor.seq : entry.seq < query.cursor.seq);
|
|
48
|
+
if (query.type) rows = rows.filter((entry) => entry.type === query.type);
|
|
49
|
+
if (query.customType) rows = rows.filter((entry) => entry.type === "custom" && entry.customType === query.customType);
|
|
50
|
+
if (query.order !== "oldestFirst") rows = [...rows].reverse();
|
|
51
|
+
return rows.slice(0, query.limit);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}, request, 0, context),
|
|
55
|
+
revision: 0,
|
|
56
|
+
drafts: []
|
|
57
|
+
};
|
|
58
|
+
} finally {
|
|
59
|
+
await session.close(context);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//#endregion
|
|
63
|
+
export { readSqliteTranscript };
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/sqliteTranscriptReader/index.ts"],"sourcesContent":["import path from 'node:path';\n\nimport type { Context } from '@earendil-works/chord';\nimport { createSession, type Cursor, type EntryRecord } from '@earendil-works/pi-durable';\n\nimport type { TranscriptPageRequest, TranscriptPage } from '../../exports/sessionProtocol';\nimport { DurableNavigationDoc } from '../durableNavigation';\nimport { readSavedExecution } from '../sqliteSessionHistory';\nimport {\n DURABLE_DIRECTORY,\n SessionIdentityDoc,\n SessionMetadataDoc,\n openReadOnlyDurableStorage,\n} from '../sqliteSessionStorage';\nimport { projectDurableEntries, readTranscriptPage } from '../transcriptPages';\n\nexport interface SqliteTranscriptOwnership {\n sessionId: string;\n workspaceRoot: string;\n workspaceId?: string;\n groupingRoot?: string;\n}\n\n/** A completed child is read without admitting a writer or updating the schema. */\nexport async function readSqliteTranscript(\n file: string,\n request: TranscriptPageRequest,\n context: Context,\n ownership?: SqliteTranscriptOwnership,\n): Promise<TranscriptPage> {\n if (path.basename(path.dirname(file)) !== DURABLE_DIRECTORY)\n throw new Error('Legacy SQLite transcripts are unsupported');\n const storage = await openReadOnlyDurableStorage(file);\n const session = createSession(storage);\n try {\n const identity = await session.snapshot(SessionIdentityDoc, context);\n if (\n !identity ||\n identity.id !== path.basename(file, '.sqlite') ||\n (ownership && identity.id !== ownership.sessionId)\n )\n throw new Error('Saved transcript does not belong to this session');\n if (ownership) {\n const metadata = await session.snapshot(SessionMetadataDoc, context);\n const execution = readSavedExecution(metadata?.execution, ownership.workspaceRoot);\n if (\n metadata?.workspaceRoot !== ownership.workspaceRoot ||\n !execution ||\n (ownership.workspaceId !== undefined && execution.workspaceId !== ownership.workspaceId) ||\n (ownership.groupingRoot !== undefined && execution.groupingRoot !== ownership.groupingRoot)\n )\n throw new Error('Saved transcript does not belong to this workspace');\n }\n const navigation = await session.snapshot(DurableNavigationDoc, context);\n const conversationId = navigation?.activeConversationId;\n const raw: EntryRecord[] = [];\n if (conversationId !== null && conversationId !== undefined) {\n let cursor: Cursor | undefined;\n do {\n const page = await storage.scanEntries({ conversationId }, 100, cursor, context);\n raw.push(...page.items);\n cursor = page.next;\n } while (cursor);\n }\n const entries = projectDurableEntries(raw.reverse());\n const tip = entries.at(-1)?.id ?? null;\n const metadata = await session.snapshot(SessionMetadataDoc, context);\n const laneName = metadata?.laneName ?? 'main';\n const page = await readTranscriptPage(\n {\n sessionId: identity.id,\n laneName,\n lane: {\n getTipId: async () => tip,\n findEntries: async (query) => {\n let rows = entries;\n if (query.start) {\n const index = rows.findIndex((entry) => entry.id === query.start);\n if (index < 0) throw new Error('Transcript references missing entry');\n rows = rows.slice(0, index + 1);\n }\n if (query.cursor)\n rows = rows.filter((entry) =>\n query.order === 'oldestFirst' ? entry.seq > query.cursor!.seq : entry.seq < query.cursor!.seq,\n );\n if (query.type) rows = rows.filter((entry) => entry.type === query.type);\n if (query.customType)\n rows = rows.filter((entry) => entry.type === 'custom' && entry.customType === query.customType);\n if (query.order !== 'oldestFirst') rows = [...rows].reverse();\n return rows.slice(0, query.limit);\n },\n },\n },\n request,\n 0,\n context,\n );\n return { ...page, revision: 0, drafts: [] };\n } finally {\n await session.close(context);\n }\n}\n"],"mappings":";;;;;;;;AAwBA,eAAsB,qBACpB,MACA,SACA,SACA,WACyB;CACzB,IAAI,KAAK,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAA,cAClC,MAAM,IAAI,MAAM,2CAA2C;CAC7D,MAAM,UAAU,MAAM,2BAA2B,IAAI;CACrD,MAAM,UAAU,cAAc,OAAO;CACrC,IAAI;EACF,MAAM,WAAW,MAAM,QAAQ,SAAS,oBAAoB,OAAO;EACnE,IACE,CAAC,YACD,SAAS,OAAO,KAAK,SAAS,MAAM,SAAS,KAC5C,aAAa,SAAS,OAAO,UAAU,WAExC,MAAM,IAAI,MAAM,kDAAkD;EACpE,IAAI,WAAW;GACb,MAAM,WAAW,MAAM,QAAQ,SAAS,oBAAoB,OAAO;GACnE,MAAM,YAAY,mBAAmB,UAAU,WAAW,UAAU,aAAa;GACjF,IACE,UAAU,kBAAkB,UAAU,iBACtC,CAAC,aACA,UAAU,gBAAgB,KAAA,KAAa,UAAU,gBAAgB,UAAU,eAC3E,UAAU,iBAAiB,KAAA,KAAa,UAAU,iBAAiB,UAAU,cAE9E,MAAM,IAAI,MAAM,oDAAoD;EACxE;EAEA,MAAM,kBAAiB,MADE,QAAQ,SAAS,sBAAsB,OAAO,EAAA,EACpC;EACnC,MAAM,MAAqB,CAAC;EAC5B,IAAI,mBAAmB,QAAQ,mBAAmB,KAAA,GAAW;GAC3D,IAAI;GACJ,GAAG;IACD,MAAM,OAAO,MAAM,QAAQ,YAAY,EAAE,eAAe,GAAG,KAAK,QAAQ,OAAO;IAC/E,IAAI,KAAK,GAAG,KAAK,KAAK;IACtB,SAAS,KAAK;GAChB,SAAS;EACX;EACA,MAAM,UAAU,sBAAsB,IAAI,QAAQ,CAAC;EACnD,MAAM,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,MAAM;EAElC,MAAM,YAAW,MADM,QAAQ,SAAS,oBAAoB,OAAO,EAAA,EACxC,YAAY;EA8BvC,OAAO;GAAE,GAAG,MA7BO,mBACjB;IACE,WAAW,SAAS;IACpB;IACA,MAAM;KACJ,UAAU,YAAY;KACtB,aAAa,OAAO,UAAU;MAC5B,IAAI,OAAO;MACX,IAAI,MAAM,OAAO;OACf,MAAM,QAAQ,KAAK,WAAW,UAAU,MAAM,OAAO,MAAM,KAAK;OAChE,IAAI,QAAQ,GAAG,MAAM,IAAI,MAAM,qCAAqC;OACpE,OAAO,KAAK,MAAM,GAAG,QAAQ,CAAC;MAChC;MACA,IAAI,MAAM,QACR,OAAO,KAAK,QAAQ,UAClB,MAAM,UAAU,gBAAgB,MAAM,MAAM,MAAM,OAAQ,MAAM,MAAM,MAAM,MAAM,OAAQ,GAC5F;MACF,IAAI,MAAM,MAAM,OAAO,KAAK,QAAQ,UAAU,MAAM,SAAS,MAAM,IAAI;MACvE,IAAI,MAAM,YACR,OAAO,KAAK,QAAQ,UAAU,MAAM,SAAS,YAAY,MAAM,eAAe,MAAM,UAAU;MAChG,IAAI,MAAM,UAAU,eAAe,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;MAC5D,OAAO,KAAK,MAAM,GAAG,MAAM,KAAK;KAClC;IACF;GACF,GACA,SACA,GACA,OACF;GACkB,UAAU;GAAG,QAAQ,CAAC;EAAE;CAC5C,UAAU;EACR,MAAM,QAAQ,MAAM,OAAO;CAC7B;AACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//#region src/services/toolCost/index.ts
|
|
2
|
+
/** Mirrors the wire shape MCP advertises, so both estimates stay comparable. */
|
|
3
|
+
function schemaPayload(entry) {
|
|
4
|
+
return JSON.stringify({
|
|
5
|
+
name: entry.name,
|
|
6
|
+
...entry.description === void 0 ? {} : { description: entry.description },
|
|
7
|
+
...entry.parameters === void 0 ? {} : { parameters: entry.parameters }
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
function promptPayload(entry) {
|
|
11
|
+
return [entry.promptSnippet ?? "", ...entry.promptGuidelines ?? []].filter(Boolean).join("\n");
|
|
12
|
+
}
|
|
13
|
+
function tokensForTool(entry, countTokens) {
|
|
14
|
+
const schemaTokens = countTokens(schemaPayload(entry));
|
|
15
|
+
const prompt = promptPayload(entry);
|
|
16
|
+
const promptTokens = prompt.length === 0 ? 0 : countTokens(prompt);
|
|
17
|
+
return {
|
|
18
|
+
schemaTokens,
|
|
19
|
+
promptTokens,
|
|
20
|
+
totalTokens: schemaTokens + promptTokens
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Every tool in a source, and what the source costs in total.
|
|
25
|
+
*
|
|
26
|
+
* An inactive tool is still priced: it is in the composition, and the point of
|
|
27
|
+
* the figure is to show what the composition costs. Whether the model may call
|
|
28
|
+
* it is a separate question from whether it is being paid for.
|
|
29
|
+
*/
|
|
30
|
+
function tokensForSource(source, countTokens) {
|
|
31
|
+
const tools = /* @__PURE__ */ new Map();
|
|
32
|
+
let totalTokens = 0;
|
|
33
|
+
for (const entry of source.tools) {
|
|
34
|
+
const cost = tokensForTool(entry, countTokens);
|
|
35
|
+
tools.set(entry.name, cost);
|
|
36
|
+
totalTokens += cost.totalTokens;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
tools,
|
|
40
|
+
totalTokens
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
exports.tokensForSource = tokensForSource;
|
|
45
|
+
exports.tokensForTool = tokensForTool;
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/toolCost/index.ts"],"sourcesContent":["import type { ToolEntry, ToolSource } from '../toolInventory';\n\n/**\n * What one tool costs before anything is asked of it.\n *\n * A tool is sent to the model twice over. Its schema travels in the tool list,\n * and its prose travels in the system prompt: Pi's `BuildSystemPromptOptions`\n * takes `toolSnippets` keyed by tool name and `promptGuidelines` appended to the\n * default guidelines, separately from the tools themselves. Pricing only the\n * schema would undercount every tool that carries either, so the two are counted\n * apart and reported together.\n *\n * The tokenizer is injected rather than imported, matching how MCP schema\n * pricing already takes a `countTokens`. This module stays free of any opinion\n * about which vocabulary the caller's model actually uses.\n */\nexport interface ToolCost {\n /** The tool-list payload: name, description, and parameter schema. */\n schemaTokens: number;\n /** The system-prompt payload: snippet and guideline bullets. */\n promptTokens: number;\n totalTokens: number;\n}\n\nexport type CountTokens = (text: string) => number;\n\n/** Mirrors the wire shape MCP advertises, so both estimates stay comparable. */\nfunction schemaPayload(entry: ToolEntry): string {\n return JSON.stringify({\n name: entry.name,\n ...(entry.description === undefined ? {} : { description: entry.description }),\n ...(entry.parameters === undefined ? {} : { parameters: entry.parameters }),\n });\n}\n\nfunction promptPayload(entry: ToolEntry): string {\n return [entry.promptSnippet ?? '', ...(entry.promptGuidelines ?? [])].filter(Boolean).join('\\n');\n}\n\nexport function tokensForTool(entry: ToolEntry, countTokens: CountTokens): ToolCost {\n const schemaTokens = countTokens(schemaPayload(entry));\n const prompt = promptPayload(entry);\n const promptTokens = prompt.length === 0 ? 0 : countTokens(prompt);\n return { schemaTokens, promptTokens, totalTokens: schemaTokens + promptTokens };\n}\n\n/**\n * Every tool in a source, and what the source costs in total.\n *\n * An inactive tool is still priced: it is in the composition, and the point of\n * the figure is to show what the composition costs. Whether the model may call\n * it is a separate question from whether it is being paid for.\n */\nexport function tokensForSource(\n source: ToolSource,\n countTokens: CountTokens,\n): { tools: ReadonlyMap<string, ToolCost>; totalTokens: number } {\n const tools = new Map<string, ToolCost>();\n let totalTokens = 0;\n for (const entry of source.tools) {\n const cost = tokensForTool(entry, countTokens);\n tools.set(entry.name, cost);\n totalTokens += cost.totalTokens;\n }\n return { tools, totalTokens };\n}\n"],"mappings":";;AA2BA,SAAS,cAAc,OAA0B;CAC/C,OAAO,KAAK,UAAU;EACpB,MAAM,MAAM;EACZ,GAAI,MAAM,gBAAgB,KAAA,IAAY,CAAC,IAAI,EAAE,aAAa,MAAM,YAAY;EAC5E,GAAI,MAAM,eAAe,KAAA,IAAY,CAAC,IAAI,EAAE,YAAY,MAAM,WAAW;CAC3E,CAAC;AACH;AAEA,SAAS,cAAc,OAA0B;CAC/C,OAAO,CAAC,MAAM,iBAAiB,IAAI,GAAI,MAAM,oBAAoB,CAAC,CAAE,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,IAAI;AACjG;AAEA,SAAgB,cAAc,OAAkB,aAAoC;CAClF,MAAM,eAAe,YAAY,cAAc,KAAK,CAAC;CACrD,MAAM,SAAS,cAAc,KAAK;CAClC,MAAM,eAAe,OAAO,WAAW,IAAI,IAAI,YAAY,MAAM;CACjE,OAAO;EAAE;EAAc;EAAc,aAAa,eAAe;CAAa;AAChF;;;;;;;;AASA,SAAgB,gBACd,QACA,aAC+D;CAC/D,MAAM,wBAAQ,IAAI,IAAsB;CACxC,IAAI,cAAc;CAClB,KAAK,MAAM,SAAS,OAAO,OAAO;EAChC,MAAM,OAAO,cAAc,OAAO,WAAW;EAC7C,MAAM,IAAI,MAAM,MAAM,IAAI;EAC1B,eAAe,KAAK;CACtB;CACA,OAAO;EAAE;EAAO;CAAY;AAC9B"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ToolEntry, ToolSource } from "../../../toolInventory.mjs";
|
|
2
|
+
//#region src/services/toolCost/index.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* What one tool costs before anything is asked of it.
|
|
5
|
+
*
|
|
6
|
+
* A tool is sent to the model twice over. Its schema travels in the tool list,
|
|
7
|
+
* and its prose travels in the system prompt: Pi's `BuildSystemPromptOptions`
|
|
8
|
+
* takes `toolSnippets` keyed by tool name and `promptGuidelines` appended to the
|
|
9
|
+
* default guidelines, separately from the tools themselves. Pricing only the
|
|
10
|
+
* schema would undercount every tool that carries either, so the two are counted
|
|
11
|
+
* apart and reported together.
|
|
12
|
+
*
|
|
13
|
+
* The tokenizer is injected rather than imported, matching how MCP schema
|
|
14
|
+
* pricing already takes a `countTokens`. This module stays free of any opinion
|
|
15
|
+
* about which vocabulary the caller's model actually uses.
|
|
16
|
+
*/
|
|
17
|
+
export interface ToolCost {
|
|
18
|
+
/** The tool-list payload: name, description, and parameter schema. */
|
|
19
|
+
schemaTokens: number;
|
|
20
|
+
/** The system-prompt payload: snippet and guideline bullets. */
|
|
21
|
+
promptTokens: number;
|
|
22
|
+
totalTokens: number;
|
|
23
|
+
}
|
|
24
|
+
export type CountTokens = (text: string) => number;
|
|
25
|
+
export declare function tokensForTool(entry: ToolEntry, countTokens: CountTokens): ToolCost;
|
|
26
|
+
/**
|
|
27
|
+
* Every tool in a source, and what the source costs in total.
|
|
28
|
+
*
|
|
29
|
+
* An inactive tool is still priced: it is in the composition, and the point of
|
|
30
|
+
* the figure is to show what the composition costs. Whether the model may call
|
|
31
|
+
* it is a separate question from whether it is being paid for.
|
|
32
|
+
*/
|
|
33
|
+
export declare function tokensForSource(source: ToolSource, countTokens: CountTokens): {
|
|
34
|
+
tools: ReadonlyMap<string, ToolCost>;
|
|
35
|
+
totalTokens: number;
|
|
36
|
+
};
|
|
37
|
+
//#endregion
|
|
38
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/toolCost/index.ts"],"mappings":";;;;;;;;;;;;;;;;iBAgBiB;;EAEf;;EAEA;EACA;;YAGU,eAAe;wBAeX,cAAc,OAAO,WAAW,aAAa,cAAc;;;;;;;;wBAc3D,gBACd,QAAQ,YACR,aAAa;EACV,OAAO,oBAAoB;EAAW"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
//#region src/services/toolCost/index.ts
|
|
2
|
+
/** Mirrors the wire shape MCP advertises, so both estimates stay comparable. */
|
|
3
|
+
function schemaPayload(entry) {
|
|
4
|
+
return JSON.stringify({
|
|
5
|
+
name: entry.name,
|
|
6
|
+
...entry.description === void 0 ? {} : { description: entry.description },
|
|
7
|
+
...entry.parameters === void 0 ? {} : { parameters: entry.parameters }
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
function promptPayload(entry) {
|
|
11
|
+
return [entry.promptSnippet ?? "", ...entry.promptGuidelines ?? []].filter(Boolean).join("\n");
|
|
12
|
+
}
|
|
13
|
+
function tokensForTool(entry, countTokens) {
|
|
14
|
+
const schemaTokens = countTokens(schemaPayload(entry));
|
|
15
|
+
const prompt = promptPayload(entry);
|
|
16
|
+
const promptTokens = prompt.length === 0 ? 0 : countTokens(prompt);
|
|
17
|
+
return {
|
|
18
|
+
schemaTokens,
|
|
19
|
+
promptTokens,
|
|
20
|
+
totalTokens: schemaTokens + promptTokens
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Every tool in a source, and what the source costs in total.
|
|
25
|
+
*
|
|
26
|
+
* An inactive tool is still priced: it is in the composition, and the point of
|
|
27
|
+
* the figure is to show what the composition costs. Whether the model may call
|
|
28
|
+
* it is a separate question from whether it is being paid for.
|
|
29
|
+
*/
|
|
30
|
+
function tokensForSource(source, countTokens) {
|
|
31
|
+
const tools = /* @__PURE__ */ new Map();
|
|
32
|
+
let totalTokens = 0;
|
|
33
|
+
for (const entry of source.tools) {
|
|
34
|
+
const cost = tokensForTool(entry, countTokens);
|
|
35
|
+
tools.set(entry.name, cost);
|
|
36
|
+
totalTokens += cost.totalTokens;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
tools,
|
|
40
|
+
totalTokens
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
export { tokensForSource, tokensForTool };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/toolCost/index.ts"],"sourcesContent":["import type { ToolEntry, ToolSource } from '../toolInventory';\n\n/**\n * What one tool costs before anything is asked of it.\n *\n * A tool is sent to the model twice over. Its schema travels in the tool list,\n * and its prose travels in the system prompt: Pi's `BuildSystemPromptOptions`\n * takes `toolSnippets` keyed by tool name and `promptGuidelines` appended to the\n * default guidelines, separately from the tools themselves. Pricing only the\n * schema would undercount every tool that carries either, so the two are counted\n * apart and reported together.\n *\n * The tokenizer is injected rather than imported, matching how MCP schema\n * pricing already takes a `countTokens`. This module stays free of any opinion\n * about which vocabulary the caller's model actually uses.\n */\nexport interface ToolCost {\n /** The tool-list payload: name, description, and parameter schema. */\n schemaTokens: number;\n /** The system-prompt payload: snippet and guideline bullets. */\n promptTokens: number;\n totalTokens: number;\n}\n\nexport type CountTokens = (text: string) => number;\n\n/** Mirrors the wire shape MCP advertises, so both estimates stay comparable. */\nfunction schemaPayload(entry: ToolEntry): string {\n return JSON.stringify({\n name: entry.name,\n ...(entry.description === undefined ? {} : { description: entry.description }),\n ...(entry.parameters === undefined ? {} : { parameters: entry.parameters }),\n });\n}\n\nfunction promptPayload(entry: ToolEntry): string {\n return [entry.promptSnippet ?? '', ...(entry.promptGuidelines ?? [])].filter(Boolean).join('\\n');\n}\n\nexport function tokensForTool(entry: ToolEntry, countTokens: CountTokens): ToolCost {\n const schemaTokens = countTokens(schemaPayload(entry));\n const prompt = promptPayload(entry);\n const promptTokens = prompt.length === 0 ? 0 : countTokens(prompt);\n return { schemaTokens, promptTokens, totalTokens: schemaTokens + promptTokens };\n}\n\n/**\n * Every tool in a source, and what the source costs in total.\n *\n * An inactive tool is still priced: it is in the composition, and the point of\n * the figure is to show what the composition costs. Whether the model may call\n * it is a separate question from whether it is being paid for.\n */\nexport function tokensForSource(\n source: ToolSource,\n countTokens: CountTokens,\n): { tools: ReadonlyMap<string, ToolCost>; totalTokens: number } {\n const tools = new Map<string, ToolCost>();\n let totalTokens = 0;\n for (const entry of source.tools) {\n const cost = tokensForTool(entry, countTokens);\n tools.set(entry.name, cost);\n totalTokens += cost.totalTokens;\n }\n return { tools, totalTokens };\n}\n"],"mappings":";;AA2BA,SAAS,cAAc,OAA0B;CAC/C,OAAO,KAAK,UAAU;EACpB,MAAM,MAAM;EACZ,GAAI,MAAM,gBAAgB,KAAA,IAAY,CAAC,IAAI,EAAE,aAAa,MAAM,YAAY;EAC5E,GAAI,MAAM,eAAe,KAAA,IAAY,CAAC,IAAI,EAAE,YAAY,MAAM,WAAW;CAC3E,CAAC;AACH;AAEA,SAAS,cAAc,OAA0B;CAC/C,OAAO,CAAC,MAAM,iBAAiB,IAAI,GAAI,MAAM,oBAAoB,CAAC,CAAE,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,IAAI;AACjG;AAEA,SAAgB,cAAc,OAAkB,aAAoC;CAClF,MAAM,eAAe,YAAY,cAAc,KAAK,CAAC;CACrD,MAAM,SAAS,cAAc,KAAK;CAClC,MAAM,eAAe,OAAO,WAAW,IAAI,IAAI,YAAY,MAAM;CACjE,OAAO;EAAE;EAAc;EAAc,aAAa,eAAe;CAAa;AAChF;;;;;;;;AASA,SAAgB,gBACd,QACA,aAC+D;CAC/D,MAAM,wBAAQ,IAAI,IAAsB;CACxC,IAAI,cAAc;CAClB,KAAK,MAAM,SAAS,OAAO,OAAO;EAChC,MAAM,OAAO,cAAc,OAAO,WAAW;EAC7C,MAAM,IAAI,MAAM,MAAM,IAAI;EAC1B,eAAe,KAAK;CACtB;CACA,OAAO;EAAE;EAAO;CAAY;AAC9B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//#region src/services/toolOverrides/index.ts
|
|
2
|
+
function assertNonEmpty(value, field) {
|
|
3
|
+
if (value.trim().length === 0) throw new Error(`Doom tool override ${field} must not be empty.`);
|
|
4
|
+
}
|
|
5
|
+
/** Creates the host-owned tool replacement registry for one Doom runtime. */
|
|
6
|
+
function createDoomToolOverridesService(generation) {
|
|
7
|
+
if (!generation) throw new Error("Doom tool overrides require a runtime generation.");
|
|
8
|
+
const owners = /* @__PURE__ */ new Map();
|
|
9
|
+
return Object.freeze({
|
|
10
|
+
generation,
|
|
11
|
+
claim(claim) {
|
|
12
|
+
assertNonEmpty(claim.source, "source");
|
|
13
|
+
if (claim.tools.length === 0) throw new Error("Doom tool override tools must not be empty.");
|
|
14
|
+
for (const tool of claim.tools) assertNonEmpty(tool, "tool");
|
|
15
|
+
const tools = Object.freeze([...new Set(claim.tools)]);
|
|
16
|
+
if (tools.some((tool) => owners.has(tool))) return Object.freeze({
|
|
17
|
+
granted: false,
|
|
18
|
+
tools,
|
|
19
|
+
dispose: () => void 0
|
|
20
|
+
});
|
|
21
|
+
const stored = Object.freeze({
|
|
22
|
+
source: claim.source,
|
|
23
|
+
tools
|
|
24
|
+
});
|
|
25
|
+
for (const tool of tools) owners.set(tool, stored);
|
|
26
|
+
let disposed = false;
|
|
27
|
+
return Object.freeze({
|
|
28
|
+
granted: true,
|
|
29
|
+
tools,
|
|
30
|
+
dispose() {
|
|
31
|
+
if (disposed) return;
|
|
32
|
+
disposed = true;
|
|
33
|
+
for (const tool of tools) if (owners.get(tool) === stored) owners.delete(tool);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
owner(tool) {
|
|
38
|
+
return owners.get(tool)?.source;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
exports.createDoomToolOverridesService = createDoomToolOverridesService;
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/toolOverrides/index.ts"],"sourcesContent":["import type {\n DoomToolOverrideClaim,\n DoomToolOverrideRegistration,\n DoomToolOverridesService,\n} from '../../schemas/toolOverrides';\n\ninterface StoredClaim {\n readonly source: string;\n readonly tools: readonly string[];\n}\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (value.trim().length === 0) throw new Error(`Doom tool override ${field} must not be empty.`);\n}\n\n/** Creates the host-owned tool replacement registry for one Doom runtime. */\nexport function createDoomToolOverridesService(generation: string): DoomToolOverridesService {\n if (!generation) throw new Error('Doom tool overrides require a runtime generation.');\n\n const owners = new Map<string, StoredClaim>();\n return Object.freeze({\n generation,\n claim(claim: DoomToolOverrideClaim): DoomToolOverrideRegistration {\n assertNonEmpty(claim.source, 'source');\n if (claim.tools.length === 0) throw new Error('Doom tool override tools must not be empty.');\n for (const tool of claim.tools) assertNonEmpty(tool, 'tool');\n\n const tools = Object.freeze([...new Set(claim.tools)]);\n if (tools.some((tool) => owners.has(tool))) {\n return Object.freeze({ granted: false, tools, dispose: (): void => undefined });\n }\n\n const stored: StoredClaim = Object.freeze({ source: claim.source, tools });\n for (const tool of tools) owners.set(tool, stored);\n\n let disposed = false;\n return Object.freeze({\n granted: true,\n tools,\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const tool of tools) {\n if (owners.get(tool) === stored) owners.delete(tool);\n }\n },\n });\n },\n owner(tool: string): string | undefined {\n return owners.get(tool)?.source;\n },\n });\n}\n"],"mappings":";AAWA,SAAS,eAAe,OAAe,OAAqB;CAC1D,IAAI,MAAM,KAAK,CAAC,CAAC,WAAW,GAAG,MAAM,IAAI,MAAM,sBAAsB,MAAM,oBAAoB;AACjG;;AAGA,SAAgB,+BAA+B,YAA8C;CAC3F,IAAI,CAAC,YAAY,MAAM,IAAI,MAAM,mDAAmD;CAEpF,MAAM,yBAAS,IAAI,IAAyB;CAC5C,OAAO,OAAO,OAAO;EACnB;EACA,MAAM,OAA4D;GAChE,eAAe,MAAM,QAAQ,QAAQ;GACrC,IAAI,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,MAAM,6CAA6C;GAC3F,KAAK,MAAM,QAAQ,MAAM,OAAO,eAAe,MAAM,MAAM;GAE3D,MAAM,QAAQ,OAAO,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,KAAK,CAAC,CAAC;GACrD,IAAI,MAAM,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,GACvC,OAAO,OAAO,OAAO;IAAE,SAAS;IAAO;IAAO,eAAqB,KAAA;GAAU,CAAC;GAGhF,MAAM,SAAsB,OAAO,OAAO;IAAE,QAAQ,MAAM;IAAQ;GAAM,CAAC;GACzE,KAAK,MAAM,QAAQ,OAAO,OAAO,IAAI,MAAM,MAAM;GAEjD,IAAI,WAAW;GACf,OAAO,OAAO,OAAO;IACnB,SAAS;IACT;IACA,UAAgB;KACd,IAAI,UAAU;KACd,WAAW;KACX,KAAK,MAAM,QAAQ,OACjB,IAAI,OAAO,IAAI,IAAI,MAAM,QAAQ,OAAO,OAAO,IAAI;IAEvD;GACF,CAAC;EACH;EACA,MAAM,MAAkC;GACtC,OAAO,OAAO,IAAI,IAAI,CAAC,EAAE;EAC3B;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DoomToolOverridesService } from "../../schemas/toolOverrides.mjs";
|
|
2
|
+
//#region src/services/toolOverrides/index.d.ts
|
|
3
|
+
/** Creates the host-owned tool replacement registry for one Doom runtime. */
|
|
4
|
+
export declare function createDoomToolOverridesService(generation: string): DoomToolOverridesService;
|
|
5
|
+
//#endregion
|
|
6
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/toolOverrides/index.ts"],"mappings":";;;wBAgBgB,+BAA+B,qBAAqB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//#region src/services/toolOverrides/index.ts
|
|
2
|
+
function assertNonEmpty(value, field) {
|
|
3
|
+
if (value.trim().length === 0) throw new Error(`Doom tool override ${field} must not be empty.`);
|
|
4
|
+
}
|
|
5
|
+
/** Creates the host-owned tool replacement registry for one Doom runtime. */
|
|
6
|
+
function createDoomToolOverridesService(generation) {
|
|
7
|
+
if (!generation) throw new Error("Doom tool overrides require a runtime generation.");
|
|
8
|
+
const owners = /* @__PURE__ */ new Map();
|
|
9
|
+
return Object.freeze({
|
|
10
|
+
generation,
|
|
11
|
+
claim(claim) {
|
|
12
|
+
assertNonEmpty(claim.source, "source");
|
|
13
|
+
if (claim.tools.length === 0) throw new Error("Doom tool override tools must not be empty.");
|
|
14
|
+
for (const tool of claim.tools) assertNonEmpty(tool, "tool");
|
|
15
|
+
const tools = Object.freeze([...new Set(claim.tools)]);
|
|
16
|
+
if (tools.some((tool) => owners.has(tool))) return Object.freeze({
|
|
17
|
+
granted: false,
|
|
18
|
+
tools,
|
|
19
|
+
dispose: () => void 0
|
|
20
|
+
});
|
|
21
|
+
const stored = Object.freeze({
|
|
22
|
+
source: claim.source,
|
|
23
|
+
tools
|
|
24
|
+
});
|
|
25
|
+
for (const tool of tools) owners.set(tool, stored);
|
|
26
|
+
let disposed = false;
|
|
27
|
+
return Object.freeze({
|
|
28
|
+
granted: true,
|
|
29
|
+
tools,
|
|
30
|
+
dispose() {
|
|
31
|
+
if (disposed) return;
|
|
32
|
+
disposed = true;
|
|
33
|
+
for (const tool of tools) if (owners.get(tool) === stored) owners.delete(tool);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
owner(tool) {
|
|
38
|
+
return owners.get(tool)?.source;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
export { createDoomToolOverridesService };
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/toolOverrides/index.ts"],"sourcesContent":["import type {\n DoomToolOverrideClaim,\n DoomToolOverrideRegistration,\n DoomToolOverridesService,\n} from '../../schemas/toolOverrides';\n\ninterface StoredClaim {\n readonly source: string;\n readonly tools: readonly string[];\n}\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (value.trim().length === 0) throw new Error(`Doom tool override ${field} must not be empty.`);\n}\n\n/** Creates the host-owned tool replacement registry for one Doom runtime. */\nexport function createDoomToolOverridesService(generation: string): DoomToolOverridesService {\n if (!generation) throw new Error('Doom tool overrides require a runtime generation.');\n\n const owners = new Map<string, StoredClaim>();\n return Object.freeze({\n generation,\n claim(claim: DoomToolOverrideClaim): DoomToolOverrideRegistration {\n assertNonEmpty(claim.source, 'source');\n if (claim.tools.length === 0) throw new Error('Doom tool override tools must not be empty.');\n for (const tool of claim.tools) assertNonEmpty(tool, 'tool');\n\n const tools = Object.freeze([...new Set(claim.tools)]);\n if (tools.some((tool) => owners.has(tool))) {\n return Object.freeze({ granted: false, tools, dispose: (): void => undefined });\n }\n\n const stored: StoredClaim = Object.freeze({ source: claim.source, tools });\n for (const tool of tools) owners.set(tool, stored);\n\n let disposed = false;\n return Object.freeze({\n granted: true,\n tools,\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const tool of tools) {\n if (owners.get(tool) === stored) owners.delete(tool);\n }\n },\n });\n },\n owner(tool: string): string | undefined {\n return owners.get(tool)?.source;\n },\n });\n}\n"],"mappings":";AAWA,SAAS,eAAe,OAAe,OAAqB;CAC1D,IAAI,MAAM,KAAK,CAAC,CAAC,WAAW,GAAG,MAAM,IAAI,MAAM,sBAAsB,MAAM,oBAAoB;AACjG;;AAGA,SAAgB,+BAA+B,YAA8C;CAC3F,IAAI,CAAC,YAAY,MAAM,IAAI,MAAM,mDAAmD;CAEpF,MAAM,yBAAS,IAAI,IAAyB;CAC5C,OAAO,OAAO,OAAO;EACnB;EACA,MAAM,OAA4D;GAChE,eAAe,MAAM,QAAQ,QAAQ;GACrC,IAAI,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,MAAM,6CAA6C;GAC3F,KAAK,MAAM,QAAQ,MAAM,OAAO,eAAe,MAAM,MAAM;GAE3D,MAAM,QAAQ,OAAO,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,KAAK,CAAC,CAAC;GACrD,IAAI,MAAM,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,GACvC,OAAO,OAAO,OAAO;IAAE,SAAS;IAAO;IAAO,eAAqB,KAAA;GAAU,CAAC;GAGhF,MAAM,SAAsB,OAAO,OAAO;IAAE,QAAQ,MAAM;IAAQ;GAAM,CAAC;GACzE,KAAK,MAAM,QAAQ,OAAO,OAAO,IAAI,MAAM,MAAM;GAEjD,IAAI,WAAW;GACf,OAAO,OAAO,OAAO;IACnB,SAAS;IACT;IACA,UAAgB;KACd,IAAI,UAAU;KACd,WAAW;KACX,KAAK,MAAM,QAAQ,OACjB,IAAI,OAAO,IAAI,IAAI,MAAM,QAAQ,OAAO,OAAO,IAAI;IAEvD;GACF,CAAC;EACH;EACA,MAAM,MAAkC;GACtC,OAAO,OAAO,IAAI,IAAI,CAAC,EAAE;EAC3B;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/services/toolPrompt/index.ts
|
|
2
|
+
function formatToolPrompt(entries) {
|
|
3
|
+
const listed = entries.filter((entry) => (entry.promptSnippet ?? "").trim().length > 0);
|
|
4
|
+
const guidelines = [...new Set(entries.flatMap((entry) => entry.promptGuidelines ?? []).filter((line) => line.trim().length > 0))];
|
|
5
|
+
const sections = [];
|
|
6
|
+
if (listed.length > 0) sections.push(`Available tools:\n${listed.map((entry) => `- ${entry.name}: ${entry.promptSnippet}`).join("\n")}`);
|
|
7
|
+
if (guidelines.length > 0) sections.push(`Guidelines:\n${guidelines.map((line) => `- ${line}`).join("\n")}`);
|
|
8
|
+
return sections.join("\n\n");
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
exports.formatToolPrompt = formatToolPrompt;
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/toolPrompt/index.ts"],"sourcesContent":["/**\n * The system-prompt block describing the tools a session currently exposes.\n *\n * Pi's CLI builds this from each tool's `promptSnippet` and `promptGuidelines`.\n * The headless host does not run that builder, so a tool's guidance reached the\n * cost estimate in `toolCost` but never the model. This renders the same two\n * sections, in Pi's shape, from whatever the host has just applied.\n */\n\nexport interface ToolPromptEntry {\n readonly name: string;\n /** One line describing the tool. Pi omits a tool without one, and so does this. */\n readonly promptSnippet?: string;\n readonly promptGuidelines?: readonly string[];\n}\n\nexport function formatToolPrompt(entries: readonly ToolPromptEntry[]): string {\n const listed = entries.filter((entry) => (entry.promptSnippet ?? '').trim().length > 0);\n // Two tools may repeat one guideline, and the reader should see it once.\n const guidelines = [\n ...new Set(entries.flatMap((entry) => entry.promptGuidelines ?? []).filter((line) => line.trim().length > 0)),\n ];\n const sections: string[] = [];\n if (listed.length > 0) {\n sections.push(`Available tools:\\n${listed.map((entry) => `- ${entry.name}: ${entry.promptSnippet!}`).join('\\n')}`);\n }\n if (guidelines.length > 0) {\n sections.push(`Guidelines:\\n${guidelines.map((line) => `- ${line}`).join('\\n')}`);\n }\n return sections.join('\\n\\n');\n}\n"],"mappings":";AAgBA,SAAgB,iBAAiB,SAA6C;CAC5E,MAAM,SAAS,QAAQ,QAAQ,WAAW,MAAM,iBAAiB,GAAA,CAAI,KAAK,CAAC,CAAC,SAAS,CAAC;CAEtF,MAAM,aAAa,CACjB,GAAG,IAAI,IAAI,QAAQ,SAAS,UAAU,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAS,KAAK,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAC9G;CACA,MAAM,WAAqB,CAAC;CAC5B,IAAI,OAAO,SAAS,GAClB,SAAS,KAAK,qBAAqB,OAAO,KAAK,UAAU,KAAK,MAAM,KAAK,IAAI,MAAM,eAAgB,CAAC,CAAC,KAAK,IAAI,GAAG;CAEnH,IAAI,WAAW,SAAS,GACtB,SAAS,KAAK,gBAAgB,WAAW,KAAK,SAAS,KAAK,MAAM,CAAC,CAAC,KAAK,IAAI,GAAG;CAElF,OAAO,SAAS,KAAK,MAAM;AAC7B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/services/toolPrompt/index.ts
|
|
2
|
+
function formatToolPrompt(entries) {
|
|
3
|
+
const listed = entries.filter((entry) => (entry.promptSnippet ?? "").trim().length > 0);
|
|
4
|
+
const guidelines = [...new Set(entries.flatMap((entry) => entry.promptGuidelines ?? []).filter((line) => line.trim().length > 0))];
|
|
5
|
+
const sections = [];
|
|
6
|
+
if (listed.length > 0) sections.push(`Available tools:\n${listed.map((entry) => `- ${entry.name}: ${entry.promptSnippet}`).join("\n")}`);
|
|
7
|
+
if (guidelines.length > 0) sections.push(`Guidelines:\n${guidelines.map((line) => `- ${line}`).join("\n")}`);
|
|
8
|
+
return sections.join("\n\n");
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { formatToolPrompt };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/toolPrompt/index.ts"],"sourcesContent":["/**\n * The system-prompt block describing the tools a session currently exposes.\n *\n * Pi's CLI builds this from each tool's `promptSnippet` and `promptGuidelines`.\n * The headless host does not run that builder, so a tool's guidance reached the\n * cost estimate in `toolCost` but never the model. This renders the same two\n * sections, in Pi's shape, from whatever the host has just applied.\n */\n\nexport interface ToolPromptEntry {\n readonly name: string;\n /** One line describing the tool. Pi omits a tool without one, and so does this. */\n readonly promptSnippet?: string;\n readonly promptGuidelines?: readonly string[];\n}\n\nexport function formatToolPrompt(entries: readonly ToolPromptEntry[]): string {\n const listed = entries.filter((entry) => (entry.promptSnippet ?? '').trim().length > 0);\n // Two tools may repeat one guideline, and the reader should see it once.\n const guidelines = [\n ...new Set(entries.flatMap((entry) => entry.promptGuidelines ?? []).filter((line) => line.trim().length > 0)),\n ];\n const sections: string[] = [];\n if (listed.length > 0) {\n sections.push(`Available tools:\\n${listed.map((entry) => `- ${entry.name}: ${entry.promptSnippet!}`).join('\\n')}`);\n }\n if (guidelines.length > 0) {\n sections.push(`Guidelines:\\n${guidelines.map((line) => `- ${line}`).join('\\n')}`);\n }\n return sections.join('\\n\\n');\n}\n"],"mappings":";AAgBA,SAAgB,iBAAiB,SAA6C;CAC5E,MAAM,SAAS,QAAQ,QAAQ,WAAW,MAAM,iBAAiB,GAAA,CAAI,KAAK,CAAC,CAAC,SAAS,CAAC;CAEtF,MAAM,aAAa,CACjB,GAAG,IAAI,IAAI,QAAQ,SAAS,UAAU,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAS,KAAK,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAC9G;CACA,MAAM,WAAqB,CAAC;CAC5B,IAAI,OAAO,SAAS,GAClB,SAAS,KAAK,qBAAqB,OAAO,KAAK,UAAU,KAAK,MAAM,KAAK,IAAI,MAAM,eAAgB,CAAC,CAAC,KAAK,IAAI,GAAG;CAEnH,IAAI,WAAW,SAAS,GACtB,SAAS,KAAK,gBAAgB,WAAW,KAAK,SAAS,KAAK,MAAM,CAAC,CAAC,KAAK,IAAI,GAAG;CAElF,OAAO,SAAS,KAAK,MAAM;AAC7B"}
|