@agimon-ai/po-core 0.0.0-alpha.2 → 0.0.0-alpha.21
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 +149 -21
- package/NOTICE +41 -0
- package/dist/agentModel.cjs +1 -1
- package/dist/agentModel.d.mts +2 -2
- package/dist/agentModel.mjs +1 -2
- package/dist/apiContracts.cjs +623 -802
- package/dist/apiContracts.cjs.map +1 -1
- package/dist/apiContracts.d.mts +277 -615
- package/dist/apiContracts.d.mts.map +1 -1
- package/dist/apiContracts.mjs +617 -794
- package/dist/apiContracts.mjs.map +1 -1
- package/dist/askUser.cjs +2 -2
- package/dist/askUser.d.mts +2 -2
- package/dist/askUser.mjs +1 -2
- package/dist/authorTools.mjs +1 -2
- package/dist/backgroundWork.cjs +3 -3
- package/dist/backgroundWork.d.mts +2 -2
- package/dist/backgroundWork.mjs +1 -2
- package/dist/bundleAssetPolicy.mjs +1 -2
- package/dist/chatgptAuth.cjs +3 -2
- package/dist/chatgptAuth.d.mts +3 -2
- package/dist/chatgptAuth.mjs +2 -1
- package/dist/childProcess.cjs +1 -1
- package/dist/childProcess.d.mts +2 -2
- package/dist/childProcess.mjs +1 -2
- package/dist/childSession.cjs +11 -6
- package/dist/childSession.d.mts +3 -3
- package/dist/childSession.mjs +3 -3
- package/dist/cockpitContainer.mjs +1 -2
- package/dist/config.cjs +1 -1
- package/dist/config.d.mts +3 -3
- package/dist/config.mjs +1 -2
- package/dist/contextApi.cjs +1 -0
- package/dist/contextApi.d.mts +2 -2
- package/dist/contextApi.mjs +2 -2
- package/dist/contextContributions.cjs +4 -4
- package/dist/contextContributions.d.mts +3 -3
- package/dist/contextContributions.mjs +3 -3
- package/dist/contextDetailStore.cjs +7 -5
- package/dist/contextDetailStore.cjs.map +1 -1
- package/dist/contextDetailStore.d.mts +2 -1
- package/dist/contextDetailStore.d.mts.map +1 -1
- package/dist/contextDetailStore.mjs +6 -4
- package/dist/contextDetailStore.mjs.map +1 -1
- package/dist/contextProjection.cjs +7 -2
- package/dist/contextProjection.cjs.map +1 -1
- package/dist/contextProjection.d.mts +4 -1
- package/dist/contextProjection.d.mts.map +1 -1
- package/dist/contextProjection.mjs +5 -2
- package/dist/contextProjection.mjs.map +1 -1
- package/dist/cordisHost.cjs +11 -11
- package/dist/cordisHost.d.mts +2 -2
- package/dist/cordisHost.mjs +1 -2
- package/dist/delegation.cjs +8 -8
- package/dist/delegation.d.mts +2 -2
- package/dist/delegation.mjs +1 -2
- package/dist/executionBudget.cjs +4 -3
- package/dist/executionBudget.cjs.map +1 -1
- package/dist/executionBudget.d.mts +2 -2
- package/dist/executionBudget.d.mts.map +1 -1
- package/dist/executionBudget.mjs +4 -3
- package/dist/executionBudget.mjs.map +1 -1
- package/dist/extensionFile.cjs +5 -0
- package/dist/extensionFile.d.mts +4 -2
- package/dist/extensionFile.mjs +4 -2
- package/dist/footer.d.mts +2 -2
- package/dist/footer.mjs +1 -2
- package/dist/headless.cjs +14 -14
- package/dist/headless.d.mts +2 -2
- package/dist/headless.mjs +1 -2
- package/dist/headlessHub.cjs +308 -109
- package/dist/headlessHub.cjs.map +1 -1
- package/dist/headlessHub.d.mts +71 -36
- package/dist/headlessHub.d.mts.map +1 -1
- package/dist/headlessHub.mjs +309 -110
- package/dist/headlessHub.mjs.map +1 -1
- package/dist/headlessProtocol.cjs +327 -0
- package/dist/headlessProtocol.cjs.map +1 -0
- package/dist/headlessProtocol.d.mts +30 -0
- package/dist/headlessProtocol.d.mts.map +1 -0
- package/dist/headlessProtocol.mjs +326 -0
- package/dist/headlessProtocol.mjs.map +1 -0
- package/dist/headlessServer.cjs +166 -151
- package/dist/headlessServer.cjs.map +1 -1
- package/dist/headlessServer.d.mts +13 -5
- package/dist/headlessServer.d.mts.map +1 -1
- package/dist/headlessServer.mjs +166 -151
- package/dist/headlessServer.mjs.map +1 -1
- package/dist/headlessSessionHost.d.mts +58 -21
- package/dist/headlessSessionHost.d.mts.map +1 -1
- package/dist/help.cjs +20 -20
- package/dist/help.d.mts +2 -2
- package/dist/help.mjs +2 -2
- package/dist/history.cjs +16 -20
- package/dist/history.d.mts +9 -7
- package/dist/history.mjs +6 -7
- package/dist/historyOwnership.cjs.map +1 -1
- package/dist/historyOwnership.d.mts +1 -1
- package/dist/historyOwnership.mjs.map +1 -1
- package/dist/hubChannel.cjs +9 -0
- package/dist/hubChannel.d.mts +3 -2
- package/dist/hubChannel.mjs +3 -2
- package/dist/index.cjs +26 -28
- package/dist/index.d.mts +6 -6
- package/dist/index.mjs +6 -6
- package/dist/interop/chord.mjs +1 -0
- package/dist/interop/chordContext.mjs +1 -0
- package/dist/json.cjs +11 -5
- package/dist/json.d.mts +4 -2
- package/dist/json.mjs +4 -2
- package/dist/kernel.cjs +1 -1
- package/dist/kernel.d.mts +3 -3
- package/dist/kernel.mjs +1 -2
- package/dist/leader.d.mts +2 -2
- package/dist/leader.mjs +1 -2
- package/dist/logSinkTelemetry.mjs +1 -2
- package/dist/machineApi.cjs +80 -74
- package/dist/machineApi.cjs.map +1 -1
- package/dist/machineApi.d.mts +5 -2
- package/dist/machineApi.d.mts.map +1 -1
- package/dist/machineApi.mjs +78 -71
- package/dist/machineApi.mjs.map +1 -1
- package/dist/main.cjs +2 -1
- package/dist/main.d.mts +2 -1
- package/dist/main.mjs +2 -1
- package/dist/mcpFacet.d.mts +3 -3
- package/dist/mcpProjection.cjs +13 -13
- package/dist/mcpProjection.d.mts +2 -2
- package/dist/mcpProjection.mjs +1 -2
- package/dist/mcpSchemaCost.cjs +4 -4
- package/dist/mcpSchemaCost.cjs.map +1 -1
- package/dist/mcpSchemaCost.d.mts +2 -2
- package/dist/mcpSchemaCost.mjs +4 -4
- package/dist/mcpSchemaCost.mjs.map +1 -1
- package/dist/mcpSession.cjs +7 -7
- package/dist/mcpSession.d.mts +2 -2
- package/dist/mcpSession.mjs +1 -2
- package/dist/mcpStatus.cjs +2 -2
- package/dist/mcpStatus.d.mts +2 -2
- package/dist/mcpStatus.mjs +1 -2
- package/dist/mcpToolResolver.cjs +3 -3
- package/dist/mcpToolResolver.d.mts +2 -2
- package/dist/mcpToolResolver.mjs +1 -2
- package/dist/mcpWidget.d.mts +2 -2
- package/dist/moduleResolution.cjs +43 -8
- package/dist/moduleResolution.cjs.map +1 -1
- package/dist/moduleResolution.d.mts +10 -1
- package/dist/moduleResolution.d.mts.map +1 -1
- package/dist/moduleResolution.mjs +40 -7
- package/dist/moduleResolution.mjs.map +1 -1
- package/dist/narration.cjs +3 -3
- package/dist/narration.d.mts +2 -2
- package/dist/narration.mjs +1 -2
- package/dist/native.cjs +9 -0
- package/dist/native.d.mts +4 -3
- package/dist/native.mjs +3 -2
- package/dist/nodePlatform.cjs +77 -0
- package/dist/nodePlatform.cjs.map +1 -0
- package/dist/nodePlatform.d.mts +17 -0
- package/dist/nodePlatform.d.mts.map +1 -0
- package/dist/nodePlatform.mjs +72 -0
- package/dist/nodePlatform.mjs.map +1 -0
- package/dist/notification.cjs +15 -15
- package/dist/notification.d.mts +2 -2
- package/dist/notification.mjs +1 -2
- package/dist/packageApi.cjs +11 -11
- package/dist/packageApi.d.mts +2 -2
- package/dist/packageApi.mjs +2 -2
- package/dist/packageApiServer.cjs +45 -27
- package/dist/packageApiServer.cjs.map +1 -1
- package/dist/packageApiServer.d.mts +36 -26
- package/dist/packageApiServer.d.mts.map +1 -1
- package/dist/packageApiServer.mjs +44 -26
- package/dist/packageApiServer.mjs.map +1 -1
- package/dist/piSettings.cjs +41 -20
- package/dist/piSettings.d.mts +4 -2
- package/dist/piSettings.mjs +4 -2
- package/dist/platform.cjs +62 -0
- package/dist/platform.d.mts +10 -0
- package/dist/platform.mjs +10 -0
- package/dist/pluginProtocol.cjs +7 -8
- package/dist/pluginProtocol.d.mts +2 -2
- package/dist/pluginProtocol.mjs +1 -2
- package/dist/poPackage.cjs +12 -0
- package/dist/poPackage.d.mts +3 -0
- package/dist/poPackage.mjs +3 -0
- package/dist/profileIdentity.cjs +1 -1
- package/dist/profileIdentity.d.mts +2 -2
- package/dist/profileIdentity.mjs +1 -2
- package/dist/protocol.cjs +3 -3
- package/dist/protocol.d.mts +2 -2
- package/dist/protocol.mjs +1 -2
- package/dist/readiness.cjs +6 -6
- package/dist/readiness.d.mts +2 -2
- package/dist/readiness.mjs +1 -2
- package/dist/remoteApi.cjs.map +1 -1
- package/dist/remoteApi.d.mts +2 -2
- package/dist/remoteApi.mjs.map +1 -1
- package/dist/remoteRuntime.cjs +42 -65
- package/dist/remoteRuntime.cjs.map +1 -1
- package/dist/remoteRuntime.d.mts +3 -2
- package/dist/remoteRuntime.d.mts.map +1 -1
- package/dist/remoteRuntime.mjs +41 -62
- package/dist/remoteRuntime.mjs.map +1 -1
- package/dist/runtimeConfig.cjs +4 -4
- package/dist/runtimeConfig.cjs.map +1 -1
- package/dist/runtimeConfig.d.mts +10 -9
- package/dist/runtimeConfig.d.mts.map +1 -1
- package/dist/runtimeConfig.mjs +4 -4
- package/dist/runtimeConfig.mjs.map +1 -1
- package/dist/runtimeContextApi.cjs +10 -3
- package/dist/runtimeContextApi.cjs.map +1 -1
- package/dist/runtimeContextApi.d.mts +3 -3
- package/dist/runtimeContextApi.d.mts.map +1 -1
- package/dist/runtimeContextApi.mjs +10 -3
- package/dist/runtimeContextApi.mjs.map +1 -1
- package/dist/runtimeCordisHost.cjs +46 -46
- package/dist/runtimeCordisHost.cjs.map +1 -1
- package/dist/runtimeCordisHost.d.mts +29 -28
- package/dist/runtimeCordisHost.d.mts.map +1 -1
- package/dist/runtimeCordisHost.mjs +42 -42
- package/dist/runtimeCordisHost.mjs.map +1 -1
- package/dist/runtimeIdentity.cjs +6 -9
- package/dist/runtimeIdentity.cjs.map +1 -1
- package/dist/runtimeIdentity.d.mts +5 -1
- package/dist/runtimeIdentity.d.mts.map +1 -1
- package/dist/runtimeIdentity.mjs +5 -8
- package/dist/runtimeIdentity.mjs.map +1 -1
- package/dist/runtimeJson.cjs +10 -45
- package/dist/runtimeJson.d.mts +3 -22
- package/dist/runtimeJson.mjs +3 -39
- package/dist/runtimeLogSinkTelemetry.cjs +19 -19
- package/dist/runtimeLogSinkTelemetry.cjs.map +1 -1
- package/dist/runtimeLogSinkTelemetry.d.mts +19 -19
- package/dist/runtimeLogSinkTelemetry.mjs +19 -19
- package/dist/runtimeLogSinkTelemetry.mjs.map +1 -1
- package/dist/runtimePackages.cjs +7 -2
- package/dist/runtimePackages.cjs.map +1 -1
- package/dist/runtimePackages.d.mts +4 -1
- package/dist/runtimePackages.d.mts.map +1 -1
- package/dist/runtimePackages.mjs +7 -2
- package/dist/runtimePackages.mjs.map +1 -1
- package/dist/runtimePiSettings.cjs +40 -263
- package/dist/runtimePiSettings.d.mts +3 -72
- package/dist/runtimePiSettings.mjs +3 -241
- package/dist/runtimeProtocol.cjs +19 -19
- package/dist/runtimeProtocol.cjs.map +1 -1
- package/dist/runtimeProtocol.d.mts +7 -7
- package/dist/runtimeProtocol.d.mts.map +1 -1
- package/dist/runtimeProtocol.mjs +17 -17
- package/dist/runtimeProtocol.mjs.map +1 -1
- package/dist/runtimeTransition.cjs +9 -9
- package/dist/runtimeTransition.cjs.map +1 -1
- package/dist/runtimeTransition.d.mts +10 -10
- package/dist/runtimeTransition.d.mts.map +1 -1
- package/dist/runtimeTransition.mjs +7 -7
- package/dist/runtimeTransition.mjs.map +1 -1
- package/dist/sandboxHarness.mjs +1 -2
- package/dist/server.cjs +3 -7
- package/dist/server.d.mts +6 -6
- package/dist/server.mjs +3 -4
- package/dist/serverPlugin.cjs +39 -0
- package/dist/serverPlugin.d.mts +12 -0
- package/dist/serverPlugin.mjs +11 -0
- package/dist/serverTelemetry.cjs +1 -1
- package/dist/serverTelemetry.cjs.map +1 -1
- package/dist/serverTelemetry.d.mts +2 -2
- package/dist/serverTelemetry.mjs +2 -2
- package/dist/serverTelemetry.mjs.map +1 -1
- package/dist/sessionFilesApi.cjs +41 -37
- package/dist/sessionFilesApi.cjs.map +1 -1
- package/dist/sessionFilesApi.d.mts +6 -3
- package/dist/sessionFilesApi.d.mts.map +1 -1
- package/dist/sessionFilesApi.mjs +41 -36
- package/dist/sessionFilesApi.mjs.map +1 -1
- package/dist/sessionProtocol.cjs +31 -6
- package/dist/sessionProtocol.d.mts +8 -3
- package/dist/sessionProtocol.mjs +8 -2
- package/dist/skills.cjs +5 -5
- package/dist/skills.d.mts +2 -2
- package/dist/skills.mjs +1 -2
- package/dist/sqliteSessionStorage.cjs +28 -50
- package/dist/sqliteSessionStorage.cjs.map +1 -1
- package/dist/sqliteSessionStorage.d.mts +13 -20
- package/dist/sqliteSessionStorage.d.mts.map +1 -1
- package/dist/sqliteSessionStorage.mjs +25 -48
- package/dist/sqliteSessionStorage.mjs.map +1 -1
- package/dist/src/constants/agentSettled.cjs +7 -0
- package/dist/src/constants/agentSettled.cjs.map +1 -0
- package/dist/src/constants/agentSettled.mjs +7 -0
- package/dist/src/constants/agentSettled.mjs.map +1 -0
- package/dist/src/constants/contextApi.cjs +3 -1
- package/dist/src/constants/contextApi.cjs.map +1 -1
- package/dist/src/constants/contextApi.d.mts +2 -1
- package/dist/src/constants/contextApi.d.mts.map +1 -1
- package/dist/src/constants/contextApi.mjs +3 -2
- package/dist/src/constants/contextApi.mjs.map +1 -1
- package/dist/src/constants/voiceTools.cjs +6 -6
- package/dist/src/constants/voiceTools.cjs.map +1 -1
- package/dist/src/constants/voiceTools.d.mts +3 -3
- package/dist/src/constants/voiceTools.mjs +4 -4
- package/dist/src/constants/voiceTools.mjs.map +1 -1
- package/dist/src/extensions/extensionFile.cjs +22 -5
- package/dist/src/extensions/extensionFile.cjs.map +1 -1
- package/dist/src/extensions/extensionFile.d.mts +17 -4
- package/dist/src/extensions/extensionFile.d.mts.map +1 -1
- package/dist/src/extensions/extensionFile.mjs +22 -6
- package/dist/src/extensions/extensionFile.mjs.map +1 -1
- package/dist/src/extensions/serverPlugin.cjs +231 -92
- package/dist/src/extensions/serverPlugin.cjs.map +1 -1
- package/dist/src/extensions/serverPlugin.d.mts +2 -2
- package/dist/src/extensions/serverPlugin.d.mts.map +1 -1
- package/dist/src/extensions/serverPlugin.mjs +232 -93
- package/dist/src/extensions/serverPlugin.mjs.map +1 -1
- package/dist/src/pi/piSessionRuntime.cjs +349 -142
- package/dist/src/pi/piSessionRuntime.cjs.map +1 -1
- package/dist/src/pi/piSessionRuntime.d.mts +18 -17
- package/dist/src/pi/piSessionRuntime.d.mts.map +1 -1
- package/dist/src/pi/piSessionRuntime.mjs +342 -135
- package/dist/src/pi/piSessionRuntime.mjs.map +1 -1
- package/dist/src/schemas/agentModel.cjs +2 -2
- package/dist/src/schemas/agentModel.cjs.map +1 -1
- package/dist/src/schemas/agentModel.d.mts +1 -1
- package/dist/src/schemas/agentModel.mjs +2 -2
- package/dist/src/schemas/agentModel.mjs.map +1 -1
- package/dist/src/schemas/apiContracts.d.mts +2 -2
- package/dist/src/schemas/apiContracts.d.mts.map +1 -1
- package/dist/src/schemas/askUser.cjs +4 -4
- package/dist/src/schemas/askUser.cjs.map +1 -1
- package/dist/src/schemas/askUser.d.mts +4 -4
- package/dist/src/schemas/askUser.d.mts.map +1 -1
- package/dist/src/schemas/askUser.mjs +3 -3
- package/dist/src/schemas/askUser.mjs.map +1 -1
- package/dist/src/schemas/backgroundWork.cjs +10 -10
- package/dist/src/schemas/backgroundWork.cjs.map +1 -1
- package/dist/src/schemas/backgroundWork.d.mts +9 -9
- package/dist/src/schemas/backgroundWork.d.mts.map +1 -1
- package/dist/src/schemas/backgroundWork.mjs +8 -8
- package/dist/src/schemas/backgroundWork.mjs.map +1 -1
- package/dist/src/schemas/childProcess.cjs +5 -5
- package/dist/src/schemas/childProcess.cjs.map +1 -1
- package/dist/src/schemas/childProcess.d.mts +2 -2
- package/dist/src/schemas/childProcess.mjs +5 -5
- package/dist/src/schemas/childProcess.mjs.map +1 -1
- package/dist/src/schemas/contextContributions.cjs +10 -10
- package/dist/src/schemas/contextContributions.cjs.map +1 -1
- package/dist/src/schemas/contextContributions.d.mts +16 -16
- package/dist/src/schemas/contextContributions.d.mts.map +1 -1
- package/dist/src/schemas/contextContributions.mjs +8 -8
- package/dist/src/schemas/contextContributions.mjs.map +1 -1
- package/dist/src/schemas/delegation.cjs +17 -17
- package/dist/src/schemas/delegation.cjs.map +1 -1
- package/dist/src/schemas/delegation.d.mts +16 -16
- package/dist/src/schemas/delegation.d.mts.map +1 -1
- package/dist/src/schemas/delegation.mjs +10 -10
- package/dist/src/schemas/delegation.mjs.map +1 -1
- package/dist/src/schemas/extensionFile.d.mts +23 -19
- package/dist/src/schemas/extensionFile.d.mts.map +1 -1
- package/dist/src/schemas/footer.cjs.map +1 -1
- package/dist/src/schemas/footer.d.mts +5 -5
- package/dist/src/schemas/footer.d.mts.map +1 -1
- package/dist/src/schemas/footer.mjs.map +1 -1
- package/dist/src/schemas/headless.cjs +37 -37
- package/dist/src/schemas/headless.cjs.map +1 -1
- package/dist/src/schemas/headless.d.mts +100 -101
- package/dist/src/schemas/headless.d.mts.map +1 -1
- package/dist/src/schemas/headless.mjs +24 -24
- package/dist/src/schemas/headless.mjs.map +1 -1
- package/dist/src/schemas/help.cjs +60 -60
- package/dist/src/schemas/help.cjs.map +1 -1
- package/dist/src/schemas/help.d.mts +43 -43
- package/dist/src/schemas/help.d.mts.map +1 -1
- package/dist/src/schemas/help.mjs +41 -41
- package/dist/src/schemas/help.mjs.map +1 -1
- package/dist/src/schemas/home.cjs +127 -0
- package/dist/src/schemas/home.cjs.map +1 -0
- package/dist/src/schemas/home.d.mts +63 -0
- package/dist/src/schemas/home.d.mts.map +1 -0
- package/dist/src/schemas/home.mjs +121 -0
- package/dist/src/schemas/home.mjs.map +1 -0
- package/dist/src/schemas/httpApiContracts.cjs +441 -0
- package/dist/src/schemas/httpApiContracts.cjs.map +1 -0
- package/dist/src/schemas/httpApiContracts.d.mts +78 -0
- package/dist/src/schemas/httpApiContracts.d.mts.map +1 -0
- package/dist/src/schemas/httpApiContracts.mjs +434 -0
- package/dist/src/schemas/httpApiContracts.mjs.map +1 -0
- package/dist/src/schemas/hubChannel.cjs +3 -0
- package/dist/src/schemas/hubChannel.cjs.map +1 -1
- package/dist/src/schemas/hubChannel.d.mts +84 -60
- package/dist/src/schemas/hubChannel.d.mts.map +1 -1
- package/dist/src/schemas/hubChannel.mjs +3 -1
- package/dist/src/schemas/hubChannel.mjs.map +1 -1
- package/dist/src/schemas/leader.cjs.map +1 -1
- package/dist/src/schemas/leader.d.mts +3 -3
- package/dist/src/schemas/leader.d.mts.map +1 -1
- package/dist/src/schemas/leader.mjs.map +1 -1
- package/dist/src/schemas/mcpBundle.d.mts +3 -3
- package/dist/src/schemas/mcpFacet.cjs.map +1 -1
- package/dist/src/schemas/mcpFacet.d.mts +22 -22
- package/dist/src/schemas/mcpFacet.d.mts.map +1 -1
- package/dist/src/schemas/mcpFacet.mjs.map +1 -1
- package/dist/src/schemas/mcpProjection.cjs +41 -41
- package/dist/src/schemas/mcpProjection.cjs.map +1 -1
- package/dist/src/schemas/mcpProjection.d.mts +31 -30
- package/dist/src/schemas/mcpProjection.d.mts.map +1 -1
- package/dist/src/schemas/mcpProjection.mjs +29 -29
- package/dist/src/schemas/mcpProjection.mjs.map +1 -1
- package/dist/src/schemas/mcpSession.cjs +23 -23
- package/dist/src/schemas/mcpSession.cjs.map +1 -1
- package/dist/src/schemas/mcpSession.d.mts +12 -12
- package/dist/src/schemas/mcpSession.d.mts.map +1 -1
- package/dist/src/schemas/mcpSession.mjs +18 -18
- package/dist/src/schemas/mcpSession.mjs.map +1 -1
- package/dist/src/schemas/mcpStatus.cjs +5 -5
- package/dist/src/schemas/mcpStatus.cjs.map +1 -1
- package/dist/src/schemas/mcpStatus.d.mts +4 -4
- package/dist/src/schemas/mcpStatus.d.mts.map +1 -1
- package/dist/src/schemas/mcpStatus.mjs +4 -4
- package/dist/src/schemas/mcpStatus.mjs.map +1 -1
- package/dist/src/schemas/mcpToolResolver.cjs +9 -9
- package/dist/src/schemas/mcpToolResolver.cjs.map +1 -1
- package/dist/src/schemas/mcpToolResolver.d.mts +7 -7
- package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -1
- package/dist/src/schemas/mcpToolResolver.mjs +7 -7
- package/dist/src/schemas/mcpToolResolver.mjs.map +1 -1
- package/dist/src/schemas/narration.cjs +9 -9
- package/dist/src/schemas/narration.cjs.map +1 -1
- package/dist/src/schemas/narration.d.mts +5 -5
- package/dist/src/schemas/narration.d.mts.map +1 -1
- package/dist/src/schemas/narration.mjs +7 -7
- package/dist/src/schemas/narration.mjs.map +1 -1
- package/dist/src/schemas/notification.cjs +45 -45
- package/dist/src/schemas/notification.cjs.map +1 -1
- package/dist/src/schemas/notification.d.mts +22 -22
- package/dist/src/schemas/notification.d.mts.map +1 -1
- package/dist/src/schemas/notification.mjs +31 -31
- package/dist/src/schemas/notification.mjs.map +1 -1
- package/dist/src/schemas/packageApi.cjs +28 -28
- package/dist/src/schemas/packageApi.cjs.map +1 -1
- package/dist/src/schemas/packageApi.d.mts +91 -65
- package/dist/src/schemas/packageApi.d.mts.map +1 -1
- package/dist/src/schemas/packageApi.mjs +18 -18
- package/dist/src/schemas/packageApi.mjs.map +1 -1
- package/dist/src/schemas/platform.cjs +34 -0
- package/dist/src/schemas/platform.cjs.map +1 -0
- package/dist/src/schemas/platform.d.mts +75 -0
- package/dist/src/schemas/platform.d.mts.map +1 -0
- package/dist/src/schemas/platform.mjs +27 -0
- package/dist/src/schemas/platform.mjs.map +1 -0
- package/dist/src/schemas/pluginContributions.cjs.map +1 -1
- package/dist/src/schemas/pluginContributions.d.mts +12 -12
- package/dist/src/schemas/pluginContributions.d.mts.map +1 -1
- package/dist/src/schemas/pluginContributions.mjs.map +1 -1
- package/dist/src/schemas/pluginProtocol.cjs +24 -27
- package/dist/src/schemas/pluginProtocol.cjs.map +1 -1
- package/dist/src/schemas/pluginProtocol.d.mts +21 -21
- package/dist/src/schemas/pluginProtocol.d.mts.map +1 -1
- package/dist/src/schemas/pluginProtocol.mjs +18 -20
- package/dist/src/schemas/pluginProtocol.mjs.map +1 -1
- package/dist/src/schemas/profileIdentity.cjs +2 -2
- package/dist/src/schemas/profileIdentity.cjs.map +1 -1
- package/dist/src/schemas/profileIdentity.d.mts +1 -1
- package/dist/src/schemas/profileIdentity.mjs +2 -2
- package/dist/src/schemas/profileIdentity.mjs.map +1 -1
- package/dist/src/schemas/protocolChannelsContract.cjs +27 -0
- package/dist/src/schemas/protocolChannelsContract.cjs.map +1 -0
- package/dist/src/schemas/protocolChannelsContract.d.mts +37 -0
- package/dist/src/schemas/protocolChannelsContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolChannelsContract.mjs +25 -0
- package/dist/src/schemas/protocolChannelsContract.mjs.map +1 -0
- package/dist/src/schemas/protocolContracts.cjs +168 -0
- package/dist/src/schemas/protocolContracts.cjs.map +1 -0
- package/dist/src/schemas/protocolContracts.d.mts +69 -0
- package/dist/src/schemas/protocolContracts.d.mts.map +1 -0
- package/dist/src/schemas/protocolContracts.mjs +164 -0
- package/dist/src/schemas/protocolContracts.mjs.map +1 -0
- package/dist/src/schemas/protocolHubContract.cjs +51 -0
- package/dist/src/schemas/protocolHubContract.cjs.map +1 -0
- package/dist/src/schemas/protocolHubContract.d.mts +218 -0
- package/dist/src/schemas/protocolHubContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolHubContract.mjs +49 -0
- package/dist/src/schemas/protocolHubContract.mjs.map +1 -0
- package/dist/src/schemas/protocolSessionContract.cjs +22 -0
- package/dist/src/schemas/protocolSessionContract.cjs.map +1 -0
- package/dist/src/schemas/protocolSessionContract.d.mts +324 -0
- package/dist/src/schemas/protocolSessionContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolSessionContract.mjs +22 -0
- package/dist/src/schemas/protocolSessionContract.mjs.map +1 -0
- package/dist/src/schemas/protocolThreadContract.cjs +21 -0
- package/dist/src/schemas/protocolThreadContract.cjs.map +1 -0
- package/dist/src/schemas/protocolThreadContract.d.mts +29 -0
- package/dist/src/schemas/protocolThreadContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolThreadContract.mjs +20 -0
- package/dist/src/schemas/protocolThreadContract.mjs.map +1 -0
- package/dist/src/schemas/readiness.cjs +36 -36
- package/dist/src/schemas/readiness.cjs.map +1 -1
- package/dist/src/schemas/readiness.d.mts +37 -37
- package/dist/src/schemas/readiness.d.mts.map +1 -1
- package/dist/src/schemas/readiness.mjs +31 -31
- package/dist/src/schemas/readiness.mjs.map +1 -1
- package/dist/src/schemas/serverBundle.d.mts +5 -5
- package/dist/src/schemas/serverPlugin.cjs +103 -0
- package/dist/src/schemas/serverPlugin.cjs.map +1 -0
- package/dist/src/schemas/serverPlugin.d.mts +176 -0
- package/dist/src/schemas/serverPlugin.d.mts.map +1 -0
- package/dist/src/schemas/serverPlugin.mjs +95 -0
- package/dist/src/schemas/serverPlugin.mjs.map +1 -0
- package/dist/src/schemas/serverScope.cjs +37 -0
- package/dist/src/schemas/serverScope.cjs.map +1 -0
- package/dist/src/schemas/serverScope.d.mts +77 -0
- package/dist/src/schemas/serverScope.d.mts.map +1 -0
- package/dist/src/schemas/serverScope.mjs +33 -0
- package/dist/src/schemas/serverScope.mjs.map +1 -0
- package/dist/src/schemas/sessionApiContracts.cjs +320 -0
- package/dist/src/schemas/sessionApiContracts.cjs.map +1 -0
- package/dist/src/schemas/sessionApiContracts.mjs +318 -0
- package/dist/src/schemas/sessionApiContracts.mjs.map +1 -0
- package/dist/src/schemas/sessionProtocol.cjs +20 -13
- package/dist/src/schemas/sessionProtocol.cjs.map +1 -1
- package/dist/src/schemas/sessionProtocol.d.mts +37 -54
- package/dist/src/schemas/sessionProtocol.d.mts.map +1 -1
- package/dist/src/schemas/sessionProtocol.mjs +17 -8
- package/dist/src/schemas/sessionProtocol.mjs.map +1 -1
- package/dist/src/schemas/skills.cjs +16 -16
- package/dist/src/schemas/skills.cjs.map +1 -1
- package/dist/src/schemas/skills.d.mts +7 -7
- package/dist/src/schemas/skills.d.mts.map +1 -1
- package/dist/src/schemas/skills.mjs +12 -12
- package/dist/src/schemas/skills.mjs.map +1 -1
- package/dist/src/schemas/toolOverrides.cjs +9 -9
- package/dist/src/schemas/toolOverrides.cjs.map +1 -1
- package/dist/src/schemas/toolOverrides.d.mts +8 -8
- package/dist/src/schemas/toolOverrides.d.mts.map +1 -1
- package/dist/src/schemas/toolOverrides.mjs +7 -7
- package/dist/src/schemas/toolOverrides.mjs.map +1 -1
- package/dist/src/schemas/toolSurface.cjs +9 -9
- package/dist/src/schemas/toolSurface.cjs.map +1 -1
- package/dist/src/schemas/toolSurface.d.mts +13 -13
- package/dist/src/schemas/toolSurface.d.mts.map +1 -1
- package/dist/src/schemas/toolSurface.mjs +7 -7
- package/dist/src/schemas/toolSurface.mjs.map +1 -1
- package/dist/src/schemas/uiHub.cjs +9 -9
- package/dist/src/schemas/uiHub.cjs.map +1 -1
- package/dist/src/schemas/uiHub.d.mts +12 -12
- package/dist/src/schemas/uiHub.d.mts.map +1 -1
- package/dist/src/schemas/uiHub.mjs +7 -7
- package/dist/src/schemas/uiHub.mjs.map +1 -1
- package/dist/src/server/directHarnessRuntime.cjs +691 -775
- package/dist/src/server/directHarnessRuntime.cjs.map +1 -1
- package/dist/src/server/directHarnessRuntime.d.mts +5 -1
- package/dist/src/server/directHarnessRuntime.d.mts.map +1 -0
- package/dist/src/server/directHarnessRuntime.mjs +671 -754
- package/dist/src/server/directHarnessRuntime.mjs.map +1 -1
- package/dist/src/server/largeFrameLink.cjs +47 -0
- package/dist/src/server/largeFrameLink.cjs.map +1 -0
- package/dist/src/server/largeFrameLink.mjs +47 -0
- package/dist/src/server/largeFrameLink.mjs.map +1 -0
- package/dist/src/server/liveImport.cjs +1 -1
- package/dist/src/server/liveImport.cjs.map +1 -1
- package/dist/src/server/liveImport.d.mts +1 -1
- package/dist/src/server/liveImport.mjs +1 -1
- package/dist/src/server/liveImport.mjs.map +1 -1
- package/dist/src/server/mcpBundleLoader.cjs.map +1 -1
- package/dist/src/server/mcpBundleLoader.d.mts +6 -6
- package/dist/src/server/mcpBundleLoader.d.mts.map +1 -1
- package/dist/src/server/mcpBundleLoader.mjs.map +1 -1
- package/dist/src/server/serverPackages.cjs +60 -0
- package/dist/src/server/serverPackages.cjs.map +1 -0
- package/dist/src/server/serverPackages.d.mts +44 -0
- package/dist/src/server/serverPackages.d.mts.map +1 -0
- package/dist/src/server/serverPackages.mjs +59 -0
- package/dist/src/server/serverPackages.mjs.map +1 -0
- package/dist/src/server/serverScope.cjs +510 -0
- package/dist/src/server/serverScope.cjs.map +1 -0
- package/dist/src/server/serverScope.d.mts +123 -0
- package/dist/src/server/serverScope.d.mts.map +1 -0
- package/dist/src/server/serverScope.mjs +510 -0
- package/dist/src/server/serverScope.mjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.cjs +3 -3
- package/dist/src/server/sessionMcpHandler.cjs.map +1 -1
- package/dist/src/server/sessionMcpHandler.mjs +4 -4
- package/dist/src/server/sessionMcpHandler.mjs.map +1 -1
- package/dist/src/server/sessionMcpRoutes.cjs +2 -1
- package/dist/src/server/sessionMcpRoutes.cjs.map +1 -1
- package/dist/src/server/sessionMcpRoutes.mjs +2 -1
- package/dist/src/server/sessionMcpRoutes.mjs.map +1 -1
- package/dist/src/server/threadJournals.cjs +38 -107
- package/dist/src/server/threadJournals.cjs.map +1 -1
- package/dist/src/server/threadJournals.mjs +38 -104
- package/dist/src/server/threadJournals.mjs.map +1 -1
- package/dist/src/services/apiSurfaceAssert/index.cjs +1 -1
- package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -1
- package/dist/src/services/apiSurfaceAssert/index.d.mts +6 -6
- package/dist/src/services/apiSurfaceAssert/index.mjs +1 -1
- package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -1
- package/dist/src/services/chatgptAuth/index.cjs +1 -220
- package/dist/src/services/chatgptAuth/index.cjs.map +1 -1
- package/dist/src/services/chatgptAuth/index.d.mts +0 -18
- package/dist/src/services/chatgptAuth/index.d.mts.map +1 -1
- package/dist/src/services/chatgptAuth/index.mjs +1 -217
- package/dist/src/services/chatgptAuth/index.mjs.map +1 -1
- package/dist/src/services/chatgptImages/index.cjs +1 -1
- package/dist/src/services/chatgptImages/index.cjs.map +1 -1
- package/dist/src/services/chatgptImages/index.mjs +1 -1
- package/dist/src/services/chatgptImages/index.mjs.map +1 -1
- package/dist/src/services/chatgptLogin/index.cjs +230 -0
- package/dist/src/services/chatgptLogin/index.cjs.map +1 -0
- package/dist/src/services/chatgptLogin/index.d.mts +21 -0
- package/dist/src/services/chatgptLogin/index.d.mts.map +1 -0
- package/dist/src/services/chatgptLogin/index.mjs +227 -0
- package/dist/src/services/chatgptLogin/index.mjs.map +1 -0
- package/dist/src/services/chatgptWebSearch/index.cjs +1 -1
- package/dist/src/services/chatgptWebSearch/index.cjs.map +1 -1
- package/dist/src/services/chatgptWebSearch/index.mjs +1 -1
- package/dist/src/services/chatgptWebSearch/index.mjs.map +1 -1
- package/dist/src/services/contextContributions/index.cjs +8 -8
- package/dist/src/services/contextContributions/index.cjs.map +1 -1
- package/dist/src/services/contextContributions/index.d.mts +3 -3
- package/dist/src/services/contextContributions/index.d.mts.map +1 -1
- package/dist/src/services/contextContributions/index.mjs +8 -8
- package/dist/src/services/contextContributions/index.mjs.map +1 -1
- package/dist/src/services/devProxyStore/devProxyRecords.cjs +59 -0
- package/dist/src/services/devProxyStore/devProxyRecords.cjs.map +1 -0
- package/dist/src/services/devProxyStore/devProxyRecords.mjs +56 -0
- package/dist/src/services/devProxyStore/devProxyRecords.mjs.map +1 -0
- package/dist/src/services/devProxyStore/index.cjs +7 -101
- package/dist/src/services/devProxyStore/index.cjs.map +1 -1
- package/dist/src/services/devProxyStore/index.mjs +7 -101
- package/dist/src/services/devProxyStore/index.mjs.map +1 -1
- package/dist/src/services/devProxyStore/sync.cjs +66 -0
- package/dist/src/services/devProxyStore/sync.cjs.map +1 -0
- package/dist/src/services/devProxyStore/sync.mjs +63 -0
- package/dist/src/services/devProxyStore/sync.mjs.map +1 -0
- package/dist/src/services/durableNavigation/docs.cjs +15 -0
- package/dist/src/services/durableNavigation/docs.cjs.map +1 -0
- package/dist/src/services/durableNavigation/docs.mjs +16 -0
- package/dist/src/services/durableNavigation/docs.mjs.map +1 -0
- package/dist/src/services/durableNavigation/index.cjs +3 -18
- package/dist/src/services/durableNavigation/index.cjs.map +1 -1
- package/dist/src/services/durableNavigation/index.mjs +2 -17
- package/dist/src/services/durableNavigation/index.mjs.map +1 -1
- package/dist/src/services/durableQueue/docs.cjs +12 -0
- package/dist/src/services/durableQueue/docs.cjs.map +1 -0
- package/dist/src/services/durableQueue/docs.mjs +13 -0
- package/dist/src/services/durableQueue/docs.mjs.map +1 -0
- package/dist/src/services/durableQueue/index.cjs +151 -0
- package/dist/src/services/durableQueue/index.cjs.map +1 -0
- package/dist/src/services/durableQueue/index.mjs +149 -0
- package/dist/src/services/durableQueue/index.mjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/docs.cjs +11 -0
- package/dist/src/services/durableRequestReceipts/docs.cjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/docs.mjs +12 -0
- package/dist/src/services/durableRequestReceipts/docs.mjs.map +1 -0
- package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.cjs +10 -16
- package/dist/src/services/durableRequestReceipts/index.cjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/index.d.mts +12 -0
- package/dist/src/services/durableRequestReceipts/index.d.mts.map +1 -0
- package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.mjs +7 -13
- package/dist/src/services/durableRequestReceipts/index.mjs.map +1 -0
- package/dist/src/services/durableSession/docs.cjs +65 -0
- package/dist/src/services/durableSession/docs.cjs.map +1 -0
- package/dist/src/services/durableSession/docs.d.mts +17 -0
- package/dist/src/services/durableSession/docs.d.mts.map +1 -0
- package/dist/src/services/durableSession/docs.mjs +60 -0
- package/dist/src/services/durableSession/docs.mjs.map +1 -0
- package/dist/src/services/durableSession/index.cjs +21 -0
- package/dist/src/services/durableSession/index.cjs.map +1 -0
- package/dist/src/services/durableSession/index.d.mts +13 -0
- package/dist/src/services/durableSession/index.d.mts.map +1 -0
- package/dist/src/services/durableSession/index.mjs +20 -0
- package/dist/src/services/durableSession/index.mjs.map +1 -0
- package/dist/src/services/durableSubagents/docs.cjs +15 -0
- package/dist/src/services/durableSubagents/docs.cjs.map +1 -0
- package/dist/src/services/durableSubagents/docs.mjs +16 -0
- package/dist/src/services/durableSubagents/docs.mjs.map +1 -0
- package/dist/src/services/durableSubagents/extension.cjs +11 -0
- package/dist/src/services/durableSubagents/extension.cjs.map +1 -0
- package/dist/src/services/durableSubagents/extension.mjs +12 -0
- package/dist/src/services/durableSubagents/extension.mjs.map +1 -0
- package/dist/src/services/durableSubagents/index.cjs +95 -0
- package/dist/src/services/durableSubagents/index.cjs.map +1 -0
- package/dist/src/services/durableSubagents/index.mjs +90 -0
- package/dist/src/services/durableSubagents/index.mjs.map +1 -0
- package/dist/src/services/durableSubagents/tasks.cjs +25 -0
- package/dist/src/services/durableSubagents/tasks.cjs.map +1 -0
- package/dist/src/services/durableSubagents/tasks.mjs +26 -0
- package/dist/src/services/durableSubagents/tasks.mjs.map +1 -0
- package/dist/src/services/headlessClient/index.cjs +20 -13
- package/dist/src/services/headlessClient/index.cjs.map +1 -1
- package/dist/src/services/headlessClient/index.mjs +21 -14
- package/dist/src/services/headlessClient/index.mjs.map +1 -1
- package/dist/src/services/historyOwnership/type.d.mts +15 -0
- package/dist/src/services/historyOwnership/type.d.mts.map +1 -0
- package/dist/src/services/hubChannelHarness/index.cjs +2 -2
- package/dist/src/services/hubChannelHarness/index.cjs.map +1 -1
- package/dist/src/services/hubChannelHarness/index.d.mts +8 -8
- package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -1
- package/dist/src/services/hubChannelHarness/index.mjs +2 -2
- package/dist/src/services/hubChannelHarness/index.mjs.map +1 -1
- package/dist/src/services/json/core.cjs +30 -0
- package/dist/src/services/json/core.cjs.map +1 -0
- package/dist/src/services/json/core.d.mts +21 -0
- package/dist/src/services/json/core.d.mts.map +1 -0
- package/dist/src/services/json/core.mjs +26 -0
- package/dist/src/services/json/core.mjs.map +1 -0
- package/dist/src/services/json/sync.cjs +48 -0
- package/dist/src/services/json/sync.cjs.map +1 -0
- package/dist/src/services/json/sync.d.mts +22 -0
- package/dist/src/services/json/sync.d.mts.map +1 -0
- package/dist/src/services/json/sync.mjs +43 -0
- package/dist/src/services/json/sync.mjs.map +1 -0
- package/dist/src/services/kernel/index.cjs +2 -2
- package/dist/src/services/kernel/index.cjs.map +1 -1
- package/dist/src/services/kernel/index.d.mts +3 -3
- package/dist/src/services/kernel/index.d.mts.map +1 -1
- package/dist/src/services/kernel/index.mjs +2 -2
- package/dist/src/services/kernel/index.mjs.map +1 -1
- package/dist/src/services/nativeChildTools/index.cjs +16 -0
- package/dist/src/services/nativeChildTools/index.cjs.map +1 -0
- package/dist/src/services/nativeChildTools/index.mjs +16 -0
- package/dist/src/services/nativeChildTools/index.mjs.map +1 -0
- package/dist/src/services/nodeHost/index.cjs +30 -0
- package/dist/src/services/nodeHost/index.cjs.map +1 -0
- package/dist/src/services/nodeHost/index.d.mts +16 -0
- package/dist/src/services/nodeHost/index.d.mts.map +1 -0
- package/dist/src/services/nodeHost/index.mjs +27 -0
- package/dist/src/services/nodeHost/index.mjs.map +1 -0
- package/dist/src/services/nodeModelDependencies/index.cjs +89 -0
- package/dist/src/services/nodeModelDependencies/index.cjs.map +1 -0
- package/dist/src/services/nodeModelDependencies/index.mjs +86 -0
- package/dist/src/services/nodeModelDependencies/index.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.cjs +6 -128
- package/dist/src/services/openSessionRegistry/index.cjs.map +1 -1
- package/dist/src/services/openSessionRegistry/index.d.mts +5 -36
- package/dist/src/services/openSessionRegistry/index.mjs +6 -128
- package/dist/src/services/openSessionRegistry/index.mjs.map +1 -1
- package/dist/src/services/openSessionRegistry/openSessionRecords.cjs +87 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts +30 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.mjs +81 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.cjs +71 -0
- package/dist/src/services/openSessionRegistry/sync.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.d.mts +14 -0
- package/dist/src/services/openSessionRegistry/sync.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.mjs +68 -0
- package/dist/src/services/openSessionRegistry/sync.mjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.cjs +1 -1
- package/dist/src/services/packageApiHarness/index.cjs.map +1 -1
- package/dist/src/services/packageApiHarness/index.d.mts +6 -6
- package/dist/src/services/packageApiHarness/index.d.mts.map +1 -1
- package/dist/src/services/packageApiHarness/index.mjs +2 -2
- package/dist/src/services/packageApiHarness/index.mjs.map +1 -1
- package/dist/src/services/piArgs/index.cjs +53 -0
- package/dist/src/services/piArgs/index.cjs.map +1 -0
- package/dist/src/services/piArgs/index.d.mts +6 -0
- package/dist/src/services/piArgs/index.d.mts.map +1 -0
- package/dist/src/services/piArgs/index.mjs +53 -0
- package/dist/src/services/piArgs/index.mjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.cjs +47 -39
- package/dist/src/services/piExtensionHost/index.cjs.map +1 -1
- package/dist/src/services/piExtensionHost/index.d.mts +83 -0
- package/dist/src/services/piExtensionHost/index.d.mts.map +1 -0
- package/dist/src/services/piExtensionHost/index.mjs +47 -38
- package/dist/src/services/piExtensionHost/index.mjs.map +1 -1
- package/dist/src/services/piHelpTools/index.cjs +5 -5
- package/dist/src/services/piHelpTools/index.cjs.map +1 -1
- package/dist/src/services/piHelpTools/index.d.mts.map +1 -1
- package/dist/src/services/piHelpTools/index.mjs +7 -7
- package/dist/src/services/piHelpTools/index.mjs.map +1 -1
- package/dist/src/services/piMessages/index.cjs +106 -0
- package/dist/src/services/piMessages/index.cjs.map +1 -0
- package/dist/src/services/piMessages/index.mjs +105 -0
- package/dist/src/services/piMessages/index.mjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.cjs +4 -4
- package/dist/src/services/piSessionEntries/index.cjs.map +1 -1
- package/dist/src/services/piSessionEntries/index.mjs +3 -3
- package/dist/src/services/piSessionEntries/index.mjs.map +1 -1
- package/dist/src/services/piSettings/core.cjs +308 -0
- package/dist/src/services/piSettings/core.cjs.map +1 -0
- package/dist/src/services/piSettings/core.d.mts +102 -0
- package/dist/src/services/piSettings/core.d.mts.map +1 -0
- package/dist/src/services/piSettings/core.mjs +276 -0
- package/dist/src/services/piSettings/core.mjs.map +1 -0
- package/dist/src/services/piSettings/sync.cjs +119 -0
- package/dist/src/services/piSettings/sync.cjs.map +1 -0
- package/dist/src/services/piSettings/sync.d.mts +44 -0
- package/dist/src/services/piSettings/sync.d.mts.map +1 -0
- package/dist/src/services/piSettings/sync.mjs +110 -0
- package/dist/src/services/piSettings/sync.mjs.map +1 -0
- package/dist/src/services/piSummary/index.cjs +7 -0
- package/dist/src/services/piSummary/index.cjs.map +1 -0
- package/dist/src/services/piSummary/index.mjs +7 -0
- package/dist/src/services/piSummary/index.mjs.map +1 -0
- package/dist/src/services/platformFiles/index.cjs +44 -0
- package/dist/src/services/platformFiles/index.cjs.map +1 -0
- package/dist/src/services/platformFiles/index.d.mts +16 -0
- package/dist/src/services/platformFiles/index.d.mts.map +1 -0
- package/dist/src/services/platformFiles/index.mjs +39 -0
- package/dist/src/services/platformFiles/index.mjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.cjs +19 -13
- package/dist/src/services/pluginLifecycle/index.cjs.map +1 -1
- package/dist/src/services/pluginLifecycle/index.d.mts +2 -0
- package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -1
- package/dist/src/services/pluginLifecycle/index.mjs +19 -14
- package/dist/src/services/pluginLifecycle/index.mjs.map +1 -1
- package/dist/src/services/poPackage/core.cjs +73 -0
- package/dist/src/services/poPackage/core.cjs.map +1 -0
- package/dist/src/services/poPackage/core.d.mts +32 -0
- package/dist/src/services/poPackage/core.d.mts.map +1 -0
- package/dist/src/services/poPackage/core.mjs +66 -0
- package/dist/src/services/poPackage/core.mjs.map +1 -0
- package/dist/src/services/poPackage/sync.cjs +55 -0
- package/dist/src/services/poPackage/sync.cjs.map +1 -0
- package/dist/src/services/poPackage/sync.d.mts +21 -0
- package/dist/src/services/poPackage/sync.d.mts.map +1 -0
- package/dist/src/services/poPackage/sync.mjs +50 -0
- package/dist/src/services/poPackage/sync.mjs.map +1 -0
- package/dist/src/services/providerAuth/index.cjs +11 -7
- package/dist/src/services/providerAuth/index.cjs.map +1 -1
- package/dist/src/services/providerAuth/index.mjs +11 -7
- package/dist/src/services/providerAuth/index.mjs.map +1 -1
- package/dist/src/services/publicFileShares/index.cjs +1 -1
- package/dist/src/services/publicFileShares/index.cjs.map +1 -1
- package/dist/src/services/publicFileShares/index.d.mts +2 -2
- package/dist/src/services/publicFileShares/index.mjs +2 -2
- package/dist/src/services/publicFileShares/index.mjs.map +1 -1
- package/dist/src/services/remoteAccess/index.d.mts +1 -0
- package/dist/src/services/remoteAccess/index.d.mts.map +1 -1
- package/dist/src/services/remoteAccessStore/index.cjs +8 -190
- package/dist/src/services/remoteAccessStore/index.cjs.map +1 -1
- package/dist/src/services/remoteAccessStore/index.d.mts +2 -0
- package/dist/src/services/remoteAccessStore/index.mjs +7 -187
- package/dist/src/services/remoteAccessStore/index.mjs.map +1 -1
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs +98 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs +88 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs.map +1 -0
- package/dist/src/services/remoteAccessStore/sync.cjs +111 -0
- package/dist/src/services/remoteAccessStore/sync.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/sync.mjs +108 -0
- package/dist/src/services/remoteAccessStore/sync.mjs.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.cjs +23 -0
- package/dist/src/services/runtimeIdentity/sync.cjs.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.d.mts +9 -0
- package/dist/src/services/runtimeIdentity/sync.d.mts.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.mjs +20 -0
- package/dist/src/services/runtimeIdentity/sync.mjs.map +1 -0
- package/dist/src/services/serialRunner/index.cjs +25 -0
- package/dist/src/services/serialRunner/index.cjs.map +1 -0
- package/dist/src/services/serialRunner/index.d.mts +10 -0
- package/dist/src/services/serialRunner/index.d.mts.map +1 -0
- package/dist/src/services/serialRunner/index.mjs +25 -0
- package/dist/src/services/serialRunner/index.mjs.map +1 -0
- package/dist/src/services/{serverFacet → serverHost}/index.cjs +5 -5
- package/dist/src/services/serverHost/index.cjs.map +1 -0
- package/dist/src/services/serverHost/index.d.mts +31 -0
- package/dist/src/services/serverHost/index.d.mts.map +1 -0
- package/dist/src/services/{serverFacet → serverHost}/index.mjs +5 -5
- package/dist/src/services/serverHost/index.mjs.map +1 -0
- package/dist/src/services/sessionAttachments/index.cjs +4 -3
- package/dist/src/services/sessionAttachments/index.cjs.map +1 -1
- package/dist/src/services/sessionAttachments/index.d.mts +1 -6
- package/dist/src/services/sessionAttachments/index.d.mts.map +1 -1
- package/dist/src/services/sessionAttachments/index.mjs +3 -2
- package/dist/src/services/sessionAttachments/index.mjs.map +1 -1
- package/dist/src/services/sessionAttachments/type.d.mts +9 -0
- package/dist/src/services/sessionAttachments/type.d.mts.map +1 -0
- package/dist/src/services/sessionFiles/index.cjs +96 -0
- package/dist/src/services/sessionFiles/index.cjs.map +1 -0
- package/dist/src/services/sessionFiles/index.d.mts +33 -0
- package/dist/src/services/sessionFiles/index.d.mts.map +1 -0
- package/dist/src/services/sessionFiles/index.mjs +89 -0
- package/dist/src/services/sessionFiles/index.mjs.map +1 -0
- package/dist/src/services/sessionFiles/sessionDirectory.cjs +66 -0
- package/dist/src/services/sessionFiles/sessionDirectory.cjs.map +1 -0
- package/dist/src/services/sessionFiles/sessionDirectory.mjs +62 -0
- package/dist/src/services/sessionFiles/sessionDirectory.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.cjs +31 -33
- package/dist/src/services/sessionGitStatus/index.cjs.map +1 -1
- package/dist/src/services/sessionGitStatus/index.mjs +31 -33
- package/dist/src/services/sessionGitStatus/index.mjs.map +1 -1
- package/dist/src/services/sessionPresentation/index.cjs +3 -27
- package/dist/src/services/sessionPresentation/index.cjs.map +1 -1
- package/dist/src/services/sessionPresentation/index.mjs +3 -27
- package/dist/src/services/sessionPresentation/index.mjs.map +1 -1
- package/dist/src/services/skillPrompt/index.cjs +11 -0
- package/dist/src/services/skillPrompt/index.cjs.map +1 -0
- package/dist/src/services/skillPrompt/index.mjs +11 -0
- package/dist/src/services/skillPrompt/index.mjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs +44 -30
- package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -1
- package/dist/src/services/sqliteSessionHistory/index.d.mts +7 -4
- package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -1
- package/dist/src/services/sqliteSessionHistory/index.mjs +43 -28
- package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.cjs +21 -45
- package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.d.mts +3 -2
- package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.mjs +16 -38
- package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -1
- package/dist/src/services/testMode/index.cjs +162 -0
- package/dist/src/services/testMode/index.cjs.map +1 -0
- package/dist/src/services/testMode/index.d.mts +17 -0
- package/dist/src/services/testMode/index.d.mts.map +1 -0
- package/dist/src/services/testMode/index.mjs +155 -0
- package/dist/src/services/testMode/index.mjs.map +1 -0
- package/dist/src/services/toolOverrides/index.cjs +6 -6
- package/dist/src/services/toolOverrides/index.cjs.map +1 -1
- package/dist/src/services/toolOverrides/index.d.mts +3 -3
- package/dist/src/services/toolOverrides/index.d.mts.map +1 -1
- package/dist/src/services/toolOverrides/index.mjs +6 -6
- package/dist/src/services/toolOverrides/index.mjs.map +1 -1
- package/dist/src/services/toolPrompt/index.d.mts +17 -0
- package/dist/src/services/toolPrompt/index.d.mts.map +1 -0
- package/dist/src/services/toolSurface/index.cjs +3 -3
- package/dist/src/services/toolSurface/index.cjs.map +1 -1
- package/dist/src/services/toolSurface/index.d.mts +3 -3
- package/dist/src/services/toolSurface/index.d.mts.map +1 -1
- package/dist/src/services/toolSurface/index.mjs +4 -4
- package/dist/src/services/toolSurface/index.mjs.map +1 -1
- package/dist/src/services/traceContext/index.cjs.map +1 -1
- package/dist/src/services/traceContext/index.mjs.map +1 -1
- package/dist/src/services/transcriptPages/index.cjs +159 -33
- package/dist/src/services/transcriptPages/index.cjs.map +1 -1
- package/dist/src/services/transcriptPages/index.mjs +158 -34
- package/dist/src/services/transcriptPages/index.mjs.map +1 -1
- package/dist/src/services/voiceToolsContract/index.cjs +7 -7
- package/dist/src/services/voiceToolsContract/index.cjs.map +1 -1
- package/dist/src/services/voiceToolsContract/index.d.mts +4 -4
- package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -1
- package/dist/src/services/voiceToolsContract/index.mjs +7 -7
- package/dist/src/services/voiceToolsContract/index.mjs.map +1 -1
- package/dist/src/services/workspaceRegistry/index.cjs +9 -179
- package/dist/src/services/workspaceRegistry/index.cjs.map +1 -1
- package/dist/src/services/workspaceRegistry/index.d.mts +5 -47
- package/dist/src/services/workspaceRegistry/index.mjs +7 -176
- package/dist/src/services/workspaceRegistry/index.mjs.map +1 -1
- package/dist/src/services/workspaceRegistry/sync.cjs +148 -0
- package/dist/src/services/workspaceRegistry/sync.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/sync.d.mts +34 -0
- package/dist/src/services/workspaceRegistry/sync.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/sync.mjs +140 -0
- package/dist/src/services/workspaceRegistry/sync.mjs.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.cjs +114 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts +31 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.mjs +101 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.mjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +339 -202
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -1
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +16 -21
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -1
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +329 -191
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -1
- package/dist/src/systems/child/services/childSession/index.cjs +94 -20
- package/dist/src/systems/child/services/childSession/index.cjs.map +1 -1
- package/dist/src/systems/child/services/childSession/index.d.mts +12 -3
- package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -1
- package/dist/src/systems/child/services/childSession/index.mjs +94 -20
- package/dist/src/systems/child/services/childSession/index.mjs.map +1 -1
- package/dist/src/systems/child/types/childSession.cjs +33 -13
- package/dist/src/systems/child/types/childSession.cjs.map +1 -1
- package/dist/src/systems/child/types/childSession.d.mts +143 -80
- package/dist/src/systems/child/types/childSession.d.mts.map +1 -1
- package/dist/src/systems/child/types/childSession.mjs +24 -9
- package/dist/src/systems/child/types/childSession.mjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.cjs +30 -27
- package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.d.mts +22 -22
- package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.mjs +33 -30
- package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs +248 -229
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +4 -5
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs +239 -219
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -1
- package/dist/src/systems/main/types/headlessHost.d.mts +16 -14
- package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -1
- package/dist/src/testing/pi/testHost.cjs +2 -2
- package/dist/src/testing/pi/testHost.cjs.map +1 -1
- package/dist/src/testing/pi/testHost.d.mts +3 -2
- package/dist/src/testing/pi/testHost.mjs +3 -3
- package/dist/src/testing/pi/testHost.mjs.map +1 -1
- package/dist/src/types/config.d.mts +1 -1
- package/dist/src/types/config.d.mts.map +1 -1
- package/dist/src/types/kernel.d.mts +3 -3
- package/dist/src/types/server/directHarnessRuntime.d.mts +54 -25
- package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -1
- package/dist/src/types/server/sessionToolSurface.d.mts +9 -9
- package/dist/src/web/services/apiClient/index.d.mts +1 -0
- package/dist/src/web/services/apiPaths/index.cjs.map +1 -1
- package/dist/src/web/services/apiPaths/index.d.mts +1 -1
- package/dist/src/web/services/apiPaths/index.mjs.map +1 -1
- package/dist/src/web/services/mcpWidget.cjs.map +1 -1
- package/dist/src/web/services/mcpWidget.d.mts +2 -2
- package/dist/src/web/services/mcpWidget.d.mts.map +1 -1
- package/dist/src/web/services/mcpWidget.mjs.map +1 -1
- package/dist/src/web/services/testing/templateRail.cjs +3 -0
- package/dist/src/web/services/testing/templateRail.cjs.map +1 -1
- package/dist/src/web/services/testing/templateRail.mjs +3 -0
- package/dist/src/web/services/testing/templateRail.mjs.map +1 -1
- package/dist/src/web/types/mcpWidget.d.mts +1 -1
- package/dist/src/web/types/nativeTemplate.d.mts +1 -1
- package/dist/src/web/types/nativeTemplate.d.mts.map +1 -1
- package/dist/src/web/types/template.d.mts +8 -0
- package/dist/src/web/types/template.d.mts.map +1 -1
- package/dist/src/web/types/webPlugin.d.mts +17 -5
- package/dist/src/web/types/webPlugin.d.mts.map +1 -1
- package/dist/testMode.cjs +4 -0
- package/dist/testMode.d.mts +2 -0
- package/dist/testMode.mjs +1 -0
- package/dist/testing.cjs +1 -1
- package/dist/testing.d.mts +2 -2
- package/dist/testing.mjs +2 -2
- package/dist/toolInventory.cjs.map +1 -1
- package/dist/toolInventory.mjs.map +1 -1
- package/dist/toolNames.mjs +1 -2
- package/dist/toolOverrides.cjs +4 -4
- package/dist/toolOverrides.d.mts +3 -3
- package/dist/toolOverrides.mjs +3 -3
- package/dist/toolSurface.cjs +4 -4
- package/dist/toolSurface.d.mts +3 -3
- package/dist/toolSurface.mjs +3 -3
- package/dist/transition.cjs +3 -3
- package/dist/transition.d.cjs +3 -3
- package/dist/transition.d.mts +2 -2
- package/dist/transition.mjs +1 -2
- package/dist/transitionClassifier.cjs.map +1 -1
- package/dist/transitionClassifier.d.mts +2 -2
- package/dist/transitionClassifier.d.mts.map +1 -1
- package/dist/transitionClassifier.mjs.map +1 -1
- package/dist/transitionCoordinator.cjs +3 -3
- package/dist/transitionCoordinator.cjs.map +1 -1
- package/dist/transitionCoordinator.d.mts +4 -4
- package/dist/transitionCoordinator.d.mts.map +1 -1
- package/dist/transitionCoordinator.mjs +3 -3
- package/dist/transitionCoordinator.mjs.map +1 -1
- package/dist/typesContextApi.d.mts +2 -1
- package/dist/typesContextApi.d.mts.map +1 -1
- package/dist/uiHub.cjs +3 -3
- package/dist/uiHub.d.mts +2 -2
- package/dist/uiHub.mjs +1 -2
- package/dist/voiceTools.cjs +5 -5
- package/dist/voiceTools.d.mts +3 -3
- package/dist/voiceTools.mjs +3 -3
- package/dist/web.cjs +8 -0
- package/dist/web.d.mts +3 -2
- package/dist/web.mjs +2 -1
- package/dist/webCompositions.cjs.map +1 -1
- package/dist/webCompositions.d.mts +7 -7
- package/dist/webCompositions.d.mts.map +1 -1
- package/dist/webCompositions.mjs.map +1 -1
- package/licenses/Codex-Apache-2.0.txt +201 -0
- package/package.json +58 -53
- package/dist/doomPackage.cjs +0 -61
- package/dist/doomPackage.cjs.map +0 -1
- package/dist/doomPackage.d.mts +0 -17
- package/dist/doomPackage.d.mts.map +0 -1
- package/dist/doomPackage.mjs +0 -54
- package/dist/doomPackage.mjs.map +0 -1
- package/dist/jsonlSessionRepo.cjs +0 -44
- package/dist/jsonlSessionRepo.cjs.map +0 -1
- package/dist/jsonlSessionRepo.d.mts +0 -7
- package/dist/jsonlSessionRepo.d.mts.map +0 -1
- package/dist/jsonlSessionRepo.mjs +0 -42
- package/dist/jsonlSessionRepo.mjs.map +0 -1
- package/dist/runtimeJson.cjs.map +0 -1
- package/dist/runtimeJson.d.mts.map +0 -1
- package/dist/runtimeJson.mjs.map +0 -1
- package/dist/runtimePiSettings.cjs.map +0 -1
- package/dist/runtimePiSettings.d.mts.map +0 -1
- package/dist/runtimePiSettings.mjs.map +0 -1
- package/dist/serverFacet.cjs +0 -34
- package/dist/serverFacet.d.mts +0 -10
- package/dist/serverFacet.mjs +0 -9
- package/dist/src/pi/piWebSocketListener.cjs +0 -115
- package/dist/src/pi/piWebSocketListener.cjs.map +0 -1
- package/dist/src/pi/piWebSocketListener.mjs +0 -115
- package/dist/src/pi/piWebSocketListener.mjs.map +0 -1
- package/dist/src/schemas/serverFacet.cjs +0 -111
- package/dist/src/schemas/serverFacet.cjs.map +0 -1
- package/dist/src/schemas/serverFacet.d.mts +0 -152
- package/dist/src/schemas/serverFacet.d.mts.map +0 -1
- package/dist/src/schemas/serverFacet.mjs +0 -101
- package/dist/src/schemas/serverFacet.mjs.map +0 -1
- package/dist/src/schemas/sessionUpdates.d.mts +0 -34
- package/dist/src/schemas/sessionUpdates.d.mts.map +0 -1
- package/dist/src/server/headlessProtocol.cjs +0 -382
- package/dist/src/server/headlessProtocol.cjs.map +0 -1
- package/dist/src/server/headlessProtocol.mjs +0 -382
- package/dist/src/server/headlessProtocol.mjs.map +0 -1
- package/dist/src/server/nativeChildTranscriptReader.cjs +0 -20
- package/dist/src/server/nativeChildTranscriptReader.cjs.map +0 -1
- package/dist/src/server/nativeChildTranscriptReader.mjs +0 -18
- package/dist/src/server/nativeChildTranscriptReader.mjs.map +0 -1
- package/dist/src/server/serverFacetLoader.cjs +0 -214
- package/dist/src/server/serverFacetLoader.cjs.map +0 -1
- package/dist/src/server/serverFacetLoader.d.mts +0 -72
- package/dist/src/server/serverFacetLoader.d.mts.map +0 -1
- package/dist/src/server/serverFacetLoader.mjs +0 -212
- package/dist/src/server/serverFacetLoader.mjs.map +0 -1
- package/dist/src/services/acpSessionUpdates/index.cjs +0 -129
- package/dist/src/services/acpSessionUpdates/index.cjs.map +0 -1
- package/dist/src/services/acpSessionUpdates/index.mjs +0 -129
- package/dist/src/services/acpSessionUpdates/index.mjs.map +0 -1
- package/dist/src/services/historyImport/index.cjs +0 -8
- package/dist/src/services/historyImport/index.cjs.map +0 -1
- package/dist/src/services/historyImport/index.d.mts +0 -68
- package/dist/src/services/historyImport/index.d.mts.map +0 -1
- package/dist/src/services/historyImport/index.mjs +0 -8
- package/dist/src/services/historyImport/index.mjs.map +0 -1
- package/dist/src/services/openSessionRegistry/index.d.mts.map +0 -1
- package/dist/src/services/requestReceipts/index.cjs.map +0 -1
- package/dist/src/services/requestReceipts/index.d.mts +0 -11
- package/dist/src/services/requestReceipts/index.d.mts.map +0 -1
- package/dist/src/services/requestReceipts/index.mjs.map +0 -1
- package/dist/src/services/rpcTranscript/index.cjs +0 -633
- package/dist/src/services/rpcTranscript/index.cjs.map +0 -1
- package/dist/src/services/rpcTranscript/index.d.mts +0 -50
- package/dist/src/services/rpcTranscript/index.d.mts.map +0 -1
- package/dist/src/services/rpcTranscript/index.mjs +0 -632
- package/dist/src/services/rpcTranscript/index.mjs.map +0 -1
- package/dist/src/services/serverFacet/index.cjs.map +0 -1
- package/dist/src/services/serverFacet/index.d.mts +0 -31
- package/dist/src/services/serverFacet/index.d.mts.map +0 -1
- package/dist/src/services/serverFacet/index.mjs.map +0 -1
- package/dist/src/services/workspaceRegistry/index.d.mts.map +0 -1
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +0 -28
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +0 -1
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +0 -25
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +0 -1
- package/dist/terminalPiChildSessionService.cjs +0 -324
- package/dist/terminalPiChildSessionService.cjs.map +0 -1
- package/dist/terminalPiChildSessionService.d.mts +0 -46
- package/dist/terminalPiChildSessionService.d.mts.map +0 -1
- package/dist/terminalPiChildSessionService.mjs +0 -318
- package/dist/terminalPiChildSessionService.mjs.map +0 -1
- package/dist/v3Export.cjs +0 -10
- package/dist/v3Export.cjs.map +0 -1
- package/dist/v3Export.d.mts +0 -35
- package/dist/v3Export.d.mts.map +0 -1
- package/dist/v3Export.mjs +0 -9
- package/dist/v3Export.mjs.map +0 -1
|
@@ -1 +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 { 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 = 'po_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 = await runtime.getSessionStats();\n const { contextUsage, sessionFile } = stored;\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()), fastMode: false },\n progress: null,\n updates: [],\n presentation: { revision: 0, dropped: 0, events: [], projections: [] },\n });\n void options.runtime\n .readState()\n .then((runtimeState) => {\n if (!disposed)\n state.change(BACKGROUND_CONTEXT, (draft) => {\n draft.snapshot.fastMode = runtimeState.fastMode === true;\n draft.snapshot.locked = runtimeState.agentLocked === true;\n });\n })\n .catch((error) => {\n if (!disposed) present({ type: 'error', error: String(error) });\n });\n const present = (frame: Record<string, unknown>): boolean => {\n if (frame.type === 'fast_mode_changed' && typeof frame.enabled === 'boolean')\n state.change(BACKGROUND_CONTEXT, (draft) => {\n draft.snapshot.fastMode = frame.enabled as boolean;\n });\n if (frame.type === 'agent_lock_changed' && typeof frame.locked === 'boolean')\n state.change(BACKGROUND_CONTEXT, (draft) => {\n draft.snapshot.locked = frame.locked as boolean;\n });\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 const promptFailures = new Set<(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 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('po_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('po_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('po_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 fastMode: draft.snapshot.fastMode ?? false,\n locked: draft.snapshot.locked ?? false,\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('po_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 terminate = (error: Error): void => {\n if (disposed) return;\n disposed = true;\n for (const fail of promptFailures) fail(error);\n promptFailures.clear();\n rejectSettlers(error);\n unsubscribePresentation();\n };\n observe(\n options.runtime.exited.then(\n () => terminate(new Error('The session runtime exited')),\n (error: unknown) => terminate(error instanceof Error ? error : new Error(String(error))),\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 = (): { 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 waiter = {\n resolve: () => {\n settlers.delete(waiter);\n resolve();\n },\n reject: (error: Error) => {\n settlers.delete(waiter);\n reject(error);\n },\n };\n fail = waiter.reject;\n finish = waiter.resolve;\n settlers.add(waiter);\n });\n observe(promise);\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 let snapshot: ReturnType<DirectHarnessRuntime['readEntries']> | undefined;\n const readEntries = () => (snapshot ??= options.runtime.readEntries());\n const page = await readTranscriptPage(\n {\n sessionId: options.runtime.sessionId,\n laneName: options.runtime.laneName,\n lane: {\n getTipId: async () => (await readEntries()).leafId,\n findEntries: async (query) => {\n let entries = (await readEntries()).entries;\n if (query.type) entries = entries.filter((e) => e.type === query.type);\n if (query.customType)\n entries = entries.filter((e) => e.type === 'custom' && e.customType === query.customType);\n if (query.cursor)\n entries = entries.filter((e) =>\n query.order === 'oldestFirst' ? e.seq > query.cursor!.seq : e.seq < query.cursor!.seq,\n );\n if (query.order === 'newestFirst') entries = entries.toReversed();\n return query.limit === undefined ? entries : entries.slice(0, query.limit);\n },\n },\n },\n args,\n generation,\n context,\n );\n if (options.telemetry)\n observe(\n options.telemetry.recordEvent('po_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 let projection: ReturnType<typeof awaitSettled> | undefined;\n let latency: PromptLatency | undefined;\n let submitted = false;\n let failed: Error | undefined;\n let rejectFailure!: (error: Error) => void;\n const failure = new Promise<void>((_resolve, reject) => {\n rejectFailure = reject;\n });\n const fail = (error: Error): void => {\n if (failed !== undefined) return;\n failed = error;\n projection?.reject(error);\n rejectFailure(error);\n if (latency !== undefined && promptLatency === latency) {\n reportPromptLatency('failed');\n promptLatency = undefined;\n }\n };\n const cancel = (): void => {\n if (failed !== undefined) return;\n fail(new Error('The session prompt was cancelled', { cause: context.abortSignal?.reason }));\n if (submitted && waitFor === 'settled') void options.runtime.abort().catch(() => undefined);\n };\n const guardPrompt = (): void => {\n if (failed !== undefined) throw failed;\n guardContext(context);\n };\n const submit = async () => {\n guardPrompt();\n submitted = true;\n // Native admission atomically chooses idle submission or busy steering.\n const submission = await options.runtime.submitPrompt(args.message, args.images, 'steer');\n observe(submission.settled);\n guardPrompt();\n return submission;\n };\n const span = <T>(name: string, callback: () => Promise<T>): Promise<T> => {\n const operation = options.telemetry\n ? options.telemetry.runInSpan(name, { session_id: options.sessionId }, callback)\n : callback();\n observe(operation);\n return operation;\n };\n const run = async (): Promise<void> => {\n guardPrompt();\n const lifecycle = await options.runtime.readLifecycle();\n guardPrompt();\n if (lifecycle.operation !== null || settlers.size > 0) {\n if (isSelectionCommand(args.message)) {\n const handled = await options.runtime.dispatchCommand(args.message);\n guardPrompt();\n if (handled) return;\n }\n }\n if (waitFor === 'accepted' && !options.telemetry) {\n await submit();\n return;\n }\n const startedAt = Date.now();\n if (promptLatency === undefined)\n latency = promptLatency = { startedAt, lastStageAt: startedAt, reported: new Set() };\n const settled = (projection = awaitSettled());\n let resolveAdmission: (() => void) | undefined;\n const admitted =\n waitFor === 'accepted'\n ? new Promise<void>((resolve) => {\n resolveAdmission = resolve;\n })\n : undefined;\n const completion = span('po_server.prompt_to_settled', async () => {\n const submission = await span('po_server.prompt_admission', submit);\n guardPrompt();\n if (submission.handledCommand) settled.resolve();\n if (latency !== undefined && promptLatency === latency) reportPromptLatency('accepted');\n resolveAdmission?.();\n await Promise.all([\n span('po_server.prompt_engine_settlement', () => submission.settled),\n span('po_server.prompt_projection_settlement', () => settled.promise),\n ]);\n }).catch((error: unknown) => {\n const cause = error instanceof Error ? error : new Error(String(error));\n fail(cause);\n throw cause;\n });\n if (admitted) await Promise.race([admitted, completion]);\n else await completion;\n };\n promptFailures.add(fail);\n context.abortSignal?.addEventListener('abort', cancel, { once: true });\n try {\n await Promise.race([run(), failure]);\n } catch (error) {\n const cause = error instanceof Error ? error : new Error(String(error));\n fail(cause);\n throw cause;\n } finally {\n promptFailures.delete(fail);\n context.abortSignal?.removeEventListener('abort', cancel);\n }\n },\n async steer(text: string | SessionMessageArgs) {\n requireLive();\n const args = messageArgs(text);\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 setFastMode(enabled, context) {\n guardContext(context);\n if (typeof enabled !== 'boolean') throw new Error('Invalid fast mode');\n await options.runtime.setFastMode(enabled);\n state.change(context, (draft) => {\n draft.snapshot.fastMode = enabled;\n });\n },\n async setAgentLock(locked, context) {\n guardContext(context);\n if (typeof locked !== 'boolean') throw new Error('Invalid agent lock');\n await options.runtime.setAgentLock(locked);\n state.change(context, (draft) => {\n draft.snapshot.locked = locked;\n });\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 (\n !args ||\n typeof args.id !== 'string' ||\n !args.id ||\n (args.operationId !== undefined && (typeof args.operationId !== 'string' || !args.operationId))\n )\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 const runtimeState = await options.runtime.readState();\n return { ...runtimeState, fastMode: runtimeState.fastMode === true } 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 terminate(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 Po 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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"}
|
|
1
|
+
{"version":3,"file":"piSessionRuntime.mjs","names":[],"sources":["../../../src/pi/piSessionRuntime.ts"],"sourcesContent":["import {\n copyJson,\n forbidden,\n local,\n opaque,\n replicatedState,\n type Ctx,\n type Host,\n type MutableReplicatedState,\n type Subscribable,\n} from '@earendil-works/chord';\nimport { BACKGROUND_CONTEXT, withAbortSignal, type Context } from '@earendil-works/chord/context';\nimport { Type } from 'typebox';\n\nimport { PoSessionContract } from '../exports/sessionProtocol';\nimport {\n normalizeSessionGroups,\n type SessionService,\n type SessionMessageArgs,\n type PromptArgs,\n type SessionServiceState,\n type SessionLive,\n type SessionLiveTool,\n type SessionPhase,\n type SessionLifecycle,\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 { SessionServiceStateSchema } from '../schemas/sessionApiContracts';\nimport { observe, type ServerTelemetry } from '../services/serverTelemetry';\nimport { createSessionPresentation } from '../services/sessionPresentation';\nimport { durableTranscriptLane, readTranscriptPage, transcriptCursor } from '../services/transcriptPages';\nimport type { DirectHarnessRuntime, DirectHarnessFrame } from '../types/server/directHarnessRuntime';\n\nconst SETTLED = 'agent_settled';\nconst PROMPT_LATENCY_EVENT = 'po_server.prompt_latency';\nconst SELECTION_COMMANDS = new Set(['mode', 'domains', 'profile', 'minor']);\n\n/** How each attach frame moves `live.phase`; idle clears `live`. */\nconst LIVE_PHASES = new Map<unknown, SessionPhase>([\n ['agent_start', 'turn'],\n ['agent_settled', 'idle'],\n ['compaction_start', 'compaction'],\n ['compaction_end', 'idle'],\n ['auto_retry_start', 'retry'],\n ['auto_retry_end', 'turn'],\n]);\n/**\n * Pi streams partials near 100 Hz; `live` takes at most one write per window, so 15 a second per session.\n * ponytail: tuned on the S7 bench (8 children, 4 bash tails growing 1.6 KB/s each): 18.5 KB/s, p95 64 ms.\n * Output faster than that streams at its own rate; cap tool tails or slow tool writes if real runs exceed 20 KB/s.\n */\nconst LIVE_WRITE_INTERVAL_MS = 66;\n\nfunction isSelectionCommand(text: string): boolean {\n const match = /^\\/(\\S+)/.exec(text);\n return match !== null && SELECTION_COMMANDS.has(match[1]!);\n}\n\nfunction parts(value: unknown): Record<string, unknown>[] {\n return Array.isArray(value) ? value.filter((part) => typeof part === 'object' && part !== null) : [];\n}\n\n/** Pi's streaming assistant message, cut to the strict-JSON parts a client renders. */\nfunction liveMessage(message: Record<string, unknown>): NonNullable<SessionLive['message']> {\n const content: NonNullable<SessionLive['message']>['content'] = [];\n for (const part of parts(message.content)) {\n if (part.type === 'text' && typeof part.text === 'string') content.push({ type: 'text', text: part.text });\n if (part.type === 'thinking' && typeof part.thinking === 'string')\n content.push({\n type: 'thinking',\n thinking: part.thinking,\n ...(part.redacted === true ? { redacted: true as const } : {}),\n });\n }\n return {\n role: 'assistant',\n content,\n model: typeof message.model === 'string' ? message.model : '',\n timestamp: typeof message.timestamp === 'number' ? message.timestamp : 0,\n };\n}\n\nfunction liveResult(result: Record<string, unknown>): NonNullable<SessionLiveTool['partialResult']> {\n const content: NonNullable<SessionLiveTool['partialResult']>['content'] = [];\n for (const part of parts(result.content)) {\n if (part.type === 'text' && typeof part.text === 'string') content.push({ type: 'text', text: part.text });\n if (part.type === 'image' && typeof part.data === 'string' && typeof part.mimeType === 'string')\n content.push({ type: 'image', data: part.data, mimeType: part.mimeType });\n }\n return {\n content,\n ...(result.details === undefined ? {} : { details: copyJson(result.details, { omitUndefinedProperties: true }) }),\n };\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 = await runtime.getSessionStats();\n const { contextUsage } = stored;\n return {\n sessionId,\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 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 presentation = createSessionPresentation();\n let historyGeneration = 0;\n const state = replicatedState<SessionServiceState>({\n snapshot: { fastMode: false, locked: false },\n presentation: { revision: 0, dropped: 0, events: [], projections: [] },\n });\n void options.runtime\n .readState()\n .then((runtimeState) => {\n if (!disposed)\n state.change(BACKGROUND_CONTEXT, (draft) => {\n draft.snapshot.fastMode = runtimeState.fastMode === true;\n draft.snapshot.locked = runtimeState.agentLocked === true;\n });\n })\n .catch((error) => {\n if (!disposed) present({ type: 'error', error: String(error) });\n });\n const present = (frame: Record<string, unknown>): void => {\n if (frame.type === 'fast_mode_changed' && typeof frame.enabled === 'boolean')\n state.change(BACKGROUND_CONTEXT, (draft) => {\n draft.snapshot.fastMode = frame.enabled as boolean;\n });\n if (frame.type === 'agent_lock_changed' && typeof frame.locked === 'boolean')\n state.change(BACKGROUND_CONTEXT, (draft) => {\n draft.snapshot.locked = frame.locked as boolean;\n });\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 };\n const settlers = new Set<{ resolve(): void; reject(error: Error): void }>();\n const promptFailures = new Set<(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 // Streaming partials are whole values, so only the newest of each survives a throttle window.\n let pendingMessage: SessionLive['message'];\n const pendingResults = new Map<string, NonNullable<SessionLiveTool['partialResult']>>();\n let liveCooldown: ReturnType<typeof setTimeout> | undefined;\n const flushLive = (): void => {\n if (pendingMessage === undefined && pendingResults.size === 0) return;\n const message = pendingMessage;\n const results = [...pendingResults];\n pendingMessage = undefined;\n pendingResults.clear();\n state.change(BACKGROUND_CONTEXT, (draft) => {\n const live = (draft.live ??= { phase: 'turn', tools: {} });\n if (message) live.message = message;\n for (const [toolCallId, partialResult] of results) {\n const tool = live.tools[toolCallId];\n if (tool) tool.partialResult = partialResult;\n }\n });\n };\n const coolLive = (): void => {\n liveCooldown = undefined;\n if (pendingMessage !== undefined || pendingResults.size > 0) throttleLive();\n };\n // The first partial in a window writes at once; the rest land together when it closes.\n const throttleLive = (): void => {\n if (liveCooldown !== undefined) return;\n flushLive();\n liveCooldown = setTimeout(coolLive, LIVE_WRITE_INTERVAL_MS);\n };\n\n // Runs last for each frame: a frame that is not strict JSON fails only its own live write.\n const updateLive = (frame: DirectHarnessFrame, role: unknown): void => {\n const write = (mutate: (live: SessionLive) => void): void =>\n state.change(BACKGROUND_CONTEXT, (draft) => mutate((draft.live ??= { phase: 'turn', tools: {} })));\n const phase = LIVE_PHASES.get(frame.type);\n const live = state.value.live;\n const toolCallId = typeof frame.toolCallId === 'string' ? frame.toolCallId : '';\n if (phase === 'idle') {\n if (live)\n state.change(BACKGROUND_CONTEXT, (draft) => {\n delete draft.live;\n });\n } else if (phase !== undefined) {\n write((next) => {\n next.phase = phase;\n });\n } else if (frame.type === 'message_update' && role === 'assistant') {\n pendingMessage = liveMessage(frame.message as Record<string, unknown>);\n throttleLive();\n } else if (frame.type === 'message_start' && role === 'assistant') {\n const message = liveMessage(frame.message as Record<string, unknown>);\n write((next) => {\n next.message = message;\n });\n } else if (frame.type === 'message_end' && role === 'assistant') {\n if (live?.message)\n write((next) => {\n delete next.message;\n });\n } else if (frame.type === 'tool_execution_start' && toolCallId) {\n const tool: SessionLiveTool = {\n toolCallId,\n toolName: typeof frame.toolName === 'string' ? frame.toolName : '',\n args: copyJson(frame.args ?? null, { omitUndefinedProperties: true }),\n };\n write((next) => {\n next.tools[toolCallId] = tool;\n });\n } else if (frame.type === 'tool_execution_update' && live?.tools[toolCallId]) {\n pendingResults.set(toolCallId, liveResult((frame.partialResult ?? {}) as Record<string, unknown>));\n throttleLive();\n } else if (frame.type === 'tool_execution_end' && live?.tools[toolCallId]) {\n write((next) => {\n delete next.tools[toolCallId];\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 // Whatever streamed before this frame lands first, so clients see live writes in frame order.\n if (frame.type !== 'message_update' && frame.type !== 'tool_execution_update') flushLive();\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('po_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('po_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 presentStartedAt = performance.now();\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 if (frame.type === 'navigation_end') historyGeneration += 1;\n present(frame);\n const presentDurationMs = performance.now() - presentStartedAt;\n if (options.telemetry && (presentDurationMs >= 50 || frame.type === SETTLED))\n observe(\n options.telemetry.recordEvent('po_server.presentation_frame', {\n session_id: options.sessionId,\n 'frame.type': frame.type,\n phase: 'publish',\n duration_ms: presentDurationMs,\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 updateLive(frame, message?.role);\n });\n\n const terminate = (error: Error): void => {\n if (disposed) return;\n disposed = true;\n for (const fail of promptFailures) fail(error);\n promptFailures.clear();\n rejectSettlers(error);\n unsubscribePresentation();\n clearTimeout(liveCooldown);\n };\n observe(\n options.runtime.exited.then(\n () => terminate(new Error('The session runtime exited')),\n (error: unknown) => terminate(error instanceof Error ? error : new Error(String(error))),\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 = (): { 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 waiter = {\n resolve: () => {\n settlers.delete(waiter);\n resolve();\n },\n reject: (error: Error) => {\n settlers.delete(waiter);\n reject(error);\n },\n };\n fail = waiter.reject;\n finish = waiter.resolve;\n settlers.add(waiter);\n });\n observe(promise);\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 started = performance.now();\n const page = await readTranscriptPage(\n {\n sessionId: options.runtime.sessionId,\n laneName: options.runtime.laneName,\n lane: durableTranscriptLane(\n (query, limit, cursor, scanContext) => options.runtime.scanEntries(query, limit, cursor, scanContext),\n (readContext) => options.runtime.readIdentities(readContext),\n ),\n },\n args,\n generation,\n context,\n );\n if (options.telemetry)\n observe(\n options.telemetry.recordEvent('po_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 };\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 let projection: ReturnType<typeof awaitSettled> | undefined;\n let latency: PromptLatency | undefined;\n let submitted = false;\n let failed: Error | undefined;\n let rejectFailure!: (error: Error) => void;\n const failure = new Promise<void>((_resolve, reject) => {\n rejectFailure = reject;\n });\n const fail = (error: Error): void => {\n if (failed !== undefined) return;\n failed = error;\n projection?.reject(error);\n rejectFailure(error);\n if (latency !== undefined && promptLatency === latency) {\n reportPromptLatency('failed');\n promptLatency = undefined;\n }\n };\n const cancel = (): void => {\n if (failed !== undefined) return;\n fail(new Error('The session prompt was cancelled', { cause: context.abortSignal?.reason }));\n if (submitted && waitFor === 'settled') void options.runtime.abort().catch(() => undefined);\n };\n const guardPrompt = (): void => {\n if (failed !== undefined) throw failed;\n guardContext(context);\n };\n const submit = async () => {\n guardPrompt();\n submitted = true;\n // Native admission atomically chooses idle submission or busy steering.\n const submission = await options.runtime.submitPrompt(args.message, args.images, 'steer');\n observe(submission.settled);\n guardPrompt();\n return submission;\n };\n const span = <T>(name: string, callback: () => Promise<T>): Promise<T> => {\n const operation = options.telemetry\n ? options.telemetry.runInSpan(name, { session_id: options.sessionId }, callback)\n : callback();\n observe(operation);\n return operation;\n };\n const run = async (): Promise<void> => {\n guardPrompt();\n const lifecycle = await options.runtime.readLifecycle();\n guardPrompt();\n if (lifecycle.operation !== null || settlers.size > 0) {\n if (isSelectionCommand(args.message)) {\n const handled = await options.runtime.dispatchCommand(args.message);\n guardPrompt();\n if (handled) return;\n }\n }\n if (waitFor === 'accepted' && !options.telemetry) {\n await submit();\n return;\n }\n const startedAt = Date.now();\n if (promptLatency === undefined)\n latency = promptLatency = { startedAt, lastStageAt: startedAt, reported: new Set() };\n const settled = (projection = awaitSettled());\n let resolveAdmission: (() => void) | undefined;\n const admitted =\n waitFor === 'accepted'\n ? new Promise<void>((resolve) => {\n resolveAdmission = resolve;\n })\n : undefined;\n const completion = span('po_server.prompt_to_settled', async () => {\n const submission = await span('po_server.prompt_admission', submit);\n guardPrompt();\n if (submission.handledCommand) settled.resolve();\n if (latency !== undefined && promptLatency === latency) reportPromptLatency('accepted');\n resolveAdmission?.();\n await Promise.all([\n span('po_server.prompt_engine_settlement', () => submission.settled),\n span('po_server.prompt_projection_settlement', () => settled.promise),\n ]);\n }).catch((error: unknown) => {\n const cause = error instanceof Error ? error : new Error(String(error));\n fail(cause);\n throw cause;\n });\n if (admitted) await Promise.race([admitted, completion]);\n else await completion;\n };\n promptFailures.add(fail);\n context.abortSignal?.addEventListener('abort', cancel, { once: true });\n try {\n await Promise.race([run(), failure]);\n } catch (error) {\n const cause = error instanceof Error ? error : new Error(String(error));\n fail(cause);\n throw cause;\n } finally {\n promptFailures.delete(fail);\n context.abortSignal?.removeEventListener('abort', cancel);\n }\n },\n async steer(text: string | SessionMessageArgs) {\n requireLive();\n const args = messageArgs(text);\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 setFastMode(enabled, context) {\n guardContext(context);\n if (typeof enabled !== 'boolean') throw new Error('Invalid fast mode');\n await options.runtime.setFastMode(enabled);\n state.change(context, (draft) => {\n draft.snapshot.fastMode = enabled;\n });\n },\n async setAgentLock(locked, context) {\n guardContext(context);\n if (typeof locked !== 'boolean') throw new Error('Invalid agent lock');\n await options.runtime.setAgentLock(locked);\n state.change(context, (draft) => {\n draft.snapshot.locked = locked;\n });\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 (\n !args ||\n typeof args.id !== 'string' ||\n !args.id ||\n (args.operationId !== undefined && (typeof args.operationId !== 'string' || !args.operationId))\n )\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 const runtimeState = await options.runtime.readState();\n return { ...runtimeState, fastMode: runtimeState.fastMode === true } 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\n .listCommands()\n .map(({ name, description }): SessionCommand => ({ name, description, source: 'extension' }));\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 setGroups(groups, context) {\n guardContext(context);\n await options.runtime.setGroups(normalizeSessionGroups(groups));\n },\n async dispose() {\n terminate(new Error('The session runtime is disposed'));\n },\n };\n}\n\n/** Host-local, shared by every connection: one projected runtime per live session generation. */\nconst SessionStateValue = Type.Union([Type.Null(), SessionServiceStateSchema]);\n\n/** Host-local, shared by every connection: one projected runtime per live session generation. */\nconst PoSessionCore = local('po.session-core', {\n version: 1,\n input: Type.Object({ sessionId: Type.String({ minLength: 1 }), generation: Type.Integer({ minimum: 0 }) }),\n members: {\n runtime: opaque<AgentSessionRuntime>('po.agent-session-runtime@1'),\n state: SessionStateValue,\n alive: Type.Boolean(),\n },\n});\n\nexport interface AgentSessionBinding {\n /** Distinguishes a restarted session runtime from the one it replaced. */\n readonly generation: number;\n readonly options: AgentSessionRuntimeOptions;\n /** Settles when the runtime behind this generation exits. */\n readonly exited?: Promise<unknown>;\n /** Evaluated for every call, so a later Desktop claim also blocks existing handles. */\n permitted(): boolean;\n}\n\n/** Linger keeps a quickly reattaching browser on the same projection. */\nconst SESSION_CORE_LINGER_MS = 30_000;\n\nfunction contextOf(ctx: Ctx): Context {\n return withAbortSignal(ctx.signal, BACKGROUND_CONTEXT);\n}\n\nfunction untilAborted(signal: AbortSignal): Promise<void> {\n return new Promise((resolve) => {\n if (signal.aborted) resolve();\n else signal.addEventListener('abort', () => resolve(), { once: true });\n });\n}\n\n/**\n * Serves `po.session` on `host`. `resolve` returns the session a principal may reach, or\n * undefined to refuse it.\n */\nexport function serveAgentSessions(\n host: Host,\n options: { resolve(sessionId: string, principal: unknown): AgentSessionBinding | undefined },\n): void {\n const bindings = new Map<string, AgentSessionBinding>();\n const keyOf = (sessionId: string, generation: number) => `${generation}\\0${sessionId}`;\n\n host.serve(\n PoSessionCore,\n ({ sessionId, generation }, _principal, self) => {\n const binding = bindings.get(keyOf(sessionId, generation));\n if (binding === undefined) throw forbidden(`No session ${sessionId}`);\n const state = self.state('state', SessionStateValue, null);\n const alive = self.state('alive', Type.Boolean(), true);\n const runtime = self.resource('runtime', {\n version: 1,\n open: async () => {\n const created = createAgentSessionRuntime(binding.options);\n try {\n await created.initialize();\n } catch (error) {\n await created.dispose();\n throw error;\n }\n return created;\n },\n close: (created) => created.dispose(),\n });\n self.on(\n 'mirror',\n runtime,\n (created) => created.state as unknown as Subscribable<SessionServiceState>,\n // Streaming partials grow by appends, so diff explicitly rather than resend the whole state.\n (value, ctx) => state.replace(ctx, value, { diff: true }),\n );\n const exited = binding.exited;\n if (exited !== undefined)\n self.task(async (ctx) => {\n await Promise.race([exited, untilAborted(ctx.signal)]);\n if (!ctx.signal.aborted) alive.replace(ctx, false);\n });\n return { runtime: self.expose(runtime), state, alive };\n },\n { linger: SESSION_CORE_LINGER_MS },\n );\n\n host.serve(PoSessionContract, (input, principal, self) => {\n const { sessionId } = input;\n const binding = options.resolve(sessionId, principal);\n if (binding === undefined) throw forbidden(`No session ${sessionId}`);\n bindings.set(keyOf(sessionId, binding.generation), binding);\n const core = self.get(PoSessionCore, { sessionId, generation: binding.generation });\n const live = (ctx: Ctx): [AgentSessionRuntime, Context] => {\n if (!binding.permitted()) throw forbidden('This session belongs to Desktop.');\n const runtime = core.runtime;\n if (runtime === undefined) throw new Error('The session runtime is not ready.');\n return [runtime, contextOf(ctx)];\n };\n return {\n variant: 'default',\n state: core.state,\n alive: core.alive,\n readTranscriptPage: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.readTranscriptPage(args, context);\n },\n prompt: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.prompt(args as never, context);\n },\n steer: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.steer(args as never, context);\n },\n abort: (ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.abort(context);\n },\n abortOperation: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.abortOperation(args, context);\n },\n setModel: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.setModel(args, context);\n },\n setThinking: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.setThinking(args, context);\n },\n setFastMode: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.setFastMode(args, context);\n },\n setAgentLock: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.setAgentLock(args, context);\n },\n followUp: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.followUp(args, context);\n },\n enqueueAutomatic: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.enqueueAutomatic(args, context);\n },\n removeQueued: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.removeQueued(args, context);\n },\n promoteQueued: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.promoteQueued(args, context);\n },\n resumeQueue: (ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.resumeQueue(context);\n },\n clearQueue: (ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.clearQueue(context);\n },\n rewind: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.rewind(args, context);\n },\n extensionUiResponse: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.extensionUiResponse(args, context);\n },\n getState: (ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.getState(context);\n },\n getSessionStats: (ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.getSessionStats(context);\n },\n getCommands: (ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.getCommands(context);\n },\n getAvailableModels: (ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.getAvailableModels(context);\n },\n getAvailableThinkingLevels: (ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.getAvailableThinkingLevels(context);\n },\n compact: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.compact(args, context);\n },\n setName: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.setName(args, context);\n },\n setGroups: (args, ctx) => {\n const [runtime, context] = live(ctx);\n return runtime.setGroups(args, context);\n },\n };\n });\n}\n"],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ let typebox = require("typebox");
|
|
|
15
15
|
* uses: it rides Pi's `entry_appended` frames, so any RPC client sees the
|
|
16
16
|
* change live and on replay without a new protocol.
|
|
17
17
|
*/
|
|
18
|
-
const
|
|
18
|
+
const PO_AGENT_MODEL_ENTRY_TYPE = "po-agent-model";
|
|
19
19
|
const AgentModelProjectionSchema = typebox.Type.Object({
|
|
20
20
|
provider: typebox.Type.String({
|
|
21
21
|
minLength: 1,
|
|
@@ -28,6 +28,6 @@ const AgentModelProjectionSchema = typebox.Type.Object({
|
|
|
28
28
|
}, { additionalProperties: false });
|
|
29
29
|
//#endregion
|
|
30
30
|
exports.AgentModelProjectionSchema = AgentModelProjectionSchema;
|
|
31
|
-
exports.
|
|
31
|
+
exports.PO_AGENT_MODEL_ENTRY_TYPE = PO_AGENT_MODEL_ENTRY_TYPE;
|
|
32
32
|
|
|
33
33
|
//# sourceMappingURL=agentModel.cjs.map
|
|
@@ -1 +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
|
|
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 PO_AGENT_MODEL_ENTRY_TYPE = 'po-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,4BAA4B;AAEzC,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"}
|
|
@@ -15,7 +15,7 @@ import { Static, Type } from "typebox";
|
|
|
15
15
|
* uses: it rides Pi's `entry_appended` frames, so any RPC client sees the
|
|
16
16
|
* change live and on replay without a new protocol.
|
|
17
17
|
*/
|
|
18
|
-
export declare const
|
|
18
|
+
export declare const PO_AGENT_MODEL_ENTRY_TYPE = "po-agent-model";
|
|
19
19
|
export declare const AgentModelProjectionSchema: Type.TObject<{
|
|
20
20
|
provider: Type.TString;
|
|
21
21
|
id: Type.TString;
|
|
@@ -15,7 +15,7 @@ import { Type } from "typebox";
|
|
|
15
15
|
* uses: it rides Pi's `entry_appended` frames, so any RPC client sees the
|
|
16
16
|
* change live and on replay without a new protocol.
|
|
17
17
|
*/
|
|
18
|
-
const
|
|
18
|
+
const PO_AGENT_MODEL_ENTRY_TYPE = "po-agent-model";
|
|
19
19
|
const AgentModelProjectionSchema = Type.Object({
|
|
20
20
|
provider: Type.String({
|
|
21
21
|
minLength: 1,
|
|
@@ -27,6 +27,6 @@ const AgentModelProjectionSchema = Type.Object({
|
|
|
27
27
|
})
|
|
28
28
|
}, { additionalProperties: false });
|
|
29
29
|
//#endregion
|
|
30
|
-
export { AgentModelProjectionSchema,
|
|
30
|
+
export { AgentModelProjectionSchema, PO_AGENT_MODEL_ENTRY_TYPE };
|
|
31
31
|
|
|
32
32
|
//# sourceMappingURL=agentModel.mjs.map
|
|
@@ -1 +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
|
|
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 PO_AGENT_MODEL_ENTRY_TYPE = 'po-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,4BAA4B;AAEzC,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"}
|
|
@@ -3,7 +3,7 @@ import "./serverBundle.mjs";
|
|
|
3
3
|
import { Static, Type } from "typebox";
|
|
4
4
|
//#region src/schemas/apiContracts.d.ts
|
|
5
5
|
/** Data-only package entry. Schemas use JSON Schema draft-07, including TypeBox output; OpenAPI export translates tuple keywords. */
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const PoApiContractSchema: Type.TObject<{
|
|
7
7
|
version: Type.TLiteral<1>;
|
|
8
8
|
protocols: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
|
|
9
9
|
schemas: Type.TOptional<Type.TRecord<"^.*$", Type.TUnsafe<boolean | object>>>;
|
|
@@ -53,6 +53,6 @@ export declare const DoomApiContractSchema: Type.TObject<{
|
|
|
53
53
|
dynamic: Type.TArray<Type.TString>;
|
|
54
54
|
gaps: Type.TOptional<Type.TArray<Type.TString>>;
|
|
55
55
|
}>;
|
|
56
|
-
export type
|
|
56
|
+
export type PoApiContract = Static<typeof PoApiContractSchema>;
|
|
57
57
|
//#endregion
|
|
58
58
|
//# sourceMappingURL=apiContracts.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../../../src/schemas/apiContracts.ts"],"mappings":";;;;;qBAmBa,
|
|
1
|
+
{"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../../../src/schemas/apiContracts.ts"],"mappings":";;;;;qBAmBa,qBAAmB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAkEpB,gBAAgB,cAAc"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
let typebox = require("typebox");
|
|
2
2
|
//#region src/schemas/askUser.ts
|
|
3
3
|
/** Namespaced Cordis events emitted by the ask-user provider. */
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const PO_ASK_USER_PROMPT_EVENT = "po/ask-user/prompt";
|
|
5
|
+
const PO_ASK_USER_BLOCKED_EVENT = "po/ask-user/blocked";
|
|
6
6
|
const MAX_QUESTIONS = 3;
|
|
7
7
|
const MAX_OPTIONS = 16;
|
|
8
8
|
const MAX_TEXT_LENGTH = 4096;
|
|
@@ -36,7 +36,7 @@ exports.AskUserBlockedEventSchema = AskUserBlockedEventSchema;
|
|
|
36
36
|
exports.AskUserPromptEventSchema = AskUserPromptEventSchema;
|
|
37
37
|
exports.AskUserPromptOptionSchema = AskUserPromptOptionSchema;
|
|
38
38
|
exports.AskUserPromptQuestionSchema = AskUserPromptQuestionSchema;
|
|
39
|
-
exports.
|
|
40
|
-
exports.
|
|
39
|
+
exports.PO_ASK_USER_BLOCKED_EVENT = PO_ASK_USER_BLOCKED_EVENT;
|
|
40
|
+
exports.PO_ASK_USER_PROMPT_EVENT = PO_ASK_USER_PROMPT_EVENT;
|
|
41
41
|
|
|
42
42
|
//# sourceMappingURL=askUser.cjs.map
|
|
@@ -1 +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
|
|
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 PO_ASK_USER_PROMPT_EVENT = 'po/ask-user/prompt';\nexport const PO_ASK_USER_BLOCKED_EVENT = 'po/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 'po/ask-user/prompt'(event: AskUserPromptEvent): void;\n 'po/ask-user/blocked'(event: AskUserBlockedEvent): void;\n }\n}\n"],"mappings":";;;AAGA,MAAa,2BAA2B;AACxC,MAAa,4BAA4B;AAEzC,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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Static, Type } from "typebox";
|
|
2
2
|
//#region src/schemas/askUser.d.ts
|
|
3
3
|
/** Namespaced Cordis events emitted by the ask-user provider. */
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
4
|
+
export declare const PO_ASK_USER_PROMPT_EVENT = "po/ask-user/prompt";
|
|
5
|
+
export declare const PO_ASK_USER_BLOCKED_EVENT = "po/ask-user/blocked";
|
|
6
6
|
export declare const AskUserPromptOptionSchema: Type.TObject<{
|
|
7
7
|
label: Type.TString;
|
|
8
8
|
description: Type.TString;
|
|
@@ -39,8 +39,8 @@ export declare const AskUserBlockedEventSchema: Type.TObject<{
|
|
|
39
39
|
export type AskUserBlockedEvent = Static<typeof AskUserBlockedEventSchema>;
|
|
40
40
|
declare module '@deepseek-ai/cordis' {
|
|
41
41
|
interface Events {
|
|
42
|
-
'
|
|
43
|
-
'
|
|
42
|
+
'po/ask-user/prompt'(event: AskUserPromptEvent): void;
|
|
43
|
+
'po/ask-user/blocked'(event: AskUserBlockedEvent): void;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
//#endregion
|
|
@@ -1 +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
|
|
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;UAAzB,KAAA;;YACD,sBAAsB,cAAc;;YAGpC;IACR,qBAAqB,OAAO;IAC5B,sBAAsB,OAAO"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Type } from "typebox";
|
|
2
2
|
//#region src/schemas/askUser.ts
|
|
3
3
|
/** Namespaced Cordis events emitted by the ask-user provider. */
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const PO_ASK_USER_PROMPT_EVENT = "po/ask-user/prompt";
|
|
5
|
+
const PO_ASK_USER_BLOCKED_EVENT = "po/ask-user/blocked";
|
|
6
6
|
const MAX_QUESTIONS = 3;
|
|
7
7
|
const MAX_OPTIONS = 16;
|
|
8
8
|
const MAX_TEXT_LENGTH = 4096;
|
|
@@ -32,6 +32,6 @@ const AskUserPromptEventSchema = Type.Object({ questions: Type.Array(AskUserProm
|
|
|
32
32
|
}) }, { additionalProperties: false });
|
|
33
33
|
const AskUserBlockedEventSchema = Type.Object({ active: Type.Boolean() }, { additionalProperties: false });
|
|
34
34
|
//#endregion
|
|
35
|
-
export { AskUserBlockedEventSchema, AskUserPromptEventSchema, AskUserPromptOptionSchema, AskUserPromptQuestionSchema,
|
|
35
|
+
export { AskUserBlockedEventSchema, AskUserPromptEventSchema, AskUserPromptOptionSchema, AskUserPromptQuestionSchema, PO_ASK_USER_BLOCKED_EVENT, PO_ASK_USER_PROMPT_EVENT };
|
|
36
36
|
|
|
37
37
|
//# sourceMappingURL=askUser.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"askUser.mjs","names":[],"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
|
|
1
|
+
{"version":3,"file":"askUser.mjs","names":[],"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 PO_ASK_USER_PROMPT_EVENT = 'po/ask-user/prompt';\nexport const PO_ASK_USER_BLOCKED_EVENT = 'po/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 'po/ask-user/prompt'(event: AskUserPromptEvent): void;\n 'po/ask-user/blocked'(event: AskUserBlockedEvent): void;\n }\n}\n"],"mappings":";;;AAGA,MAAa,2BAA2B;AACxC,MAAa,4BAA4B;AAEzC,MAAM,gBAAgB;AACtB,MAAM,cAAc;AACpB,MAAM,kBAAkB;AAExB,MAAa,4BAA4B,KAAK,OAC5C;CACE,OAAO,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAgB,CAAC;CAC/D,aAAa,KAAK,OAAO,EAAE,WAAW,gBAAgB,CAAC;CACvD,YAAY,KAAK,QAAQ;AAC3B,GACA,EAAE,sBAAsB,MAAM,CAChC;AAGA,MAAa,8BAA8B,KAAK,OAC9C;CACE,UAAU,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAgB,CAAC;CAClE,QAAQ,KAAK,OAAO;EAAE,WAAW;EAAG,WAAW;CAAgB,CAAC;CAChE,aAAa,KAAK,QAAQ;CAC1B,SAAS,KAAK,MAAM,2BAA2B,EAAE,UAAU,YAAY,CAAC;AAC1E,GACA,EAAE,sBAAsB,MAAM,CAChC;AAGA,MAAa,2BAA2B,KAAK,OAC3C,EAAE,WAAW,KAAK,MAAM,6BAA6B;CAAE,UAAU;CAAG,UAAU;AAAc,CAAC,EAAE,GAC/F,EAAE,sBAAsB,MAAM,CAChC;AAGA,MAAa,4BAA4B,KAAK,OAAO,EAAE,QAAQ,KAAK,QAAQ,EAAE,GAAG,EAAE,sBAAsB,MAAM,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
let typebox = require("typebox");
|
|
2
2
|
//#region src/schemas/backgroundWork.ts
|
|
3
3
|
/** Cordis service that owns pull-based background-work contributions for sessions. */
|
|
4
|
-
const
|
|
4
|
+
const PO_BACKGROUND_WORK_SERVICE = "po/background-work";
|
|
5
5
|
/**
|
|
6
6
|
* Snapshot invalidation only. Consumers must reread the authoritative service snapshot
|
|
7
7
|
* and must not infer current work from the event payload.
|
|
8
8
|
*/
|
|
9
|
-
const
|
|
9
|
+
const PO_BACKGROUND_WORK_CHANGED_EVENT = "po/background-work/changed";
|
|
10
10
|
const BackgroundProviderWorkItemSchema = typebox.Type.Object({
|
|
11
11
|
id: typebox.Type.String({ minLength: 1 }),
|
|
12
12
|
sessionId: typebox.Type.String({ minLength: 1 }),
|
|
@@ -19,26 +19,26 @@ const BackgroundWorkItemSchema = typebox.Type.Object({
|
|
|
19
19
|
}, { additionalProperties: false });
|
|
20
20
|
/** Runners and subagents whose ownership keeps a settled session open. */
|
|
21
21
|
const BACKGROUND_WORK_HOLDING_PROVIDERS = [
|
|
22
|
-
"
|
|
22
|
+
"po-runner",
|
|
23
23
|
"team-direct-runs",
|
|
24
|
-
"
|
|
24
|
+
"po-task"
|
|
25
25
|
];
|
|
26
26
|
/** Missing runner status retains ownership until completion admission succeeds. */
|
|
27
27
|
function holdsSettledSession(item) {
|
|
28
28
|
if (!BACKGROUND_WORK_HOLDING_PROVIDERS.includes(item.provider)) return false;
|
|
29
|
-
return item.provider !== "
|
|
29
|
+
return item.provider !== "po-runner" || item.status === void 0 || item.status === "running";
|
|
30
30
|
}
|
|
31
31
|
/** Reads the active host-owned background-work coordination service. */
|
|
32
|
-
function
|
|
33
|
-
return ctx.get(
|
|
32
|
+
function readPoBackgroundWorkService(ctx) {
|
|
33
|
+
return ctx.get(PO_BACKGROUND_WORK_SERVICE);
|
|
34
34
|
}
|
|
35
35
|
//#endregion
|
|
36
36
|
exports.BACKGROUND_WORK_HOLDING_PROVIDERS = BACKGROUND_WORK_HOLDING_PROVIDERS;
|
|
37
37
|
exports.BackgroundProviderWorkItemSchema = BackgroundProviderWorkItemSchema;
|
|
38
38
|
exports.BackgroundWorkItemSchema = BackgroundWorkItemSchema;
|
|
39
|
-
exports.
|
|
40
|
-
exports.
|
|
39
|
+
exports.PO_BACKGROUND_WORK_CHANGED_EVENT = PO_BACKGROUND_WORK_CHANGED_EVENT;
|
|
40
|
+
exports.PO_BACKGROUND_WORK_SERVICE = PO_BACKGROUND_WORK_SERVICE;
|
|
41
41
|
exports.holdsSettledSession = holdsSettledSession;
|
|
42
|
-
exports.
|
|
42
|
+
exports.readPoBackgroundWorkService = readPoBackgroundWorkService;
|
|
43
43
|
|
|
44
44
|
//# sourceMappingURL=backgroundWork.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backgroundWork.cjs","names":["Type"],"sources":["../../../src/schemas/backgroundWork.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport { type Static, Type } from 'typebox';\n\n/** Cordis service that owns pull-based background-work contributions for sessions. */\nexport const
|
|
1
|
+
{"version":3,"file":"backgroundWork.cjs","names":["Type"],"sources":["../../../src/schemas/backgroundWork.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport { type Static, Type } from 'typebox';\n\n/** Cordis service that owns pull-based background-work contributions for sessions. */\nexport const PO_BACKGROUND_WORK_SERVICE = 'po/background-work';\n/**\n * Snapshot invalidation only. Consumers must reread the authoritative service snapshot\n * and must not infer current work from the event payload.\n */\nexport const PO_BACKGROUND_WORK_CHANGED_EVENT = 'po/background-work/changed';\n\nexport const BackgroundProviderWorkItemSchema = Type.Object(\n {\n id: Type.String({ minLength: 1 }),\n sessionId: Type.String({ minLength: 1 }),\n label: Type.Optional(Type.String({ minLength: 1 })),\n status: Type.Optional(Type.String({ minLength: 1 })),\n },\n { additionalProperties: false },\n);\nexport type BackgroundProviderWorkItem = Static<typeof BackgroundProviderWorkItemSchema>;\n\nexport const BackgroundWorkItemSchema = Type.Object(\n { ...BackgroundProviderWorkItemSchema.properties, provider: Type.String({ minLength: 1 }) },\n { additionalProperties: false },\n);\nexport type BackgroundWorkItem = Static<typeof BackgroundWorkItemSchema>;\n\n/** Runners and subagents whose ownership keeps a settled session open. */\nexport const BACKGROUND_WORK_HOLDING_PROVIDERS: readonly string[] = ['po-runner', 'team-direct-runs', 'po-task'];\n\n/** Missing runner status retains ownership until completion admission succeeds. */\nexport function holdsSettledSession(item: BackgroundWorkItem): boolean {\n if (!BACKGROUND_WORK_HOLDING_PROVIDERS.includes(item.provider)) return false;\n return item.provider !== 'po-runner' || item.status === undefined || item.status === 'running';\n}\n\nexport interface BackgroundWorkProvider {\n readonly provider: string;\n /**\n * Returns the current authoritative work set. Items must use their owning session ID.\n * Publish work before releasing asynchronous launch ownership, and retain terminal items\n * until the session accepts their completion handoff or a durable fallback owns delivery.\n */\n listActiveWork(): readonly BackgroundProviderWorkItem[];\n}\n\nexport interface BackgroundWorkProviderHandle {\n readonly provider: string;\n readonly generation: string;\n /** Announces that the provider's pull-based snapshot changed. This carries no snapshot state. */\n update(): void;\n dispose(): void;\n}\n\nexport interface PoBackgroundWorkSnapshot {\n readonly items: readonly BackgroundWorkItem[];\n readonly errors: readonly { readonly provider: string; readonly message: string }[];\n}\n\nexport interface PoBackgroundWorkChanged {\n readonly provider: string;\n readonly generation: string;\n readonly kind: 'registered' | 'updated' | 'unregistered';\n}\n\nexport interface PoBackgroundWorkService {\n /** Changes when the owning coordination service is replaced. */\n readonly generation: string;\n register(provider: BackgroundWorkProvider): BackgroundWorkProviderHandle;\n /** Returns an authoritative snapshot, filtered to an exact session when supplied. */\n snapshot(sessionId?: string): PoBackgroundWorkSnapshot;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'po/background-work': PoBackgroundWorkService;\n }\n\n interface Events {\n 'po/background-work/changed'(event: PoBackgroundWorkChanged): void;\n }\n}\n\n/** Reads the active host-owned background-work coordination service. */\nexport function readPoBackgroundWorkService(ctx: Context): PoBackgroundWorkService | undefined {\n return ctx.get(PO_BACKGROUND_WORK_SERVICE) as PoBackgroundWorkService | undefined;\n}\n"],"mappings":";;;AAIA,MAAa,6BAA6B;;;;;AAK1C,MAAa,mCAAmC;AAEhD,MAAa,mCAAmCA,QAAAA,KAAK,OACnD;CACE,IAAIA,QAAAA,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC;CAChC,WAAWA,QAAAA,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC;CACvC,OAAOA,QAAAA,KAAK,SAASA,QAAAA,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;CAClD,QAAQA,QAAAA,KAAK,SAASA,QAAAA,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AACrD,GACA,EAAE,sBAAsB,MAAM,CAChC;AAGA,MAAa,2BAA2BA,QAAAA,KAAK,OAC3C;CAAE,GAAG,iCAAiC;CAAY,UAAUA,QAAAA,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC;AAAE,GAC1F,EAAE,sBAAsB,MAAM,CAChC;;AAIA,MAAa,oCAAuD;CAAC;CAAa;CAAoB;AAAS;;AAG/G,SAAgB,oBAAoB,MAAmC;CACrE,IAAI,CAAC,kCAAkC,SAAS,KAAK,QAAQ,GAAG,OAAO;CACvE,OAAO,KAAK,aAAa,eAAe,KAAK,WAAW,KAAA,KAAa,KAAK,WAAW;AACvF;;AAkDA,SAAgB,4BAA4B,KAAmD;CAC7F,OAAO,IAAI,IAAI,0BAA0B;AAC3C"}
|
|
@@ -2,12 +2,12 @@ import { Static, Type } from "typebox";
|
|
|
2
2
|
import { Context } from "@deepseek-ai/cordis";
|
|
3
3
|
//#region src/schemas/backgroundWork.d.ts
|
|
4
4
|
/** Cordis service that owns pull-based background-work contributions for sessions. */
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const PO_BACKGROUND_WORK_SERVICE = "po/background-work";
|
|
6
6
|
/**
|
|
7
7
|
* Snapshot invalidation only. Consumers must reread the authoritative service snapshot
|
|
8
8
|
* and must not infer current work from the event payload.
|
|
9
9
|
*/
|
|
10
|
-
export declare const
|
|
10
|
+
export declare const PO_BACKGROUND_WORK_CHANGED_EVENT = "po/background-work/changed";
|
|
11
11
|
export declare const BackgroundProviderWorkItemSchema: Type.TObject<{
|
|
12
12
|
id: Type.TString;
|
|
13
13
|
sessionId: Type.TString;
|
|
@@ -43,34 +43,34 @@ export interface BackgroundWorkProviderHandle {
|
|
|
43
43
|
update(): void;
|
|
44
44
|
dispose(): void;
|
|
45
45
|
}
|
|
46
|
-
export interface
|
|
46
|
+
export interface PoBackgroundWorkSnapshot {
|
|
47
47
|
readonly items: readonly BackgroundWorkItem[];
|
|
48
48
|
readonly errors: readonly {
|
|
49
49
|
readonly provider: string;
|
|
50
50
|
readonly message: string;
|
|
51
51
|
}[];
|
|
52
52
|
}
|
|
53
|
-
export interface
|
|
53
|
+
export interface PoBackgroundWorkChanged {
|
|
54
54
|
readonly provider: string;
|
|
55
55
|
readonly generation: string;
|
|
56
56
|
readonly kind: 'registered' | 'updated' | 'unregistered';
|
|
57
57
|
}
|
|
58
|
-
export interface
|
|
58
|
+
export interface PoBackgroundWorkService {
|
|
59
59
|
/** Changes when the owning coordination service is replaced. */
|
|
60
60
|
readonly generation: string;
|
|
61
61
|
register(provider: BackgroundWorkProvider): BackgroundWorkProviderHandle;
|
|
62
62
|
/** Returns an authoritative snapshot, filtered to an exact session when supplied. */
|
|
63
|
-
snapshot(sessionId?: string):
|
|
63
|
+
snapshot(sessionId?: string): PoBackgroundWorkSnapshot;
|
|
64
64
|
}
|
|
65
65
|
declare module '@deepseek-ai/cordis' {
|
|
66
66
|
interface Context {
|
|
67
|
-
'
|
|
67
|
+
'po/background-work': PoBackgroundWorkService;
|
|
68
68
|
}
|
|
69
69
|
interface Events {
|
|
70
|
-
'
|
|
70
|
+
'po/background-work/changed'(event: PoBackgroundWorkChanged): void;
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
/** Reads the active host-owned background-work coordination service. */
|
|
74
|
-
export declare function
|
|
74
|
+
export declare function readPoBackgroundWorkService(ctx: Context): PoBackgroundWorkService | undefined;
|
|
75
75
|
//#endregion
|
|
76
76
|
//# sourceMappingURL=backgroundWork.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backgroundWork.d.mts","names":[],"sources":["../../../src/schemas/backgroundWork.ts"],"mappings":";;;;qBAIa;;;;;qBAKA;qBAEA,kCAAgC,KAAA;;;;;;YASjC,6BAA6B,cAAc;qBAE1C,0BAAwB,KAAA;;;;;;;YAIzB,qBAAqB,cAAc;;qBAGlC;;wBAGG,oBAAoB,MAAM;iBAKzB;WACN;;;;;;EAMT,2BAA2B;;iBAGZ;WACN;WACA;;EAET;EACA;;iBAGe;WACN,gBAAgB;WAChB;aAA4B;aAA2B;;;iBAGjD;WACN;WACA;WACA;;iBAGM;;WAEN;EACT,SAAS,UAAU,yBAAyB;;EAE5C,SAAS,qBAAqB;;;YAIpB;IACR,
|
|
1
|
+
{"version":3,"file":"backgroundWork.d.mts","names":[],"sources":["../../../src/schemas/backgroundWork.ts"],"mappings":";;;;qBAIa;;;;;qBAKA;qBAEA,kCAAgC,KAAA;;;;;;YASjC,6BAA6B,cAAc;qBAE1C,0BAAwB,KAAA;;;;;;;YAIzB,qBAAqB,cAAc;;qBAGlC;;wBAGG,oBAAoB,MAAM;iBAKzB;WACN;;;;;;EAMT,2BAA2B;;iBAGZ;WACN;WACA;;EAET;EACA;;iBAGe;WACN,gBAAgB;WAChB;aAA4B;aAA2B;;;iBAGjD;WACN;WACA;WACA;;iBAGM;;WAEN;EACT,SAAS,UAAU,yBAAyB;;EAE5C,SAAS,qBAAqB;;;YAIpB;IACR,sBAAsB;;YAGd;IACR,6BAA6B,OAAO;;;;wBAKxB,4BAA4B,KAAK,UAAU"}
|