@agimon-ai/doompi-core 0.0.1-alpha.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/agentModel.cjs +4 -0
- package/dist/agentModel.d.mts +2 -0
- package/dist/agentModel.mjs +2 -0
- package/dist/apiContracts.cjs +2009 -0
- package/dist/apiContracts.cjs.map +1 -0
- package/dist/apiContracts.d.mts +1018 -0
- package/dist/apiContracts.d.mts.map +1 -0
- package/dist/apiContracts.mjs +1989 -0
- package/dist/apiContracts.mjs.map +1 -0
- package/dist/askUser.cjs +8 -0
- package/dist/askUser.d.mts +2 -0
- package/dist/askUser.mjs +2 -0
- package/dist/authorTools.cjs +5 -0
- package/dist/authorTools.d.mts +2 -0
- package/dist/authorTools.mjs +2 -0
- package/dist/backgroundWork.cjs +7 -0
- package/dist/backgroundWork.d.mts +2 -0
- package/dist/backgroundWork.mjs +2 -0
- package/dist/bundleAssetPolicy.cjs +5 -0
- package/dist/bundleAssetPolicy.d.mts +2 -0
- package/dist/bundleAssetPolicy.mjs +2 -0
- package/dist/childProcess.cjs +15 -0
- package/dist/childProcess.d.mts +2 -0
- package/dist/childProcess.mjs +2 -0
- package/dist/childSession.cjs +8 -0
- package/dist/childSession.d.mts +3 -0
- package/dist/childSession.mjs +3 -0
- package/dist/cockpitContainer.cjs +4 -0
- package/dist/cockpitContainer.d.mts +2 -0
- package/dist/cockpitContainer.mjs +2 -0
- package/dist/config.cjs +13 -0
- package/dist/config.d.mts +3 -0
- package/dist/config.mjs +2 -0
- package/dist/contextApi.cjs +10 -0
- package/dist/contextApi.d.mts +4 -0
- package/dist/contextApi.mjs +3 -0
- package/dist/contextContributions.cjs +7 -0
- package/dist/contextContributions.d.mts +3 -0
- package/dist/contextContributions.mjs +3 -0
- package/dist/contextDetail.cjs +65 -0
- package/dist/contextDetail.cjs.map +1 -0
- package/dist/contextDetail.d.mts +19 -0
- package/dist/contextDetail.d.mts.map +1 -0
- package/dist/contextDetail.mjs +64 -0
- package/dist/contextDetail.mjs.map +1 -0
- package/dist/contextDetailStore.cjs +100 -0
- package/dist/contextDetailStore.cjs.map +1 -0
- package/dist/contextDetailStore.d.mts +19 -0
- package/dist/contextDetailStore.d.mts.map +1 -0
- package/dist/contextDetailStore.mjs +91 -0
- package/dist/contextDetailStore.mjs.map +1 -0
- package/dist/contextProjection.cjs +121 -0
- package/dist/contextProjection.cjs.map +1 -0
- package/dist/contextProjection.d.mts +130 -0
- package/dist/contextProjection.d.mts.map +1 -0
- package/dist/contextProjection.mjs +117 -0
- package/dist/contextProjection.mjs.map +1 -0
- package/dist/cordisHost.cjs +11 -0
- package/dist/cordisHost.d.mts +2 -0
- package/dist/cordisHost.mjs +2 -0
- package/dist/delegation.cjs +18 -0
- package/dist/delegation.d.mts +2 -0
- package/dist/delegation.mjs +2 -0
- package/dist/doomPackage.cjs +61 -0
- package/dist/doomPackage.cjs.map +1 -0
- package/dist/doomPackage.d.mts +17 -0
- package/dist/doomPackage.d.mts.map +1 -0
- package/dist/doomPackage.mjs +54 -0
- package/dist/doomPackage.mjs.map +1 -0
- package/dist/executionBudget.cjs +231 -0
- package/dist/executionBudget.cjs.map +1 -0
- package/dist/executionBudget.d.mts +11 -0
- package/dist/executionBudget.d.mts.map +1 -0
- package/dist/executionBudget.mjs +225 -0
- package/dist/executionBudget.mjs.map +1 -0
- package/dist/extensionFile.cjs +24 -0
- package/dist/extensionFile.d.mts +3 -0
- package/dist/extensionFile.mjs +2 -0
- package/dist/footer.cjs +6 -0
- package/dist/footer.d.mts +2 -0
- package/dist/footer.mjs +2 -0
- package/dist/headless.cjs +9 -0
- package/dist/headless.d.mts +2 -0
- package/dist/headless.mjs +2 -0
- package/dist/headlessHub.cjs +914 -0
- package/dist/headlessHub.cjs.map +1 -0
- package/dist/headlessHub.d.mts +157 -0
- package/dist/headlessHub.d.mts.map +1 -0
- package/dist/headlessHub.mjs +911 -0
- package/dist/headlessHub.mjs.map +1 -0
- package/dist/headlessServer.cjs +910 -0
- package/dist/headlessServer.cjs.map +1 -0
- package/dist/headlessServer.d.mts +64 -0
- package/dist/headlessServer.d.mts.map +1 -0
- package/dist/headlessServer.mjs +904 -0
- package/dist/headlessServer.mjs.map +1 -0
- package/dist/headlessSessionHost.cjs +0 -0
- package/dist/headlessSessionHost.d.mts +71 -0
- package/dist/headlessSessionHost.d.mts.map +1 -0
- package/dist/headlessSessionHost.mjs +1 -0
- package/dist/headlessSessionManager.cjs +51 -0
- package/dist/headlessSessionManager.cjs.map +1 -0
- package/dist/headlessSessionManager.d.mts +6 -0
- package/dist/headlessSessionManager.d.mts.map +1 -0
- package/dist/headlessSessionManager.mjs +50 -0
- package/dist/headlessSessionManager.mjs.map +1 -0
- package/dist/help.cjs +24 -0
- package/dist/help.d.mts +3 -0
- package/dist/help.mjs +3 -0
- package/dist/history.cjs +25 -0
- package/dist/history.d.mts +10 -0
- package/dist/history.mjs +10 -0
- package/dist/historyImport.cjs +553 -0
- package/dist/historyImport.cjs.map +1 -0
- package/dist/historyImport.d.mts +76 -0
- package/dist/historyImport.d.mts.map +1 -0
- package/dist/historyImport.mjs +547 -0
- package/dist/historyImport.mjs.map +1 -0
- package/dist/historyOwnership.cjs +253 -0
- package/dist/historyOwnership.cjs.map +1 -0
- package/dist/historyOwnership.d.mts +23 -0
- package/dist/historyOwnership.d.mts.map +1 -0
- package/dist/historyOwnership.mjs +247 -0
- package/dist/historyOwnership.mjs.map +1 -0
- package/dist/hubChannel.cjs +4 -0
- package/dist/hubChannel.d.mts +2 -0
- package/dist/hubChannel.mjs +2 -0
- package/dist/index.cjs +44 -0
- package/dist/index.d.mts +6 -0
- package/dist/index.mjs +6 -0
- package/dist/json.cjs +6 -0
- package/dist/json.d.mts +2 -0
- package/dist/json.mjs +2 -0
- package/dist/jsonlSessionRepo.cjs +217 -0
- package/dist/jsonlSessionRepo.cjs.map +1 -0
- package/dist/jsonlSessionRepo.d.mts +7 -0
- package/dist/jsonlSessionRepo.d.mts.map +1 -0
- package/dist/jsonlSessionRepo.mjs +212 -0
- package/dist/jsonlSessionRepo.mjs.map +1 -0
- package/dist/kernel.cjs +3 -0
- package/dist/kernel.d.mts +3 -0
- package/dist/kernel.mjs +2 -0
- package/dist/leader.cjs +9 -0
- package/dist/leader.d.mts +2 -0
- package/dist/leader.mjs +2 -0
- package/dist/logSinkTelemetry.cjs +5 -0
- package/dist/logSinkTelemetry.d.mts +2 -0
- package/dist/logSinkTelemetry.mjs +2 -0
- package/dist/machineApi.cjs +92 -0
- package/dist/machineApi.cjs.map +1 -0
- package/dist/machineApi.d.mts +7 -0
- package/dist/machineApi.d.mts.map +1 -0
- package/dist/machineApi.mjs +88 -0
- package/dist/machineApi.mjs.map +1 -0
- package/dist/main.cjs +11 -0
- package/dist/main.d.mts +5 -0
- package/dist/main.mjs +4 -0
- package/dist/mcpFacet.cjs +12 -0
- package/dist/mcpFacet.d.mts +4 -0
- package/dist/mcpFacet.mjs +4 -0
- package/dist/mcpProjection.cjs +16 -0
- package/dist/mcpProjection.d.mts +2 -0
- package/dist/mcpProjection.mjs +2 -0
- package/dist/mcpSchemaCost.cjs +195 -0
- package/dist/mcpSchemaCost.cjs.map +1 -0
- package/dist/mcpSchemaCost.d.mts +35 -0
- package/dist/mcpSchemaCost.d.mts.map +1 -0
- package/dist/mcpSchemaCost.mjs +190 -0
- package/dist/mcpSchemaCost.mjs.map +1 -0
- package/dist/mcpSession.cjs +9 -0
- package/dist/mcpSession.d.mts +2 -0
- package/dist/mcpSession.mjs +2 -0
- package/dist/mcpStatus.cjs +7 -0
- package/dist/mcpStatus.d.mts +2 -0
- package/dist/mcpStatus.mjs +2 -0
- package/dist/mcpToolResolver.cjs +5 -0
- package/dist/mcpToolResolver.d.mts +2 -0
- package/dist/mcpToolResolver.mjs +2 -0
- package/dist/mcpWidget.cjs +0 -0
- package/dist/mcpWidget.d.mts +2 -0
- package/dist/mcpWidget.mjs +1 -0
- package/dist/moduleResolution.cjs +405 -0
- package/dist/moduleResolution.cjs.map +1 -0
- package/dist/moduleResolution.d.mts +67 -0
- package/dist/moduleResolution.d.mts.map +1 -0
- package/dist/moduleResolution.mjs +389 -0
- package/dist/moduleResolution.mjs.map +1 -0
- package/dist/narration.cjs +10 -0
- package/dist/narration.d.mts +2 -0
- package/dist/narration.mjs +2 -0
- package/dist/notification.cjs +17 -0
- package/dist/notification.d.mts +2 -0
- package/dist/notification.mjs +2 -0
- package/dist/packageApi.cjs +16 -0
- package/dist/packageApi.d.mts +3 -0
- package/dist/packageApi.mjs +3 -0
- package/dist/packageApiServer.cjs +191 -0
- package/dist/packageApiServer.cjs.map +1 -0
- package/dist/packageApiServer.d.mts +57 -0
- package/dist/packageApiServer.d.mts.map +1 -0
- package/dist/packageApiServer.mjs +189 -0
- package/dist/packageApiServer.mjs.map +1 -0
- package/dist/piExtension.cjs +13 -0
- package/dist/piExtension.d.mts +5 -0
- package/dist/piExtension.mjs +4 -0
- package/dist/piSettings.cjs +12 -0
- package/dist/piSettings.d.mts +2 -0
- package/dist/piSettings.mjs +2 -0
- package/dist/pluginProtocol.cjs +10 -0
- package/dist/pluginProtocol.d.mts +2 -0
- package/dist/pluginProtocol.mjs +2 -0
- package/dist/profileIdentity.cjs +6 -0
- package/dist/profileIdentity.d.mts +2 -0
- package/dist/profileIdentity.mjs +2 -0
- package/dist/protocol.cjs +10 -0
- package/dist/protocol.d.mts +2 -0
- package/dist/protocol.mjs +2 -0
- package/dist/readiness.cjs +8 -0
- package/dist/readiness.d.mts +2 -0
- package/dist/readiness.mjs +2 -0
- package/dist/relaunchHandoff.cjs +6 -0
- package/dist/relaunchHandoff.d.mts +2 -0
- package/dist/relaunchHandoff.mjs +2 -0
- package/dist/remoteApi.cjs +42 -0
- package/dist/remoteApi.cjs.map +1 -0
- package/dist/remoteApi.d.mts +7 -0
- package/dist/remoteApi.d.mts.map +1 -0
- package/dist/remoteApi.mjs +41 -0
- package/dist/remoteApi.mjs.map +1 -0
- package/dist/remoteRuntime.cjs +460 -0
- package/dist/remoteRuntime.cjs.map +1 -0
- package/dist/remoteRuntime.d.mts +28 -0
- package/dist/remoteRuntime.d.mts.map +1 -0
- package/dist/remoteRuntime.mjs +456 -0
- package/dist/remoteRuntime.mjs.map +1 -0
- package/dist/runtimeConfig.cjs +232 -0
- package/dist/runtimeConfig.cjs.map +1 -0
- package/dist/runtimeConfig.d.mts +313 -0
- package/dist/runtimeConfig.d.mts.map +1 -0
- package/dist/runtimeConfig.mjs +221 -0
- package/dist/runtimeConfig.mjs.map +1 -0
- package/dist/runtimeContextApi.cjs +64 -0
- package/dist/runtimeContextApi.cjs.map +1 -0
- package/dist/runtimeContextApi.d.mts +16 -0
- package/dist/runtimeContextApi.d.mts.map +1 -0
- package/dist/runtimeContextApi.mjs +62 -0
- package/dist/runtimeContextApi.mjs.map +1 -0
- package/dist/runtimeCordisHost.cjs +193 -0
- package/dist/runtimeCordisHost.cjs.map +1 -0
- package/dist/runtimeCordisHost.d.mts +63 -0
- package/dist/runtimeCordisHost.d.mts.map +1 -0
- package/dist/runtimeCordisHost.mjs +184 -0
- package/dist/runtimeCordisHost.mjs.map +1 -0
- package/dist/runtimeHeadlessSessionManager.cjs +0 -0
- package/dist/runtimeHeadlessSessionManager.d.mts +18 -0
- package/dist/runtimeHeadlessSessionManager.d.mts.map +1 -0
- package/dist/runtimeHeadlessSessionManager.mjs +1 -0
- package/dist/runtimeIdentity.cjs +26 -0
- package/dist/runtimeIdentity.cjs.map +1 -0
- package/dist/runtimeIdentity.d.mts +7 -0
- package/dist/runtimeIdentity.d.mts.map +1 -0
- package/dist/runtimeIdentity.mjs +21 -0
- package/dist/runtimeIdentity.mjs.map +1 -0
- package/dist/runtimeJson.cjs +46 -0
- package/dist/runtimeJson.cjs.map +1 -0
- package/dist/runtimeJson.d.mts +22 -0
- package/dist/runtimeJson.d.mts.map +1 -0
- package/dist/runtimeJson.mjs +39 -0
- package/dist/runtimeJson.mjs.map +1 -0
- package/dist/runtimeLogSinkTelemetry.cjs +102 -0
- package/dist/runtimeLogSinkTelemetry.cjs.map +1 -0
- package/dist/runtimeLogSinkTelemetry.d.mts +49 -0
- package/dist/runtimeLogSinkTelemetry.d.mts.map +1 -0
- package/dist/runtimeLogSinkTelemetry.mjs +99 -0
- package/dist/runtimeLogSinkTelemetry.mjs.map +1 -0
- package/dist/runtimePiExtension.cjs +339 -0
- package/dist/runtimePiExtension.cjs.map +1 -0
- package/dist/runtimePiExtension.d.mts +160 -0
- package/dist/runtimePiExtension.d.mts.map +1 -0
- package/dist/runtimePiExtension.mjs +333 -0
- package/dist/runtimePiExtension.mjs.map +1 -0
- package/dist/runtimePiSettings.cjs +116 -0
- package/dist/runtimePiSettings.cjs.map +1 -0
- package/dist/runtimePiSettings.d.mts +29 -0
- package/dist/runtimePiSettings.d.mts.map +1 -0
- package/dist/runtimePiSettings.mjs +103 -0
- package/dist/runtimePiSettings.mjs.map +1 -0
- package/dist/runtimeProtocol.cjs +223 -0
- package/dist/runtimeProtocol.cjs.map +1 -0
- package/dist/runtimeProtocol.d.mts +84 -0
- package/dist/runtimeProtocol.d.mts.map +1 -0
- package/dist/runtimeProtocol.mjs +215 -0
- package/dist/runtimeProtocol.mjs.map +1 -0
- package/dist/runtimeToolNames.cjs +51 -0
- package/dist/runtimeToolNames.cjs.map +1 -0
- package/dist/runtimeToolNames.d.mts +24 -0
- package/dist/runtimeToolNames.d.mts.map +1 -0
- package/dist/runtimeToolNames.mjs +49 -0
- package/dist/runtimeToolNames.mjs.map +1 -0
- package/dist/runtimeTransition.cjs +27 -0
- package/dist/runtimeTransition.cjs.map +1 -0
- package/dist/runtimeTransition.d.mts +114 -0
- package/dist/runtimeTransition.d.mts.map +1 -0
- package/dist/runtimeTransition.mjs +24 -0
- package/dist/runtimeTransition.mjs.map +1 -0
- package/dist/sandboxHarness.cjs +6 -0
- package/dist/sandboxHarness.d.mts +2 -0
- package/dist/sandboxHarness.mjs +2 -0
- package/dist/server.cjs +17 -0
- package/dist/server.d.mts +10 -0
- package/dist/server.mjs +7 -0
- package/dist/serverFacet.cjs +30 -0
- package/dist/serverFacet.d.mts +8 -0
- package/dist/serverFacet.mjs +8 -0
- package/dist/serverTelemetry.cjs +25 -0
- package/dist/serverTelemetry.cjs.map +1 -0
- package/dist/serverTelemetry.d.mts +12 -0
- package/dist/serverTelemetry.d.mts.map +1 -0
- package/dist/serverTelemetry.mjs +23 -0
- package/dist/serverTelemetry.mjs.map +1 -0
- package/dist/sessionFilesApi.cjs +96 -0
- package/dist/sessionFilesApi.cjs.map +1 -0
- package/dist/sessionFilesApi.d.mts +7 -0
- package/dist/sessionFilesApi.d.mts.map +1 -0
- package/dist/sessionFilesApi.mjs +91 -0
- package/dist/sessionFilesApi.mjs.map +1 -0
- package/dist/sessionMcp.cjs +6 -0
- package/dist/sessionMcp.d.mts +5 -0
- package/dist/sessionMcp.mjs +3 -0
- package/dist/sessionProtocol.cjs +8 -0
- package/dist/sessionProtocol.d.mts +3 -0
- package/dist/sessionProtocol.mjs +2 -0
- package/dist/skills.cjs +9 -0
- package/dist/skills.d.mts +2 -0
- package/dist/skills.mjs +2 -0
- package/dist/sqliteHistoryImport.cjs +151 -0
- package/dist/sqliteHistoryImport.cjs.map +1 -0
- package/dist/sqliteHistoryImport.d.mts +8 -0
- package/dist/sqliteHistoryImport.d.mts.map +1 -0
- package/dist/sqliteHistoryImport.mjs +146 -0
- package/dist/sqliteHistoryImport.mjs.map +1 -0
- package/dist/sqliteSessionStorage.cjs +53 -0
- package/dist/sqliteSessionStorage.cjs.map +1 -0
- package/dist/sqliteSessionStorage.d.mts +7 -0
- package/dist/sqliteSessionStorage.d.mts.map +1 -0
- package/dist/sqliteSessionStorage.mjs +49 -0
- package/dist/sqliteSessionStorage.mjs.map +1 -0
- package/dist/src/constants/authorTools.cjs +10 -0
- package/dist/src/constants/authorTools.cjs.map +1 -0
- package/dist/src/constants/authorTools.d.mts +6 -0
- package/dist/src/constants/authorTools.d.mts.map +1 -0
- package/dist/src/constants/authorTools.mjs +8 -0
- package/dist/src/constants/authorTools.mjs.map +1 -0
- package/dist/src/constants/contextApi.cjs +28 -0
- package/dist/src/constants/contextApi.cjs.map +1 -0
- package/dist/src/constants/contextApi.d.mts +21 -0
- package/dist/src/constants/contextApi.d.mts.map +1 -0
- package/dist/src/constants/contextApi.mjs +23 -0
- package/dist/src/constants/contextApi.mjs.map +1 -0
- package/dist/src/constants/remote.cjs +90 -0
- package/dist/src/constants/remote.cjs.map +1 -0
- package/dist/src/constants/remote.mjs +69 -0
- package/dist/src/constants/remote.mjs.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.cjs +12 -0
- package/dist/src/constants/voiceReloadHandoff.cjs.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.d.mts +7 -0
- package/dist/src/constants/voiceReloadHandoff.d.mts.map +1 -0
- package/dist/src/constants/voiceReloadHandoff.mjs +9 -0
- package/dist/src/constants/voiceReloadHandoff.mjs.map +1 -0
- package/dist/src/constants/voiceTools.cjs +96 -0
- package/dist/src/constants/voiceTools.cjs.map +1 -0
- package/dist/src/constants/voiceTools.d.mts +58 -0
- package/dist/src/constants/voiceTools.d.mts.map +1 -0
- package/dist/src/constants/voiceTools.mjs +60 -0
- package/dist/src/constants/voiceTools.mjs.map +1 -0
- package/dist/src/extensions/extensionFile.cjs +165 -0
- package/dist/src/extensions/extensionFile.cjs.map +1 -0
- package/dist/src/extensions/extensionFile.d.mts +79 -0
- package/dist/src/extensions/extensionFile.d.mts.map +1 -0
- package/dist/src/extensions/extensionFile.mjs +144 -0
- package/dist/src/extensions/extensionFile.mjs.map +1 -0
- package/dist/src/extensions/serverPlugin.cjs +106 -0
- package/dist/src/extensions/serverPlugin.cjs.map +1 -0
- package/dist/src/extensions/serverPlugin.d.mts +5 -0
- package/dist/src/extensions/serverPlugin.d.mts.map +1 -0
- package/dist/src/extensions/serverPlugin.mjs +106 -0
- package/dist/src/extensions/serverPlugin.mjs.map +1 -0
- package/dist/src/extensions/webPlugin.cjs +131 -0
- package/dist/src/extensions/webPlugin.cjs.map +1 -0
- package/dist/src/extensions/webPlugin.d.mts +66 -0
- package/dist/src/extensions/webPlugin.d.mts.map +1 -0
- package/dist/src/extensions/webPlugin.mjs +110 -0
- package/dist/src/extensions/webPlugin.mjs.map +1 -0
- package/dist/src/pi/piSessionRuntime.cjs +572 -0
- package/dist/src/pi/piSessionRuntime.cjs.map +1 -0
- package/dist/src/pi/piSessionRuntime.d.mts +43 -0
- package/dist/src/pi/piSessionRuntime.d.mts.map +1 -0
- package/dist/src/pi/piSessionRuntime.mjs +571 -0
- package/dist/src/pi/piSessionRuntime.mjs.map +1 -0
- package/dist/src/pi/piWebSocketListener.cjs +115 -0
- package/dist/src/pi/piWebSocketListener.cjs.map +1 -0
- package/dist/src/pi/piWebSocketListener.mjs +115 -0
- package/dist/src/pi/piWebSocketListener.mjs.map +1 -0
- package/dist/src/schemas/agentModel.cjs +33 -0
- package/dist/src/schemas/agentModel.cjs.map +1 -0
- package/dist/src/schemas/agentModel.d.mts +26 -0
- package/dist/src/schemas/agentModel.d.mts.map +1 -0
- package/dist/src/schemas/agentModel.mjs +32 -0
- package/dist/src/schemas/agentModel.mjs.map +1 -0
- package/dist/src/schemas/apiContracts.d.mts +58 -0
- package/dist/src/schemas/apiContracts.d.mts.map +1 -0
- package/dist/src/schemas/askUser.cjs +42 -0
- package/dist/src/schemas/askUser.cjs.map +1 -0
- package/dist/src/schemas/askUser.d.mts +47 -0
- package/dist/src/schemas/askUser.d.mts.map +1 -0
- package/dist/src/schemas/askUser.mjs +37 -0
- package/dist/src/schemas/askUser.mjs.map +1 -0
- package/dist/src/schemas/backgroundWork.cjs +31 -0
- package/dist/src/schemas/backgroundWork.cjs.map +1 -0
- package/dist/src/schemas/backgroundWork.d.mts +72 -0
- package/dist/src/schemas/backgroundWork.d.mts.map +1 -0
- package/dist/src/schemas/backgroundWork.mjs +27 -0
- package/dist/src/schemas/backgroundWork.mjs.map +1 -0
- package/dist/src/schemas/childProcess.cjs +67 -0
- package/dist/src/schemas/childProcess.cjs.map +1 -0
- package/dist/src/schemas/childProcess.d.mts +30 -0
- package/dist/src/schemas/childProcess.d.mts.map +1 -0
- package/dist/src/schemas/childProcess.mjs +55 -0
- package/dist/src/schemas/childProcess.mjs.map +1 -0
- package/dist/src/schemas/cockpitContainer.cjs +31 -0
- package/dist/src/schemas/cockpitContainer.cjs.map +1 -0
- package/dist/src/schemas/cockpitContainer.d.mts +80 -0
- package/dist/src/schemas/cockpitContainer.d.mts.map +1 -0
- package/dist/src/schemas/cockpitContainer.mjs +30 -0
- package/dist/src/schemas/cockpitContainer.mjs.map +1 -0
- package/dist/src/schemas/contextContributions.cjs +17 -0
- package/dist/src/schemas/contextContributions.cjs.map +1 -0
- package/dist/src/schemas/contextContributions.d.mts +49 -0
- package/dist/src/schemas/contextContributions.d.mts.map +1 -0
- package/dist/src/schemas/contextContributions.mjs +15 -0
- package/dist/src/schemas/contextContributions.mjs.map +1 -0
- package/dist/src/schemas/delegation.cjs +91 -0
- package/dist/src/schemas/delegation.cjs.map +1 -0
- package/dist/src/schemas/delegation.d.mts +95 -0
- package/dist/src/schemas/delegation.d.mts.map +1 -0
- package/dist/src/schemas/delegation.mjs +76 -0
- package/dist/src/schemas/delegation.mjs.map +1 -0
- package/dist/src/schemas/extensionFile.d.mts +136 -0
- package/dist/src/schemas/extensionFile.d.mts.map +1 -0
- package/dist/src/schemas/footer.cjs +48 -0
- package/dist/src/schemas/footer.cjs.map +1 -0
- package/dist/src/schemas/footer.d.mts +48 -0
- package/dist/src/schemas/footer.d.mts.map +1 -0
- package/dist/src/schemas/footer.mjs +45 -0
- package/dist/src/schemas/footer.mjs.map +1 -0
- package/dist/src/schemas/headless.cjs +44 -0
- package/dist/src/schemas/headless.cjs.map +1 -0
- package/dist/src/schemas/headless.d.mts +370 -0
- package/dist/src/schemas/headless.d.mts.map +1 -0
- package/dist/src/schemas/headless.mjs +38 -0
- package/dist/src/schemas/headless.mjs.map +1 -0
- package/dist/src/schemas/help.cjs +281 -0
- package/dist/src/schemas/help.cjs.map +1 -0
- package/dist/src/schemas/help.d.mts +119 -0
- package/dist/src/schemas/help.d.mts.map +1 -0
- package/dist/src/schemas/help.mjs +262 -0
- package/dist/src/schemas/help.mjs.map +1 -0
- package/dist/src/schemas/hubChannel.cjs +20 -0
- package/dist/src/schemas/hubChannel.cjs.map +1 -0
- package/dist/src/schemas/hubChannel.d.mts +236 -0
- package/dist/src/schemas/hubChannel.d.mts.map +1 -0
- package/dist/src/schemas/hubChannel.mjs +19 -0
- package/dist/src/schemas/hubChannel.mjs.map +1 -0
- package/dist/src/schemas/leader.cjs +57 -0
- package/dist/src/schemas/leader.cjs.map +1 -0
- package/dist/src/schemas/leader.d.mts +107 -0
- package/dist/src/schemas/leader.d.mts.map +1 -0
- package/dist/src/schemas/leader.mjs +51 -0
- package/dist/src/schemas/leader.mjs.map +1 -0
- package/dist/src/schemas/mcpBundle.cjs +92 -0
- package/dist/src/schemas/mcpBundle.cjs.map +1 -0
- package/dist/src/schemas/mcpBundle.d.mts +33 -0
- package/dist/src/schemas/mcpBundle.d.mts.map +1 -0
- package/dist/src/schemas/mcpBundle.mjs +90 -0
- package/dist/src/schemas/mcpBundle.mjs.map +1 -0
- package/dist/src/schemas/mcpFacet.cjs +24 -0
- package/dist/src/schemas/mcpFacet.cjs.map +1 -0
- package/dist/src/schemas/mcpFacet.d.mts +91 -0
- package/dist/src/schemas/mcpFacet.d.mts.map +1 -0
- package/dist/src/schemas/mcpFacet.mjs +21 -0
- package/dist/src/schemas/mcpFacet.mjs.map +1 -0
- package/dist/src/schemas/mcpProjection.cjs +117 -0
- package/dist/src/schemas/mcpProjection.cjs.map +1 -0
- package/dist/src/schemas/mcpProjection.d.mts +124 -0
- package/dist/src/schemas/mcpProjection.d.mts.map +1 -0
- package/dist/src/schemas/mcpProjection.mjs +104 -0
- package/dist/src/schemas/mcpProjection.mjs.map +1 -0
- package/dist/src/schemas/mcpSession.cjs +57 -0
- package/dist/src/schemas/mcpSession.cjs.map +1 -0
- package/dist/src/schemas/mcpSession.d.mts +57 -0
- package/dist/src/schemas/mcpSession.d.mts.map +1 -0
- package/dist/src/schemas/mcpSession.mjs +51 -0
- package/dist/src/schemas/mcpSession.mjs.map +1 -0
- package/dist/src/schemas/mcpStatus.cjs +52 -0
- package/dist/src/schemas/mcpStatus.cjs.map +1 -0
- package/dist/src/schemas/mcpStatus.d.mts +73 -0
- package/dist/src/schemas/mcpStatus.d.mts.map +1 -0
- package/dist/src/schemas/mcpStatus.mjs +48 -0
- package/dist/src/schemas/mcpStatus.mjs.map +1 -0
- package/dist/src/schemas/mcpToolResolver.cjs +17 -0
- package/dist/src/schemas/mcpToolResolver.cjs.map +1 -0
- package/dist/src/schemas/mcpToolResolver.d.mts +24 -0
- package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -0
- package/dist/src/schemas/mcpToolResolver.mjs +15 -0
- package/dist/src/schemas/mcpToolResolver.mjs.map +1 -0
- package/dist/src/schemas/narration.cjs +54 -0
- package/dist/src/schemas/narration.cjs.map +1 -0
- package/dist/src/schemas/narration.d.mts +29 -0
- package/dist/src/schemas/narration.d.mts.map +1 -0
- package/dist/src/schemas/narration.mjs +47 -0
- package/dist/src/schemas/narration.mjs.map +1 -0
- package/dist/src/schemas/notification.cjs +122 -0
- package/dist/src/schemas/notification.cjs.map +1 -0
- package/dist/src/schemas/notification.d.mts +48 -0
- package/dist/src/schemas/notification.d.mts.map +1 -0
- package/dist/src/schemas/notification.mjs +108 -0
- package/dist/src/schemas/notification.mjs.map +1 -0
- package/dist/src/schemas/packageApi.cjs +73 -0
- package/dist/src/schemas/packageApi.cjs.map +1 -0
- package/dist/src/schemas/packageApi.d.mts +249 -0
- package/dist/src/schemas/packageApi.d.mts.map +1 -0
- package/dist/src/schemas/packageApi.mjs +64 -0
- package/dist/src/schemas/packageApi.mjs.map +1 -0
- package/dist/src/schemas/piTool.cjs +26 -0
- package/dist/src/schemas/piTool.cjs.map +1 -0
- package/dist/src/schemas/piTool.d.mts +25 -0
- package/dist/src/schemas/piTool.d.mts.map +1 -0
- package/dist/src/schemas/piTool.mjs +26 -0
- package/dist/src/schemas/piTool.mjs.map +1 -0
- package/dist/src/schemas/pluginContributions.cjs +19 -0
- package/dist/src/schemas/pluginContributions.cjs.map +1 -0
- package/dist/src/schemas/pluginContributions.d.mts +56 -0
- package/dist/src/schemas/pluginContributions.d.mts.map +1 -0
- package/dist/src/schemas/pluginContributions.mjs +18 -0
- package/dist/src/schemas/pluginContributions.mjs.map +1 -0
- package/dist/src/schemas/pluginProtocol.cjs +103 -0
- package/dist/src/schemas/pluginProtocol.cjs.map +1 -0
- package/dist/src/schemas/pluginProtocol.d.mts +68 -0
- package/dist/src/schemas/pluginProtocol.d.mts.map +1 -0
- package/dist/src/schemas/pluginProtocol.mjs +96 -0
- package/dist/src/schemas/pluginProtocol.mjs.map +1 -0
- package/dist/src/schemas/profileIdentity.cjs +67 -0
- package/dist/src/schemas/profileIdentity.cjs.map +1 -0
- package/dist/src/schemas/profileIdentity.d.mts +50 -0
- package/dist/src/schemas/profileIdentity.d.mts.map +1 -0
- package/dist/src/schemas/profileIdentity.mjs +64 -0
- package/dist/src/schemas/profileIdentity.mjs.map +1 -0
- package/dist/src/schemas/readiness.cjs +251 -0
- package/dist/src/schemas/readiness.cjs.map +1 -0
- package/dist/src/schemas/readiness.d.mts +84 -0
- package/dist/src/schemas/readiness.d.mts.map +1 -0
- package/dist/src/schemas/readiness.mjs +246 -0
- package/dist/src/schemas/readiness.mjs.map +1 -0
- package/dist/src/schemas/relaunchHandoff.cjs +47 -0
- package/dist/src/schemas/relaunchHandoff.cjs.map +1 -0
- package/dist/src/schemas/relaunchHandoff.d.mts +25 -0
- package/dist/src/schemas/relaunchHandoff.d.mts.map +1 -0
- package/dist/src/schemas/relaunchHandoff.mjs +44 -0
- package/dist/src/schemas/relaunchHandoff.mjs.map +1 -0
- package/dist/src/schemas/sandboxHarness.cjs +29 -0
- package/dist/src/schemas/sandboxHarness.cjs.map +1 -0
- package/dist/src/schemas/sandboxHarness.d.mts +39 -0
- package/dist/src/schemas/sandboxHarness.d.mts.map +1 -0
- package/dist/src/schemas/sandboxHarness.mjs +26 -0
- package/dist/src/schemas/sandboxHarness.mjs.map +1 -0
- package/dist/src/schemas/serverBundle.cjs +79 -0
- package/dist/src/schemas/serverBundle.cjs.map +1 -0
- package/dist/src/schemas/serverBundle.d.mts +34 -0
- package/dist/src/schemas/serverBundle.d.mts.map +1 -0
- package/dist/src/schemas/serverBundle.mjs +77 -0
- package/dist/src/schemas/serverBundle.mjs.map +1 -0
- package/dist/src/schemas/serverFacet.cjs +102 -0
- package/dist/src/schemas/serverFacet.cjs.map +1 -0
- package/dist/src/schemas/serverFacet.d.mts +141 -0
- package/dist/src/schemas/serverFacet.d.mts.map +1 -0
- package/dist/src/schemas/serverFacet.mjs +93 -0
- package/dist/src/schemas/serverFacet.mjs.map +1 -0
- package/dist/src/schemas/sessionMcpActivity.d.mts +45 -0
- package/dist/src/schemas/sessionMcpActivity.d.mts.map +1 -0
- package/dist/src/schemas/sessionProtocol.cjs +17 -0
- package/dist/src/schemas/sessionProtocol.cjs.map +1 -0
- package/dist/src/schemas/sessionProtocol.d.mts +308 -0
- package/dist/src/schemas/sessionProtocol.d.mts.map +1 -0
- package/dist/src/schemas/sessionProtocol.mjs +12 -0
- package/dist/src/schemas/sessionProtocol.mjs.map +1 -0
- package/dist/src/schemas/sessionUpdates.d.mts +34 -0
- package/dist/src/schemas/sessionUpdates.d.mts.map +1 -0
- package/dist/src/schemas/skills.cjs +115 -0
- package/dist/src/schemas/skills.cjs.map +1 -0
- package/dist/src/schemas/skills.d.mts +65 -0
- package/dist/src/schemas/skills.d.mts.map +1 -0
- package/dist/src/schemas/skills.mjs +109 -0
- package/dist/src/schemas/skills.mjs.map +1 -0
- package/dist/src/schemas/toolOverrides.cjs +17 -0
- package/dist/src/schemas/toolOverrides.cjs.map +1 -0
- package/dist/src/schemas/toolOverrides.d.mts +29 -0
- package/dist/src/schemas/toolOverrides.d.mts.map +1 -0
- package/dist/src/schemas/toolOverrides.mjs +15 -0
- package/dist/src/schemas/toolOverrides.mjs.map +1 -0
- package/dist/src/schemas/toolSurface.cjs +17 -0
- package/dist/src/schemas/toolSurface.cjs.map +1 -0
- package/dist/src/schemas/toolSurface.d.mts +70 -0
- package/dist/src/schemas/toolSurface.d.mts.map +1 -0
- package/dist/src/schemas/toolSurface.mjs +15 -0
- package/dist/src/schemas/toolSurface.mjs.map +1 -0
- package/dist/src/schemas/uiHub.cjs +17 -0
- package/dist/src/schemas/uiHub.cjs.map +1 -0
- package/dist/src/schemas/uiHub.d.mts +23 -0
- package/dist/src/schemas/uiHub.d.mts.map +1 -0
- package/dist/src/schemas/uiHub.mjs +15 -0
- package/dist/src/schemas/uiHub.mjs.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.cjs +78 -0
- package/dist/src/schemas/voiceReloadHandoff.cjs.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.d.mts +31 -0
- package/dist/src/schemas/voiceReloadHandoff.d.mts.map +1 -0
- package/dist/src/schemas/voiceReloadHandoff.mjs +75 -0
- package/dist/src/schemas/voiceReloadHandoff.mjs.map +1 -0
- package/dist/src/schemas/voiceTools.cjs +205 -0
- package/dist/src/schemas/voiceTools.cjs.map +1 -0
- package/dist/src/schemas/voiceTools.d.mts +120 -0
- package/dist/src/schemas/voiceTools.d.mts.map +1 -0
- package/dist/src/schemas/voiceTools.mjs +194 -0
- package/dist/src/schemas/voiceTools.mjs.map +1 -0
- package/dist/src/server/devProxyForward.cjs +141 -0
- package/dist/src/server/devProxyForward.cjs.map +1 -0
- package/dist/src/server/devProxyForward.mjs +139 -0
- package/dist/src/server/devProxyForward.mjs.map +1 -0
- package/dist/src/server/devProxyRoutes.cjs +97 -0
- package/dist/src/server/devProxyRoutes.cjs.map +1 -0
- package/dist/src/server/devProxyRoutes.mjs +97 -0
- package/dist/src/server/devProxyRoutes.mjs.map +1 -0
- package/dist/src/server/devProxySocket.cjs +87 -0
- package/dist/src/server/devProxySocket.cjs.map +1 -0
- package/dist/src/server/devProxySocket.mjs +87 -0
- package/dist/src/server/devProxySocket.mjs.map +1 -0
- package/dist/src/server/directHarnessRuntime.cjs +1964 -0
- package/dist/src/server/directHarnessRuntime.cjs.map +1 -0
- package/dist/src/server/directHarnessRuntime.d.mts +3 -0
- package/dist/src/server/directHarnessRuntime.mjs +1958 -0
- package/dist/src/server/directHarnessRuntime.mjs.map +1 -0
- package/dist/src/server/harnessErrorMessage.cjs +13 -0
- package/dist/src/server/harnessErrorMessage.cjs.map +1 -0
- package/dist/src/server/harnessErrorMessage.mjs +13 -0
- package/dist/src/server/harnessErrorMessage.mjs.map +1 -0
- package/dist/src/server/headlessProtocol.cjs +366 -0
- package/dist/src/server/headlessProtocol.cjs.map +1 -0
- package/dist/src/server/headlessProtocol.mjs +366 -0
- package/dist/src/server/headlessProtocol.mjs.map +1 -0
- package/dist/src/server/jsonlTranscriptReader.cjs +85 -0
- package/dist/src/server/jsonlTranscriptReader.cjs.map +1 -0
- package/dist/src/server/jsonlTranscriptReader.mjs +83 -0
- package/dist/src/server/jsonlTranscriptReader.mjs.map +1 -0
- package/dist/src/server/mcpBundleLoader.cjs +115 -0
- package/dist/src/server/mcpBundleLoader.cjs.map +1 -0
- package/dist/src/server/mcpBundleLoader.d.mts +27 -0
- package/dist/src/server/mcpBundleLoader.d.mts.map +1 -0
- package/dist/src/server/mcpBundleLoader.mjs +111 -0
- package/dist/src/server/mcpBundleLoader.mjs.map +1 -0
- package/dist/src/server/nativeChildTranscriptReader.cjs +20 -0
- package/dist/src/server/nativeChildTranscriptReader.cjs.map +1 -0
- package/dist/src/server/nativeChildTranscriptReader.mjs +18 -0
- package/dist/src/server/nativeChildTranscriptReader.mjs.map +1 -0
- package/dist/src/server/remoteRoutes.cjs +386 -0
- package/dist/src/server/remoteRoutes.cjs.map +1 -0
- package/dist/src/server/remoteRoutes.mjs +386 -0
- package/dist/src/server/remoteRoutes.mjs.map +1 -0
- package/dist/src/server/serverFacetLoader.cjs +220 -0
- package/dist/src/server/serverFacetLoader.cjs.map +1 -0
- package/dist/src/server/serverFacetLoader.d.mts +77 -0
- package/dist/src/server/serverFacetLoader.d.mts.map +1 -0
- package/dist/src/server/serverFacetLoader.mjs +215 -0
- package/dist/src/server/serverFacetLoader.mjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.cjs +494 -0
- package/dist/src/server/sessionMcpHandler.cjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.d.mts +47 -0
- package/dist/src/server/sessionMcpHandler.d.mts.map +1 -0
- package/dist/src/server/sessionMcpHandler.mjs +493 -0
- package/dist/src/server/sessionMcpHandler.mjs.map +1 -0
- package/dist/src/server/sessionMcpRoutes.cjs +780 -0
- package/dist/src/server/sessionMcpRoutes.cjs.map +1 -0
- package/dist/src/server/sessionMcpRoutes.mjs +775 -0
- package/dist/src/server/sessionMcpRoutes.mjs.map +1 -0
- package/dist/src/server/threadJournals.cjs +172 -0
- package/dist/src/server/threadJournals.cjs.map +1 -0
- package/dist/src/server/threadJournals.mjs +169 -0
- package/dist/src/server/threadJournals.mjs.map +1 -0
- package/dist/src/services/acpSessionUpdates/index.cjs +129 -0
- package/dist/src/services/acpSessionUpdates/index.cjs.map +1 -0
- package/dist/src/services/acpSessionUpdates/index.mjs +129 -0
- package/dist/src/services/acpSessionUpdates/index.mjs.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.cjs +60 -0
- package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.d.mts +24 -0
- package/dist/src/services/apiSurfaceAssert/index.d.mts.map +1 -0
- package/dist/src/services/apiSurfaceAssert/index.mjs +60 -0
- package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -0
- package/dist/src/services/bundlePublication/index.cjs +88 -0
- package/dist/src/services/bundlePublication/index.cjs.map +1 -0
- package/dist/src/services/bundlePublication/index.mjs +85 -0
- package/dist/src/services/bundlePublication/index.mjs.map +1 -0
- package/dist/src/services/contextApiUrls/index.cjs +14 -0
- package/dist/src/services/contextApiUrls/index.cjs.map +1 -0
- package/dist/src/services/contextApiUrls/index.d.mts +6 -0
- package/dist/src/services/contextApiUrls/index.d.mts.map +1 -0
- package/dist/src/services/contextApiUrls/index.mjs +14 -0
- package/dist/src/services/contextApiUrls/index.mjs.map +1 -0
- package/dist/src/services/contextContributions/index.cjs +79 -0
- package/dist/src/services/contextContributions/index.cjs.map +1 -0
- package/dist/src/services/contextContributions/index.d.mts +6 -0
- package/dist/src/services/contextContributions/index.d.mts.map +1 -0
- package/dist/src/services/contextContributions/index.mjs +79 -0
- package/dist/src/services/contextContributions/index.mjs.map +1 -0
- package/dist/src/services/contextUsage/index.cjs +27 -0
- package/dist/src/services/contextUsage/index.cjs.map +1 -0
- package/dist/src/services/contextUsage/index.mjs +25 -0
- package/dist/src/services/contextUsage/index.mjs.map +1 -0
- package/dist/src/services/devProxyPolicy/index.cjs +168 -0
- package/dist/src/services/devProxyPolicy/index.cjs.map +1 -0
- package/dist/src/services/devProxyPolicy/index.mjs +165 -0
- package/dist/src/services/devProxyPolicy/index.mjs.map +1 -0
- package/dist/src/services/devProxyStore/index.cjs +107 -0
- package/dist/src/services/devProxyStore/index.cjs.map +1 -0
- package/dist/src/services/devProxyStore/index.mjs +104 -0
- package/dist/src/services/devProxyStore/index.mjs.map +1 -0
- package/dist/src/services/deviceAuth/index.cjs +125 -0
- package/dist/src/services/deviceAuth/index.cjs.map +1 -0
- package/dist/src/services/deviceAuth/index.d.mts +9 -0
- package/dist/src/services/deviceAuth/index.d.mts.map +1 -0
- package/dist/src/services/deviceAuth/index.mjs +125 -0
- package/dist/src/services/deviceAuth/index.mjs.map +1 -0
- package/dist/src/services/deviceSessions/index.cjs +147 -0
- package/dist/src/services/deviceSessions/index.cjs.map +1 -0
- package/dist/src/services/deviceSessions/index.d.mts +15 -0
- package/dist/src/services/deviceSessions/index.d.mts.map +1 -0
- package/dist/src/services/deviceSessions/index.mjs +141 -0
- package/dist/src/services/deviceSessions/index.mjs.map +1 -0
- package/dist/src/services/headlessClient/index.cjs +125 -0
- package/dist/src/services/headlessClient/index.cjs.map +1 -0
- package/dist/src/services/headlessClient/index.mjs +125 -0
- package/dist/src/services/headlessClient/index.mjs.map +1 -0
- package/dist/src/services/historyCreationFileSystem/index.cjs +115 -0
- package/dist/src/services/historyCreationFileSystem/index.cjs.map +1 -0
- package/dist/src/services/historyCreationFileSystem/index.mjs +115 -0
- package/dist/src/services/historyCreationFileSystem/index.mjs.map +1 -0
- package/dist/src/services/hubChannelHarness/index.cjs +50 -0
- package/dist/src/services/hubChannelHarness/index.cjs.map +1 -0
- package/dist/src/services/hubChannelHarness/index.d.mts +17 -0
- package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -0
- package/dist/src/services/hubChannelHarness/index.mjs +50 -0
- package/dist/src/services/hubChannelHarness/index.mjs.map +1 -0
- package/dist/src/services/kernel/index.cjs +147 -0
- package/dist/src/services/kernel/index.cjs.map +1 -0
- package/dist/src/services/kernel/index.d.mts +9 -0
- package/dist/src/services/kernel/index.d.mts.map +1 -0
- package/dist/src/services/kernel/index.mjs +147 -0
- package/dist/src/services/kernel/index.mjs.map +1 -0
- package/dist/src/services/loginFlow/index.cjs +131 -0
- package/dist/src/services/loginFlow/index.cjs.map +1 -0
- package/dist/src/services/loginFlow/index.mjs +131 -0
- package/dist/src/services/loginFlow/index.mjs.map +1 -0
- package/dist/src/services/loopbackAddress/index.cjs +58 -0
- package/dist/src/services/loopbackAddress/index.cjs.map +1 -0
- package/dist/src/services/loopbackAddress/index.mjs +56 -0
- package/dist/src/services/loopbackAddress/index.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.cjs +144 -0
- package/dist/src/services/openSessionRegistry/index.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.d.mts +40 -0
- package/dist/src/services/openSessionRegistry/index.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/index.mjs +141 -0
- package/dist/src/services/openSessionRegistry/index.mjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.cjs +36 -0
- package/dist/src/services/packageApiHarness/index.cjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.d.mts +40 -0
- package/dist/src/services/packageApiHarness/index.d.mts.map +1 -0
- package/dist/src/services/packageApiHarness/index.mjs +36 -0
- package/dist/src/services/packageApiHarness/index.mjs.map +1 -0
- package/dist/src/services/packageResource/index.cjs +54 -0
- package/dist/src/services/packageResource/index.cjs.map +1 -0
- package/dist/src/services/packageResource/index.d.mts +26 -0
- package/dist/src/services/packageResource/index.d.mts.map +1 -0
- package/dist/src/services/packageResource/index.mjs +51 -0
- package/dist/src/services/packageResource/index.mjs.map +1 -0
- package/dist/src/services/pairingFlow/index.cjs +145 -0
- package/dist/src/services/pairingFlow/index.cjs.map +1 -0
- package/dist/src/services/pairingFlow/index.d.mts +44 -0
- package/dist/src/services/pairingFlow/index.d.mts.map +1 -0
- package/dist/src/services/pairingFlow/index.mjs +145 -0
- package/dist/src/services/pairingFlow/index.mjs.map +1 -0
- package/dist/src/services/pairingPage/index.cjs +450 -0
- package/dist/src/services/pairingPage/index.cjs.map +1 -0
- package/dist/src/services/pairingPage/index.mjs +447 -0
- package/dist/src/services/pairingPage/index.mjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.cjs +821 -0
- package/dist/src/services/piExtensionHost/index.cjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.mjs +817 -0
- package/dist/src/services/piExtensionHost/index.mjs.map +1 -0
- package/dist/src/services/piHelpTools/index.cjs +68 -0
- package/dist/src/services/piHelpTools/index.cjs.map +1 -0
- package/dist/src/services/piHelpTools/index.d.mts +10 -0
- package/dist/src/services/piHelpTools/index.d.mts.map +1 -0
- package/dist/src/services/piHelpTools/index.mjs +68 -0
- package/dist/src/services/piHelpTools/index.mjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.cjs +112 -0
- package/dist/src/services/piSessionEntries/index.cjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.mjs +108 -0
- package/dist/src/services/piSessionEntries/index.mjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.cjs +71 -0
- package/dist/src/services/pluginLifecycle/index.cjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.d.mts +11 -0
- package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -0
- package/dist/src/services/pluginLifecycle/index.mjs +71 -0
- package/dist/src/services/pluginLifecycle/index.mjs.map +1 -0
- package/dist/src/services/providerAuth/index.cjs +156 -0
- package/dist/src/services/providerAuth/index.cjs.map +1 -0
- package/dist/src/services/providerAuth/index.mjs +154 -0
- package/dist/src/services/providerAuth/index.mjs.map +1 -0
- package/dist/src/services/remoteAccess/index.cjs +396 -0
- package/dist/src/services/remoteAccess/index.cjs.map +1 -0
- package/dist/src/services/remoteAccess/index.d.mts +81 -0
- package/dist/src/services/remoteAccess/index.d.mts.map +1 -0
- package/dist/src/services/remoteAccess/index.mjs +396 -0
- package/dist/src/services/remoteAccess/index.mjs.map +1 -0
- package/dist/src/services/remoteAccessSettings/index.cjs +151 -0
- package/dist/src/services/remoteAccessSettings/index.cjs.map +1 -0
- package/dist/src/services/remoteAccessSettings/index.mjs +149 -0
- package/dist/src/services/remoteAccessSettings/index.mjs.map +1 -0
- package/dist/src/services/remoteAccessStore/index.cjs +126 -0
- package/dist/src/services/remoteAccessStore/index.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/index.mjs +121 -0
- package/dist/src/services/remoteAccessStore/index.mjs.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.cjs +190 -0
- package/dist/src/services/remoteGuardPolicy/index.cjs.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.d.mts +7 -0
- package/dist/src/services/remoteGuardPolicy/index.d.mts.map +1 -0
- package/dist/src/services/remoteGuardPolicy/index.mjs +186 -0
- package/dist/src/services/remoteGuardPolicy/index.mjs.map +1 -0
- package/dist/src/services/requestReceipts/index.cjs +161 -0
- package/dist/src/services/requestReceipts/index.cjs.map +1 -0
- package/dist/src/services/requestReceipts/index.d.mts +11 -0
- package/dist/src/services/requestReceipts/index.d.mts.map +1 -0
- package/dist/src/services/requestReceipts/index.mjs +161 -0
- package/dist/src/services/requestReceipts/index.mjs.map +1 -0
- package/dist/src/services/rpcTranscript/index.cjs +590 -0
- package/dist/src/services/rpcTranscript/index.cjs.map +1 -0
- package/dist/src/services/rpcTranscript/index.d.mts +50 -0
- package/dist/src/services/rpcTranscript/index.d.mts.map +1 -0
- package/dist/src/services/rpcTranscript/index.mjs +589 -0
- package/dist/src/services/rpcTranscript/index.mjs.map +1 -0
- package/dist/src/services/serverFacet/index.cjs +197 -0
- package/dist/src/services/serverFacet/index.cjs.map +1 -0
- package/dist/src/services/serverFacet/index.d.mts +31 -0
- package/dist/src/services/serverFacet/index.d.mts.map +1 -0
- package/dist/src/services/serverFacet/index.mjs +197 -0
- package/dist/src/services/serverFacet/index.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.cjs +46 -0
- package/dist/src/services/sessionGitStatus/index.cjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.mjs +46 -0
- package/dist/src/services/sessionGitStatus/index.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/type.d.mts +8 -0
- package/dist/src/services/sessionGitStatus/type.d.mts.map +1 -0
- package/dist/src/services/sessionMcpActivity/index.cjs +115 -0
- package/dist/src/services/sessionMcpActivity/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpActivity/index.mjs +111 -0
- package/dist/src/services/sessionMcpActivity/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.cjs +432 -0
- package/dist/src/services/sessionMcpAuthorization/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.d.mts +123 -0
- package/dist/src/services/sessionMcpAuthorization/index.d.mts.map +1 -0
- package/dist/src/services/sessionMcpAuthorization/index.mjs +430 -0
- package/dist/src/services/sessionMcpAuthorization/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpConversations/index.cjs +217 -0
- package/dist/src/services/sessionMcpConversations/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpConversations/index.mjs +212 -0
- package/dist/src/services/sessionMcpConversations/index.mjs.map +1 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.cjs +86 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.cjs.map +1 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.mjs +83 -0
- package/dist/src/services/sessionMcpRegistrationStore/index.mjs.map +1 -0
- package/dist/src/services/sessionPresentation/index.cjs +119 -0
- package/dist/src/services/sessionPresentation/index.cjs.map +1 -0
- package/dist/src/services/sessionPresentation/index.mjs +119 -0
- package/dist/src/services/sessionPresentation/index.mjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs +105 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.d.mts +29 -0
- package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.mjs +100 -0
- package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.cjs +70 -0
- package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.d.mts +14 -0
- package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -0
- package/dist/src/services/sqliteTranscriptReader/index.mjs +67 -0
- package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -0
- package/dist/src/services/toolCost/index.cjs +47 -0
- package/dist/src/services/toolCost/index.cjs.map +1 -0
- package/dist/src/services/toolCost/index.d.mts +38 -0
- package/dist/src/services/toolCost/index.d.mts.map +1 -0
- package/dist/src/services/toolCost/index.mjs +46 -0
- package/dist/src/services/toolCost/index.mjs.map +1 -0
- package/dist/src/services/toolOverrides/index.cjs +45 -0
- package/dist/src/services/toolOverrides/index.cjs.map +1 -0
- package/dist/src/services/toolOverrides/index.d.mts +6 -0
- package/dist/src/services/toolOverrides/index.d.mts.map +1 -0
- package/dist/src/services/toolOverrides/index.mjs +45 -0
- package/dist/src/services/toolOverrides/index.mjs.map +1 -0
- package/dist/src/services/toolPrompt/index.cjs +13 -0
- package/dist/src/services/toolPrompt/index.cjs.map +1 -0
- package/dist/src/services/toolPrompt/index.mjs +13 -0
- package/dist/src/services/toolPrompt/index.mjs.map +1 -0
- package/dist/src/services/toolSurface/index.cjs +134 -0
- package/dist/src/services/toolSurface/index.cjs.map +1 -0
- package/dist/src/services/toolSurface/index.d.mts +19 -0
- package/dist/src/services/toolSurface/index.d.mts.map +1 -0
- package/dist/src/services/toolSurface/index.mjs +134 -0
- package/dist/src/services/toolSurface/index.mjs.map +1 -0
- package/dist/src/services/traceContext/index.cjs +13 -0
- package/dist/src/services/traceContext/index.cjs.map +1 -0
- package/dist/src/services/traceContext/index.mjs +13 -0
- package/dist/src/services/traceContext/index.mjs.map +1 -0
- package/dist/src/services/transcriptPages/index.cjs +74 -0
- package/dist/src/services/transcriptPages/index.cjs.map +1 -0
- package/dist/src/services/transcriptPages/index.mjs +73 -0
- package/dist/src/services/transcriptPages/index.mjs.map +1 -0
- package/dist/src/services/tunnelOutput/index.cjs +58 -0
- package/dist/src/services/tunnelOutput/index.cjs.map +1 -0
- package/dist/src/services/tunnelOutput/index.mjs +54 -0
- package/dist/src/services/tunnelOutput/index.mjs.map +1 -0
- package/dist/src/services/tunnelProcess/index.cjs +487 -0
- package/dist/src/services/tunnelProcess/index.cjs.map +1 -0
- package/dist/src/services/tunnelProcess/index.mjs +481 -0
- package/dist/src/services/tunnelProcess/index.mjs.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.cjs +136 -0
- package/dist/src/services/voiceReloadHandoff/index.cjs.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.d.mts +34 -0
- package/dist/src/services/voiceReloadHandoff/index.d.mts.map +1 -0
- package/dist/src/services/voiceReloadHandoff/index.mjs +135 -0
- package/dist/src/services/voiceReloadHandoff/index.mjs.map +1 -0
- package/dist/src/services/voiceToolsContract/index.cjs +26 -0
- package/dist/src/services/voiceToolsContract/index.cjs.map +1 -0
- package/dist/src/services/voiceToolsContract/index.d.mts +76 -0
- package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -0
- package/dist/src/services/voiceToolsContract/index.mjs +24 -0
- package/dist/src/services/voiceToolsContract/index.mjs.map +1 -0
- package/dist/src/services/webauthn/index.cjs +262 -0
- package/dist/src/services/webauthn/index.cjs.map +1 -0
- package/dist/src/services/webauthn/index.d.mts +39 -0
- package/dist/src/services/webauthn/index.d.mts.map +1 -0
- package/dist/src/services/webauthn/index.mjs +262 -0
- package/dist/src/services/webauthn/index.mjs.map +1 -0
- package/dist/src/services/webauthnPolicy/index.cjs +163 -0
- package/dist/src/services/webauthnPolicy/index.cjs.map +1 -0
- package/dist/src/services/webauthnPolicy/index.d.mts +41 -0
- package/dist/src/services/webauthnPolicy/index.d.mts.map +1 -0
- package/dist/src/services/webauthnPolicy/index.mjs +156 -0
- package/dist/src/services/webauthnPolicy/index.mjs.map +1 -0
- package/dist/src/services/workspaceRegistry/index.cjs +151 -0
- package/dist/src/services/workspaceRegistry/index.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/index.d.mts +47 -0
- package/dist/src/services/workspaceRegistry/index.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/index.mjs +144 -0
- package/dist/src/services/workspaceRegistry/index.mjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +261 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +32 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +254 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +28 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +1 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +25 -0
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +1 -0
- package/dist/src/systems/child/services/childSession/index.cjs +219 -0
- package/dist/src/systems/child/services/childSession/index.cjs.map +1 -0
- package/dist/src/systems/child/services/childSession/index.d.mts +14 -0
- package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -0
- package/dist/src/systems/child/services/childSession/index.mjs +219 -0
- package/dist/src/systems/child/services/childSession/index.mjs.map +1 -0
- package/dist/src/systems/child/types/childSession.cjs +19 -0
- package/dist/src/systems/child/types/childSession.cjs.map +1 -0
- package/dist/src/systems/child/types/childSession.d.mts +148 -0
- package/dist/src/systems/child/types/childSession.d.mts.map +1 -0
- package/dist/src/systems/child/types/childSession.mjs +16 -0
- package/dist/src/systems/child/types/childSession.mjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.cjs +554 -0
- package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.d.mts +111 -0
- package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -0
- package/dist/src/systems/main/adapters/headlessHost.mjs +552 -0
- package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs +1293 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +14 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs +1288 -0
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -0
- package/dist/src/systems/main/types/headlessHost.d.mts +36 -0
- package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.cjs +73 -0
- package/dist/src/testing/pi/extensionScenarios.cjs.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.d.mts +41 -0
- package/dist/src/testing/pi/extensionScenarios.d.mts.map +1 -0
- package/dist/src/testing/pi/extensionScenarios.mjs +73 -0
- package/dist/src/testing/pi/extensionScenarios.mjs.map +1 -0
- package/dist/src/testing/pi/testHost.cjs +398 -0
- package/dist/src/testing/pi/testHost.cjs.map +1 -0
- package/dist/src/testing/pi/testHost.d.mts +160 -0
- package/dist/src/testing/pi/testHost.d.mts.map +1 -0
- package/dist/src/testing/pi/testHost.mjs +398 -0
- package/dist/src/testing/pi/testHost.mjs.map +1 -0
- package/dist/src/types/config.d.mts +20 -0
- package/dist/src/types/config.d.mts.map +1 -0
- package/dist/src/types/kernel.d.mts +69 -0
- package/dist/src/types/kernel.d.mts.map +1 -0
- package/dist/src/types/remote.d.mts +124 -0
- package/dist/src/types/remote.d.mts.map +1 -0
- package/dist/src/types/server/directHarnessRuntime.d.mts +209 -0
- package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -0
- package/dist/src/types/server/session.d.mts +5 -0
- package/dist/src/types/server/session.d.mts.map +1 -0
- package/dist/src/types/server/sessionToolSurface.d.mts +44 -0
- package/dist/src/types/server/sessionToolSurface.d.mts.map +1 -0
- package/dist/src/web/models/globalStore.cjs +23 -0
- package/dist/src/web/models/globalStore.cjs.map +1 -0
- package/dist/src/web/models/globalStore.d.mts +6 -0
- package/dist/src/web/models/globalStore.d.mts.map +1 -0
- package/dist/src/web/models/globalStore.mjs +23 -0
- package/dist/src/web/models/globalStore.mjs.map +1 -0
- package/dist/src/web/models/sessionStore.cjs +56 -0
- package/dist/src/web/models/sessionStore.cjs.map +1 -0
- package/dist/src/web/models/sessionStore.d.mts +14 -0
- package/dist/src/web/models/sessionStore.d.mts.map +1 -0
- package/dist/src/web/models/sessionStore.mjs +56 -0
- package/dist/src/web/models/sessionStore.mjs.map +1 -0
- package/dist/src/web/models/workspaceStore.cjs +50 -0
- package/dist/src/web/models/workspaceStore.cjs.map +1 -0
- package/dist/src/web/models/workspaceStore.d.mts +18 -0
- package/dist/src/web/models/workspaceStore.d.mts.map +1 -0
- package/dist/src/web/models/workspaceStore.mjs +50 -0
- package/dist/src/web/models/workspaceStore.mjs.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.cjs +20 -0
- package/dist/src/web/schemas/bundleAssetPolicy.cjs.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.d.mts +10 -0
- package/dist/src/web/schemas/bundleAssetPolicy.d.mts.map +1 -0
- package/dist/src/web/schemas/bundleAssetPolicy.mjs +18 -0
- package/dist/src/web/schemas/bundleAssetPolicy.mjs.map +1 -0
- package/dist/src/web/schemas/template.cjs +15 -0
- package/dist/src/web/schemas/template.cjs.map +1 -0
- package/dist/src/web/schemas/template.d.mts +6 -0
- package/dist/src/web/schemas/template.d.mts.map +1 -0
- package/dist/src/web/schemas/template.mjs +15 -0
- package/dist/src/web/schemas/template.mjs.map +1 -0
- package/dist/src/web/services/apiClient/index.cjs +156 -0
- package/dist/src/web/services/apiClient/index.cjs.map +1 -0
- package/dist/src/web/services/apiClient/index.d.mts +152 -0
- package/dist/src/web/services/apiClient/index.d.mts.map +1 -0
- package/dist/src/web/services/apiClient/index.mjs +154 -0
- package/dist/src/web/services/apiClient/index.mjs.map +1 -0
- package/dist/src/web/services/apiPaths/index.cjs +83 -0
- package/dist/src/web/services/apiPaths/index.cjs.map +1 -0
- package/dist/src/web/services/apiPaths/index.d.mts +81 -0
- package/dist/src/web/services/apiPaths/index.d.mts.map +1 -0
- package/dist/src/web/services/apiPaths/index.mjs +78 -0
- package/dist/src/web/services/apiPaths/index.mjs.map +1 -0
- package/dist/src/web/services/apiRoutes/index.cjs +47 -0
- package/dist/src/web/services/apiRoutes/index.cjs.map +1 -0
- package/dist/src/web/services/apiRoutes/index.d.mts +21 -0
- package/dist/src/web/services/apiRoutes/index.d.mts.map +1 -0
- package/dist/src/web/services/apiRoutes/index.mjs +43 -0
- package/dist/src/web/services/apiRoutes/index.mjs.map +1 -0
- package/dist/src/web/services/mcpWidget.cjs +9 -0
- package/dist/src/web/services/mcpWidget.cjs.map +1 -0
- package/dist/src/web/services/mcpWidget.d.mts +6 -0
- package/dist/src/web/services/mcpWidget.d.mts.map +1 -0
- package/dist/src/web/services/mcpWidget.mjs +9 -0
- package/dist/src/web/services/mcpWidget.mjs.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.cjs +70 -0
- package/dist/src/web/services/sessionRegistry/index.cjs.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.d.mts +29 -0
- package/dist/src/web/services/sessionRegistry/index.d.mts.map +1 -0
- package/dist/src/web/services/sessionRegistry/index.mjs +66 -0
- package/dist/src/web/services/sessionRegistry/index.mjs.map +1 -0
- package/dist/src/web/services/testing/channels.cjs +11 -0
- package/dist/src/web/services/testing/channels.cjs.map +1 -0
- package/dist/src/web/services/testing/channels.d.mts +8 -0
- package/dist/src/web/services/testing/channels.d.mts.map +1 -0
- package/dist/src/web/services/testing/channels.mjs +11 -0
- package/dist/src/web/services/testing/channels.mjs.map +1 -0
- package/dist/src/web/services/testing/index.cjs +27 -0
- package/dist/src/web/services/testing/index.cjs.map +1 -0
- package/dist/src/web/services/testing/index.d.mts +31 -0
- package/dist/src/web/services/testing/index.d.mts.map +1 -0
- package/dist/src/web/services/testing/index.mjs +27 -0
- package/dist/src/web/services/testing/index.mjs.map +1 -0
- package/dist/src/web/services/testing/rpcStub.cjs +58 -0
- package/dist/src/web/services/testing/rpcStub.cjs.map +1 -0
- package/dist/src/web/services/testing/rpcStub.d.mts +37 -0
- package/dist/src/web/services/testing/rpcStub.d.mts.map +1 -0
- package/dist/src/web/services/testing/rpcStub.mjs +58 -0
- package/dist/src/web/services/testing/rpcStub.mjs.map +1 -0
- package/dist/src/web/services/testing/slotProps.cjs +91 -0
- package/dist/src/web/services/testing/slotProps.cjs.map +1 -0
- package/dist/src/web/services/testing/slotProps.d.mts +69 -0
- package/dist/src/web/services/testing/slotProps.d.mts.map +1 -0
- package/dist/src/web/services/testing/slotProps.mjs +90 -0
- package/dist/src/web/services/testing/slotProps.mjs.map +1 -0
- package/dist/src/web/services/testing/templateRail.cjs +128 -0
- package/dist/src/web/services/testing/templateRail.cjs.map +1 -0
- package/dist/src/web/services/testing/templateRail.d.mts +31 -0
- package/dist/src/web/services/testing/templateRail.d.mts.map +1 -0
- package/dist/src/web/services/testing/templateRail.mjs +126 -0
- package/dist/src/web/services/testing/templateRail.mjs.map +1 -0
- package/dist/src/web/services/toolResult/index.cjs +30 -0
- package/dist/src/web/services/toolResult/index.cjs.map +1 -0
- package/dist/src/web/services/toolResult/index.d.mts +14 -0
- package/dist/src/web/services/toolResult/index.d.mts.map +1 -0
- package/dist/src/web/services/toolResult/index.mjs +29 -0
- package/dist/src/web/services/toolResult/index.mjs.map +1 -0
- package/dist/src/web/types/extensionFile.d.mts +59 -0
- package/dist/src/web/types/extensionFile.d.mts.map +1 -0
- package/dist/src/web/types/mcpWidget.d.mts +14 -0
- package/dist/src/web/types/mcpWidget.d.mts.map +1 -0
- package/dist/src/web/types/modelContext.d.mts +43 -0
- package/dist/src/web/types/modelContext.d.mts.map +1 -0
- package/dist/src/web/types/sessionRegistry.d.mts +43 -0
- package/dist/src/web/types/sessionRegistry.d.mts.map +1 -0
- package/dist/src/web/types/template.d.mts +155 -0
- package/dist/src/web/types/template.d.mts.map +1 -0
- package/dist/src/web/types/webPlugin.d.mts +896 -0
- package/dist/src/web/types/webPlugin.d.mts.map +1 -0
- package/dist/syncLocation.cjs +244 -0
- package/dist/syncLocation.cjs.map +1 -0
- package/dist/syncLocation.d.mts +37 -0
- package/dist/syncLocation.d.mts.map +1 -0
- package/dist/syncLocation.mjs +231 -0
- package/dist/syncLocation.mjs.map +1 -0
- package/dist/syncRegistration.cjs +171 -0
- package/dist/syncRegistration.cjs.map +1 -0
- package/dist/syncRegistration.d.mts +48 -0
- package/dist/syncRegistration.d.mts.map +1 -0
- package/dist/syncRegistration.mjs +159 -0
- package/dist/syncRegistration.mjs.map +1 -0
- package/dist/syncStateContract.cjs +19 -0
- package/dist/syncStateContract.cjs.map +1 -0
- package/dist/syncStateContract.d.mts +14 -0
- package/dist/syncStateContract.d.mts.map +1 -0
- package/dist/syncStateContract.mjs +16 -0
- package/dist/syncStateContract.mjs.map +1 -0
- package/dist/terminalPiChildSessionService.cjs +267 -0
- package/dist/terminalPiChildSessionService.cjs.map +1 -0
- package/dist/terminalPiChildSessionService.d.mts +42 -0
- package/dist/terminalPiChildSessionService.d.mts.map +1 -0
- package/dist/terminalPiChildSessionService.mjs +260 -0
- package/dist/terminalPiChildSessionService.mjs.map +1 -0
- package/dist/testing.cjs +11 -0
- package/dist/testing.d.mts +6 -0
- package/dist/testing.mjs +6 -0
- package/dist/toolInventory.cjs +136 -0
- package/dist/toolInventory.cjs.map +1 -0
- package/dist/toolInventory.d.mts +66 -0
- package/dist/toolInventory.d.mts.map +1 -0
- package/dist/toolInventory.mjs +133 -0
- package/dist/toolInventory.mjs.map +1 -0
- package/dist/toolNames.cjs +4 -0
- package/dist/toolNames.d.mts +2 -0
- package/dist/toolNames.mjs +2 -0
- package/dist/toolOverrides.cjs +7 -0
- package/dist/toolOverrides.d.mts +3 -0
- package/dist/toolOverrides.mjs +3 -0
- package/dist/toolSurface.cjs +7 -0
- package/dist/toolSurface.d.mts +3 -0
- package/dist/toolSurface.mjs +3 -0
- package/dist/transition.cjs +5 -0
- package/dist/transition.d.cjs +5 -0
- package/dist/transition.d.mts +2 -0
- package/dist/transition.mjs +2 -0
- package/dist/transitionClassifier.cjs +112 -0
- package/dist/transitionClassifier.cjs.map +1 -0
- package/dist/transitionClassifier.d.mts +18 -0
- package/dist/transitionClassifier.d.mts.map +1 -0
- package/dist/transitionClassifier.mjs +111 -0
- package/dist/transitionClassifier.mjs.map +1 -0
- package/dist/transitionCoordinator.cjs +131 -0
- package/dist/transitionCoordinator.cjs.map +1 -0
- package/dist/transitionCoordinator.d.mts +16 -0
- package/dist/transitionCoordinator.d.mts.map +1 -0
- package/dist/transitionCoordinator.mjs +130 -0
- package/dist/transitionCoordinator.mjs.map +1 -0
- package/dist/typesContextApi.cjs +0 -0
- package/dist/typesContextApi.d.mts +73 -0
- package/dist/typesContextApi.d.mts.map +1 -0
- package/dist/typesContextApi.mjs +1 -0
- package/dist/uiHub.cjs +5 -0
- package/dist/uiHub.d.mts +2 -0
- package/dist/uiHub.mjs +2 -0
- package/dist/v3Export.cjs +1004 -0
- package/dist/v3Export.cjs.map +1 -0
- package/dist/v3Export.d.mts +34 -0
- package/dist/v3Export.d.mts.map +1 -0
- package/dist/v3Export.mjs +1000 -0
- package/dist/v3Export.mjs.map +1 -0
- package/dist/voiceReloadHandoff.cjs +14 -0
- package/dist/voiceReloadHandoff.d.mts +4 -0
- package/dist/voiceReloadHandoff.mjs +4 -0
- package/dist/voiceTools.cjs +56 -0
- package/dist/voiceTools.d.mts +4 -0
- package/dist/voiceTools.mjs +4 -0
- package/dist/web.cjs +64 -0
- package/dist/web.d.mts +19 -0
- package/dist/web.mjs +13 -0
- package/dist/webCompositions.cjs +100 -0
- package/dist/webCompositions.cjs.map +1 -0
- package/dist/webCompositions.d.mts +20 -0
- package/dist/webCompositions.d.mts.map +1 -0
- package/dist/webCompositions.mjs +95 -0
- package/dist/webCompositions.mjs.map +1 -0
- package/dist/webTesting.cjs +14 -0
- package/dist/webTesting.d.mts +6 -0
- package/dist/webTesting.mjs +6 -0
- package/package.json +616 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"piSessionRuntime.mjs","names":[],"sources":["../../../src/pi/piSessionRuntime.ts"],"sourcesContent":["import {\n createRemoteServiceEndpoint,\n RemoteServiceProvider,\n replicatedState,\n type Context,\n type MutableReplicatedState,\n type RemoteServiceEndpoint,\n} from '@earendil-works/chord';\nimport { BACKGROUND_CONTEXT } from '@earendil-works/chord/context';\nimport type { RoutedServerServiceHost, RoutedSessionHandle, ServerHost } from '@earendil-works/pi-server';\nimport { SessionNotFoundError } from '@earendil-works/pi-server';\n\nimport {\n DoomSessionManagementService,\n DoomSessionService,\n type SessionService,\n type SessionMessageArgs,\n type PromptArgs,\n type SessionServiceState,\n type SessionSnapshot,\n type SessionLifecycle,\n type TranscriptItem,\n type TranscriptPage,\n type TranscriptPageRequest,\n type RewindResult,\n type SessionStateInfo,\n type SessionStats,\n type SessionCommand,\n type ModelRef,\n type ThinkingLevel,\n} from '../exports/sessionProtocol';\nimport { createAcpSessionUpdateProjection } from '../services/acpSessionUpdates';\nimport { contextTokensOf, contextUsageOf, latestAssistantUsage } from '../services/contextUsage';\nimport { createRpcTranscript, type RpcTranscript } from '../services/rpcTranscript';\nimport { observe, type ServerTelemetry } from '../services/serverTelemetry';\nimport { createSessionPresentation } from '../services/sessionPresentation';\nimport { readTranscriptPage, transcriptCursor } from '../services/transcriptPages';\nimport type { DirectHarnessRuntime, DirectHarnessFrame } from '../types/server/directHarnessRuntime';\n\nconst SETTLED = 'agent_settled';\nconst PROMPT_LATENCY_EVENT = 'doompi_server.prompt_latency';\nconst SELECTION_COMMANDS = new Set(['mode', 'domains', 'profile', 'minor']);\n\nfunction isSelectionCommand(text: string): boolean {\n const match = /^\\/(\\S+)/.exec(text);\n return match !== null && SELECTION_COMMANDS.has(match[1]!);\n}\n\ntype PromptLatency = {\n readonly startedAt: number;\n lastStageAt: number;\n readonly reported: Set<string>;\n};\n\nasync function sessionStats(runtime: DirectHarnessRuntime, sessionId: string): Promise<SessionStats> {\n const [stored, state, models] = await Promise.all([\n runtime.getSessionStats(),\n runtime.readState(),\n runtime.availableModels(),\n ]);\n // Cost and token totals are maintained by Pi at commit time. Only recent\n // assistant usage is needed to display context occupancy.\n const recent = await runtime.lane.findEntries(\n { type: 'message', order: 'newestFirst', limit: 100 },\n BACKGROUND_CONTEXT,\n );\n // `newestFirst` already reverses the branch, so the first assistant entry is the newest one.\n const contextTokens = contextTokensOf(latestAssistantUsage([...recent].reverse()));\n const selected =\n typeof state.model === 'object' && state.model !== null\n ? (state.model as { provider?: unknown; id?: unknown })\n : undefined;\n const model = models.find((candidate) => candidate.provider === selected?.provider && candidate.id === selected?.id);\n const contextUsage = contextUsageOf(contextTokens, model?.contextWindow);\n const sessionFile = typeof state.sessionFile === 'string' ? state.sessionFile : undefined;\n return {\n sessionId,\n ...(sessionFile === undefined ? {} : { sessionFile }),\n totalMessages: stored.messageCount,\n tokens: {\n input: stored.usage.input,\n output: stored.usage.output,\n cacheRead: stored.usage.cacheRead,\n cacheWrite: stored.usage.cacheWrite,\n total: stored.usage.totalTokens,\n },\n cost: stored.usage.cost.total,\n ...(contextUsage === undefined ? {} : { contextUsage }),\n };\n}\n\nexport interface AgentSessionRuntimeOptions {\n runtime: DirectHarnessRuntime;\n sessionId: string;\n sessionName: string;\n cwd: string;\n telemetry?: ServerTelemetry;\n /** Subscribes to the combined harness and headless presentation projection. */\n onPresentationFrame?: (listener: (frame: DirectHarnessFrame) => void) => () => void;\n /** Delivers one answered extension UI request to the session-scoped headless host. */\n respondToExtensionUi?: (frame: DirectHarnessFrame) => boolean;\n /** Test seam for the projection. */\n transcript?: RpcTranscript;\n readThreadTranscript?: (\n threadId: string,\n request: TranscriptPageRequest,\n context: Context,\n ) => Promise<TranscriptPage>;\n}\n\nexport interface AgentSessionRuntime extends SessionService {\n readonly state: MutableReplicatedState<SessionServiceState>;\n initialize(): Promise<void>;\n dispose(): Promise<void>;\n}\n\n/** Projects one in-process harness runtime as a Chord session service. */\nexport function createAgentSessionRuntime(options: AgentSessionRuntimeOptions): AgentSessionRuntime {\n const transcript =\n options.transcript ??\n createRpcTranscript({\n id: options.sessionId,\n cwd: options.cwd,\n name: options.sessionName,\n now: Date.now,\n retainEntries: 0,\n });\n const presentation = createSessionPresentation();\n const acpUpdates = createAcpSessionUpdateProjection();\n let updateSequence = 0;\n const inFlight = new Map<string, TranscriptItem>();\n let historyGeneration = 0;\n const summary = (snapshot: SessionSnapshot): Omit<SessionSnapshot, 'transcript'> => {\n const { transcript: _history, ...value } = snapshot;\n return value;\n };\n const state = replicatedState<SessionServiceState>({\n snapshot: summary(transcript.snapshot()),\n progress: null,\n updates: [],\n presentation: { revision: 0, dropped: 0, events: [], projections: [] },\n });\n const present = (frame: Record<string, unknown>): boolean => {\n const entry = frame.entry as { seq?: number } | undefined;\n if (frame.type === 'entry_appended' && typeof entry?.seq === 'number')\n frame = {\n ...frame,\n transcriptCursor: transcriptCursor(options.sessionId, options.runtime.laneName, historyGeneration, entry.seq),\n };\n const next = presentation.record(frame);\n if (next)\n state.change(BACKGROUND_CONTEXT, (draft) => {\n draft.presentation = next;\n });\n return next !== undefined;\n };\n const settlers = new Set<{ resolve(): void; reject(error: Error): void }>();\n let promptLatency: PromptLatency | undefined;\n let lastToolResultAt: number | undefined;\n let assistantMessageStartedAt: number | undefined;\n let disposed = false;\n const reportPromptLatency = (phase: string): void => {\n const active = promptLatency;\n if (active === undefined || active.reported.has(phase) || options.telemetry === undefined) return;\n const now = Date.now();\n active.reported.add(phase);\n observe(\n options.telemetry.recordEvent(PROMPT_LATENCY_EVENT, {\n session_id: options.sessionId,\n phase,\n duration_ms: now - active.startedAt,\n stage_duration_ms: now - active.lastStageAt,\n }),\n );\n active.lastStageAt = now;\n };\n const rejectSettlers = (error: Error): void => {\n for (const waiter of settlers) waiter.reject(error);\n settlers.clear();\n };\n\n void options.runtime.exited.then(\n () => {\n disposed = true;\n rejectSettlers(new Error('The session runtime exited'));\n },\n (error: unknown) => {\n disposed = true;\n rejectSettlers(error instanceof Error ? error : new Error(String(error)));\n },\n );\n\n const subscribePresentation =\n options.onPresentationFrame ??\n ((listener: (frame: DirectHarnessFrame) => void) => options.runtime.onPresentationFrame(listener));\n const unsubscribePresentation = subscribePresentation((frame) => {\n if (disposed) return;\n const message =\n typeof frame.message === 'object' && frame.message !== null ? (frame.message as { role?: unknown }) : undefined;\n if (frame.type === 'message_end' && message?.role === 'toolResult') lastToolResultAt = Date.now();\n if (frame.type === 'message_start' && message?.role === 'assistant') {\n const now = Date.now();\n assistantMessageStartedAt = now;\n if (lastToolResultAt !== undefined && options.telemetry) {\n observe(\n options.telemetry.recordEvent('doompi_server.tool_result_to_response', {\n session_id: options.sessionId,\n duration_ms: now - lastToolResultAt,\n }),\n );\n }\n lastToolResultAt = undefined;\n }\n if (frame.type === 'message_end' && message?.role === 'assistant') {\n if (assistantMessageStartedAt !== undefined && options.telemetry)\n observe(\n options.telemetry.recordEvent('doompi_server.assistant_message', {\n session_id: options.sessionId,\n duration_ms: Date.now() - assistantMessageStartedAt,\n }),\n );\n assistantMessageStartedAt = undefined;\n }\n if (frame.type === 'agent_start') reportPromptLatency('agent_started');\n else if (frame.type === 'message_start' && message?.role === 'assistant') reportPromptLatency('response_started');\n else if (frame.type === 'message_update' && message?.role === 'assistant') reportPromptLatency('first_response');\n else if (frame.type === 'message_end' && message?.role === 'assistant') reportPromptLatency('response_completed');\n const reductionStartedAt = performance.now();\n const reduction = transcript.apply(frame);\n if (frame.type === 'lifecycle_update' && frame.lifecycle !== undefined)\n state.change(BACKGROUND_CONTEXT, (draft) => {\n const lifecycle = frame.lifecycle as SessionLifecycle;\n if ((draft.snapshot.lifecycle?.revision ?? -1) <= lifecycle.revision) draft.snapshot.lifecycle = lifecycle;\n });\n const updates = acpUpdates.apply(frame, reduction);\n const reductionDurationMs = performance.now() - reductionStartedAt;\n if (reduction.aggregate && options.telemetry) {\n observe(\n options.telemetry.recordEvent('doompi_server.transcript.aggregate', {\n session_id: options.sessionId,\n ...reduction.aggregate,\n }),\n );\n }\n if (reduction.snapshot || updates.length > 0) {\n state.change(BACKGROUND_CONTEXT, (draft) => {\n if (reduction.snapshot)\n draft.snapshot = {\n ...summary(reduction.snapshot),\n ...(draft.snapshot.lifecycle === undefined ? {} : { lifecycle: draft.snapshot.lifecycle }),\n };\n if (updates.length > 0) {\n const events = draft.updates ?? [];\n for (const update of updates) events.push({ sequence: ++updateSequence, update });\n if (events.length > 128) events.splice(0, events.length - 128);\n draft.updates = events;\n }\n });\n }\n if (reduction.progress) {\n const progress = reduction.progress;\n if (progress.type === 'item_finished') inFlight.delete(progress.item.id);\n else inFlight.set(progress.item.id, progress.item);\n }\n if (state.value.snapshot.phase === 'idle') inFlight.clear();\n if (frame.type === 'navigation_end') historyGeneration += 1;\n const changed = present(frame);\n const publishStartedAt = performance.now();\n void (reduction.snapshot || reduction.progress || updates.length > 0 || changed);\n const publishDurationMs = performance.now() - publishStartedAt;\n if (options.telemetry && (reductionDurationMs >= 50 || publishDurationMs >= 50 || frame.type === SETTLED))\n observe(\n options.telemetry.recordEvent('doompi_server.presentation_frame', {\n session_id: options.sessionId,\n 'frame.type': frame.type,\n phase: 'reduce_and_publish',\n duration_ms: reductionDurationMs + publishDurationMs,\n }),\n );\n if (frame.type === SETTLED) {\n lastToolResultAt = undefined;\n assistantMessageStartedAt = undefined;\n reportPromptLatency('settled');\n promptLatency = undefined;\n const waiting = [...settlers];\n settlers.clear();\n for (const settle of waiting) settle.resolve();\n }\n });\n\n const requireLive = (): void => {\n if (disposed) throw new Error('The session runtime is disposed');\n };\n const guardContext = (context: Context): void => {\n requireLive();\n context.abortSignal?.throwIfAborted();\n };\n const awaitSettled = (context: Context): { promise: Promise<void>; resolve(): void; reject(error: Error): void } => {\n let fail!: (error: Error) => void;\n let finish!: () => void;\n const promise = new Promise<void>((resolve, reject) => {\n const cleanup = (): void => {\n settlers.delete(waiter);\n context.abortSignal?.removeEventListener('abort', cancel);\n };\n const waiter = {\n resolve: () => {\n cleanup();\n resolve();\n },\n reject: (error: Error) => {\n cleanup();\n reject(error);\n },\n };\n const cancel = (): void => {\n waiter.reject(new Error('The session prompt was cancelled', { cause: context.abortSignal?.reason }));\n void options.runtime.abort().catch(() => undefined);\n };\n fail = waiter.reject;\n finish = waiter.resolve;\n settlers.add(waiter);\n context.abortSignal?.addEventListener('abort', cancel, { once: true });\n });\n return { promise, resolve: finish, reject: fail };\n };\n const messageArgs = (\n input: string | SessionMessageArgs,\n ): { message: string; images?: SessionMessageArgs['images'] } => {\n const args = typeof input === 'string' ? { text: input } : input;\n if (!args || typeof args.text !== 'string') throw new Error('Prompt message must be a string');\n if (\n args.images !== undefined &&\n (!Array.isArray(args.images) ||\n !args.images.every(\n (image) => image?.type === 'image' && typeof image.data === 'string' && typeof image.mimeType === 'string',\n ))\n )\n throw new Error('Invalid message images');\n return { message: args.text, ...(args.images === undefined ? {} : { images: args.images }) };\n };\n const hydrate = async (): Promise<void> => {\n const lifecycle = await options.runtime.readLifecycle();\n if (disposed) return;\n state.change(BACKGROUND_CONTEXT, (draft) => {\n if ((draft.snapshot.lifecycle?.revision ?? -1) <= lifecycle.revision) draft.snapshot.lifecycle = lifecycle;\n draft.presentation = presentation.resetCustomEntries();\n });\n };\n let initializing: Promise<void> | undefined;\n\n return {\n state,\n async readTranscriptPage(args, context) {\n guardContext(context);\n if (args.threadId !== undefined) {\n if (!options.readThreadTranscript) throw new Error('Child transcript reader is unavailable');\n return options.readThreadTranscript(args.threadId, args, context);\n }\n const generation = historyGeneration;\n const revision = state.value.presentation?.revision ?? 0;\n const drafts = [...inFlight.values()];\n const started = performance.now();\n const page = await readTranscriptPage(options.runtime, args, generation, context);\n if (options.telemetry)\n observe(\n options.telemetry.recordEvent('doompi_server.transcript_page', {\n session_id: options.sessionId,\n phase: args.direction ?? 'latest',\n duration_ms: performance.now() - started,\n count: page.entries.length,\n }),\n );\n if (generation !== historyGeneration) throw new Error('STALE_TRANSCRIPT_CURSOR');\n return { ...page, revision, drafts };\n },\n initialize() {\n initializing ??= hydrate().catch((error: unknown) => {\n initializing = undefined;\n throw error;\n });\n return initializing;\n },\n async prompt(text: string | PromptArgs, context) {\n guardContext(context);\n const args = messageArgs(text);\n const waitFor = typeof text === 'string' ? 'settled' : (text.waitFor ?? 'settled');\n if (waitFor !== 'accepted' && waitFor !== 'settled') throw new Error('Invalid prompt acknowledgement mode');\n if ((await options.runtime.readLifecycle()).operation !== null || settlers.size > 0) {\n if (isSelectionCommand(args.message) && (await options.runtime.dispatchCommand(args.message))) return;\n throw new Error('A turn is already running');\n }\n if (waitFor === 'accepted') {\n if (!options.telemetry) {\n await options.runtime.submitPrompt(args.message, args.images);\n return;\n }\n const telemetry = options.telemetry;\n const startedAt = Date.now();\n promptLatency = { startedAt, lastStageAt: startedAt, reported: new Set() };\n const settled = awaitSettled(BACKGROUND_CONTEXT);\n let resolveAdmission!: () => void;\n let rejectAdmission!: (error: Error) => void;\n const admitted = new Promise<void>((resolve, reject) => {\n resolveAdmission = resolve;\n rejectAdmission = reject;\n });\n observe(\n telemetry.runInSpan('doompi_server.prompt_to_settled', { session_id: options.sessionId }, async () => {\n let accepted = false;\n try {\n const submission = await telemetry.runInSpan(\n 'doompi_server.prompt_admission',\n { session_id: options.sessionId },\n () => options.runtime.submitPrompt(args.message, args.images),\n );\n if (submission.handledCommand) settled.resolve();\n reportPromptLatency('accepted');\n accepted = true;\n resolveAdmission();\n await Promise.all([\n telemetry.runInSpan(\n 'doompi_server.prompt_engine_settlement',\n { session_id: options.sessionId },\n () => submission.settled,\n ),\n telemetry.runInSpan(\n 'doompi_server.prompt_projection_settlement',\n { session_id: options.sessionId },\n () => settled.promise,\n ),\n ]);\n } catch (error) {\n reportPromptLatency('failed');\n promptLatency = undefined;\n const failure = error instanceof Error ? error : new Error(String(error));\n settled.reject(failure);\n if (!accepted) {\n await settled.promise.catch(() => undefined);\n rejectAdmission(failure);\n }\n throw failure;\n }\n }),\n );\n await admitted;\n return;\n }\n const startedAt = Date.now();\n promptLatency = { startedAt, lastStageAt: startedAt, reported: new Set() };\n const settled = awaitSettled(context);\n const run = async (): Promise<void> => {\n try {\n const submit = () => options.runtime.submitPrompt(args.message, args.images);\n const submission = options.telemetry\n ? await options.telemetry.runInSpan(\n 'doompi_server.prompt_admission',\n { session_id: options.sessionId },\n submit,\n )\n : await submit();\n if (submission.handledCommand) settled.resolve();\n reportPromptLatency('accepted');\n const engineSettlement = options.telemetry\n ? options.telemetry.runInSpan(\n 'doompi_server.prompt_engine_settlement',\n { session_id: options.sessionId },\n () => submission.settled,\n )\n : submission.settled;\n const projectionSettlement = options.telemetry\n ? options.telemetry.runInSpan(\n 'doompi_server.prompt_projection_settlement',\n { session_id: options.sessionId },\n () => settled.promise,\n )\n : settled.promise;\n await Promise.all([engineSettlement, projectionSettlement]);\n } catch (error) {\n reportPromptLatency('failed');\n promptLatency = undefined;\n settled.reject(error instanceof Error ? error : new Error(String(error)));\n await settled.promise;\n }\n };\n if (options.telemetry)\n await options.telemetry.runInSpan('doompi_server.prompt_to_settled', { session_id: options.sessionId }, run);\n else await run();\n },\n async steer(text: string | SessionMessageArgs) {\n requireLive();\n const args = messageArgs(text);\n const { operation } = await options.runtime.readLifecycle();\n if (operation === null || operation.status === 'aborting') {\n // The turn may have completed between the client's send and this request. Retain the\n // acknowledged input for the next eligible turn instead of dropping it at the boundary.\n await options.runtime.enqueueAutomatic(args.message, args.images);\n return;\n }\n await options.runtime.steer(args.message, args.images);\n },\n async abort() {\n requireLive();\n await options.runtime.abort((await options.runtime.readLifecycle()).operation?.id);\n },\n async abortOperation(args) {\n requireLive();\n if (!args || typeof args.operationId !== 'string' || !args.operationId)\n throw new Error('Invalid operation identity');\n await options.runtime.abort(args.operationId);\n },\n async setModel(model, context) {\n guardContext(context);\n if (!model || typeof model.provider !== 'string' || typeof model.id !== 'string')\n throw new Error('Invalid model');\n await options.runtime.setModel(model);\n },\n async setThinking(thinkingLevel, context) {\n guardContext(context);\n if (!['off', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max'].includes(thinkingLevel))\n throw new Error('Invalid thinking level');\n await options.runtime.setThinkingLevel(thinkingLevel);\n },\n async followUp(args, context) {\n guardContext(context);\n const message = messageArgs(args);\n await options.runtime.followUp(message.message, message.images);\n },\n async enqueueAutomatic(args, context) {\n guardContext(context);\n const message = messageArgs(args);\n return options.runtime.enqueueAutomatic(message.message, message.images);\n },\n async removeQueued(args, context) {\n guardContext(context);\n if (!args || typeof args.id !== 'string' || !args.id) throw new Error('Invalid queue identity');\n return options.runtime.removeQueued(args.id);\n },\n async promoteQueued(args, context) {\n guardContext(context);\n if (!args || typeof args.id !== 'string' || !args.id || typeof args.operationId !== 'string' || !args.operationId)\n throw new Error('Invalid queue promotion');\n return options.runtime.promoteQueued(args.id, args.operationId);\n },\n async resumeQueue(context) {\n guardContext(context);\n await options.runtime.resumeQueue();\n },\n async clearQueue(context) {\n guardContext(context);\n return options.runtime.clearQueue();\n },\n async rewind(args, context) {\n guardContext(context);\n if (!args || typeof args.itemId !== 'string' || !args.itemId) throw new Error('Invalid rewind identity');\n const { entries } = await options.runtime.readEntries();\n const entry = entries.toReversed().find((candidate) => {\n if (candidate.type !== 'message' || typeof candidate.id !== 'string') return false;\n const message = candidate.message;\n if (!message || typeof message !== 'object' || Array.isArray(message)) return false;\n const record = message as unknown as Record<string, unknown>;\n return (\n candidate.id === args.itemId ||\n record.id === args.itemId ||\n (record.role === 'user' && typeof record.timestamp === 'number' && args.itemId === `user-${record.timestamp}`)\n );\n });\n if (!entry) throw new Error('The selected message is not in the active session tree.');\n const result = await options.runtime.navigateTree(entry.id, {\n ...(args.summarize === undefined ? {} : { summarize: args.summarize }),\n ...(args.customInstructions === undefined ? {} : { customInstructions: args.customInstructions }),\n ...(args.replaceInstructions === undefined ? {} : { replaceInstructions: args.replaceInstructions }),\n ...(args.label === undefined ? {} : { label: args.label }),\n });\n if (!result.cancelled) await hydrate();\n return result as RewindResult;\n },\n async extensionUiResponse(response, context) {\n guardContext(context);\n if (\n !response ||\n typeof response.id !== 'string' ||\n !response.id ||\n !(\n ('value' in response && typeof response.value === 'string') ||\n ('confirmed' in response && typeof response.confirmed === 'boolean') ||\n ('cancelled' in response && response.cancelled === true)\n )\n )\n throw new Error('Invalid extension UI response');\n if (!options.respondToExtensionUi?.({ ...response, type: 'extension_ui_response' }))\n throw new Error(`No pending extension UI request: ${response.id}`);\n present({ type: 'extension_ui_answered', id: response.id });\n state.change(context, () => undefined);\n },\n async getState(context) {\n guardContext(context);\n return (await options.runtime.readState()) as unknown as SessionStateInfo;\n },\n async getSessionStats(context) {\n guardContext(context);\n return sessionStats(options.runtime, options.sessionId);\n },\n async getCommands(context) {\n guardContext(context);\n return options.runtime.listCommands() as SessionCommand[];\n },\n async getAvailableModels(context) {\n guardContext(context);\n return (await options.runtime.availableModels()).map((model) => ({\n provider: model.provider,\n id: model.id,\n })) as ModelRef[];\n },\n async getAvailableThinkingLevels(context) {\n guardContext(context);\n return (await options.runtime.availableThinkingLevels()) as ThinkingLevel[];\n },\n async compact(args, context) {\n guardContext(context);\n await options.runtime.compact(args.customInstructions);\n return null;\n },\n async setName(name, context) {\n guardContext(context);\n if (typeof name !== 'string' || name.length > 256) throw new Error('Invalid session name');\n await options.runtime.setName(name);\n },\n async dispose() {\n if (disposed) return;\n disposed = true;\n unsubscribePresentation();\n rejectSettlers(new Error('The session runtime is disposed'));\n },\n };\n}\n\nexport interface AgentServerServiceOptions extends AgentSessionRuntimeOptions {\n createdAt: number;\n}\n\nexport interface DoomSessionMetadata {\n id: string;\n createdAt: number;\n storageVersion: number;\n cwd: string;\n sessionName: string;\n}\n\nfunction endpointAttachment(endpoint: RemoteServiceEndpoint): {\n invokeService: RemoteServiceEndpoint['invoke'];\n release(): void;\n} {\n return {\n invokeService: (call, publish, context) => endpoint.invoke(call, publish, context),\n release: () => endpoint.dispose(),\n };\n}\n\nfunction managementHost(): RoutedServerServiceHost {\n return {\n attachClient(presentation) {\n const provider = new RemoteServiceProvider([{ service: DoomSessionManagementService, mode: 'singleton' }]);\n provider.provide(DoomSessionManagementService, {\n attach: (sessionId, context) => presentation.attachSession(sessionId, context),\n detach: (context) => presentation.detachSession(context),\n });\n return endpointAttachment(createRemoteServiceEndpoint(provider));\n },\n };\n}\n\n/** Creates the 0.85 routed host for one supervised DoomPi session. */\nexport function createAgentServerService(options: AgentServerServiceOptions): ServerHost<DoomSessionMetadata> {\n const metadata: DoomSessionMetadata = {\n id: options.sessionId,\n createdAt: options.createdAt,\n storageVersion: 1,\n cwd: options.cwd,\n sessionName: options.sessionName,\n };\n const runtime = createAgentSessionRuntime(options);\n let closed = false;\n\n return {\n serverServices: managementHost(),\n async resolveSession(sessionId) {\n if (sessionId !== metadata.id) throw new SessionNotFoundError(`No session ${sessionId}`);\n return metadata;\n },\n async openSession() {\n if (closed) throw new SessionNotFoundError('The session service is closed');\n await runtime.initialize();\n const provider = new RemoteServiceProvider([{ service: DoomSessionService, mode: 'singleton' }]);\n provider.provide(DoomSessionService, runtime);\n const handle: RoutedSessionHandle = {\n attachClient: () => endpointAttachment(createRemoteServiceEndpoint(provider)),\n async close() {\n if (closed) return;\n closed = true;\n provider.dispose();\n await runtime.dispose();\n },\n };\n return handle;\n },\n };\n}\n\nexport type { SessionSnapshot };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
//#region src/pi/piWebSocketListener.ts
|
|
2
|
+
const OPEN = 1;
|
|
3
|
+
const MAX_PENDING_BYTES = 67108864;
|
|
4
|
+
/** Adapts authenticated browser WebSockets to Pi 0.85 byte connections. */
|
|
5
|
+
function createPiWebSocketListener(options = {}) {
|
|
6
|
+
let acceptor;
|
|
7
|
+
const open = /* @__PURE__ */ new Set();
|
|
8
|
+
return {
|
|
9
|
+
async start(accept) {
|
|
10
|
+
acceptor = accept;
|
|
11
|
+
},
|
|
12
|
+
async close() {
|
|
13
|
+
acceptor = void 0;
|
|
14
|
+
await Promise.all([...open].map(async (close) => {
|
|
15
|
+
try {
|
|
16
|
+
await close();
|
|
17
|
+
} catch (error) {
|
|
18
|
+
options.onError?.(error instanceof Error ? error : new Error(String(error)));
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
21
|
+
},
|
|
22
|
+
accept(socket) {
|
|
23
|
+
if (!acceptor) {
|
|
24
|
+
socket.close();
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
let closed = false;
|
|
28
|
+
let closing = false;
|
|
29
|
+
let notified = false;
|
|
30
|
+
let sending = Promise.resolve();
|
|
31
|
+
let queuedBytes = 0;
|
|
32
|
+
let handler;
|
|
33
|
+
const write = async (chunk) => {
|
|
34
|
+
let timer;
|
|
35
|
+
try {
|
|
36
|
+
await Promise.race([socket.send(chunk), new Promise((_resolve, reject) => {
|
|
37
|
+
timer = setTimeout(() => reject(/* @__PURE__ */ new Error("Protocol socket write timed out.")), 15e3);
|
|
38
|
+
timer.unref();
|
|
39
|
+
})]);
|
|
40
|
+
} finally {
|
|
41
|
+
clearTimeout(timer);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const notify = (error) => {
|
|
45
|
+
closed = true;
|
|
46
|
+
open.delete(close);
|
|
47
|
+
if (notified) return;
|
|
48
|
+
notified = true;
|
|
49
|
+
if (error) handler?.onError(error);
|
|
50
|
+
else handler?.onClose();
|
|
51
|
+
};
|
|
52
|
+
const close = async (finalChunk) => {
|
|
53
|
+
if (closing || closed) return;
|
|
54
|
+
closing = true;
|
|
55
|
+
open.delete(close);
|
|
56
|
+
try {
|
|
57
|
+
await sending;
|
|
58
|
+
if (!closed && finalChunk) await write(finalChunk);
|
|
59
|
+
} finally {
|
|
60
|
+
try {
|
|
61
|
+
socket.close();
|
|
62
|
+
} finally {
|
|
63
|
+
notify();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const connection = {
|
|
68
|
+
get closed() {
|
|
69
|
+
return closed || closing || socket.readyState !== void 0 && socket.readyState !== OPEN;
|
|
70
|
+
},
|
|
71
|
+
async send(chunk) {
|
|
72
|
+
if (connection.closed) throw new Error("Protocol socket closed before send.");
|
|
73
|
+
if (queuedBytes + chunk.byteLength > MAX_PENDING_BYTES) {
|
|
74
|
+
const error = /* @__PURE__ */ new Error("Protocol socket send queue exhausted.");
|
|
75
|
+
notify(error);
|
|
76
|
+
socket.close();
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
queuedBytes += chunk.byteLength;
|
|
80
|
+
const next = sending.then(() => {
|
|
81
|
+
if (closed) throw new Error("Protocol socket closed before send.");
|
|
82
|
+
return write(chunk);
|
|
83
|
+
}).finally(() => {
|
|
84
|
+
queuedBytes -= chunk.byteLength;
|
|
85
|
+
});
|
|
86
|
+
sending = next.catch((error) => {
|
|
87
|
+
notify(error instanceof Error ? error : new Error(String(error)));
|
|
88
|
+
socket.close();
|
|
89
|
+
});
|
|
90
|
+
return next;
|
|
91
|
+
},
|
|
92
|
+
close
|
|
93
|
+
};
|
|
94
|
+
open.add(close);
|
|
95
|
+
try {
|
|
96
|
+
handler = acceptor(connection);
|
|
97
|
+
} catch (error) {
|
|
98
|
+
open.delete(close);
|
|
99
|
+
socket.close();
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
onData: (chunk) => {
|
|
104
|
+
if (!closed && !closing) handler?.onData(chunk);
|
|
105
|
+
},
|
|
106
|
+
onClose: () => notify(),
|
|
107
|
+
onError: (error) => notify(error)
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
exports.createPiWebSocketListener = createPiWebSocketListener;
|
|
114
|
+
|
|
115
|
+
//# sourceMappingURL=piWebSocketListener.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"piWebSocketListener.cjs","names":[],"sources":["../../../src/pi/piWebSocketListener.ts"],"sourcesContent":["import type { Server, ServerListener } from '@earendil-works/pi-server';\n\ntype ByteConnection = Parameters<Server['accept']>[0];\ntype ByteConnectionHandler = ReturnType<Server['accept']>;\ntype ByteConnectionAcceptor = (connection: ByteConnection) => ByteConnectionHandler;\n\n/** The minimum WebSocket surface needed by the Pi byte-protocol listener. */\nexport interface PiListenerSocket {\n send(data: ArrayBufferLike | Uint8Array): void | Promise<void>;\n close(): void;\n readonly readyState?: number;\n}\n\nconst OPEN = 1;\nconst MAX_PENDING_BYTES = 64 * 1024 * 1024;\n\nexport interface PiWebSocketListener extends ServerListener {\n /** Hands an authenticated, already-upgraded socket to the protocol server. */\n accept(socket: PiListenerSocket): ByteConnectionHandler | undefined;\n}\n\n/** Adapts authenticated browser WebSockets to Pi 0.85 byte connections. */\nexport function createPiWebSocketListener(options: { onError?: (error: Error) => void } = {}): PiWebSocketListener {\n let acceptor: ByteConnectionAcceptor | undefined;\n const open = new Set<() => Promise<void>>();\n return {\n async start(accept) {\n acceptor = accept;\n },\n async close() {\n acceptor = undefined;\n await Promise.all(\n [...open].map(async (close) => {\n try {\n await close();\n } catch (error) {\n options.onError?.(error instanceof Error ? error : new Error(String(error)));\n }\n }),\n );\n },\n accept(socket) {\n if (!acceptor) {\n socket.close();\n return undefined;\n }\n let closed = false;\n let closing = false;\n let notified = false;\n let sending = Promise.resolve();\n let queuedBytes = 0;\n let handler: ByteConnectionHandler | undefined;\n const write = async (chunk: Uint8Array): Promise<void> => {\n let timer: ReturnType<typeof setTimeout> | undefined;\n try {\n await Promise.race([\n socket.send(chunk),\n new Promise<never>((_resolve, reject) => {\n timer = setTimeout(() => reject(new Error('Protocol socket write timed out.')), 15_000);\n timer.unref();\n }),\n ]);\n } finally {\n clearTimeout(timer);\n }\n };\n const notify = (error?: Error): void => {\n closed = true;\n open.delete(close);\n if (notified) return;\n notified = true;\n if (error) handler?.onError(error);\n else handler?.onClose();\n };\n const close = async (finalChunk?: Uint8Array): Promise<void> => {\n if (closing || closed) return;\n closing = true;\n open.delete(close);\n try {\n await sending;\n if (!closed && finalChunk) await write(finalChunk);\n } finally {\n try {\n socket.close();\n } finally {\n notify();\n }\n }\n };\n const connection: ByteConnection = {\n get closed() {\n return closed || closing || (socket.readyState !== undefined && socket.readyState !== OPEN);\n },\n async send(chunk) {\n if (connection.closed) throw new Error('Protocol socket closed before send.');\n if (queuedBytes + chunk.byteLength > MAX_PENDING_BYTES) {\n const error = new Error('Protocol socket send queue exhausted.');\n notify(error);\n socket.close();\n throw error;\n }\n queuedBytes += chunk.byteLength;\n const next = sending\n .then(() => {\n if (closed) throw new Error('Protocol socket closed before send.');\n return write(chunk);\n })\n .finally(() => {\n queuedBytes -= chunk.byteLength;\n });\n sending = next.catch((error: unknown) => {\n notify(error instanceof Error ? error : new Error(String(error)));\n socket.close();\n });\n return next;\n },\n close,\n };\n open.add(close);\n try {\n handler = acceptor(connection);\n } catch (error) {\n open.delete(close);\n socket.close();\n throw error;\n }\n return {\n onData: (chunk) => {\n if (!closed && !closing) handler?.onData(chunk);\n },\n onClose: () => notify(),\n onError: (error) => notify(error),\n };\n },\n };\n}\n"],"mappings":";AAaA,MAAM,OAAO;AACb,MAAM,oBAAoB;;AAQ1B,SAAgB,0BAA0B,UAAgD,CAAC,GAAwB;CACjH,IAAI;CACJ,MAAM,uBAAO,IAAI,IAAyB;CAC1C,OAAO;EACL,MAAM,MAAM,QAAQ;GAClB,WAAW;EACb;EACA,MAAM,QAAQ;GACZ,WAAW,KAAA;GACX,MAAM,QAAQ,IACZ,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU;IAC7B,IAAI;KACF,MAAM,MAAM;IACd,SAAS,OAAO;KACd,QAAQ,UAAU,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;IAC7E;GACF,CAAC,CACH;EACF;EACA,OAAO,QAAQ;GACb,IAAI,CAAC,UAAU;IACb,OAAO,MAAM;IACb;GACF;GACA,IAAI,SAAS;GACb,IAAI,UAAU;GACd,IAAI,WAAW;GACf,IAAI,UAAU,QAAQ,QAAQ;GAC9B,IAAI,cAAc;GAClB,IAAI;GACJ,MAAM,QAAQ,OAAO,UAAqC;IACxD,IAAI;IACJ,IAAI;KACF,MAAM,QAAQ,KAAK,CACjB,OAAO,KAAK,KAAK,GACjB,IAAI,SAAgB,UAAU,WAAW;MACvC,QAAQ,iBAAiB,uBAAO,IAAI,MAAM,kCAAkC,CAAC,GAAG,IAAM;MACtF,MAAM,MAAM;KACd,CAAC,CACH,CAAC;IACH,UAAU;KACR,aAAa,KAAK;IACpB;GACF;GACA,MAAM,UAAU,UAAwB;IACtC,SAAS;IACT,KAAK,OAAO,KAAK;IACjB,IAAI,UAAU;IACd,WAAW;IACX,IAAI,OAAO,SAAS,QAAQ,KAAK;SAC5B,SAAS,QAAQ;GACxB;GACA,MAAM,QAAQ,OAAO,eAA2C;IAC9D,IAAI,WAAW,QAAQ;IACvB,UAAU;IACV,KAAK,OAAO,KAAK;IACjB,IAAI;KACF,MAAM;KACN,IAAI,CAAC,UAAU,YAAY,MAAM,MAAM,UAAU;IACnD,UAAU;KACR,IAAI;MACF,OAAO,MAAM;KACf,UAAU;MACR,OAAO;KACT;IACF;GACF;GACA,MAAM,aAA6B;IACjC,IAAI,SAAS;KACX,OAAO,UAAU,WAAY,OAAO,eAAe,KAAA,KAAa,OAAO,eAAe;IACxF;IACA,MAAM,KAAK,OAAO;KAChB,IAAI,WAAW,QAAQ,MAAM,IAAI,MAAM,qCAAqC;KAC5E,IAAI,cAAc,MAAM,aAAa,mBAAmB;MACtD,MAAM,wBAAQ,IAAI,MAAM,uCAAuC;MAC/D,OAAO,KAAK;MACZ,OAAO,MAAM;MACb,MAAM;KACR;KACA,eAAe,MAAM;KACrB,MAAM,OAAO,QACV,WAAW;MACV,IAAI,QAAQ,MAAM,IAAI,MAAM,qCAAqC;MACjE,OAAO,MAAM,KAAK;KACpB,CAAC,CAAC,CACD,cAAc;MACb,eAAe,MAAM;KACvB,CAAC;KACH,UAAU,KAAK,OAAO,UAAmB;MACvC,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;MAChE,OAAO,MAAM;KACf,CAAC;KACD,OAAO;IACT;IACA;GACF;GACA,KAAK,IAAI,KAAK;GACd,IAAI;IACF,UAAU,SAAS,UAAU;GAC/B,SAAS,OAAO;IACd,KAAK,OAAO,KAAK;IACjB,OAAO,MAAM;IACb,MAAM;GACR;GACA,OAAO;IACL,SAAS,UAAU;KACjB,IAAI,CAAC,UAAU,CAAC,SAAS,SAAS,OAAO,KAAK;IAChD;IACA,eAAe,OAAO;IACtB,UAAU,UAAU,OAAO,KAAK;GAClC;EACF;CACF;AACF"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
//#region src/pi/piWebSocketListener.ts
|
|
2
|
+
const OPEN = 1;
|
|
3
|
+
const MAX_PENDING_BYTES = 67108864;
|
|
4
|
+
/** Adapts authenticated browser WebSockets to Pi 0.85 byte connections. */
|
|
5
|
+
function createPiWebSocketListener(options = {}) {
|
|
6
|
+
let acceptor;
|
|
7
|
+
const open = /* @__PURE__ */ new Set();
|
|
8
|
+
return {
|
|
9
|
+
async start(accept) {
|
|
10
|
+
acceptor = accept;
|
|
11
|
+
},
|
|
12
|
+
async close() {
|
|
13
|
+
acceptor = void 0;
|
|
14
|
+
await Promise.all([...open].map(async (close) => {
|
|
15
|
+
try {
|
|
16
|
+
await close();
|
|
17
|
+
} catch (error) {
|
|
18
|
+
options.onError?.(error instanceof Error ? error : new Error(String(error)));
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
21
|
+
},
|
|
22
|
+
accept(socket) {
|
|
23
|
+
if (!acceptor) {
|
|
24
|
+
socket.close();
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
let closed = false;
|
|
28
|
+
let closing = false;
|
|
29
|
+
let notified = false;
|
|
30
|
+
let sending = Promise.resolve();
|
|
31
|
+
let queuedBytes = 0;
|
|
32
|
+
let handler;
|
|
33
|
+
const write = async (chunk) => {
|
|
34
|
+
let timer;
|
|
35
|
+
try {
|
|
36
|
+
await Promise.race([socket.send(chunk), new Promise((_resolve, reject) => {
|
|
37
|
+
timer = setTimeout(() => reject(/* @__PURE__ */ new Error("Protocol socket write timed out.")), 15e3);
|
|
38
|
+
timer.unref();
|
|
39
|
+
})]);
|
|
40
|
+
} finally {
|
|
41
|
+
clearTimeout(timer);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const notify = (error) => {
|
|
45
|
+
closed = true;
|
|
46
|
+
open.delete(close);
|
|
47
|
+
if (notified) return;
|
|
48
|
+
notified = true;
|
|
49
|
+
if (error) handler?.onError(error);
|
|
50
|
+
else handler?.onClose();
|
|
51
|
+
};
|
|
52
|
+
const close = async (finalChunk) => {
|
|
53
|
+
if (closing || closed) return;
|
|
54
|
+
closing = true;
|
|
55
|
+
open.delete(close);
|
|
56
|
+
try {
|
|
57
|
+
await sending;
|
|
58
|
+
if (!closed && finalChunk) await write(finalChunk);
|
|
59
|
+
} finally {
|
|
60
|
+
try {
|
|
61
|
+
socket.close();
|
|
62
|
+
} finally {
|
|
63
|
+
notify();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const connection = {
|
|
68
|
+
get closed() {
|
|
69
|
+
return closed || closing || socket.readyState !== void 0 && socket.readyState !== OPEN;
|
|
70
|
+
},
|
|
71
|
+
async send(chunk) {
|
|
72
|
+
if (connection.closed) throw new Error("Protocol socket closed before send.");
|
|
73
|
+
if (queuedBytes + chunk.byteLength > MAX_PENDING_BYTES) {
|
|
74
|
+
const error = /* @__PURE__ */ new Error("Protocol socket send queue exhausted.");
|
|
75
|
+
notify(error);
|
|
76
|
+
socket.close();
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
queuedBytes += chunk.byteLength;
|
|
80
|
+
const next = sending.then(() => {
|
|
81
|
+
if (closed) throw new Error("Protocol socket closed before send.");
|
|
82
|
+
return write(chunk);
|
|
83
|
+
}).finally(() => {
|
|
84
|
+
queuedBytes -= chunk.byteLength;
|
|
85
|
+
});
|
|
86
|
+
sending = next.catch((error) => {
|
|
87
|
+
notify(error instanceof Error ? error : new Error(String(error)));
|
|
88
|
+
socket.close();
|
|
89
|
+
});
|
|
90
|
+
return next;
|
|
91
|
+
},
|
|
92
|
+
close
|
|
93
|
+
};
|
|
94
|
+
open.add(close);
|
|
95
|
+
try {
|
|
96
|
+
handler = acceptor(connection);
|
|
97
|
+
} catch (error) {
|
|
98
|
+
open.delete(close);
|
|
99
|
+
socket.close();
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
onData: (chunk) => {
|
|
104
|
+
if (!closed && !closing) handler?.onData(chunk);
|
|
105
|
+
},
|
|
106
|
+
onClose: () => notify(),
|
|
107
|
+
onError: (error) => notify(error)
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
export { createPiWebSocketListener };
|
|
114
|
+
|
|
115
|
+
//# sourceMappingURL=piWebSocketListener.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"piWebSocketListener.mjs","names":[],"sources":["../../../src/pi/piWebSocketListener.ts"],"sourcesContent":["import type { Server, ServerListener } from '@earendil-works/pi-server';\n\ntype ByteConnection = Parameters<Server['accept']>[0];\ntype ByteConnectionHandler = ReturnType<Server['accept']>;\ntype ByteConnectionAcceptor = (connection: ByteConnection) => ByteConnectionHandler;\n\n/** The minimum WebSocket surface needed by the Pi byte-protocol listener. */\nexport interface PiListenerSocket {\n send(data: ArrayBufferLike | Uint8Array): void | Promise<void>;\n close(): void;\n readonly readyState?: number;\n}\n\nconst OPEN = 1;\nconst MAX_PENDING_BYTES = 64 * 1024 * 1024;\n\nexport interface PiWebSocketListener extends ServerListener {\n /** Hands an authenticated, already-upgraded socket to the protocol server. */\n accept(socket: PiListenerSocket): ByteConnectionHandler | undefined;\n}\n\n/** Adapts authenticated browser WebSockets to Pi 0.85 byte connections. */\nexport function createPiWebSocketListener(options: { onError?: (error: Error) => void } = {}): PiWebSocketListener {\n let acceptor: ByteConnectionAcceptor | undefined;\n const open = new Set<() => Promise<void>>();\n return {\n async start(accept) {\n acceptor = accept;\n },\n async close() {\n acceptor = undefined;\n await Promise.all(\n [...open].map(async (close) => {\n try {\n await close();\n } catch (error) {\n options.onError?.(error instanceof Error ? error : new Error(String(error)));\n }\n }),\n );\n },\n accept(socket) {\n if (!acceptor) {\n socket.close();\n return undefined;\n }\n let closed = false;\n let closing = false;\n let notified = false;\n let sending = Promise.resolve();\n let queuedBytes = 0;\n let handler: ByteConnectionHandler | undefined;\n const write = async (chunk: Uint8Array): Promise<void> => {\n let timer: ReturnType<typeof setTimeout> | undefined;\n try {\n await Promise.race([\n socket.send(chunk),\n new Promise<never>((_resolve, reject) => {\n timer = setTimeout(() => reject(new Error('Protocol socket write timed out.')), 15_000);\n timer.unref();\n }),\n ]);\n } finally {\n clearTimeout(timer);\n }\n };\n const notify = (error?: Error): void => {\n closed = true;\n open.delete(close);\n if (notified) return;\n notified = true;\n if (error) handler?.onError(error);\n else handler?.onClose();\n };\n const close = async (finalChunk?: Uint8Array): Promise<void> => {\n if (closing || closed) return;\n closing = true;\n open.delete(close);\n try {\n await sending;\n if (!closed && finalChunk) await write(finalChunk);\n } finally {\n try {\n socket.close();\n } finally {\n notify();\n }\n }\n };\n const connection: ByteConnection = {\n get closed() {\n return closed || closing || (socket.readyState !== undefined && socket.readyState !== OPEN);\n },\n async send(chunk) {\n if (connection.closed) throw new Error('Protocol socket closed before send.');\n if (queuedBytes + chunk.byteLength > MAX_PENDING_BYTES) {\n const error = new Error('Protocol socket send queue exhausted.');\n notify(error);\n socket.close();\n throw error;\n }\n queuedBytes += chunk.byteLength;\n const next = sending\n .then(() => {\n if (closed) throw new Error('Protocol socket closed before send.');\n return write(chunk);\n })\n .finally(() => {\n queuedBytes -= chunk.byteLength;\n });\n sending = next.catch((error: unknown) => {\n notify(error instanceof Error ? error : new Error(String(error)));\n socket.close();\n });\n return next;\n },\n close,\n };\n open.add(close);\n try {\n handler = acceptor(connection);\n } catch (error) {\n open.delete(close);\n socket.close();\n throw error;\n }\n return {\n onData: (chunk) => {\n if (!closed && !closing) handler?.onData(chunk);\n },\n onClose: () => notify(),\n onError: (error) => notify(error),\n };\n },\n };\n}\n"],"mappings":";AAaA,MAAM,OAAO;AACb,MAAM,oBAAoB;;AAQ1B,SAAgB,0BAA0B,UAAgD,CAAC,GAAwB;CACjH,IAAI;CACJ,MAAM,uBAAO,IAAI,IAAyB;CAC1C,OAAO;EACL,MAAM,MAAM,QAAQ;GAClB,WAAW;EACb;EACA,MAAM,QAAQ;GACZ,WAAW,KAAA;GACX,MAAM,QAAQ,IACZ,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU;IAC7B,IAAI;KACF,MAAM,MAAM;IACd,SAAS,OAAO;KACd,QAAQ,UAAU,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;IAC7E;GACF,CAAC,CACH;EACF;EACA,OAAO,QAAQ;GACb,IAAI,CAAC,UAAU;IACb,OAAO,MAAM;IACb;GACF;GACA,IAAI,SAAS;GACb,IAAI,UAAU;GACd,IAAI,WAAW;GACf,IAAI,UAAU,QAAQ,QAAQ;GAC9B,IAAI,cAAc;GAClB,IAAI;GACJ,MAAM,QAAQ,OAAO,UAAqC;IACxD,IAAI;IACJ,IAAI;KACF,MAAM,QAAQ,KAAK,CACjB,OAAO,KAAK,KAAK,GACjB,IAAI,SAAgB,UAAU,WAAW;MACvC,QAAQ,iBAAiB,uBAAO,IAAI,MAAM,kCAAkC,CAAC,GAAG,IAAM;MACtF,MAAM,MAAM;KACd,CAAC,CACH,CAAC;IACH,UAAU;KACR,aAAa,KAAK;IACpB;GACF;GACA,MAAM,UAAU,UAAwB;IACtC,SAAS;IACT,KAAK,OAAO,KAAK;IACjB,IAAI,UAAU;IACd,WAAW;IACX,IAAI,OAAO,SAAS,QAAQ,KAAK;SAC5B,SAAS,QAAQ;GACxB;GACA,MAAM,QAAQ,OAAO,eAA2C;IAC9D,IAAI,WAAW,QAAQ;IACvB,UAAU;IACV,KAAK,OAAO,KAAK;IACjB,IAAI;KACF,MAAM;KACN,IAAI,CAAC,UAAU,YAAY,MAAM,MAAM,UAAU;IACnD,UAAU;KACR,IAAI;MACF,OAAO,MAAM;KACf,UAAU;MACR,OAAO;KACT;IACF;GACF;GACA,MAAM,aAA6B;IACjC,IAAI,SAAS;KACX,OAAO,UAAU,WAAY,OAAO,eAAe,KAAA,KAAa,OAAO,eAAe;IACxF;IACA,MAAM,KAAK,OAAO;KAChB,IAAI,WAAW,QAAQ,MAAM,IAAI,MAAM,qCAAqC;KAC5E,IAAI,cAAc,MAAM,aAAa,mBAAmB;MACtD,MAAM,wBAAQ,IAAI,MAAM,uCAAuC;MAC/D,OAAO,KAAK;MACZ,OAAO,MAAM;MACb,MAAM;KACR;KACA,eAAe,MAAM;KACrB,MAAM,OAAO,QACV,WAAW;MACV,IAAI,QAAQ,MAAM,IAAI,MAAM,qCAAqC;MACjE,OAAO,MAAM,KAAK;KACpB,CAAC,CAAC,CACD,cAAc;MACb,eAAe,MAAM;KACvB,CAAC;KACH,UAAU,KAAK,OAAO,UAAmB;MACvC,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;MAChE,OAAO,MAAM;KACf,CAAC;KACD,OAAO;IACT;IACA;GACF;GACA,KAAK,IAAI,KAAK;GACd,IAAI;IACF,UAAU,SAAS,UAAU;GAC/B,SAAS,OAAO;IACd,KAAK,OAAO,KAAK;IACjB,OAAO,MAAM;IACb,MAAM;GACR;GACA,OAAO;IACL,SAAS,UAAU;KACjB,IAAI,CAAC,UAAU,CAAC,SAAS,SAAS,OAAO,KAAK;IAChD;IACA,eAAe,OAAO;IACtB,UAAU,UAAU,OAAO,KAAK;GAClC;EACF;CACF;AACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
let typebox = require("typebox");
|
|
2
|
+
//#region src/schemas/agentModel.ts
|
|
3
|
+
/**
|
|
4
|
+
* The custom session entry the runtime journals when the agent's model changes
|
|
5
|
+
* without a client having asked for it.
|
|
6
|
+
*
|
|
7
|
+
* Pi reports a thinking-level switch on the wire as `thinking_level_changed`,
|
|
8
|
+
* so a cockpit can follow that field from the frame alone. It has no matching
|
|
9
|
+
* event for the model: `model_select` is delivered to extensions inside the
|
|
10
|
+
* agent process and never leaves it. A client therefore learns about a model
|
|
11
|
+
* an extension chose (plan mode applying its configured planning model) only
|
|
12
|
+
* by asking for `get_state`, which nothing prompts it to do.
|
|
13
|
+
*
|
|
14
|
+
* This entry closes that gap on the road the minor-mode projection already
|
|
15
|
+
* uses: it rides Pi's `entry_appended` frames, so any RPC client sees the
|
|
16
|
+
* change live and on replay without a new protocol.
|
|
17
|
+
*/
|
|
18
|
+
const DOOM_AGENT_MODEL_ENTRY_TYPE = "doom-agent-model";
|
|
19
|
+
const AgentModelProjectionSchema = typebox.Type.Object({
|
|
20
|
+
provider: typebox.Type.String({
|
|
21
|
+
minLength: 1,
|
|
22
|
+
maxLength: 128
|
|
23
|
+
}),
|
|
24
|
+
id: typebox.Type.String({
|
|
25
|
+
minLength: 1,
|
|
26
|
+
maxLength: 256
|
|
27
|
+
})
|
|
28
|
+
}, { additionalProperties: false });
|
|
29
|
+
//#endregion
|
|
30
|
+
exports.AgentModelProjectionSchema = AgentModelProjectionSchema;
|
|
31
|
+
exports.DOOM_AGENT_MODEL_ENTRY_TYPE = DOOM_AGENT_MODEL_ENTRY_TYPE;
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=agentModel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentModel.cjs","names":["Type"],"sources":["../../../src/schemas/agentModel.ts"],"sourcesContent":["import { type Static, Type } from 'typebox';\n\n/**\n * The custom session entry the runtime journals when the agent's model changes\n * without a client having asked for it.\n *\n * Pi reports a thinking-level switch on the wire as `thinking_level_changed`,\n * so a cockpit can follow that field from the frame alone. It has no matching\n * event for the model: `model_select` is delivered to extensions inside the\n * agent process and never leaves it. A client therefore learns about a model\n * an extension chose (plan mode applying its configured planning model) only\n * by asking for `get_state`, which nothing prompts it to do.\n *\n * This entry closes that gap on the road the minor-mode projection already\n * uses: it rides Pi's `entry_appended` frames, so any RPC client sees the\n * change live and on replay without a new protocol.\n */\nexport const DOOM_AGENT_MODEL_ENTRY_TYPE = 'doom-agent-model';\n\nexport const AgentModelProjectionSchema = Type.Object(\n {\n provider: Type.String({ minLength: 1, maxLength: 128 }),\n id: Type.String({ minLength: 1, maxLength: 256 }),\n },\n { additionalProperties: false },\n);\n\n/** The model the agent is on, named the way `set_model` and `get_state` name it. */\nexport type AgentModelProjection = Static<typeof AgentModelProjectionSchema>;\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,MAAa,8BAA8B;AAE3C,MAAa,6BAA6BA,QAAAA,KAAK,OAC7C;CACE,UAAUA,QAAAA,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAI,CAAC;CACtD,IAAIA,QAAAA,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAI,CAAC;AAClD,GACA,EAAE,sBAAsB,MAAM,CAChC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Static, Type } from "typebox";
|
|
2
|
+
//#region src/schemas/agentModel.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* The custom session entry the runtime journals when the agent's model changes
|
|
5
|
+
* without a client having asked for it.
|
|
6
|
+
*
|
|
7
|
+
* Pi reports a thinking-level switch on the wire as `thinking_level_changed`,
|
|
8
|
+
* so a cockpit can follow that field from the frame alone. It has no matching
|
|
9
|
+
* event for the model: `model_select` is delivered to extensions inside the
|
|
10
|
+
* agent process and never leaves it. A client therefore learns about a model
|
|
11
|
+
* an extension chose (plan mode applying its configured planning model) only
|
|
12
|
+
* by asking for `get_state`, which nothing prompts it to do.
|
|
13
|
+
*
|
|
14
|
+
* This entry closes that gap on the road the minor-mode projection already
|
|
15
|
+
* uses: it rides Pi's `entry_appended` frames, so any RPC client sees the
|
|
16
|
+
* change live and on replay without a new protocol.
|
|
17
|
+
*/
|
|
18
|
+
export declare const DOOM_AGENT_MODEL_ENTRY_TYPE = "doom-agent-model";
|
|
19
|
+
export declare const AgentModelProjectionSchema: Type.TObject<{
|
|
20
|
+
provider: Type.TString;
|
|
21
|
+
id: Type.TString;
|
|
22
|
+
}>;
|
|
23
|
+
/** The model the agent is on, named the way `set_model` and `get_state` name it. */
|
|
24
|
+
export type AgentModelProjection = Static<typeof AgentModelProjectionSchema>;
|
|
25
|
+
//#endregion
|
|
26
|
+
//# sourceMappingURL=agentModel.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentModel.d.mts","names":[],"sources":["../../../src/schemas/agentModel.ts"],"mappings":";;;;;;;;;;;;;;;;;qBAiBa;qBAEA,4BAA0B,KAAA;;;;;YAS3B,uBAAuB,cAAc"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Type } from "typebox";
|
|
2
|
+
//#region src/schemas/agentModel.ts
|
|
3
|
+
/**
|
|
4
|
+
* The custom session entry the runtime journals when the agent's model changes
|
|
5
|
+
* without a client having asked for it.
|
|
6
|
+
*
|
|
7
|
+
* Pi reports a thinking-level switch on the wire as `thinking_level_changed`,
|
|
8
|
+
* so a cockpit can follow that field from the frame alone. It has no matching
|
|
9
|
+
* event for the model: `model_select` is delivered to extensions inside the
|
|
10
|
+
* agent process and never leaves it. A client therefore learns about a model
|
|
11
|
+
* an extension chose (plan mode applying its configured planning model) only
|
|
12
|
+
* by asking for `get_state`, which nothing prompts it to do.
|
|
13
|
+
*
|
|
14
|
+
* This entry closes that gap on the road the minor-mode projection already
|
|
15
|
+
* uses: it rides Pi's `entry_appended` frames, so any RPC client sees the
|
|
16
|
+
* change live and on replay without a new protocol.
|
|
17
|
+
*/
|
|
18
|
+
const DOOM_AGENT_MODEL_ENTRY_TYPE = "doom-agent-model";
|
|
19
|
+
const AgentModelProjectionSchema = Type.Object({
|
|
20
|
+
provider: Type.String({
|
|
21
|
+
minLength: 1,
|
|
22
|
+
maxLength: 128
|
|
23
|
+
}),
|
|
24
|
+
id: Type.String({
|
|
25
|
+
minLength: 1,
|
|
26
|
+
maxLength: 256
|
|
27
|
+
})
|
|
28
|
+
}, { additionalProperties: false });
|
|
29
|
+
//#endregion
|
|
30
|
+
export { AgentModelProjectionSchema, DOOM_AGENT_MODEL_ENTRY_TYPE };
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=agentModel.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentModel.mjs","names":[],"sources":["../../../src/schemas/agentModel.ts"],"sourcesContent":["import { type Static, Type } from 'typebox';\n\n/**\n * The custom session entry the runtime journals when the agent's model changes\n * without a client having asked for it.\n *\n * Pi reports a thinking-level switch on the wire as `thinking_level_changed`,\n * so a cockpit can follow that field from the frame alone. It has no matching\n * event for the model: `model_select` is delivered to extensions inside the\n * agent process and never leaves it. A client therefore learns about a model\n * an extension chose (plan mode applying its configured planning model) only\n * by asking for `get_state`, which nothing prompts it to do.\n *\n * This entry closes that gap on the road the minor-mode projection already\n * uses: it rides Pi's `entry_appended` frames, so any RPC client sees the\n * change live and on replay without a new protocol.\n */\nexport const DOOM_AGENT_MODEL_ENTRY_TYPE = 'doom-agent-model';\n\nexport const AgentModelProjectionSchema = Type.Object(\n {\n provider: Type.String({ minLength: 1, maxLength: 128 }),\n id: Type.String({ minLength: 1, maxLength: 256 }),\n },\n { additionalProperties: false },\n);\n\n/** The model the agent is on, named the way `set_model` and `get_state` name it. */\nexport type AgentModelProjection = Static<typeof AgentModelProjectionSchema>;\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,MAAa,8BAA8B;AAE3C,MAAa,6BAA6B,KAAK,OAC7C;CACE,UAAU,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAI,CAAC;CACtD,IAAI,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAI,CAAC;AAClD,GACA,EAAE,sBAAsB,MAAM,CAChC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import "./packageApi.mjs";
|
|
2
|
+
import "./serverBundle.mjs";
|
|
3
|
+
import { Static, Type } from "typebox";
|
|
4
|
+
//#region src/schemas/apiContracts.d.ts
|
|
5
|
+
/** Data-only package entry. Schemas use JSON Schema draft-07, including TypeBox output; OpenAPI export translates tuple keywords. */
|
|
6
|
+
export declare const DoomApiContractSchema: Type.TObject<{
|
|
7
|
+
version: Type.TLiteral<1>;
|
|
8
|
+
protocols: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
|
|
9
|
+
schemas: Type.TOptional<Type.TRecord<"^.*$", Type.TUnsafe<boolean | object>>>;
|
|
10
|
+
http: Type.TArray<Type.TObject<{
|
|
11
|
+
id: Type.TString;
|
|
12
|
+
scope: Type.TUnion<[Type.TLiteral<"global">, Type.TLiteral<"workspace">, Type.TLiteral<"session">]>;
|
|
13
|
+
/** Omit for host-owned absolute routes. */
|
|
14
|
+
basePath: Type.TOptional<Type.TString>;
|
|
15
|
+
path: Type.TString;
|
|
16
|
+
method: Type.TUnion<[Type.TLiteral<"GET">, Type.TLiteral<"POST">, Type.TLiteral<"PUT">, Type.TLiteral<"PATCH">, Type.TLiteral<"DELETE">, Type.TLiteral<"HEAD">, Type.TLiteral<"OPTIONS">]>;
|
|
17
|
+
description: Type.TString;
|
|
18
|
+
availability: Type.TOptional<Type.TString>;
|
|
19
|
+
authentication: Type.TUnion<[Type.TLiteral<"none">, Type.TLiteral<"owner">, Type.TLiteral<"device">]>;
|
|
20
|
+
parameters: Type.TOptional<Type.TArray<Type.TObject<{
|
|
21
|
+
name: Type.TString;
|
|
22
|
+
in: Type.TUnion<[Type.TLiteral<"path">, Type.TLiteral<"query">, Type.TLiteral<"header">]>;
|
|
23
|
+
required: Type.TBoolean;
|
|
24
|
+
schema: Type.TUnsafe<boolean | object>;
|
|
25
|
+
}>>>;
|
|
26
|
+
body: Type.TOptional<Type.TObject<{
|
|
27
|
+
contentType: Type.TString;
|
|
28
|
+
contentTypes: Type.TOptional<Type.TArray<Type.TString>>;
|
|
29
|
+
required: Type.TBoolean;
|
|
30
|
+
schema: Type.TUnsafe<boolean | object>;
|
|
31
|
+
}>>;
|
|
32
|
+
responses: Type.TRecord<"^.*$", Type.TObject<{
|
|
33
|
+
description: Type.TString;
|
|
34
|
+
contentType: Type.TOptional<Type.TString>;
|
|
35
|
+
schema: Type.TOptional<Type.TUnsafe<boolean | object>>;
|
|
36
|
+
events: Type.TOptional<Type.TRecord<"^.*$", Type.TUnsafe<boolean | object>>>;
|
|
37
|
+
}>>;
|
|
38
|
+
}>>;
|
|
39
|
+
sockets: Type.TArray<Type.TObject<{
|
|
40
|
+
id: Type.TString;
|
|
41
|
+
scope: Type.TUnion<[Type.TLiteral<"global">, Type.TLiteral<"workspace">, Type.TLiteral<"session">]>;
|
|
42
|
+
description: Type.TString;
|
|
43
|
+
availability: Type.TOptional<Type.TString>;
|
|
44
|
+
service: Type.TString;
|
|
45
|
+
member: Type.TString;
|
|
46
|
+
direction: Type.TUnion<[Type.TLiteral<"client-to-server">, Type.TLiteral<"server-to-client">]>;
|
|
47
|
+
kind: Type.TUnion<[Type.TLiteral<"method">, Type.TLiteral<"state">, Type.TLiteral<"channel">]>;
|
|
48
|
+
input: Type.TUnsafe<boolean | object>;
|
|
49
|
+
output: Type.TOptional<Type.TUnsafe<boolean | object>>;
|
|
50
|
+
errors: Type.TOptional<Type.TUnsafe<boolean | object>>;
|
|
51
|
+
}>>;
|
|
52
|
+
/** Explicitly enumerate dynamic values whose shape is supplied at runtime. */
|
|
53
|
+
dynamic: Type.TArray<Type.TString>;
|
|
54
|
+
gaps: Type.TOptional<Type.TArray<Type.TString>>;
|
|
55
|
+
}>;
|
|
56
|
+
export type DoomApiContract = Static<typeof DoomApiContractSchema>;
|
|
57
|
+
//#endregion
|
|
58
|
+
//# sourceMappingURL=apiContracts.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../../../src/schemas/apiContracts.ts"],"mappings":";;;;;qBAmBa,uBAAqB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAkEtB,kBAAkB,cAAc"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
let typebox = require("typebox");
|
|
2
|
+
//#region src/schemas/askUser.ts
|
|
3
|
+
/** Namespaced Cordis events emitted by the ask-user provider. */
|
|
4
|
+
const DOOM_ASK_USER_PROMPT_EVENT = "doom/ask-user/prompt";
|
|
5
|
+
const DOOM_ASK_USER_BLOCKED_EVENT = "doom/ask-user/blocked";
|
|
6
|
+
const MAX_QUESTIONS = 3;
|
|
7
|
+
const MAX_OPTIONS = 16;
|
|
8
|
+
const MAX_TEXT_LENGTH = 4096;
|
|
9
|
+
const AskUserPromptOptionSchema = typebox.Type.Object({
|
|
10
|
+
label: typebox.Type.String({
|
|
11
|
+
minLength: 1,
|
|
12
|
+
maxLength: MAX_TEXT_LENGTH
|
|
13
|
+
}),
|
|
14
|
+
description: typebox.Type.String({ maxLength: MAX_TEXT_LENGTH }),
|
|
15
|
+
hasPreview: typebox.Type.Boolean()
|
|
16
|
+
}, { additionalProperties: false });
|
|
17
|
+
const AskUserPromptQuestionSchema = typebox.Type.Object({
|
|
18
|
+
question: typebox.Type.String({
|
|
19
|
+
minLength: 1,
|
|
20
|
+
maxLength: MAX_TEXT_LENGTH
|
|
21
|
+
}),
|
|
22
|
+
header: typebox.Type.String({
|
|
23
|
+
minLength: 1,
|
|
24
|
+
maxLength: MAX_TEXT_LENGTH
|
|
25
|
+
}),
|
|
26
|
+
multiSelect: typebox.Type.Boolean(),
|
|
27
|
+
options: typebox.Type.Array(AskUserPromptOptionSchema, { maxItems: MAX_OPTIONS })
|
|
28
|
+
}, { additionalProperties: false });
|
|
29
|
+
const AskUserPromptEventSchema = typebox.Type.Object({ questions: typebox.Type.Array(AskUserPromptQuestionSchema, {
|
|
30
|
+
minItems: 1,
|
|
31
|
+
maxItems: MAX_QUESTIONS
|
|
32
|
+
}) }, { additionalProperties: false });
|
|
33
|
+
const AskUserBlockedEventSchema = typebox.Type.Object({ active: typebox.Type.Boolean() }, { additionalProperties: false });
|
|
34
|
+
//#endregion
|
|
35
|
+
exports.AskUserBlockedEventSchema = AskUserBlockedEventSchema;
|
|
36
|
+
exports.AskUserPromptEventSchema = AskUserPromptEventSchema;
|
|
37
|
+
exports.AskUserPromptOptionSchema = AskUserPromptOptionSchema;
|
|
38
|
+
exports.AskUserPromptQuestionSchema = AskUserPromptQuestionSchema;
|
|
39
|
+
exports.DOOM_ASK_USER_BLOCKED_EVENT = DOOM_ASK_USER_BLOCKED_EVENT;
|
|
40
|
+
exports.DOOM_ASK_USER_PROMPT_EVENT = DOOM_ASK_USER_PROMPT_EVENT;
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=askUser.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"askUser.cjs","names":["Type"],"sources":["../../../src/schemas/askUser.ts"],"sourcesContent":["import { type Static, Type } from 'typebox';\n\n/** Namespaced Cordis events emitted by the ask-user provider. */\nexport const DOOM_ASK_USER_PROMPT_EVENT = 'doom/ask-user/prompt';\nexport const DOOM_ASK_USER_BLOCKED_EVENT = 'doom/ask-user/blocked';\n\nconst MAX_QUESTIONS = 3;\nconst MAX_OPTIONS = 16;\nconst MAX_TEXT_LENGTH = 4_096;\n\nexport const AskUserPromptOptionSchema = Type.Object(\n {\n label: Type.String({ minLength: 1, maxLength: MAX_TEXT_LENGTH }),\n description: Type.String({ maxLength: MAX_TEXT_LENGTH }),\n hasPreview: Type.Boolean(),\n },\n { additionalProperties: false },\n);\nexport type AskUserPromptOption = Static<typeof AskUserPromptOptionSchema>;\n\nexport const AskUserPromptQuestionSchema = Type.Object(\n {\n question: Type.String({ minLength: 1, maxLength: MAX_TEXT_LENGTH }),\n header: Type.String({ minLength: 1, maxLength: MAX_TEXT_LENGTH }),\n multiSelect: Type.Boolean(),\n options: Type.Array(AskUserPromptOptionSchema, { maxItems: MAX_OPTIONS }),\n },\n { additionalProperties: false },\n);\nexport type AskUserPromptQuestion = Static<typeof AskUserPromptQuestionSchema>;\n\nexport const AskUserPromptEventSchema = Type.Object(\n { questions: Type.Array(AskUserPromptQuestionSchema, { minItems: 1, maxItems: MAX_QUESTIONS }) },\n { additionalProperties: false },\n);\nexport type AskUserPromptEvent = Static<typeof AskUserPromptEventSchema>;\n\nexport const AskUserBlockedEventSchema = Type.Object({ active: Type.Boolean() }, { additionalProperties: false });\nexport type AskUserBlockedEvent = Static<typeof AskUserBlockedEventSchema>;\n\ndeclare module '@deepseek-ai/cordis' {\n interface Events {\n 'doom/ask-user/prompt'(event: AskUserPromptEvent): void;\n 'doom/ask-user/blocked'(event: AskUserBlockedEvent): void;\n }\n}\n"],"mappings":";;;AAGA,MAAa,6BAA6B;AAC1C,MAAa,8BAA8B;AAE3C,MAAM,gBAAgB;AACtB,MAAM,cAAc;AACpB,MAAM,kBAAkB;AAExB,MAAa,4BAA4BA,QAAAA,KAAK,OAC5C;CACE,OAAOA,QAAAA,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAgB,CAAC;CAC/D,aAAaA,QAAAA,KAAK,OAAO,EAAE,WAAW,gBAAgB,CAAC;CACvD,YAAYA,QAAAA,KAAK,QAAQ;AAC3B,GACA,EAAE,sBAAsB,MAAM,CAChC;AAGA,MAAa,8BAA8BA,QAAAA,KAAK,OAC9C;CACE,UAAUA,QAAAA,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAgB,CAAC;CAClE,QAAQA,QAAAA,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAgB,CAAC;CAChE,aAAaA,QAAAA,KAAK,QAAQ;CAC1B,SAASA,QAAAA,KAAK,MAAM,2BAA2B,EAAE,UAAU,YAAY,CAAC;AAC1E,GACA,EAAE,sBAAsB,MAAM,CAChC;AAGA,MAAa,2BAA2BA,QAAAA,KAAK,OAC3C,EAAE,WAAWA,QAAAA,KAAK,MAAM,6BAA6B;CAAE,UAAU;CAAG,UAAU;AAAc,CAAC,EAAE,GAC/F,EAAE,sBAAsB,MAAM,CAChC;AAGA,MAAa,4BAA4BA,QAAAA,KAAK,OAAO,EAAE,QAAQA,QAAAA,KAAK,QAAQ,EAAE,GAAG,EAAE,sBAAsB,MAAM,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Static, Type } from "typebox";
|
|
2
|
+
//#region src/schemas/askUser.d.ts
|
|
3
|
+
/** Namespaced Cordis events emitted by the ask-user provider. */
|
|
4
|
+
export declare const DOOM_ASK_USER_PROMPT_EVENT = "doom/ask-user/prompt";
|
|
5
|
+
export declare const DOOM_ASK_USER_BLOCKED_EVENT = "doom/ask-user/blocked";
|
|
6
|
+
export declare const AskUserPromptOptionSchema: Type.TObject<{
|
|
7
|
+
label: Type.TString;
|
|
8
|
+
description: Type.TString;
|
|
9
|
+
hasPreview: Type.TBoolean;
|
|
10
|
+
}>;
|
|
11
|
+
export type AskUserPromptOption = Static<typeof AskUserPromptOptionSchema>;
|
|
12
|
+
export declare const AskUserPromptQuestionSchema: Type.TObject<{
|
|
13
|
+
question: Type.TString;
|
|
14
|
+
header: Type.TString;
|
|
15
|
+
multiSelect: Type.TBoolean;
|
|
16
|
+
options: Type.TArray<Type.TObject<{
|
|
17
|
+
label: Type.TString;
|
|
18
|
+
description: Type.TString;
|
|
19
|
+
hasPreview: Type.TBoolean;
|
|
20
|
+
}>>;
|
|
21
|
+
}>;
|
|
22
|
+
export type AskUserPromptQuestion = Static<typeof AskUserPromptQuestionSchema>;
|
|
23
|
+
export declare const AskUserPromptEventSchema: Type.TObject<{
|
|
24
|
+
questions: Type.TArray<Type.TObject<{
|
|
25
|
+
question: Type.TString;
|
|
26
|
+
header: Type.TString;
|
|
27
|
+
multiSelect: Type.TBoolean;
|
|
28
|
+
options: Type.TArray<Type.TObject<{
|
|
29
|
+
label: Type.TString;
|
|
30
|
+
description: Type.TString;
|
|
31
|
+
hasPreview: Type.TBoolean;
|
|
32
|
+
}>>;
|
|
33
|
+
}>>;
|
|
34
|
+
}>;
|
|
35
|
+
export type AskUserPromptEvent = Static<typeof AskUserPromptEventSchema>;
|
|
36
|
+
export declare const AskUserBlockedEventSchema: Type.TObject<{
|
|
37
|
+
active: Type.TBoolean;
|
|
38
|
+
}>;
|
|
39
|
+
export type AskUserBlockedEvent = Static<typeof AskUserBlockedEventSchema>;
|
|
40
|
+
declare module '@deepseek-ai/cordis' {
|
|
41
|
+
interface Events {
|
|
42
|
+
'doom/ask-user/prompt'(event: AskUserPromptEvent): void;
|
|
43
|
+
'doom/ask-user/blocked'(event: AskUserBlockedEvent): void;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
//# sourceMappingURL=askUser.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"askUser.d.mts","names":[],"sources":["../../../src/schemas/askUser.ts"],"mappings":";;;qBAGa;qBACA;qBAMA,2BAAyB,KAAA;;;;;YAQ1B,sBAAsB,cAAc;qBAEnC,6BAA2B,KAAA;;;;;;;;;;YAS5B,wBAAwB,cAAc;qBAErC,0BAAwB,KAAA;;;;;;;;;;;;YAIzB,qBAAqB,cAAc;qBAElC,2BAAyB,KAAA;;;YAC1B,sBAAsB,cAAc;;YAGpC;IACR,uBAAuB,OAAO;IAC9B,wBAAwB,OAAO"}
|