@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionApiContracts.mjs","names":[],"sources":["../../../src/schemas/sessionApiContracts.ts"],"sourcesContent":["import { Type, type TSchema } from 'typebox';\n\nimport type { PoSocketContract } from './apiContracts';\nimport { ChannelFrameSchema, PoChannelsStateSchema } from './protocolChannelsContract';\nimport { chordMethods, type PoMethodSchemas } from './protocolContracts';\nimport { PoHubStateSchema } from './protocolHubContract';\nimport { PoThreadFrameSchema } from './protocolThreadContract';\nimport type { JsonValue } from './sessionProtocol';\n\nconst Text = Type.String();\nconst NumberValue = Type.Number();\nconst Flag = Type.Boolean();\nconst Json = Type.Unsafe<JsonValue>(\n Type.Unknown({\n description:\n 'Strict JSON application value supplied by the active tool, journal entry, or extension; validated by the Pi codec.',\n }),\n);\nconst Optional = Type.Optional;\nconst Strings = Type.Array(Text);\nconst Model = Type.Object({ provider: Text, id: Text });\nconst Thinking = Type.Union([\n Type.Literal('off'),\n Type.Literal('minimal'),\n Type.Literal('low'),\n Type.Literal('medium'),\n Type.Literal('high'),\n Type.Literal('max'),\n Type.Literal('xhigh'),\n]);\nconst Phase = Type.Union([\n Type.Literal('idle'),\n Type.Literal('turn'),\n Type.Literal('compaction'),\n Type.Literal('retry'),\n]);\nconst Image = Type.Object({ type: Type.Literal('image'), data: Text, mimeType: Text });\nconst TextPart = Type.Object({ type: Type.Literal('text'), text: Text });\nconst ThinkingPart = Type.Object({\n type: Type.Literal('thinking'),\n thinking: Text,\n redacted: Optional(Type.Literal(true)),\n});\nconst Content = Type.Union([Image, TextPart]);\nconst Usage = Type.Object({\n input: NumberValue,\n output: NumberValue,\n cacheRead: NumberValue,\n cacheWrite: NumberValue,\n total: NumberValue,\n});\nconst Message = Type.Object({ text: Text, images: Optional(Type.Array(Image)) });\nconst Lifecycle = Type.Object({\n revision: NumberValue,\n operation: Type.Union([\n Type.Null(),\n Type.Object({\n id: Text,\n kind: Type.Union([Type.Literal('run'), Type.Literal('compaction'), Type.Literal('navigation')]),\n status: Type.Union([Type.Literal('open'), Type.Literal('aborting')]),\n }),\n ]),\n paused: Flag,\n queue: Type.Array(\n Type.Object({\n id: Text,\n text: Text,\n images: Optional(Type.Array(Image)),\n delivery: Type.Union([Type.Literal('steer'), Type.Literal('followUp'), Type.Literal('nextRun')]),\n scheduling: Type.Union([Type.Literal('automatic'), Type.Literal('held')]),\n disposition: Type.Union([Type.Literal('pending'), Type.Literal('handoff')]),\n }),\n ),\n});\nconst Frame = Type.Intersect([Type.Object({ type: Text }), Type.Record(Text, Json)], {\n description: 'Discriminated extension presentation frame; selected channel schemas describe package payloads.',\n});\nconst ProtocolEvent = Type.Object({ sequence: NumberValue, frame: Frame });\nexport const SessionServiceStateSchema = Type.Object({\n snapshot: Type.Object({\n fastMode: Flag,\n locked: Flag,\n lifecycle: Optional(Lifecycle),\n }),\n presentation: Optional(\n Type.Object({\n revision: NumberValue,\n dropped: NumberValue,\n resetRevision: Optional(NumberValue),\n events: Type.Array(ProtocolEvent),\n projections: Type.Array(ProtocolEvent),\n }),\n ),\n live: Optional(\n Type.Object({\n phase: Phase,\n message: Optional(\n Type.Object({\n role: Type.Literal('assistant'),\n content: Type.Array(Type.Union([TextPart, ThinkingPart])),\n model: Text,\n timestamp: NumberValue,\n }),\n ),\n tools: Type.Record(\n Text,\n Type.Object({\n toolCallId: Text,\n toolName: Text,\n args: Json,\n partialResult: Optional(Type.Object({ content: Type.Array(Content), details: Optional(Json) })),\n }),\n ),\n }),\n ),\n});\n/** Argument and result schemas of the `po.session` methods; the Chord contract and the API docs both read them. */\nexport const SessionMethodSchemas = {\n readTranscriptPage: {\n args: Type.Object({\n cursor: Optional(Text),\n direction: Optional(Type.Union([Type.Literal('older'), Type.Literal('newer')])),\n limit: Optional(NumberValue),\n threadId: Optional(Text),\n }),\n result: Type.Object({\n entries: Type.Array(Json),\n startCursor: Type.Union([Text, Type.Null()]),\n endCursor: Type.Union([Text, Type.Null()]),\n olderCursor: Type.Union([Text, Type.Null()]),\n newerCursor: Type.Union([Text, Type.Null()]),\n generation: NumberValue,\n revision: NumberValue,\n context: Type.Array(Json),\n }),\n },\n prompt: {\n args: Type.Union([\n Text,\n Type.Object({\n ...Message.properties,\n waitFor: Optional(Type.Union([Type.Literal('accepted'), Type.Literal('settled')])),\n }),\n ]),\n },\n steer: { args: Type.Union([Text, Message]) },\n abort: {},\n abortOperation: { args: Type.Object({ operationId: Text }) },\n setModel: { args: Model },\n setThinking: { args: Thinking },\n setFastMode: { args: Flag },\n setAgentLock: { args: Flag },\n followUp: { args: Message },\n enqueueAutomatic: { args: Message, result: Type.Object({ id: Text }) },\n removeQueued: {\n args: Type.Object({ id: Text }),\n result: Type.Union([\n Type.Literal('removed'),\n Type.Literal('in_flight'),\n Type.Literal('already_consumed'),\n Type.Literal('not_found'),\n ]),\n },\n promoteQueued: {\n args: Type.Object({ id: Text, operationId: Optional(Text) }),\n result: Type.Union([\n Type.Literal('promoted'),\n Type.Literal('in_flight'),\n Type.Literal('target_changed'),\n Type.Literal('not_found'),\n ]),\n },\n resumeQueue: {},\n clearQueue: { result: Type.Object({ steering: Strings, followUp: Strings }) },\n rewind: {\n args: Type.Object({\n itemId: Text,\n summarize: Optional(Flag),\n customInstructions: Optional(Text),\n replaceInstructions: Optional(Flag),\n label: Optional(Text),\n }),\n result: Type.Object({\n editorText: Optional(Text),\n cancelled: Flag,\n aborted: Optional(Flag),\n summaryEntry: Optional(\n Type.Object({\n id: Text,\n parentId: Type.Union([Text, Type.Null()]),\n timestamp: Text,\n fromId: Text,\n summary: Text,\n details: Optional(Json),\n usage: Optional(Usage),\n fromHook: Optional(Flag),\n }),\n ),\n }),\n },\n extensionUiResponse: {\n args: Type.Union([\n Type.Object({ id: Text, value: Text }),\n Type.Object({ id: Text, confirmed: Flag }),\n Type.Object({ id: Text, cancelled: Type.Literal(true) }),\n ]),\n },\n getState: {\n result: Type.Object({\n model: Optional(Model),\n thinkingLevel: Thinking,\n fastMode: Flag,\n agentLocked: Optional(Flag),\n isStreaming: Flag,\n isCompacting: Flag,\n steeringMode: Type.Union([Type.Literal('all'), Type.Literal('one-at-a-time')]),\n followUpMode: Type.Union([Type.Literal('all'), Type.Literal('one-at-a-time')]),\n sessionId: Text,\n sessionName: Optional(Text),\n autoCompactionEnabled: Flag,\n messageCount: NumberValue,\n pendingMessageCount: NumberValue,\n operationId: Optional(Text),\n executionStatus: Optional(Type.Union([Type.Literal('open'), Type.Literal('aborting')])),\n queuePaused: Optional(Flag),\n queueRevision: Optional(NumberValue),\n }),\n },\n getSessionStats: {\n result: Type.Object({\n sessionId: Text,\n totalMessages: NumberValue,\n tokens: Usage,\n cost: NumberValue,\n contextUsage: Optional(\n Type.Object({\n tokens: Type.Union([NumberValue, Type.Null()]),\n contextWindow: NumberValue,\n percent: Type.Union([NumberValue, Type.Null()]),\n }),\n ),\n }),\n },\n getCommands: {\n result: Type.Array(\n Type.Object({\n name: Text,\n description: Optional(Text),\n source: Type.Union([Type.Literal('extension'), Type.Literal('prompt'), Type.Literal('skill')]),\n sourceInfo: Optional(\n Type.Object({\n path: Text,\n source: Text,\n scope: Type.Union([Type.Literal('user'), Type.Literal('project'), Type.Literal('temporary')]),\n origin: Type.Union([Type.Literal('package'), Type.Literal('top-level')]),\n baseDir: Optional(Text),\n }),\n ),\n }),\n ),\n },\n getAvailableModels: { result: Type.Array(Model) },\n getAvailableThinkingLevels: { result: Type.Array(Thinking) },\n compact: { args: Type.Object({ customInstructions: Optional(Text) }), result: Json },\n setName: { args: Text },\n setGroups: { args: Type.Array(Text) },\n};\n/** The `po.session` methods as Chord specs. */\nexport const SessionMethods = chordMethods(SessionMethodSchemas);\n\nconst ErrorSchema = Type.Object({ code: Text, message: Text });\nconst documented = (\n id: string,\n service: string,\n member: string,\n direction: PoSocketContract['direction'],\n input: TSchema,\n description: string,\n): PoSocketContract => ({\n id,\n scope: service === 'po.hub' ? 'global' : 'session',\n service,\n member,\n direction,\n kind: direction === 'server-to-client' ? 'state' : 'method',\n input,\n ...(direction === 'server-to-client' ? {} : { errors: ErrorSchema }),\n description,\n});\nexport const sessionSocketContracts: PoSocketContract[] = [\n ...Object.entries<PoMethodSchemas>(SessionMethodSchemas).map(([member, { args, result }]): PoSocketContract => ({\n id: `session.${member}`,\n scope: 'session',\n service: 'po.session',\n member,\n direction: 'client-to-server',\n kind: 'method',\n description: `Session ${member}. The Chord call carries the argument; a void result is null.`,\n input: Type.Tuple(args === undefined ? [] : ([args] as TSchema[])),\n ...(result === undefined ? {} : { output: result }),\n errors: ErrorSchema,\n })),\n documented(\n 'session.state',\n 'po.session',\n 'state',\n 'server-to-client',\n SessionServiceStateSchema,\n 'The `state` member of `po.session`, reconstructed from Chord snapshot and delta frames.',\n ),\n documented(\n 'hub.state',\n 'po.hub',\n 'state',\n 'server-to-client',\n PoHubStateSchema,\n 'Sessions and workspaces this connection may see, and notices it has not acknowledged.',\n ),\n documented(\n 'thread.frame',\n 'po.thread',\n 'frame',\n 'server-to-client',\n PoThreadFrameSchema,\n 'The latest frame of one child thread: transcript_state while it runs, transcript_ready once finished.',\n ),\n documented(\n 'channels.latest',\n 'po.channels',\n 'latest',\n 'server-to-client',\n PoChannelsStateSchema,\n 'The latest payload of each extension channel frame type for one session.',\n ),\n documented(\n 'channels.receive',\n 'po.channels',\n 'receive',\n 'client-to-server',\n Type.Tuple([ChannelFrameSchema]),\n 'Send one extension channel frame to the session.',\n ),\n];\n"],"mappings":";;;;;;AASA,MAAM,OAAO,KAAK,OAAO;AACzB,MAAM,cAAc,KAAK,OAAO;AAChC,MAAM,OAAO,KAAK,QAAQ;AAC1B,MAAM,OAAO,KAAK,OAChB,KAAK,QAAQ,EACX,aACE,qHACJ,CAAC,CACH;AACA,MAAM,WAAW,KAAK;AACtB,MAAM,UAAU,KAAK,MAAM,IAAI;AAC/B,MAAM,QAAQ,KAAK,OAAO;CAAE,UAAU;CAAM,IAAI;AAAK,CAAC;AACtD,MAAM,WAAW,KAAK,MAAM;CAC1B,KAAK,QAAQ,KAAK;CAClB,KAAK,QAAQ,SAAS;CACtB,KAAK,QAAQ,KAAK;CAClB,KAAK,QAAQ,QAAQ;CACrB,KAAK,QAAQ,MAAM;CACnB,KAAK,QAAQ,KAAK;CAClB,KAAK,QAAQ,OAAO;AACtB,CAAC;AACD,MAAM,QAAQ,KAAK,MAAM;CACvB,KAAK,QAAQ,MAAM;CACnB,KAAK,QAAQ,MAAM;CACnB,KAAK,QAAQ,YAAY;CACzB,KAAK,QAAQ,OAAO;AACtB,CAAC;AACD,MAAM,QAAQ,KAAK,OAAO;CAAE,MAAM,KAAK,QAAQ,OAAO;CAAG,MAAM;CAAM,UAAU;AAAK,CAAC;AACrF,MAAM,WAAW,KAAK,OAAO;CAAE,MAAM,KAAK,QAAQ,MAAM;CAAG,MAAM;AAAK,CAAC;AACvE,MAAM,eAAe,KAAK,OAAO;CAC/B,MAAM,KAAK,QAAQ,UAAU;CAC7B,UAAU;CACV,UAAU,SAAS,KAAK,QAAQ,IAAI,CAAC;AACvC,CAAC;AACD,MAAM,UAAU,KAAK,MAAM,CAAC,OAAO,QAAQ,CAAC;AAC5C,MAAM,QAAQ,KAAK,OAAO;CACxB,OAAO;CACP,QAAQ;CACR,WAAW;CACX,YAAY;CACZ,OAAO;AACT,CAAC;AACD,MAAM,UAAU,KAAK,OAAO;CAAE,MAAM;CAAM,QAAQ,SAAS,KAAK,MAAM,KAAK,CAAC;AAAE,CAAC;AAC/E,MAAM,YAAY,KAAK,OAAO;CAC5B,UAAU;CACV,WAAW,KAAK,MAAM,CACpB,KAAK,KAAK,GACV,KAAK,OAAO;EACV,IAAI;EACJ,MAAM,KAAK,MAAM;GAAC,KAAK,QAAQ,KAAK;GAAG,KAAK,QAAQ,YAAY;GAAG,KAAK,QAAQ,YAAY;EAAC,CAAC;EAC9F,QAAQ,KAAK,MAAM,CAAC,KAAK,QAAQ,MAAM,GAAG,KAAK,QAAQ,UAAU,CAAC,CAAC;CACrE,CAAC,CACH,CAAC;CACD,QAAQ;CACR,OAAO,KAAK,MACV,KAAK,OAAO;EACV,IAAI;EACJ,MAAM;EACN,QAAQ,SAAS,KAAK,MAAM,KAAK,CAAC;EAClC,UAAU,KAAK,MAAM;GAAC,KAAK,QAAQ,OAAO;GAAG,KAAK,QAAQ,UAAU;GAAG,KAAK,QAAQ,SAAS;EAAC,CAAC;EAC/F,YAAY,KAAK,MAAM,CAAC,KAAK,QAAQ,WAAW,GAAG,KAAK,QAAQ,MAAM,CAAC,CAAC;EACxE,aAAa,KAAK,MAAM,CAAC,KAAK,QAAQ,SAAS,GAAG,KAAK,QAAQ,SAAS,CAAC,CAAC;CAC5E,CAAC,CACH;AACF,CAAC;AACD,MAAM,QAAQ,KAAK,UAAU,CAAC,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,OAAO,MAAM,IAAI,CAAC,GAAG,EACnF,aAAa,kGACf,CAAC;AACD,MAAM,gBAAgB,KAAK,OAAO;CAAE,UAAU;CAAa,OAAO;AAAM,CAAC;AACzE,MAAa,4BAA4B,KAAK,OAAO;CACnD,UAAU,KAAK,OAAO;EACpB,UAAU;EACV,QAAQ;EACR,WAAW,SAAS,SAAS;CAC/B,CAAC;CACD,cAAc,SACZ,KAAK,OAAO;EACV,UAAU;EACV,SAAS;EACT,eAAe,SAAS,WAAW;EACnC,QAAQ,KAAK,MAAM,aAAa;EAChC,aAAa,KAAK,MAAM,aAAa;CACvC,CAAC,CACH;CACA,MAAM,SACJ,KAAK,OAAO;EACV,OAAO;EACP,SAAS,SACP,KAAK,OAAO;GACV,MAAM,KAAK,QAAQ,WAAW;GAC9B,SAAS,KAAK,MAAM,KAAK,MAAM,CAAC,UAAU,YAAY,CAAC,CAAC;GACxD,OAAO;GACP,WAAW;EACb,CAAC,CACH;EACA,OAAO,KAAK,OACV,MACA,KAAK,OAAO;GACV,YAAY;GACZ,UAAU;GACV,MAAM;GACN,eAAe,SAAS,KAAK,OAAO;IAAE,SAAS,KAAK,MAAM,OAAO;IAAG,SAAS,SAAS,IAAI;GAAE,CAAC,CAAC;EAChG,CAAC,CACH;CACF,CAAC,CACH;AACF,CAAC;;AAED,MAAa,uBAAuB;CAClC,oBAAoB;EAClB,MAAM,KAAK,OAAO;GAChB,QAAQ,SAAS,IAAI;GACrB,WAAW,SAAS,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,GAAG,KAAK,QAAQ,OAAO,CAAC,CAAC,CAAC;GAC9E,OAAO,SAAS,WAAW;GAC3B,UAAU,SAAS,IAAI;EACzB,CAAC;EACD,QAAQ,KAAK,OAAO;GAClB,SAAS,KAAK,MAAM,IAAI;GACxB,aAAa,KAAK,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;GAC3C,WAAW,KAAK,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;GACzC,aAAa,KAAK,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;GAC3C,aAAa,KAAK,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;GAC3C,YAAY;GACZ,UAAU;GACV,SAAS,KAAK,MAAM,IAAI;EAC1B,CAAC;CACH;CACA,QAAQ,EACN,MAAM,KAAK,MAAM,CACf,MACA,KAAK,OAAO;EACV,GAAG,QAAQ;EACX,SAAS,SAAS,KAAK,MAAM,CAAC,KAAK,QAAQ,UAAU,GAAG,KAAK,QAAQ,SAAS,CAAC,CAAC,CAAC;CACnF,CAAC,CACH,CAAC,EACH;CACA,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,OAAO,CAAC,EAAE;CAC3C,OAAO,CAAC;CACR,gBAAgB,EAAE,MAAM,KAAK,OAAO,EAAE,aAAa,KAAK,CAAC,EAAE;CAC3D,UAAU,EAAE,MAAM,MAAM;CACxB,aAAa,EAAE,MAAM,SAAS;CAC9B,aAAa,EAAE,MAAM,KAAK;CAC1B,cAAc,EAAE,MAAM,KAAK;CAC3B,UAAU,EAAE,MAAM,QAAQ;CAC1B,kBAAkB;EAAE,MAAM;EAAS,QAAQ,KAAK,OAAO,EAAE,IAAI,KAAK,CAAC;CAAE;CACrE,cAAc;EACZ,MAAM,KAAK,OAAO,EAAE,IAAI,KAAK,CAAC;EAC9B,QAAQ,KAAK,MAAM;GACjB,KAAK,QAAQ,SAAS;GACtB,KAAK,QAAQ,WAAW;GACxB,KAAK,QAAQ,kBAAkB;GAC/B,KAAK,QAAQ,WAAW;EAC1B,CAAC;CACH;CACA,eAAe;EACb,MAAM,KAAK,OAAO;GAAE,IAAI;GAAM,aAAa,SAAS,IAAI;EAAE,CAAC;EAC3D,QAAQ,KAAK,MAAM;GACjB,KAAK,QAAQ,UAAU;GACvB,KAAK,QAAQ,WAAW;GACxB,KAAK,QAAQ,gBAAgB;GAC7B,KAAK,QAAQ,WAAW;EAC1B,CAAC;CACH;CACA,aAAa,CAAC;CACd,YAAY,EAAE,QAAQ,KAAK,OAAO;EAAE,UAAU;EAAS,UAAU;CAAQ,CAAC,EAAE;CAC5E,QAAQ;EACN,MAAM,KAAK,OAAO;GAChB,QAAQ;GACR,WAAW,SAAS,IAAI;GACxB,oBAAoB,SAAS,IAAI;GACjC,qBAAqB,SAAS,IAAI;GAClC,OAAO,SAAS,IAAI;EACtB,CAAC;EACD,QAAQ,KAAK,OAAO;GAClB,YAAY,SAAS,IAAI;GACzB,WAAW;GACX,SAAS,SAAS,IAAI;GACtB,cAAc,SACZ,KAAK,OAAO;IACV,IAAI;IACJ,UAAU,KAAK,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IACxC,WAAW;IACX,QAAQ;IACR,SAAS;IACT,SAAS,SAAS,IAAI;IACtB,OAAO,SAAS,KAAK;IACrB,UAAU,SAAS,IAAI;GACzB,CAAC,CACH;EACF,CAAC;CACH;CACA,qBAAqB,EACnB,MAAM,KAAK,MAAM;EACf,KAAK,OAAO;GAAE,IAAI;GAAM,OAAO;EAAK,CAAC;EACrC,KAAK,OAAO;GAAE,IAAI;GAAM,WAAW;EAAK,CAAC;EACzC,KAAK,OAAO;GAAE,IAAI;GAAM,WAAW,KAAK,QAAQ,IAAI;EAAE,CAAC;CACzD,CAAC,EACH;CACA,UAAU,EACR,QAAQ,KAAK,OAAO;EAClB,OAAO,SAAS,KAAK;EACrB,eAAe;EACf,UAAU;EACV,aAAa,SAAS,IAAI;EAC1B,aAAa;EACb,cAAc;EACd,cAAc,KAAK,MAAM,CAAC,KAAK,QAAQ,KAAK,GAAG,KAAK,QAAQ,eAAe,CAAC,CAAC;EAC7E,cAAc,KAAK,MAAM,CAAC,KAAK,QAAQ,KAAK,GAAG,KAAK,QAAQ,eAAe,CAAC,CAAC;EAC7E,WAAW;EACX,aAAa,SAAS,IAAI;EAC1B,uBAAuB;EACvB,cAAc;EACd,qBAAqB;EACrB,aAAa,SAAS,IAAI;EAC1B,iBAAiB,SAAS,KAAK,MAAM,CAAC,KAAK,QAAQ,MAAM,GAAG,KAAK,QAAQ,UAAU,CAAC,CAAC,CAAC;EACtF,aAAa,SAAS,IAAI;EAC1B,eAAe,SAAS,WAAW;CACrC,CAAC,EACH;CACA,iBAAiB,EACf,QAAQ,KAAK,OAAO;EAClB,WAAW;EACX,eAAe;EACf,QAAQ;EACR,MAAM;EACN,cAAc,SACZ,KAAK,OAAO;GACV,QAAQ,KAAK,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC;GAC7C,eAAe;GACf,SAAS,KAAK,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC;EAChD,CAAC,CACH;CACF,CAAC,EACH;CACA,aAAa,EACX,QAAQ,KAAK,MACX,KAAK,OAAO;EACV,MAAM;EACN,aAAa,SAAS,IAAI;EAC1B,QAAQ,KAAK,MAAM;GAAC,KAAK,QAAQ,WAAW;GAAG,KAAK,QAAQ,QAAQ;GAAG,KAAK,QAAQ,OAAO;EAAC,CAAC;EAC7F,YAAY,SACV,KAAK,OAAO;GACV,MAAM;GACN,QAAQ;GACR,OAAO,KAAK,MAAM;IAAC,KAAK,QAAQ,MAAM;IAAG,KAAK,QAAQ,SAAS;IAAG,KAAK,QAAQ,WAAW;GAAC,CAAC;GAC5F,QAAQ,KAAK,MAAM,CAAC,KAAK,QAAQ,SAAS,GAAG,KAAK,QAAQ,WAAW,CAAC,CAAC;GACvE,SAAS,SAAS,IAAI;EACxB,CAAC,CACH;CACF,CAAC,CACH,EACF;CACA,oBAAoB,EAAE,QAAQ,KAAK,MAAM,KAAK,EAAE;CAChD,4BAA4B,EAAE,QAAQ,KAAK,MAAM,QAAQ,EAAE;CAC3D,SAAS;EAAE,MAAM,KAAK,OAAO,EAAE,oBAAoB,SAAS,IAAI,EAAE,CAAC;EAAG,QAAQ;CAAK;CACnF,SAAS,EAAE,MAAM,KAAK;CACtB,WAAW,EAAE,MAAM,KAAK,MAAM,IAAI,EAAE;AACtC;;AAEA,MAAa,iBAAiB,aAAa,oBAAoB;AAE/D,MAAM,cAAc,KAAK,OAAO;CAAE,MAAM;CAAM,SAAS;AAAK,CAAC;AAC7D,MAAM,cACJ,IACA,SACA,QACA,WACA,OACA,iBACsB;CACtB;CACA,OAAO,YAAY,WAAW,WAAW;CACzC;CACA;CACA;CACA,MAAM,cAAc,qBAAqB,UAAU;CACnD;CACA,GAAI,cAAc,qBAAqB,CAAC,IAAI,EAAE,QAAQ,YAAY;CAClE;AACF;AAC0D;CACxD,GAAG,OAAO,QAAyB,oBAAoB,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,eAAiC;EAC9G,IAAI,WAAW;EACf,OAAO;EACP,SAAS;EACT;EACA,WAAW;EACX,MAAM;EACN,aAAa,WAAW,OAAO;EAC/B,OAAO,KAAK,MAAM,SAAS,KAAA,IAAY,CAAC,IAAK,CAAC,IAAI,CAAe;EACjE,GAAI,WAAW,KAAA,IAAY,CAAC,IAAI,EAAE,QAAQ,OAAO;EACjD,QAAQ;CACV,EAAE;CACF,WACE,iBACA,cACA,SACA,oBACA,2BACA,yFACF;CACA,WACE,aACA,UACA,SACA,oBACA,kBACA,uFACF;CACA,WACE,gBACA,aACA,SACA,oBACA,qBACA,uGACF;CACA,WACE,mBACA,eACA,UACA,oBACA,uBACA,0EACF;CACA,WACE,oBACA,eACA,WACA,oBACA,KAAK,MAAM,CAAC,kBAAkB,CAAC,GAC/B,kDACF;AACF"}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
let _earendil_works_chord = require("@earendil-works/chord");
|
|
2
1
|
//#region src/schemas/sessionProtocol.ts
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
/** Presentation frame a session emits after its groups change: `{ type, groups: string[] }`. */
|
|
3
|
+
const SESSION_GROUPS_CHANGED_FRAME = "session_groups_changed";
|
|
4
|
+
const MAX_SESSION_GROUPS = 8;
|
|
5
|
+
const MAX_SESSION_GROUP_LENGTH = 32;
|
|
6
|
+
/**
|
|
7
|
+
* Trims, drops blanks, and deduplicates group names (case-sensitive, first spelling wins).
|
|
8
|
+
* Throws when the input is not a string list or breaks a limit, so callers never store a guess.
|
|
9
|
+
*/
|
|
10
|
+
function normalizeSessionGroups(groups) {
|
|
11
|
+
if (!Array.isArray(groups) || groups.some((group) => typeof group !== "string")) throw new Error("Session groups must be a list of names.");
|
|
12
|
+
const names = [...new Set(groups.map((group) => group.trim()).filter((group) => group !== ""))];
|
|
13
|
+
if (names.length > 8) throw new Error(`A session can belong to at most 8 groups.`);
|
|
14
|
+
const long = names.find((group) => group.length > 32);
|
|
15
|
+
if (long !== void 0) throw new Error(`Group name '${long}' is longer than 32 characters.`);
|
|
16
|
+
return names;
|
|
17
|
+
}
|
|
9
18
|
//#endregion
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
14
|
-
exports.DoomSessionManagementService = DoomSessionManagementService;
|
|
15
|
-
exports.DoomSessionService = DoomSessionService;
|
|
19
|
+
exports.MAX_SESSION_GROUPS = MAX_SESSION_GROUPS;
|
|
20
|
+
exports.MAX_SESSION_GROUP_LENGTH = MAX_SESSION_GROUP_LENGTH;
|
|
21
|
+
exports.SESSION_GROUPS_CHANGED_FRAME = SESSION_GROUPS_CHANGED_FRAME;
|
|
22
|
+
exports.normalizeSessionGroups = normalizeSessionGroups;
|
|
16
23
|
|
|
17
24
|
//# sourceMappingURL=sessionProtocol.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionProtocol.cjs","names":["defineService"],"sources":["../../../src/schemas/sessionProtocol.ts"],"sourcesContent":["import { defineService, type Context, type ReplicatedState } from '@earendil-works/chord';\n\nimport type { DoomSessionUpdateEvent } from './sessionUpdates';\n\nexport const DOOM_SESSION_SERVICE_ID = 'po.session.v2';\nexport const DOOM_SESSION_MANAGEMENT_SERVICE_ID = 'po.session-management.v1';\nexport const DOOM_COCKPIT_SERVER_ID = '646f6f6d-7069-4000-8000-000000000001';\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };\nexport type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';\nexport type SessionPhase = 'idle' | 'turn' | 'compaction' | 'retry';\n\n/** Native execution ownership plus Po's durable pending-input policy. */\nexport interface SessionLifecycle {\n revision: number;\n operation: { id: string; kind: 'run' | 'compaction' | 'navigation'; status: 'open' | 'aborting' } | null;\n paused: boolean;\n queue: Array<{\n id: string;\n text: string;\n images?: ImageContentPart[];\n delivery: 'steer' | 'followUp' | 'nextRun';\n scheduling: 'automatic' | 'held';\n disposition: 'pending' | 'handoff' | 'uncertain';\n }>;\n}\n\nexport interface ModelRef {\n provider: string;\n id: string;\n}\n\nexport interface TextContentPart {\n type: 'text';\n text: string;\n}\n\nexport interface ImageContentPart {\n type: 'image';\n data: string;\n mimeType: string;\n}\n\nexport interface ThinkingContentPart {\n type: 'thinking';\n thinking: string;\n redacted?: true;\n}\n\nexport interface ToolCallContentPart {\n type: 'toolCall';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n}\n\nexport interface UserTranscriptItem {\n id: string;\n role: 'user';\n content: Array<TextContentPart | ImageContentPart>;\n timestamp: number;\n}\n\nexport interface AssistantTranscriptItem {\n id: string;\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart | ToolCallContentPart>;\n model: ModelRef;\n status: 'streaming' | 'complete' | 'aborted' | 'error';\n stopReason?: 'stop' | 'length' | 'toolUse' | 'aborted' | 'error';\n errorMessage?: string;\n timestamp: number;\n}\n\nexport interface ToolTranscriptItem {\n id: string;\n role: 'tool';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n content: Array<TextContentPart | ImageContentPart>;\n details?: JsonValue;\n status: 'running' | 'complete' | 'error';\n isError: boolean;\n timestamp: number;\n}\n\nexport type TranscriptItem = UserTranscriptItem | AssistantTranscriptItem | ToolTranscriptItem;\n\nexport type TranscriptProgress =\n | { type: 'item_started'; item: TranscriptItem }\n | { type: 'item_updated'; item: TranscriptItem }\n | { type: 'item_finished'; item: TranscriptItem };\n\nexport interface SessionSnapshot {\n id: string;\n cwd: string;\n name?: string;\n createdAt: number;\n updatedAt: number;\n phase: SessionPhase;\n model: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n attached: boolean;\n locked: boolean;\n revision: number;\n transcript: TranscriptItem[];\n queuedSteer: UserTranscriptItem[];\n queuedSteerCount: number;\n /** Authoritative execution and queue state, independent of transcript replay. */\n lifecycle?: SessionLifecycle;\n}\n\nexport interface ProtocolEvent {\n sequence: number;\n frame: { type: string; [key: string]: JsonValue };\n}\n\nexport interface SessionPresentation {\n revision: number;\n dropped: number;\n /** A branch replacement invalidates earlier presentation state, even without ring overflow. */\n resetRevision?: number;\n events: ProtocolEvent[];\n projections: ProtocolEvent[];\n}\n\nexport interface HubService {\n readonly state: ReplicatedState<{ events: ProtocolEvent[] }>;\n send(frame: { type: string; [key: string]: JsonValue }, context: Context): Promise<void>;\n}\n\nexport const DoomHubService = defineService<HubService>('po.hub.v1');\n\nexport interface SessionServiceState {\n snapshot: Omit<SessionSnapshot, 'transcript'>;\n progress: TranscriptProgress | null;\n /** ACP v2-shaped agent events, replayed in sequence across fresh bindings. */\n updates?: DoomSessionUpdateEvent[];\n presentation?: SessionPresentation;\n /** Current concurrent drafts/tools, so a fresh attachment does not depend on missed progress events. */\n inFlight?: TranscriptItem[];\n}\n\nexport interface TranscriptPageRequest {\n cursor?: string;\n direction?: 'older' | 'newer';\n limit?: number;\n threadId?: string;\n}\n\nexport interface TranscriptPage {\n entries: JsonValue[];\n startCursor: string | null;\n endCursor: string | null;\n olderCursor: string | null;\n newerCursor: string | null;\n generation: number;\n revision: number;\n /** Profile and other context preceding this page. */\n context: JsonValue[];\n /** Current drafts are separate from committed history. */\n drafts: TranscriptItem[];\n}\n\nexport interface SessionMessageArgs {\n text: string;\n images?: ImageContentPart[];\n}\n\nexport interface PromptArgs extends SessionMessageArgs {\n /** Interactive clients acknowledge preflight without owning the supervised turn's lifetime. */\n waitFor?: 'accepted' | 'settled';\n}\nexport type SteerArgs = SessionMessageArgs;\nexport type FollowUpArgs = SessionMessageArgs;\nexport interface QueuedItemArgs {\n id: string;\n}\nexport interface PromoteQueuedArgs extends QueuedItemArgs {\n operationId?: string;\n}\n\nexport interface ClearQueueResult {\n steering: string[];\n followUp: string[];\n}\n\nexport interface RewindArgs {\n itemId: string;\n summarize?: boolean;\n customInstructions?: string;\n replaceInstructions?: boolean;\n label?: string;\n}\n\nexport interface SessionUsage {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n total: number;\n}\n\nexport interface RewindSummaryEntry {\n id: string;\n parentId: string | null;\n timestamp: string;\n fromId: string;\n summary: string;\n details?: JsonValue;\n usage?: SessionUsage;\n fromHook?: boolean;\n}\n\nexport interface RewindResult {\n editorText?: string;\n cancelled: boolean;\n aborted?: boolean;\n summaryEntry?: RewindSummaryEntry;\n}\n\nexport type ExtensionUiResponse =\n | { id: string; value: string }\n | { id: string; confirmed: boolean }\n | { id: string; cancelled: true };\n\nexport interface SessionStateInfo {\n model?: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n agentLocked?: boolean;\n isStreaming: boolean;\n isCompacting: boolean;\n steeringMode: 'all' | 'one-at-a-time';\n followUpMode: 'all' | 'one-at-a-time';\n sessionFile?: string;\n sessionId: string;\n sessionName?: string;\n autoCompactionEnabled: boolean;\n messageCount: number;\n pendingMessageCount: number;\n operationId?: string;\n executionStatus?: 'open' | 'aborting';\n queuePaused?: boolean;\n queueRevision?: number;\n}\n\nexport interface SessionStats {\n sessionFile?: string;\n sessionId: string;\n totalMessages: number;\n tokens: SessionUsage;\n cost: number;\n contextUsage?: {\n tokens: number | null;\n contextWindow: number;\n percent: number | null;\n };\n}\n\nexport interface SessionCommandSourceInfo {\n path: string;\n source: string;\n scope: 'user' | 'project' | 'temporary';\n origin: 'package' | 'top-level';\n baseDir?: string;\n}\n\nexport interface SessionCommand {\n name: string;\n description?: string;\n source: 'extension' | 'prompt' | 'skill';\n sourceInfo?: SessionCommandSourceInfo;\n}\n\nexport interface SessionService {\n readonly state: ReplicatedState<SessionServiceState>;\n readTranscriptPage(args: TranscriptPageRequest, context: Context): Promise<TranscriptPage>;\n prompt(text: string, context: Context): Promise<void>;\n prompt(args: PromptArgs, context: Context): Promise<void>;\n steer(text: string, context: Context): Promise<void>;\n steer(args: SteerArgs, context: Context): Promise<void>;\n abort(context: Context): Promise<void>;\n abortOperation(args: { operationId: string }, context: Context): Promise<void>;\n setModel(model: ModelRef, context: Context): Promise<void>;\n setThinking(thinkingLevel: ThinkingLevel, context: Context): Promise<void>;\n setFastMode(enabled: boolean, context: Context): Promise<void>;\n setAgentLock(locked: boolean, context: Context): Promise<void>;\n followUp(args: FollowUpArgs, context: Context): Promise<void>;\n enqueueAutomatic(args: FollowUpArgs, context: Context): Promise<{ id: string }>;\n removeQueued(\n args: QueuedItemArgs,\n context: Context,\n ): Promise<'removed' | 'in_flight' | 'already_consumed' | 'not_found'>;\n promoteQueued(\n args: PromoteQueuedArgs,\n context: Context,\n ): Promise<'promoted' | 'in_flight' | 'target_changed' | 'not_found'>;\n resumeQueue(context: Context): Promise<void>;\n clearQueue(context: Context): Promise<ClearQueueResult>;\n rewind(args: RewindArgs, context: Context): Promise<RewindResult>;\n extensionUiResponse(response: ExtensionUiResponse, context: Context): Promise<void>;\n getState(context: Context): Promise<SessionStateInfo>;\n getSessionStats(context: Context): Promise<SessionStats>;\n getCommands(context: Context): Promise<SessionCommand[]>;\n getAvailableModels(context: Context): Promise<ModelRef[]>;\n getAvailableThinkingLevels(context: Context): Promise<ThinkingLevel[]>;\n compact(args: { customInstructions?: string }, context: Context): Promise<JsonValue>;\n setName(name: string, context: Context): Promise<void>;\n}\n\nexport interface SessionManagementService {\n attach(sessionId: string, context: Context): Promise<void>;\n detach(context: Context): Promise<void>;\n}\n\nexport const DoomSessionService = defineService<SessionService>(DOOM_SESSION_SERVICE_ID);\nexport const DoomSessionManagementService = defineService<SessionManagementService>(DOOM_SESSION_MANAGEMENT_SERVICE_ID);\n"],"mappings":";;AAIA,MAAa,0BAA0B;AACvC,MAAa,qCAAqC;AAClD,MAAa,yBAAyB;AA+HtC,MAAa,kBAAA,GAAiBA,sBAAAA,cAAAA,CAA0B,WAAW;AAyLnE,MAAa,sBAAA,GAAqBA,sBAAAA,cAAAA,CAA8B,uBAAuB;AACvF,MAAa,gCAAA,GAA+BA,sBAAAA,cAAAA,CAAwC,kCAAkC"}
|
|
1
|
+
{"version":3,"file":"sessionProtocol.cjs","names":[],"sources":["../../../src/schemas/sessionProtocol.ts"],"sourcesContent":["import type { ReplicatedState } from '@earendil-works/chord';\nimport type { Context } from '@earendil-works/chord/context';\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };\nexport type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';\nexport type SessionPhase = 'idle' | 'turn' | 'compaction' | 'retry';\n\n/** Native execution ownership plus Po's durable pending-input policy. */\nexport interface SessionLifecycle {\n revision: number;\n operation: { id: string; kind: 'run' | 'compaction' | 'navigation'; status: 'open' | 'aborting' } | null;\n paused: boolean;\n queue: Array<{\n id: string;\n text: string;\n images?: ImageContentPart[];\n delivery: 'steer' | 'followUp' | 'nextRun';\n scheduling: 'automatic' | 'held';\n disposition: 'pending' | 'handoff';\n }>;\n}\n\nexport interface ModelRef {\n provider: string;\n id: string;\n}\n\nexport interface TextContentPart {\n type: 'text';\n text: string;\n}\n\nexport interface ImageContentPart {\n type: 'image';\n data: string;\n mimeType: string;\n}\n\nexport interface ThinkingContentPart {\n type: 'thinking';\n thinking: string;\n redacted?: true;\n}\n\nexport interface ToolCallContentPart {\n type: 'toolCall';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n}\n\nexport interface UserTranscriptItem {\n id: string;\n role: 'user';\n content: Array<TextContentPart | ImageContentPart>;\n timestamp: number;\n}\n\nexport interface AssistantTranscriptItem {\n id: string;\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart | ToolCallContentPart>;\n model: ModelRef;\n status: 'streaming' | 'complete' | 'aborted' | 'error';\n stopReason?: 'stop' | 'length' | 'toolUse' | 'aborted' | 'error';\n errorMessage?: string;\n timestamp: number;\n}\n\nexport interface ToolTranscriptItem {\n id: string;\n role: 'tool';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n content: Array<TextContentPart | ImageContentPart>;\n details?: JsonValue;\n status: 'running' | 'complete' | 'error';\n isError: boolean;\n timestamp: number;\n}\n\nexport type TranscriptItem = UserTranscriptItem | AssistantTranscriptItem | ToolTranscriptItem;\n\n/** Session settings the server owns. Run state lives in `live` and `lifecycle`, history in transcript pages. */\nexport interface SessionSnapshot {\n fastMode: boolean;\n locked: boolean;\n /** Authoritative execution and queue state, independent of transcript replay. */\n lifecycle?: SessionLifecycle;\n}\n\nexport interface ProtocolEvent {\n sequence: number;\n frame: { type: string; [key: string]: JsonValue };\n}\n\nexport interface SessionPresentation {\n revision: number;\n dropped: number;\n /** A branch replacement invalidates earlier presentation state, even without ring overflow. */\n resetRevision?: number;\n events: ProtocolEvent[];\n projections: ProtocolEvent[];\n}\n\n/** A tool that is still running, with the output it has streamed so far. */\nexport interface SessionLiveTool {\n toolCallId: string;\n toolName: string;\n args: JsonValue;\n partialResult?: { content: Array<TextContentPart | ImageContentPart>; details?: JsonValue };\n}\n\n/** The part of a run that is not journalled yet: one ordered value, cleared when the run settles. */\nexport interface SessionLive {\n phase: SessionPhase;\n /** The assistant message being streamed, in the shape Pi's `message_update` carries. */\n message?: {\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart>;\n model: string;\n timestamp: number;\n };\n tools: Record<string, SessionLiveTool>;\n}\n\nexport interface SessionServiceState {\n snapshot: SessionSnapshot;\n presentation?: SessionPresentation;\n live?: SessionLive;\n}\n\nexport interface TranscriptPageRequest {\n cursor?: string;\n direction?: 'older' | 'newer';\n limit?: number;\n threadId?: string;\n}\n\nexport interface TranscriptPage {\n entries: JsonValue[];\n startCursor: string | null;\n endCursor: string | null;\n olderCursor: string | null;\n newerCursor: string | null;\n generation: number;\n revision: number;\n /** Profile and other context preceding this page. */\n context: JsonValue[];\n}\n\nexport interface SessionMessageArgs {\n text: string;\n images?: ImageContentPart[];\n}\n\nexport interface PromptArgs extends SessionMessageArgs {\n /** Interactive clients acknowledge preflight without owning the supervised turn's lifetime. */\n waitFor?: 'accepted' | 'settled';\n}\nexport type SteerArgs = SessionMessageArgs;\nexport type FollowUpArgs = SessionMessageArgs;\nexport interface QueuedItemArgs {\n id: string;\n}\nexport interface PromoteQueuedArgs extends QueuedItemArgs {\n operationId?: string;\n}\n\nexport interface ClearQueueResult {\n steering: string[];\n followUp: string[];\n}\n\nexport interface RewindArgs {\n itemId: string;\n summarize?: boolean;\n customInstructions?: string;\n replaceInstructions?: boolean;\n label?: string;\n}\n\nexport interface SessionUsage {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n total: number;\n}\n\nexport interface RewindSummaryEntry {\n id: string;\n parentId: string | null;\n timestamp: string;\n fromId: string;\n summary: string;\n details?: JsonValue;\n usage?: SessionUsage;\n fromHook?: boolean;\n}\n\nexport interface RewindResult {\n editorText?: string;\n cancelled: boolean;\n aborted?: boolean;\n summaryEntry?: RewindSummaryEntry;\n}\n\nexport type ExtensionUiResponse =\n | { id: string; value: string }\n | { id: string; confirmed: boolean }\n | { id: string; cancelled: true };\n\nexport interface SessionStateInfo {\n model?: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n agentLocked?: boolean;\n isStreaming: boolean;\n isCompacting: boolean;\n steeringMode: 'all' | 'one-at-a-time';\n followUpMode: 'all' | 'one-at-a-time';\n sessionId: string;\n sessionName?: string;\n autoCompactionEnabled: boolean;\n messageCount: number;\n pendingMessageCount: number;\n operationId?: string;\n executionStatus?: 'open' | 'aborting';\n queuePaused?: boolean;\n queueRevision?: number;\n}\n\nexport interface SessionStats {\n sessionId: string;\n totalMessages: number;\n tokens: SessionUsage;\n cost: number;\n contextUsage?: {\n tokens: number | null;\n contextWindow: number;\n percent: number | null;\n };\n}\n\nexport interface SessionCommandSourceInfo {\n path: string;\n source: string;\n scope: 'user' | 'project' | 'temporary';\n origin: 'package' | 'top-level';\n baseDir?: string;\n}\n\nexport interface SessionCommand {\n name: string;\n description?: string;\n source: 'extension' | 'prompt' | 'skill';\n sourceInfo?: SessionCommandSourceInfo;\n}\n\nexport interface SessionService {\n readonly state: ReplicatedState<SessionServiceState>;\n readTranscriptPage(args: TranscriptPageRequest, context: Context): Promise<TranscriptPage>;\n prompt(text: string, context: Context): Promise<void>;\n prompt(args: PromptArgs, context: Context): Promise<void>;\n steer(text: string, context: Context): Promise<void>;\n steer(args: SteerArgs, context: Context): Promise<void>;\n abort(context: Context): Promise<void>;\n abortOperation(args: { operationId: string }, context: Context): Promise<void>;\n setModel(model: ModelRef, context: Context): Promise<void>;\n setThinking(thinkingLevel: ThinkingLevel, context: Context): Promise<void>;\n setFastMode(enabled: boolean, context: Context): Promise<void>;\n setAgentLock(locked: boolean, context: Context): Promise<void>;\n followUp(args: FollowUpArgs, context: Context): Promise<void>;\n enqueueAutomatic(args: FollowUpArgs, context: Context): Promise<{ id: string }>;\n removeQueued(\n args: QueuedItemArgs,\n context: Context,\n ): Promise<'removed' | 'in_flight' | 'already_consumed' | 'not_found'>;\n promoteQueued(\n args: PromoteQueuedArgs,\n context: Context,\n ): Promise<'promoted' | 'in_flight' | 'target_changed' | 'not_found'>;\n resumeQueue(context: Context): Promise<void>;\n clearQueue(context: Context): Promise<ClearQueueResult>;\n rewind(args: RewindArgs, context: Context): Promise<RewindResult>;\n extensionUiResponse(response: ExtensionUiResponse, context: Context): Promise<void>;\n getState(context: Context): Promise<SessionStateInfo>;\n getSessionStats(context: Context): Promise<SessionStats>;\n getCommands(context: Context): Promise<SessionCommand[]>;\n getAvailableModels(context: Context): Promise<ModelRef[]>;\n getAvailableThinkingLevels(context: Context): Promise<ThinkingLevel[]>;\n compact(args: { customInstructions?: string }, context: Context): Promise<JsonValue>;\n setName(name: string, context: Context): Promise<void>;\n setGroups(groups: string[], context: Context): Promise<void>;\n}\n\n/** Presentation frame a session emits after its groups change: `{ type, groups: string[] }`. */\nexport const SESSION_GROUPS_CHANGED_FRAME = 'session_groups_changed';\nexport const MAX_SESSION_GROUPS = 8;\nexport const MAX_SESSION_GROUP_LENGTH = 32;\n\n/**\n * Trims, drops blanks, and deduplicates group names (case-sensitive, first spelling wins).\n * Throws when the input is not a string list or breaks a limit, so callers never store a guess.\n */\nexport function normalizeSessionGroups(groups: unknown): string[] {\n if (!Array.isArray(groups) || groups.some((group) => typeof group !== 'string'))\n throw new Error('Session groups must be a list of names.');\n const names = [...new Set((groups as string[]).map((group) => group.trim()).filter((group) => group !== ''))];\n if (names.length > MAX_SESSION_GROUPS)\n throw new Error(`A session can belong to at most ${MAX_SESSION_GROUPS} groups.`);\n const long = names.find((group) => group.length > MAX_SESSION_GROUP_LENGTH);\n if (long !== undefined)\n throw new Error(`Group name '${long}' is longer than ${MAX_SESSION_GROUP_LENGTH} characters.`);\n return names;\n}\n"],"mappings":";;AA2SA,MAAa,+BAA+B;AAC5C,MAAa,qBAAqB;AAClC,MAAa,2BAA2B;;;;;AAMxC,SAAgB,uBAAuB,QAA2B;CAChE,IAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,MAAM,UAAU,OAAO,UAAU,QAAQ,GAC5E,MAAM,IAAI,MAAM,yCAAyC;CAC3D,MAAM,QAAQ,CAAC,GAAG,IAAI,IAAK,OAAoB,KAAK,UAAU,MAAM,KAAK,CAAC,CAAC,CAAC,QAAQ,UAAU,UAAU,EAAE,CAAC,CAAC;CAC5G,IAAI,MAAM,SAAA,GACR,MAAM,IAAI,MAAM,2CAA+D;CACjF,MAAM,OAAO,MAAM,MAAM,UAAU,MAAM,SAAA,EAAiC;CAC1E,IAAI,SAAS,KAAA,GACX,MAAM,IAAI,MAAM,eAAe,KAAK,gCAAyD;CAC/F,OAAO;AACT"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Context } from "@earendil-works/chord/context";
|
|
2
|
+
import { ReplicatedState } from "@earendil-works/chord";
|
|
3
3
|
//#region src/schemas/sessionProtocol.d.ts
|
|
4
|
-
export declare const DOOM_SESSION_SERVICE_ID = "po.session.v2";
|
|
5
|
-
export declare const DOOM_SESSION_MANAGEMENT_SERVICE_ID = "po.session-management.v1";
|
|
6
|
-
export declare const DOOM_COCKPIT_SERVER_ID = "646f6f6d-7069-4000-8000-000000000001";
|
|
7
4
|
type JsonValue$1 = null | boolean | number | string | JsonValue$1[] | {
|
|
8
5
|
[key: string]: JsonValue$1;
|
|
9
6
|
};
|
|
@@ -24,7 +21,7 @@ export interface SessionLifecycle {
|
|
|
24
21
|
images?: ImageContentPart[];
|
|
25
22
|
delivery: 'steer' | 'followUp' | 'nextRun';
|
|
26
23
|
scheduling: 'automatic' | 'held';
|
|
27
|
-
disposition: 'pending' | 'handoff'
|
|
24
|
+
disposition: 'pending' | 'handoff';
|
|
28
25
|
}>;
|
|
29
26
|
}
|
|
30
27
|
export interface ModelRef {
|
|
@@ -80,32 +77,10 @@ export interface ToolTranscriptItem {
|
|
|
80
77
|
timestamp: number;
|
|
81
78
|
}
|
|
82
79
|
export type TranscriptItem = UserTranscriptItem | AssistantTranscriptItem | ToolTranscriptItem;
|
|
83
|
-
|
|
84
|
-
type: 'item_started';
|
|
85
|
-
item: TranscriptItem;
|
|
86
|
-
} | {
|
|
87
|
-
type: 'item_updated';
|
|
88
|
-
item: TranscriptItem;
|
|
89
|
-
} | {
|
|
90
|
-
type: 'item_finished';
|
|
91
|
-
item: TranscriptItem;
|
|
92
|
-
};
|
|
80
|
+
/** Session settings the server owns. Run state lives in `live` and `lifecycle`, history in transcript pages. */
|
|
93
81
|
export interface SessionSnapshot {
|
|
94
|
-
id: string;
|
|
95
|
-
cwd: string;
|
|
96
|
-
name?: string;
|
|
97
|
-
createdAt: number;
|
|
98
|
-
updatedAt: number;
|
|
99
|
-
phase: SessionPhase;
|
|
100
|
-
model: ModelRef;
|
|
101
|
-
thinkingLevel: ThinkingLevel;
|
|
102
82
|
fastMode: boolean;
|
|
103
|
-
attached: boolean;
|
|
104
83
|
locked: boolean;
|
|
105
|
-
revision: number;
|
|
106
|
-
transcript: TranscriptItem[];
|
|
107
|
-
queuedSteer: UserTranscriptItem[];
|
|
108
|
-
queuedSteerCount: number;
|
|
109
84
|
/** Authoritative execution and queue state, independent of transcript replay. */
|
|
110
85
|
lifecycle?: SessionLifecycle;
|
|
111
86
|
}
|
|
@@ -124,24 +99,32 @@ export interface SessionPresentation {
|
|
|
124
99
|
events: ProtocolEvent[];
|
|
125
100
|
projections: ProtocolEvent[];
|
|
126
101
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
102
|
+
/** A tool that is still running, with the output it has streamed so far. */
|
|
103
|
+
export interface SessionLiveTool {
|
|
104
|
+
toolCallId: string;
|
|
105
|
+
toolName: string;
|
|
106
|
+
args: JsonValue$1;
|
|
107
|
+
partialResult?: {
|
|
108
|
+
content: Array<TextContentPart | ImageContentPart>;
|
|
109
|
+
details?: JsonValue$1;
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/** The part of a run that is not journalled yet: one ordered value, cleared when the run settles. */
|
|
113
|
+
export interface SessionLive {
|
|
114
|
+
phase: SessionPhase;
|
|
115
|
+
/** The assistant message being streamed, in the shape Pi's `message_update` carries. */
|
|
116
|
+
message?: {
|
|
117
|
+
role: 'assistant';
|
|
118
|
+
content: Array<TextContentPart | ThinkingContentPart>;
|
|
119
|
+
model: string;
|
|
120
|
+
timestamp: number;
|
|
121
|
+
};
|
|
122
|
+
tools: Record<string, SessionLiveTool>;
|
|
135
123
|
}
|
|
136
|
-
export declare const DoomHubService: import("@earendil-works/chord").Service<HubService>;
|
|
137
124
|
export interface SessionServiceState {
|
|
138
|
-
snapshot:
|
|
139
|
-
progress: TranscriptProgress | null;
|
|
140
|
-
/** ACP v2-shaped agent events, replayed in sequence across fresh bindings. */
|
|
141
|
-
updates?: DoomSessionUpdateEvent[];
|
|
125
|
+
snapshot: SessionSnapshot;
|
|
142
126
|
presentation?: SessionPresentation;
|
|
143
|
-
|
|
144
|
-
inFlight?: TranscriptItem[];
|
|
127
|
+
live?: SessionLive;
|
|
145
128
|
}
|
|
146
129
|
export interface TranscriptPageRequest {
|
|
147
130
|
cursor?: string;
|
|
@@ -159,8 +142,6 @@ export interface TranscriptPage {
|
|
|
159
142
|
revision: number;
|
|
160
143
|
/** Profile and other context preceding this page. */
|
|
161
144
|
context: JsonValue$1[];
|
|
162
|
-
/** Current drafts are separate from committed history. */
|
|
163
|
-
drafts: TranscriptItem[];
|
|
164
145
|
}
|
|
165
146
|
export interface SessionMessageArgs {
|
|
166
147
|
text: string;
|
|
@@ -231,7 +212,6 @@ export interface SessionStateInfo {
|
|
|
231
212
|
isCompacting: boolean;
|
|
232
213
|
steeringMode: 'all' | 'one-at-a-time';
|
|
233
214
|
followUpMode: 'all' | 'one-at-a-time';
|
|
234
|
-
sessionFile?: string;
|
|
235
215
|
sessionId: string;
|
|
236
216
|
sessionName?: string;
|
|
237
217
|
autoCompactionEnabled: boolean;
|
|
@@ -243,7 +223,6 @@ export interface SessionStateInfo {
|
|
|
243
223
|
queueRevision?: number;
|
|
244
224
|
}
|
|
245
225
|
export interface SessionStats {
|
|
246
|
-
sessionFile?: string;
|
|
247
226
|
sessionId: string;
|
|
248
227
|
totalMessages: number;
|
|
249
228
|
tokens: SessionUsage;
|
|
@@ -301,13 +280,17 @@ export interface SessionService {
|
|
|
301
280
|
customInstructions?: string;
|
|
302
281
|
}, context: Context): Promise<JsonValue$1>;
|
|
303
282
|
setName(name: string, context: Context): Promise<void>;
|
|
283
|
+
setGroups(groups: string[], context: Context): Promise<void>;
|
|
304
284
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
285
|
+
/** Presentation frame a session emits after its groups change: `{ type, groups: string[] }`. */
|
|
286
|
+
export declare const SESSION_GROUPS_CHANGED_FRAME = "session_groups_changed";
|
|
287
|
+
export declare const MAX_SESSION_GROUPS = 8;
|
|
288
|
+
export declare const MAX_SESSION_GROUP_LENGTH = 32;
|
|
289
|
+
/**
|
|
290
|
+
* Trims, drops blanks, and deduplicates group names (case-sensitive, first spelling wins).
|
|
291
|
+
* Throws when the input is not a string list or breaks a limit, so callers never store a guess.
|
|
292
|
+
*/
|
|
293
|
+
export declare function normalizeSessionGroups(groups: unknown): string[];
|
|
311
294
|
//#endregion
|
|
312
295
|
export { JsonValue$1 as JsonValue };
|
|
313
296
|
//# sourceMappingURL=sessionProtocol.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionProtocol.d.mts","names":["JsonValue"],"sources":["../../../src/schemas/sessionProtocol.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"sessionProtocol.d.mts","names":["JsonValue"],"sources":["../../../src/schemas/sessionProtocol.ts"],"mappings":";;;KAGYA,iDAA+CA;GAAiB,cAAcA;;YAC9E;YACA;;iBAGK;EACf;EACA;IAAa;IAAY;IAA2C;;EACpE;EACA,OAAO;IACL;IACA;IACA,SAAS;IACT;IACA;IACA;;;iBAIa;EACf;EACA;;iBAGe;EACf;EACA;;iBAGe;EACf;EACA;EACA;;iBAGe;EACf;EACA;EACA;;iBAGe;EACf;EACA;EACA;EACA,OAAOA;;iBAGQ;EACf;EACA;EACA,SAAS,MAAM,kBAAkB;EACjC;;iBAGe;EACf;EACA;EACA,SAAS,MAAM,kBAAkB,sBAAsB;EACvD,OAAO;EACP;EACA;EACA;EACA;;iBAGe;EACf;EACA;EACA;EACA;EACA,OAAOA;EACP,SAAS,MAAM,kBAAkB;EACjC,UAAUA;EACV;EACA;EACA;;YAGU,iBAAiB,qBAAqB,0BAA0B;;iBAG3D;EACf;EACA;;EAEA,YAAY;;iBAGG;EACf;EACA;IAAS;KAAe,cAAcA;;;iBAGvB;EACf;EACA;;EAEA;EACA,QAAQ;EACR,aAAa;;;iBAIE;EACf;EACA;EACA,MAAMA;EACN;IAAkB,SAAS,MAAM,kBAAkB;IAAmB,UAAUA;;;;iBAIjE;EACf,OAAO;;EAEP;IACE;IACA,SAAS,MAAM,kBAAkB;IACjC;IACA;;EAEF,OAAO,eAAe;;iBAGP;EACf,UAAU;EACV,eAAe;EACf,OAAO;;iBAGQ;EACf;EACA;EACA;EACA;;iBAGe;EACf,SAASA;EACT;EACA;EACA;EACA;EACA;EACA;;EAEA,SAASA;;iBAGM;EACf;EACA,SAAS;;iBAGM,mBAAmB;;EAElC;;YAEU,YAAY;YACZ,eAAe;iBACV;EACf;;iBAEe,0BAA0B;EACzC;;iBAGe;EACf;EACA;;iBAGe;EACf;EACA;EACA;EACA;EACA;;iBAGe;EACf;EACA;EACA;EACA;EACA;;iBAGe;EACf;EACA;EACA;EACA;EACA;EACA,UAAUA;EACV,QAAQ;EACR;;iBAGe;EACf;EACA;EACA;EACA,eAAe;;YAGL;EACN;EAAY;;EACZ;EAAY;;EACZ;EAAY;;iBAED;EACf,QAAQ;EACR,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;iBAGe;EACf;EACA;EACA,QAAQ;EACR;EACA;IACE;IACA;IACA;;;iBAIa;EACf;EACA;EACA;EACA;EACA;;iBAGe;EACf;EACA;EACA;EACA,aAAa;;iBAGE;WACN,OAAO,gBAAgB;EAChC,mBAAmB,MAAM,uBAAuB,SAAS,UAAU,QAAQ;EAC3E,OAAO,cAAc,SAAS,UAAU;EACxC,OAAO,MAAM,YAAY,SAAS,UAAU;EAC5C,MAAM,cAAc,SAAS,UAAU;EACvC,MAAM,MAAM,WAAW,SAAS,UAAU;EAC1C,MAAM,SAAS,UAAU;EACzB,eAAe;IAAQ;KAAuB,SAAS,UAAU;EACjE,SAAS,OAAO,UAAU,SAAS,UAAU;EAC7C,YAAY,eAAe,eAAe,SAAS,UAAU;EAC7D,YAAY,kBAAkB,SAAS,UAAU;EACjD,aAAa,iBAAiB,SAAS,UAAU;EACjD,SAAS,MAAM,cAAc,SAAS,UAAU;EAChD,iBAAiB,MAAM,cAAc,SAAS,UAAU;IAAU;;EAClE,aACE,MAAM,gBACN,SAAS,UACR;EACH,cACE,MAAM,mBACN,SAAS,UACR;EACH,YAAY,SAAS,UAAU;EAC/B,WAAW,SAAS,UAAU,QAAQ;EACtC,OAAO,MAAM,YAAY,SAAS,UAAU,QAAQ;EACpD,oBAAoB,UAAU,qBAAqB,SAAS,UAAU;EACtE,SAAS,SAAS,UAAU,QAAQ;EACpC,gBAAgB,SAAS,UAAU,QAAQ;EAC3C,YAAY,SAAS,UAAU,QAAQ;EACvC,mBAAmB,SAAS,UAAU,QAAQ;EAC9C,2BAA2B,SAAS,UAAU,QAAQ;EACtD,QAAQ;IAAQ;KAA+B,SAAS,UAAU,QAAQA;EAC1E,QAAQ,cAAc,SAAS,UAAU;EACzC,UAAU,kBAAkB,SAAS,UAAU;;;qBAIpC;qBACA;qBACA;;;;;wBAMG,uBAAuB"}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
import { defineService } from "@earendil-works/chord";
|
|
2
1
|
//#region src/schemas/sessionProtocol.ts
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
/** Presentation frame a session emits after its groups change: `{ type, groups: string[] }`. */
|
|
3
|
+
const SESSION_GROUPS_CHANGED_FRAME = "session_groups_changed";
|
|
4
|
+
const MAX_SESSION_GROUPS = 8;
|
|
5
|
+
const MAX_SESSION_GROUP_LENGTH = 32;
|
|
6
|
+
/**
|
|
7
|
+
* Trims, drops blanks, and deduplicates group names (case-sensitive, first spelling wins).
|
|
8
|
+
* Throws when the input is not a string list or breaks a limit, so callers never store a guess.
|
|
9
|
+
*/
|
|
10
|
+
function normalizeSessionGroups(groups) {
|
|
11
|
+
if (!Array.isArray(groups) || groups.some((group) => typeof group !== "string")) throw new Error("Session groups must be a list of names.");
|
|
12
|
+
const names = [...new Set(groups.map((group) => group.trim()).filter((group) => group !== ""))];
|
|
13
|
+
if (names.length > 8) throw new Error(`A session can belong to at most 8 groups.`);
|
|
14
|
+
const long = names.find((group) => group.length > 32);
|
|
15
|
+
if (long !== void 0) throw new Error(`Group name '${long}' is longer than 32 characters.`);
|
|
16
|
+
return names;
|
|
17
|
+
}
|
|
9
18
|
//#endregion
|
|
10
|
-
export {
|
|
19
|
+
export { MAX_SESSION_GROUPS, MAX_SESSION_GROUP_LENGTH, SESSION_GROUPS_CHANGED_FRAME, normalizeSessionGroups };
|
|
11
20
|
|
|
12
21
|
//# sourceMappingURL=sessionProtocol.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionProtocol.mjs","names":[],"sources":["../../../src/schemas/sessionProtocol.ts"],"sourcesContent":["import { defineService, type Context, type ReplicatedState } from '@earendil-works/chord';\n\nimport type { DoomSessionUpdateEvent } from './sessionUpdates';\n\nexport const DOOM_SESSION_SERVICE_ID = 'po.session.v2';\nexport const DOOM_SESSION_MANAGEMENT_SERVICE_ID = 'po.session-management.v1';\nexport const DOOM_COCKPIT_SERVER_ID = '646f6f6d-7069-4000-8000-000000000001';\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };\nexport type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';\nexport type SessionPhase = 'idle' | 'turn' | 'compaction' | 'retry';\n\n/** Native execution ownership plus Po's durable pending-input policy. */\nexport interface SessionLifecycle {\n revision: number;\n operation: { id: string; kind: 'run' | 'compaction' | 'navigation'; status: 'open' | 'aborting' } | null;\n paused: boolean;\n queue: Array<{\n id: string;\n text: string;\n images?: ImageContentPart[];\n delivery: 'steer' | 'followUp' | 'nextRun';\n scheduling: 'automatic' | 'held';\n disposition: 'pending' | 'handoff' | 'uncertain';\n }>;\n}\n\nexport interface ModelRef {\n provider: string;\n id: string;\n}\n\nexport interface TextContentPart {\n type: 'text';\n text: string;\n}\n\nexport interface ImageContentPart {\n type: 'image';\n data: string;\n mimeType: string;\n}\n\nexport interface ThinkingContentPart {\n type: 'thinking';\n thinking: string;\n redacted?: true;\n}\n\nexport interface ToolCallContentPart {\n type: 'toolCall';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n}\n\nexport interface UserTranscriptItem {\n id: string;\n role: 'user';\n content: Array<TextContentPart | ImageContentPart>;\n timestamp: number;\n}\n\nexport interface AssistantTranscriptItem {\n id: string;\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart | ToolCallContentPart>;\n model: ModelRef;\n status: 'streaming' | 'complete' | 'aborted' | 'error';\n stopReason?: 'stop' | 'length' | 'toolUse' | 'aborted' | 'error';\n errorMessage?: string;\n timestamp: number;\n}\n\nexport interface ToolTranscriptItem {\n id: string;\n role: 'tool';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n content: Array<TextContentPart | ImageContentPart>;\n details?: JsonValue;\n status: 'running' | 'complete' | 'error';\n isError: boolean;\n timestamp: number;\n}\n\nexport type TranscriptItem = UserTranscriptItem | AssistantTranscriptItem | ToolTranscriptItem;\n\nexport type TranscriptProgress =\n | { type: 'item_started'; item: TranscriptItem }\n | { type: 'item_updated'; item: TranscriptItem }\n | { type: 'item_finished'; item: TranscriptItem };\n\nexport interface SessionSnapshot {\n id: string;\n cwd: string;\n name?: string;\n createdAt: number;\n updatedAt: number;\n phase: SessionPhase;\n model: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n attached: boolean;\n locked: boolean;\n revision: number;\n transcript: TranscriptItem[];\n queuedSteer: UserTranscriptItem[];\n queuedSteerCount: number;\n /** Authoritative execution and queue state, independent of transcript replay. */\n lifecycle?: SessionLifecycle;\n}\n\nexport interface ProtocolEvent {\n sequence: number;\n frame: { type: string; [key: string]: JsonValue };\n}\n\nexport interface SessionPresentation {\n revision: number;\n dropped: number;\n /** A branch replacement invalidates earlier presentation state, even without ring overflow. */\n resetRevision?: number;\n events: ProtocolEvent[];\n projections: ProtocolEvent[];\n}\n\nexport interface HubService {\n readonly state: ReplicatedState<{ events: ProtocolEvent[] }>;\n send(frame: { type: string; [key: string]: JsonValue }, context: Context): Promise<void>;\n}\n\nexport const DoomHubService = defineService<HubService>('po.hub.v1');\n\nexport interface SessionServiceState {\n snapshot: Omit<SessionSnapshot, 'transcript'>;\n progress: TranscriptProgress | null;\n /** ACP v2-shaped agent events, replayed in sequence across fresh bindings. */\n updates?: DoomSessionUpdateEvent[];\n presentation?: SessionPresentation;\n /** Current concurrent drafts/tools, so a fresh attachment does not depend on missed progress events. */\n inFlight?: TranscriptItem[];\n}\n\nexport interface TranscriptPageRequest {\n cursor?: string;\n direction?: 'older' | 'newer';\n limit?: number;\n threadId?: string;\n}\n\nexport interface TranscriptPage {\n entries: JsonValue[];\n startCursor: string | null;\n endCursor: string | null;\n olderCursor: string | null;\n newerCursor: string | null;\n generation: number;\n revision: number;\n /** Profile and other context preceding this page. */\n context: JsonValue[];\n /** Current drafts are separate from committed history. */\n drafts: TranscriptItem[];\n}\n\nexport interface SessionMessageArgs {\n text: string;\n images?: ImageContentPart[];\n}\n\nexport interface PromptArgs extends SessionMessageArgs {\n /** Interactive clients acknowledge preflight without owning the supervised turn's lifetime. */\n waitFor?: 'accepted' | 'settled';\n}\nexport type SteerArgs = SessionMessageArgs;\nexport type FollowUpArgs = SessionMessageArgs;\nexport interface QueuedItemArgs {\n id: string;\n}\nexport interface PromoteQueuedArgs extends QueuedItemArgs {\n operationId?: string;\n}\n\nexport interface ClearQueueResult {\n steering: string[];\n followUp: string[];\n}\n\nexport interface RewindArgs {\n itemId: string;\n summarize?: boolean;\n customInstructions?: string;\n replaceInstructions?: boolean;\n label?: string;\n}\n\nexport interface SessionUsage {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n total: number;\n}\n\nexport interface RewindSummaryEntry {\n id: string;\n parentId: string | null;\n timestamp: string;\n fromId: string;\n summary: string;\n details?: JsonValue;\n usage?: SessionUsage;\n fromHook?: boolean;\n}\n\nexport interface RewindResult {\n editorText?: string;\n cancelled: boolean;\n aborted?: boolean;\n summaryEntry?: RewindSummaryEntry;\n}\n\nexport type ExtensionUiResponse =\n | { id: string; value: string }\n | { id: string; confirmed: boolean }\n | { id: string; cancelled: true };\n\nexport interface SessionStateInfo {\n model?: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n agentLocked?: boolean;\n isStreaming: boolean;\n isCompacting: boolean;\n steeringMode: 'all' | 'one-at-a-time';\n followUpMode: 'all' | 'one-at-a-time';\n sessionFile?: string;\n sessionId: string;\n sessionName?: string;\n autoCompactionEnabled: boolean;\n messageCount: number;\n pendingMessageCount: number;\n operationId?: string;\n executionStatus?: 'open' | 'aborting';\n queuePaused?: boolean;\n queueRevision?: number;\n}\n\nexport interface SessionStats {\n sessionFile?: string;\n sessionId: string;\n totalMessages: number;\n tokens: SessionUsage;\n cost: number;\n contextUsage?: {\n tokens: number | null;\n contextWindow: number;\n percent: number | null;\n };\n}\n\nexport interface SessionCommandSourceInfo {\n path: string;\n source: string;\n scope: 'user' | 'project' | 'temporary';\n origin: 'package' | 'top-level';\n baseDir?: string;\n}\n\nexport interface SessionCommand {\n name: string;\n description?: string;\n source: 'extension' | 'prompt' | 'skill';\n sourceInfo?: SessionCommandSourceInfo;\n}\n\nexport interface SessionService {\n readonly state: ReplicatedState<SessionServiceState>;\n readTranscriptPage(args: TranscriptPageRequest, context: Context): Promise<TranscriptPage>;\n prompt(text: string, context: Context): Promise<void>;\n prompt(args: PromptArgs, context: Context): Promise<void>;\n steer(text: string, context: Context): Promise<void>;\n steer(args: SteerArgs, context: Context): Promise<void>;\n abort(context: Context): Promise<void>;\n abortOperation(args: { operationId: string }, context: Context): Promise<void>;\n setModel(model: ModelRef, context: Context): Promise<void>;\n setThinking(thinkingLevel: ThinkingLevel, context: Context): Promise<void>;\n setFastMode(enabled: boolean, context: Context): Promise<void>;\n setAgentLock(locked: boolean, context: Context): Promise<void>;\n followUp(args: FollowUpArgs, context: Context): Promise<void>;\n enqueueAutomatic(args: FollowUpArgs, context: Context): Promise<{ id: string }>;\n removeQueued(\n args: QueuedItemArgs,\n context: Context,\n ): Promise<'removed' | 'in_flight' | 'already_consumed' | 'not_found'>;\n promoteQueued(\n args: PromoteQueuedArgs,\n context: Context,\n ): Promise<'promoted' | 'in_flight' | 'target_changed' | 'not_found'>;\n resumeQueue(context: Context): Promise<void>;\n clearQueue(context: Context): Promise<ClearQueueResult>;\n rewind(args: RewindArgs, context: Context): Promise<RewindResult>;\n extensionUiResponse(response: ExtensionUiResponse, context: Context): Promise<void>;\n getState(context: Context): Promise<SessionStateInfo>;\n getSessionStats(context: Context): Promise<SessionStats>;\n getCommands(context: Context): Promise<SessionCommand[]>;\n getAvailableModels(context: Context): Promise<ModelRef[]>;\n getAvailableThinkingLevels(context: Context): Promise<ThinkingLevel[]>;\n compact(args: { customInstructions?: string }, context: Context): Promise<JsonValue>;\n setName(name: string, context: Context): Promise<void>;\n}\n\nexport interface SessionManagementService {\n attach(sessionId: string, context: Context): Promise<void>;\n detach(context: Context): Promise<void>;\n}\n\nexport const DoomSessionService = defineService<SessionService>(DOOM_SESSION_SERVICE_ID);\nexport const DoomSessionManagementService = defineService<SessionManagementService>(DOOM_SESSION_MANAGEMENT_SERVICE_ID);\n"],"mappings":";;AAIA,MAAa,0BAA0B;AACvC,MAAa,qCAAqC;AAClD,MAAa,yBAAyB;AA+HtC,MAAa,iBAAiB,cAA0B,WAAW;AAyLnE,MAAa,qBAAqB,cAA8B,uBAAuB;AACvF,MAAa,+BAA+B,cAAwC,kCAAkC"}
|
|
1
|
+
{"version":3,"file":"sessionProtocol.mjs","names":[],"sources":["../../../src/schemas/sessionProtocol.ts"],"sourcesContent":["import type { ReplicatedState } from '@earendil-works/chord';\nimport type { Context } from '@earendil-works/chord/context';\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };\nexport type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';\nexport type SessionPhase = 'idle' | 'turn' | 'compaction' | 'retry';\n\n/** Native execution ownership plus Po's durable pending-input policy. */\nexport interface SessionLifecycle {\n revision: number;\n operation: { id: string; kind: 'run' | 'compaction' | 'navigation'; status: 'open' | 'aborting' } | null;\n paused: boolean;\n queue: Array<{\n id: string;\n text: string;\n images?: ImageContentPart[];\n delivery: 'steer' | 'followUp' | 'nextRun';\n scheduling: 'automatic' | 'held';\n disposition: 'pending' | 'handoff';\n }>;\n}\n\nexport interface ModelRef {\n provider: string;\n id: string;\n}\n\nexport interface TextContentPart {\n type: 'text';\n text: string;\n}\n\nexport interface ImageContentPart {\n type: 'image';\n data: string;\n mimeType: string;\n}\n\nexport interface ThinkingContentPart {\n type: 'thinking';\n thinking: string;\n redacted?: true;\n}\n\nexport interface ToolCallContentPart {\n type: 'toolCall';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n}\n\nexport interface UserTranscriptItem {\n id: string;\n role: 'user';\n content: Array<TextContentPart | ImageContentPart>;\n timestamp: number;\n}\n\nexport interface AssistantTranscriptItem {\n id: string;\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart | ToolCallContentPart>;\n model: ModelRef;\n status: 'streaming' | 'complete' | 'aborted' | 'error';\n stopReason?: 'stop' | 'length' | 'toolUse' | 'aborted' | 'error';\n errorMessage?: string;\n timestamp: number;\n}\n\nexport interface ToolTranscriptItem {\n id: string;\n role: 'tool';\n toolCallId: string;\n toolName: string;\n input: JsonValue;\n content: Array<TextContentPart | ImageContentPart>;\n details?: JsonValue;\n status: 'running' | 'complete' | 'error';\n isError: boolean;\n timestamp: number;\n}\n\nexport type TranscriptItem = UserTranscriptItem | AssistantTranscriptItem | ToolTranscriptItem;\n\n/** Session settings the server owns. Run state lives in `live` and `lifecycle`, history in transcript pages. */\nexport interface SessionSnapshot {\n fastMode: boolean;\n locked: boolean;\n /** Authoritative execution and queue state, independent of transcript replay. */\n lifecycle?: SessionLifecycle;\n}\n\nexport interface ProtocolEvent {\n sequence: number;\n frame: { type: string; [key: string]: JsonValue };\n}\n\nexport interface SessionPresentation {\n revision: number;\n dropped: number;\n /** A branch replacement invalidates earlier presentation state, even without ring overflow. */\n resetRevision?: number;\n events: ProtocolEvent[];\n projections: ProtocolEvent[];\n}\n\n/** A tool that is still running, with the output it has streamed so far. */\nexport interface SessionLiveTool {\n toolCallId: string;\n toolName: string;\n args: JsonValue;\n partialResult?: { content: Array<TextContentPart | ImageContentPart>; details?: JsonValue };\n}\n\n/** The part of a run that is not journalled yet: one ordered value, cleared when the run settles. */\nexport interface SessionLive {\n phase: SessionPhase;\n /** The assistant message being streamed, in the shape Pi's `message_update` carries. */\n message?: {\n role: 'assistant';\n content: Array<TextContentPart | ThinkingContentPart>;\n model: string;\n timestamp: number;\n };\n tools: Record<string, SessionLiveTool>;\n}\n\nexport interface SessionServiceState {\n snapshot: SessionSnapshot;\n presentation?: SessionPresentation;\n live?: SessionLive;\n}\n\nexport interface TranscriptPageRequest {\n cursor?: string;\n direction?: 'older' | 'newer';\n limit?: number;\n threadId?: string;\n}\n\nexport interface TranscriptPage {\n entries: JsonValue[];\n startCursor: string | null;\n endCursor: string | null;\n olderCursor: string | null;\n newerCursor: string | null;\n generation: number;\n revision: number;\n /** Profile and other context preceding this page. */\n context: JsonValue[];\n}\n\nexport interface SessionMessageArgs {\n text: string;\n images?: ImageContentPart[];\n}\n\nexport interface PromptArgs extends SessionMessageArgs {\n /** Interactive clients acknowledge preflight without owning the supervised turn's lifetime. */\n waitFor?: 'accepted' | 'settled';\n}\nexport type SteerArgs = SessionMessageArgs;\nexport type FollowUpArgs = SessionMessageArgs;\nexport interface QueuedItemArgs {\n id: string;\n}\nexport interface PromoteQueuedArgs extends QueuedItemArgs {\n operationId?: string;\n}\n\nexport interface ClearQueueResult {\n steering: string[];\n followUp: string[];\n}\n\nexport interface RewindArgs {\n itemId: string;\n summarize?: boolean;\n customInstructions?: string;\n replaceInstructions?: boolean;\n label?: string;\n}\n\nexport interface SessionUsage {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n total: number;\n}\n\nexport interface RewindSummaryEntry {\n id: string;\n parentId: string | null;\n timestamp: string;\n fromId: string;\n summary: string;\n details?: JsonValue;\n usage?: SessionUsage;\n fromHook?: boolean;\n}\n\nexport interface RewindResult {\n editorText?: string;\n cancelled: boolean;\n aborted?: boolean;\n summaryEntry?: RewindSummaryEntry;\n}\n\nexport type ExtensionUiResponse =\n | { id: string; value: string }\n | { id: string; confirmed: boolean }\n | { id: string; cancelled: true };\n\nexport interface SessionStateInfo {\n model?: ModelRef;\n thinkingLevel: ThinkingLevel;\n fastMode: boolean;\n agentLocked?: boolean;\n isStreaming: boolean;\n isCompacting: boolean;\n steeringMode: 'all' | 'one-at-a-time';\n followUpMode: 'all' | 'one-at-a-time';\n sessionId: string;\n sessionName?: string;\n autoCompactionEnabled: boolean;\n messageCount: number;\n pendingMessageCount: number;\n operationId?: string;\n executionStatus?: 'open' | 'aborting';\n queuePaused?: boolean;\n queueRevision?: number;\n}\n\nexport interface SessionStats {\n sessionId: string;\n totalMessages: number;\n tokens: SessionUsage;\n cost: number;\n contextUsage?: {\n tokens: number | null;\n contextWindow: number;\n percent: number | null;\n };\n}\n\nexport interface SessionCommandSourceInfo {\n path: string;\n source: string;\n scope: 'user' | 'project' | 'temporary';\n origin: 'package' | 'top-level';\n baseDir?: string;\n}\n\nexport interface SessionCommand {\n name: string;\n description?: string;\n source: 'extension' | 'prompt' | 'skill';\n sourceInfo?: SessionCommandSourceInfo;\n}\n\nexport interface SessionService {\n readonly state: ReplicatedState<SessionServiceState>;\n readTranscriptPage(args: TranscriptPageRequest, context: Context): Promise<TranscriptPage>;\n prompt(text: string, context: Context): Promise<void>;\n prompt(args: PromptArgs, context: Context): Promise<void>;\n steer(text: string, context: Context): Promise<void>;\n steer(args: SteerArgs, context: Context): Promise<void>;\n abort(context: Context): Promise<void>;\n abortOperation(args: { operationId: string }, context: Context): Promise<void>;\n setModel(model: ModelRef, context: Context): Promise<void>;\n setThinking(thinkingLevel: ThinkingLevel, context: Context): Promise<void>;\n setFastMode(enabled: boolean, context: Context): Promise<void>;\n setAgentLock(locked: boolean, context: Context): Promise<void>;\n followUp(args: FollowUpArgs, context: Context): Promise<void>;\n enqueueAutomatic(args: FollowUpArgs, context: Context): Promise<{ id: string }>;\n removeQueued(\n args: QueuedItemArgs,\n context: Context,\n ): Promise<'removed' | 'in_flight' | 'already_consumed' | 'not_found'>;\n promoteQueued(\n args: PromoteQueuedArgs,\n context: Context,\n ): Promise<'promoted' | 'in_flight' | 'target_changed' | 'not_found'>;\n resumeQueue(context: Context): Promise<void>;\n clearQueue(context: Context): Promise<ClearQueueResult>;\n rewind(args: RewindArgs, context: Context): Promise<RewindResult>;\n extensionUiResponse(response: ExtensionUiResponse, context: Context): Promise<void>;\n getState(context: Context): Promise<SessionStateInfo>;\n getSessionStats(context: Context): Promise<SessionStats>;\n getCommands(context: Context): Promise<SessionCommand[]>;\n getAvailableModels(context: Context): Promise<ModelRef[]>;\n getAvailableThinkingLevels(context: Context): Promise<ThinkingLevel[]>;\n compact(args: { customInstructions?: string }, context: Context): Promise<JsonValue>;\n setName(name: string, context: Context): Promise<void>;\n setGroups(groups: string[], context: Context): Promise<void>;\n}\n\n/** Presentation frame a session emits after its groups change: `{ type, groups: string[] }`. */\nexport const SESSION_GROUPS_CHANGED_FRAME = 'session_groups_changed';\nexport const MAX_SESSION_GROUPS = 8;\nexport const MAX_SESSION_GROUP_LENGTH = 32;\n\n/**\n * Trims, drops blanks, and deduplicates group names (case-sensitive, first spelling wins).\n * Throws when the input is not a string list or breaks a limit, so callers never store a guess.\n */\nexport function normalizeSessionGroups(groups: unknown): string[] {\n if (!Array.isArray(groups) || groups.some((group) => typeof group !== 'string'))\n throw new Error('Session groups must be a list of names.');\n const names = [...new Set((groups as string[]).map((group) => group.trim()).filter((group) => group !== ''))];\n if (names.length > MAX_SESSION_GROUPS)\n throw new Error(`A session can belong to at most ${MAX_SESSION_GROUPS} groups.`);\n const long = names.find((group) => group.length > MAX_SESSION_GROUP_LENGTH);\n if (long !== undefined)\n throw new Error(`Group name '${long}' is longer than ${MAX_SESSION_GROUP_LENGTH} characters.`);\n return names;\n}\n"],"mappings":";;AA2SA,MAAa,+BAA+B;AAC5C,MAAa,qBAAqB;AAClC,MAAa,2BAA2B;;;;;AAMxC,SAAgB,uBAAuB,QAA2B;CAChE,IAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,MAAM,UAAU,OAAO,UAAU,QAAQ,GAC5E,MAAM,IAAI,MAAM,yCAAyC;CAC3D,MAAM,QAAQ,CAAC,GAAG,IAAI,IAAK,OAAoB,KAAK,UAAU,MAAM,KAAK,CAAC,CAAC,CAAC,QAAQ,UAAU,UAAU,EAAE,CAAC,CAAC;CAC5G,IAAI,MAAM,SAAA,GACR,MAAM,IAAI,MAAM,2CAA+D;CACjF,MAAM,OAAO,MAAM,MAAM,UAAU,MAAM,SAAA,EAAiC;CAC1E,IAAI,SAAS,KAAA,GACX,MAAM,IAAI,MAAM,eAAe,KAAK,gCAAyD;CAC/F,OAAO;AACT"}
|
|
@@ -2,7 +2,7 @@ let typebox = require("typebox");
|
|
|
2
2
|
let typebox_value = require("typebox/value");
|
|
3
3
|
//#region src/schemas/skills.ts
|
|
4
4
|
/** Provider-owned Cordis service for live skill-directory contributions. */
|
|
5
|
-
const
|
|
5
|
+
const PO_SKILL_SOURCES_SERVICE = "po/skill-sources";
|
|
6
6
|
/**
|
|
7
7
|
* The custom session entry journaled once Pi has rebuilt its resource catalog
|
|
8
8
|
* for a reload.
|
|
@@ -17,7 +17,7 @@ const DOOM_SKILL_SOURCES_SERVICE = "doom/skill-sources";
|
|
|
17
17
|
* way the minor-mode catalog projection does, so it needs no new protocol, and
|
|
18
18
|
* a custom entry with no registered renderer is invisible in the TUI.
|
|
19
19
|
*/
|
|
20
|
-
const
|
|
20
|
+
const PO_RESOURCE_CATALOG_ENTRY_TYPE = "po-resource-catalog";
|
|
21
21
|
const MAX_GENERATION_LENGTH = 256;
|
|
22
22
|
const SkillSourceNameSchema = typebox.Type.String({
|
|
23
23
|
minLength: 1,
|
|
@@ -38,17 +38,17 @@ function cloneContribution(contribution) {
|
|
|
38
38
|
function validateContribution(contribution) {
|
|
39
39
|
if ((0, typebox_value.Check)(SkillSourceContributionSchema, contribution)) return cloneContribution(contribution);
|
|
40
40
|
const [first] = (0, typebox_value.Errors)(SkillSourceContributionSchema, contribution);
|
|
41
|
-
throw new TypeError(`Invalid
|
|
41
|
+
throw new TypeError(`Invalid Po skill-source contribution${first ? ` at ${first.instancePath || "/"}: ${first.message}` : ""}.`);
|
|
42
42
|
}
|
|
43
43
|
/** Creates the provider-owned skill-source registry for one Cordis session. */
|
|
44
|
-
function
|
|
45
|
-
if (generation.length === 0 || generation.length > MAX_GENERATION_LENGTH) throw new TypeError("
|
|
44
|
+
function createPoSkillSourcesService(generation) {
|
|
45
|
+
if (generation.length === 0 || generation.length > MAX_GENERATION_LENGTH) throw new TypeError("Po skill sources require a valid generation.");
|
|
46
46
|
const registrations = /* @__PURE__ */ new Map();
|
|
47
47
|
const listeners = /* @__PURE__ */ new Set();
|
|
48
48
|
let sequence = 0;
|
|
49
49
|
let disposed = false;
|
|
50
50
|
const ensureActive = () => {
|
|
51
|
-
if (disposed) throw new Error("The
|
|
51
|
+
if (disposed) throw new Error("The Po skill-sources service is disposed.");
|
|
52
52
|
};
|
|
53
53
|
const list = () => [...registrations.values()].map(({ contribution }) => cloneContribution(contribution)).sort((left, right) => left.source.localeCompare(right.source));
|
|
54
54
|
const notify = () => {
|
|
@@ -95,21 +95,21 @@ function createDoomSkillSourcesService(generation) {
|
|
|
95
95
|
}
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
|
-
function
|
|
99
|
-
return context.get(
|
|
98
|
+
function readPoSkillSourcesService(context) {
|
|
99
|
+
return context.get(PO_SKILL_SOURCES_SERVICE);
|
|
100
100
|
}
|
|
101
|
-
function
|
|
102
|
-
const service =
|
|
103
|
-
if (!service) throw new Error("
|
|
101
|
+
function requirePoSkillSourcesService(context) {
|
|
102
|
+
const service = readPoSkillSourcesService(context);
|
|
103
|
+
if (!service) throw new Error("Po skill sources are unavailable. Load @agimon-ai/po-skill.");
|
|
104
104
|
return service;
|
|
105
105
|
}
|
|
106
106
|
//#endregion
|
|
107
|
-
exports.
|
|
108
|
-
exports.
|
|
107
|
+
exports.PO_RESOURCE_CATALOG_ENTRY_TYPE = PO_RESOURCE_CATALOG_ENTRY_TYPE;
|
|
108
|
+
exports.PO_SKILL_SOURCES_SERVICE = PO_SKILL_SOURCES_SERVICE;
|
|
109
109
|
exports.SkillSourceContributionSchema = SkillSourceContributionSchema;
|
|
110
110
|
exports.SkillSourceNameSchema = SkillSourceNameSchema;
|
|
111
|
-
exports.
|
|
112
|
-
exports.
|
|
113
|
-
exports.
|
|
111
|
+
exports.createPoSkillSourcesService = createPoSkillSourcesService;
|
|
112
|
+
exports.readPoSkillSourcesService = readPoSkillSourcesService;
|
|
113
|
+
exports.requirePoSkillSourcesService = requirePoSkillSourcesService;
|
|
114
114
|
|
|
115
115
|
//# sourceMappingURL=skills.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.cjs","names":["Type","Check","Errors"],"sources":["../../../src/schemas/skills.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport { Type } from 'typebox';\nimport { Check, Errors } from 'typebox/value';\n\n/** Provider-owned Cordis service for live skill-directory contributions. */\nexport const
|
|
1
|
+
{"version":3,"file":"skills.cjs","names":["Type","Check","Errors"],"sources":["../../../src/schemas/skills.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport { Type } from 'typebox';\nimport { Check, Errors } from 'typebox/value';\n\n/** Provider-owned Cordis service for live skill-directory contributions. */\nexport const PO_SKILL_SOURCES_SERVICE = 'po/skill-sources';\n\n/**\n * The custom session entry journaled once Pi has rebuilt its resource catalog\n * for a reload.\n *\n * A reload is the only thing that changes which skills exist, and Pi publishes\n * nothing for it: the whole wire record of a `/domains` switch is the single\n * `response:prompt` for the command that triggered it. An RPC client therefore\n * has no way to learn that the `get_commands` answer it cached, which is what\n * the web cockpit completes `$` from, now describes the previous domains.\n *\n * This entry is that missing signal. It rides Pi's `entry_appended` frames the\n * way the minor-mode catalog projection does, so it needs no new protocol, and\n * a custom entry with no registered renderer is invisible in the TUI.\n */\nexport const PO_RESOURCE_CATALOG_ENTRY_TYPE = 'po-resource-catalog';\n\n/**\n * The payload of a resource-catalog entry.\n *\n * Arrival is the signal; a client re-reads the catalog rather than diffing\n * this. The revision only distinguishes one rebuild from the next in a journal\n * a human is reading.\n */\nexport interface ResourceCatalogProjection {\n readonly version: 1;\n readonly revision: number;\n}\n\nconst MAX_GENERATION_LENGTH = 256;\n\nexport const SkillSourceNameSchema = Type.String({\n minLength: 1,\n maxLength: 128,\n pattern: '^[A-Za-z0-9@][A-Za-z0-9@/._:-]*$',\n});\n\nexport const SkillSourceContributionSchema = Type.Object(\n {\n source: SkillSourceNameSchema,\n /** Absolute directories, the same ones the source hands `resources_discover`. */\n directories: Type.Array(Type.String({ minLength: 1 })),\n },\n { additionalProperties: false },\n);\n\nexport interface SkillSourceContribution {\n readonly source: string;\n readonly directories: readonly string[];\n}\n\nexport interface SkillSourceContributionHandle {\n readonly source: string;\n readonly generation: string;\n dispose(): void;\n}\n\n/** Direct registrar/query/subscription seam owned by po-skill. */\nexport interface PoSkillSourcesService {\n readonly generation: string;\n register(contribution: SkillSourceContribution): SkillSourceContributionHandle;\n list(): readonly SkillSourceContribution[];\n subscribe(listener: (contributions: readonly SkillSourceContribution[]) => void): () => void;\n dispose(): void;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'po/skill-sources': PoSkillSourcesService;\n }\n}\n\ninterface RegisteredSkillSource {\n readonly token: symbol;\n readonly contribution: SkillSourceContribution;\n}\n\nfunction cloneContribution(contribution: SkillSourceContribution): SkillSourceContribution {\n return { source: contribution.source, directories: [...contribution.directories] };\n}\n\nfunction validateContribution(contribution: SkillSourceContribution): SkillSourceContribution {\n if (Check(SkillSourceContributionSchema, contribution)) return cloneContribution(contribution);\n const [first] = Errors(SkillSourceContributionSchema, contribution);\n throw new TypeError(\n `Invalid Po skill-source contribution${first ? ` at ${first.instancePath || '/'}: ${first.message}` : ''}.`,\n );\n}\n\n/** Creates the provider-owned skill-source registry for one Cordis session. */\nexport function createPoSkillSourcesService(generation: string): PoSkillSourcesService {\n if (generation.length === 0 || generation.length > MAX_GENERATION_LENGTH) {\n throw new TypeError('Po skill sources require a valid generation.');\n }\n\n const registrations = new Map<string, RegisteredSkillSource>();\n const listeners = new Set<(contributions: readonly SkillSourceContribution[]) => void>();\n let sequence = 0;\n let disposed = false;\n\n const ensureActive = (): void => {\n if (disposed) throw new Error('The Po skill-sources service is disposed.');\n };\n const list = (): readonly SkillSourceContribution[] =>\n [...registrations.values()]\n .map(({ contribution }) => cloneContribution(contribution))\n .sort((left, right) => left.source.localeCompare(right.source));\n const notify = (): void => {\n const contributions = list();\n for (const listener of listeners) listener(contributions);\n };\n\n const service: PoSkillSourcesService = {\n generation,\n register(contribution) {\n ensureActive();\n const validated = validateContribution(contribution);\n sequence += 1;\n const token = Symbol(validated.source);\n const registrationGeneration = `${generation}:skill-source:${sequence}`;\n registrations.set(validated.source, { token, contribution: validated });\n notify();\n let registrationDisposed = false;\n return Object.freeze({\n source: validated.source,\n generation: registrationGeneration,\n dispose() {\n if (registrationDisposed) return;\n registrationDisposed = true;\n if (registrations.get(validated.source)?.token !== token) return;\n registrations.delete(validated.source);\n notify();\n },\n });\n },\n list,\n subscribe(listener) {\n ensureActive();\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n registrations.clear();\n listeners.clear();\n },\n };\n return Object.freeze(service);\n}\n\nexport function readPoSkillSourcesService(context: Context): PoSkillSourcesService | undefined {\n return context.get(PO_SKILL_SOURCES_SERVICE) as PoSkillSourcesService | undefined;\n}\n\nexport function requirePoSkillSourcesService(context: Context): PoSkillSourcesService {\n const service = readPoSkillSourcesService(context);\n if (!service) throw new Error('Po skill sources are unavailable. Load @agimon-ai/po-skill.');\n return service;\n}\n"],"mappings":";;;;AAKA,MAAa,2BAA2B;;;;;;;;;;;;;;;AAgBxC,MAAa,iCAAiC;AAc9C,MAAM,wBAAwB;AAE9B,MAAa,wBAAwBA,QAAAA,KAAK,OAAO;CAC/C,WAAW;CACX,WAAW;CACX,SAAS;AACX,CAAC;AAED,MAAa,gCAAgCA,QAAAA,KAAK,OAChD;CACE,QAAQ;;CAER,aAAaA,QAAAA,KAAK,MAAMA,QAAAA,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AACvD,GACA,EAAE,sBAAsB,MAAM,CAChC;AAiCA,SAAS,kBAAkB,cAAgE;CACzF,OAAO;EAAE,QAAQ,aAAa;EAAQ,aAAa,CAAC,GAAG,aAAa,WAAW;CAAE;AACnF;AAEA,SAAS,qBAAqB,cAAgE;CAC5F,KAAA,GAAIC,cAAAA,MAAAA,CAAM,+BAA+B,YAAY,GAAG,OAAO,kBAAkB,YAAY;CAC7F,MAAM,CAAC,UAAA,GAASC,cAAAA,OAAAA,CAAO,+BAA+B,YAAY;CAClE,MAAM,IAAI,UACR,uCAAuC,QAAQ,OAAO,MAAM,gBAAgB,IAAI,IAAI,MAAM,YAAY,GAAG,EAC3G;AACF;;AAGA,SAAgB,4BAA4B,YAA2C;CACrF,IAAI,WAAW,WAAW,KAAK,WAAW,SAAS,uBACjD,MAAM,IAAI,UAAU,8CAA8C;CAGpE,MAAM,gCAAgB,IAAI,IAAmC;CAC7D,MAAM,4BAAY,IAAI,IAAiE;CACvF,IAAI,WAAW;CACf,IAAI,WAAW;CAEf,MAAM,qBAA2B;EAC/B,IAAI,UAAU,MAAM,IAAI,MAAM,2CAA2C;CAC3E;CACA,MAAM,aACJ,CAAC,GAAG,cAAc,OAAO,CAAC,CAAC,CACxB,KAAK,EAAE,mBAAmB,kBAAkB,YAAY,CAAC,CAAC,CAC1D,MAAM,MAAM,UAAU,KAAK,OAAO,cAAc,MAAM,MAAM,CAAC;CAClE,MAAM,eAAqB;EACzB,MAAM,gBAAgB,KAAK;EAC3B,KAAK,MAAM,YAAY,WAAW,SAAS,aAAa;CAC1D;CAsCA,OAAO,OAAO,OAAO;EAnCnB;EACA,SAAS,cAAc;GACrB,aAAa;GACb,MAAM,YAAY,qBAAqB,YAAY;GACnD,YAAY;GACZ,MAAM,QAAQ,OAAO,UAAU,MAAM;GACrC,MAAM,yBAAyB,GAAG,WAAW,gBAAgB;GAC7D,cAAc,IAAI,UAAU,QAAQ;IAAE;IAAO,cAAc;GAAU,CAAC;GACtE,OAAO;GACP,IAAI,uBAAuB;GAC3B,OAAO,OAAO,OAAO;IACnB,QAAQ,UAAU;IAClB,YAAY;IACZ,UAAU;KACR,IAAI,sBAAsB;KAC1B,uBAAuB;KACvB,IAAI,cAAc,IAAI,UAAU,MAAM,CAAC,EAAE,UAAU,OAAO;KAC1D,cAAc,OAAO,UAAU,MAAM;KACrC,OAAO;IACT;GACF,CAAC;EACH;EACA;EACA,UAAU,UAAU;GAClB,aAAa;GACb,UAAU,IAAI,QAAQ;GACtB,aAAa,UAAU,OAAO,QAAQ;EACxC;EACA,UAAU;GACR,IAAI,UAAU;GACd,WAAW;GACX,cAAc,MAAM;GACpB,UAAU,MAAM;EAClB;CAEyB,CAAC;AAC9B;AAEA,SAAgB,0BAA0B,SAAqD;CAC7F,OAAO,QAAQ,IAAI,wBAAwB;AAC7C;AAEA,SAAgB,6BAA6B,SAAyC;CACpF,MAAM,UAAU,0BAA0B,OAAO;CACjD,IAAI,CAAC,SAAS,MAAM,IAAI,MAAM,6DAA6D;CAC3F,OAAO;AACT"}
|
|
@@ -2,7 +2,7 @@ import { Type } from "typebox";
|
|
|
2
2
|
import { Context } from "@deepseek-ai/cordis";
|
|
3
3
|
//#region src/schemas/skills.d.ts
|
|
4
4
|
/** Provider-owned Cordis service for live skill-directory contributions. */
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const PO_SKILL_SOURCES_SERVICE = "po/skill-sources";
|
|
6
6
|
/**
|
|
7
7
|
* The custom session entry journaled once Pi has rebuilt its resource catalog
|
|
8
8
|
* for a reload.
|
|
@@ -17,7 +17,7 @@ export declare const DOOM_SKILL_SOURCES_SERVICE = "doom/skill-sources";
|
|
|
17
17
|
* way the minor-mode catalog projection does, so it needs no new protocol, and
|
|
18
18
|
* a custom entry with no registered renderer is invisible in the TUI.
|
|
19
19
|
*/
|
|
20
|
-
export declare const
|
|
20
|
+
export declare const PO_RESOURCE_CATALOG_ENTRY_TYPE = "po-resource-catalog";
|
|
21
21
|
/**
|
|
22
22
|
* The payload of a resource-catalog entry.
|
|
23
23
|
*
|
|
@@ -45,7 +45,7 @@ export interface SkillSourceContributionHandle {
|
|
|
45
45
|
dispose(): void;
|
|
46
46
|
}
|
|
47
47
|
/** Direct registrar/query/subscription seam owned by po-skill. */
|
|
48
|
-
export interface
|
|
48
|
+
export interface PoSkillSourcesService {
|
|
49
49
|
readonly generation: string;
|
|
50
50
|
register(contribution: SkillSourceContribution): SkillSourceContributionHandle;
|
|
51
51
|
list(): readonly SkillSourceContribution[];
|
|
@@ -54,12 +54,12 @@ export interface DoomSkillSourcesService {
|
|
|
54
54
|
}
|
|
55
55
|
declare module '@deepseek-ai/cordis' {
|
|
56
56
|
interface Context {
|
|
57
|
-
'
|
|
57
|
+
'po/skill-sources': PoSkillSourcesService;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
/** Creates the provider-owned skill-source registry for one Cordis session. */
|
|
61
|
-
export declare function
|
|
62
|
-
export declare function
|
|
63
|
-
export declare function
|
|
61
|
+
export declare function createPoSkillSourcesService(generation: string): PoSkillSourcesService;
|
|
62
|
+
export declare function readPoSkillSourcesService(context: Context): PoSkillSourcesService | undefined;
|
|
63
|
+
export declare function requirePoSkillSourcesService(context: Context): PoSkillSourcesService;
|
|
64
64
|
//#endregion
|
|
65
65
|
//# sourceMappingURL=skills.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.mts","names":[],"sources":["../../../src/schemas/skills.ts"],"mappings":";;;;qBAKa;;;;;;;;;;;;;;;qBAgBA;;;;;;;;iBASI;WACN;WACA;;qBAKE,uBAAqB,KAAA;qBAMrB,+BAA6B,KAAA;;;;;iBASzB;WACN;WACA;;iBAGM;WACN;WACA;EACT;;;iBAIe;WACN;EACT,SAAS,cAAc,0BAA0B;EACjD,iBAAiB;EACjB,UAAU,WAAW,wBAAwB;EAC7C;;;YAIU;IACR,
|
|
1
|
+
{"version":3,"file":"skills.d.mts","names":[],"sources":["../../../src/schemas/skills.ts"],"mappings":";;;;qBAKa;;;;;;;;;;;;;;;qBAgBA;;;;;;;;iBASI;WACN;WACA;;qBAKE,uBAAqB,KAAA;qBAMrB,+BAA6B,KAAA;;;;;iBASzB;WACN;WACA;;iBAGM;WACN;WACA;EACT;;;iBAIe;WACN;EACT,SAAS,cAAc,0BAA0B;EACjD,iBAAiB;EACjB,UAAU,WAAW,wBAAwB;EAC7C;;;YAIU;IACR,oBAAoB;;;;wBAsBR,4BAA4B,qBAAqB;wBA6DjD,0BAA0B,SAAS,UAAU;wBAI7C,6BAA6B,SAAS,UAAU"}
|