@agimon-ai/po-core 0.0.0-alpha.2 → 0.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +149 -21
- package/NOTICE +41 -0
- package/dist/agentModel.cjs +1 -1
- package/dist/agentModel.d.mts +2 -2
- package/dist/agentModel.mjs +1 -2
- package/dist/apiContracts.cjs +623 -802
- package/dist/apiContracts.cjs.map +1 -1
- package/dist/apiContracts.d.mts +277 -615
- package/dist/apiContracts.d.mts.map +1 -1
- package/dist/apiContracts.mjs +617 -794
- package/dist/apiContracts.mjs.map +1 -1
- package/dist/askUser.cjs +2 -2
- package/dist/askUser.d.mts +2 -2
- package/dist/askUser.mjs +1 -2
- package/dist/authorTools.mjs +1 -2
- package/dist/backgroundWork.cjs +3 -3
- package/dist/backgroundWork.d.mts +2 -2
- package/dist/backgroundWork.mjs +1 -2
- package/dist/bundleAssetPolicy.mjs +1 -2
- package/dist/chatgptAuth.cjs +3 -2
- package/dist/chatgptAuth.d.mts +3 -2
- package/dist/chatgptAuth.mjs +2 -1
- package/dist/childProcess.cjs +1 -1
- package/dist/childProcess.d.mts +2 -2
- package/dist/childProcess.mjs +1 -2
- package/dist/childSession.cjs +11 -6
- package/dist/childSession.d.mts +3 -3
- package/dist/childSession.mjs +3 -3
- package/dist/cockpitContainer.mjs +1 -2
- package/dist/config.cjs +1 -1
- package/dist/config.d.mts +3 -3
- package/dist/config.mjs +1 -2
- package/dist/contextApi.cjs +1 -0
- package/dist/contextApi.d.mts +2 -2
- package/dist/contextApi.mjs +2 -2
- package/dist/contextContributions.cjs +4 -4
- package/dist/contextContributions.d.mts +3 -3
- package/dist/contextContributions.mjs +3 -3
- package/dist/contextDetailStore.cjs +7 -5
- package/dist/contextDetailStore.cjs.map +1 -1
- package/dist/contextDetailStore.d.mts +2 -1
- package/dist/contextDetailStore.d.mts.map +1 -1
- package/dist/contextDetailStore.mjs +6 -4
- package/dist/contextDetailStore.mjs.map +1 -1
- package/dist/contextProjection.cjs +7 -2
- package/dist/contextProjection.cjs.map +1 -1
- package/dist/contextProjection.d.mts +4 -1
- package/dist/contextProjection.d.mts.map +1 -1
- package/dist/contextProjection.mjs +5 -2
- package/dist/contextProjection.mjs.map +1 -1
- package/dist/cordisHost.cjs +11 -11
- package/dist/cordisHost.d.mts +2 -2
- package/dist/cordisHost.mjs +1 -2
- package/dist/delegation.cjs +8 -8
- package/dist/delegation.d.mts +2 -2
- package/dist/delegation.mjs +1 -2
- package/dist/executionBudget.cjs +4 -3
- package/dist/executionBudget.cjs.map +1 -1
- package/dist/executionBudget.d.mts +2 -2
- package/dist/executionBudget.d.mts.map +1 -1
- package/dist/executionBudget.mjs +4 -3
- package/dist/executionBudget.mjs.map +1 -1
- package/dist/extensionFile.cjs +5 -0
- package/dist/extensionFile.d.mts +4 -2
- package/dist/extensionFile.mjs +4 -2
- package/dist/footer.d.mts +2 -2
- package/dist/footer.mjs +1 -2
- package/dist/headless.cjs +14 -14
- package/dist/headless.d.mts +2 -2
- package/dist/headless.mjs +1 -2
- package/dist/headlessHub.cjs +308 -109
- package/dist/headlessHub.cjs.map +1 -1
- package/dist/headlessHub.d.mts +71 -36
- package/dist/headlessHub.d.mts.map +1 -1
- package/dist/headlessHub.mjs +309 -110
- package/dist/headlessHub.mjs.map +1 -1
- package/dist/headlessProtocol.cjs +327 -0
- package/dist/headlessProtocol.cjs.map +1 -0
- package/dist/headlessProtocol.d.mts +30 -0
- package/dist/headlessProtocol.d.mts.map +1 -0
- package/dist/headlessProtocol.mjs +326 -0
- package/dist/headlessProtocol.mjs.map +1 -0
- package/dist/headlessServer.cjs +166 -151
- package/dist/headlessServer.cjs.map +1 -1
- package/dist/headlessServer.d.mts +13 -5
- package/dist/headlessServer.d.mts.map +1 -1
- package/dist/headlessServer.mjs +166 -151
- package/dist/headlessServer.mjs.map +1 -1
- package/dist/headlessSessionHost.d.mts +58 -21
- package/dist/headlessSessionHost.d.mts.map +1 -1
- package/dist/help.cjs +20 -20
- package/dist/help.d.mts +2 -2
- package/dist/help.mjs +2 -2
- package/dist/history.cjs +16 -20
- package/dist/history.d.mts +9 -7
- package/dist/history.mjs +6 -7
- package/dist/historyOwnership.cjs.map +1 -1
- package/dist/historyOwnership.d.mts +1 -1
- package/dist/historyOwnership.mjs.map +1 -1
- package/dist/hubChannel.cjs +9 -0
- package/dist/hubChannel.d.mts +3 -2
- package/dist/hubChannel.mjs +3 -2
- package/dist/index.cjs +26 -28
- package/dist/index.d.mts +6 -6
- package/dist/index.mjs +6 -6
- package/dist/interop/chord.mjs +1 -0
- package/dist/interop/chordContext.mjs +1 -0
- package/dist/json.cjs +11 -5
- package/dist/json.d.mts +4 -2
- package/dist/json.mjs +4 -2
- package/dist/kernel.cjs +1 -1
- package/dist/kernel.d.mts +3 -3
- package/dist/kernel.mjs +1 -2
- package/dist/leader.d.mts +2 -2
- package/dist/leader.mjs +1 -2
- package/dist/logSinkTelemetry.mjs +1 -2
- package/dist/machineApi.cjs +80 -74
- package/dist/machineApi.cjs.map +1 -1
- package/dist/machineApi.d.mts +5 -2
- package/dist/machineApi.d.mts.map +1 -1
- package/dist/machineApi.mjs +78 -71
- package/dist/machineApi.mjs.map +1 -1
- package/dist/main.cjs +2 -1
- package/dist/main.d.mts +2 -1
- package/dist/main.mjs +2 -1
- package/dist/mcpFacet.d.mts +3 -3
- package/dist/mcpProjection.cjs +13 -13
- package/dist/mcpProjection.d.mts +2 -2
- package/dist/mcpProjection.mjs +1 -2
- package/dist/mcpSchemaCost.cjs +4 -4
- package/dist/mcpSchemaCost.cjs.map +1 -1
- package/dist/mcpSchemaCost.d.mts +2 -2
- package/dist/mcpSchemaCost.mjs +4 -4
- package/dist/mcpSchemaCost.mjs.map +1 -1
- package/dist/mcpSession.cjs +7 -7
- package/dist/mcpSession.d.mts +2 -2
- package/dist/mcpSession.mjs +1 -2
- package/dist/mcpStatus.cjs +2 -2
- package/dist/mcpStatus.d.mts +2 -2
- package/dist/mcpStatus.mjs +1 -2
- package/dist/mcpToolResolver.cjs +3 -3
- package/dist/mcpToolResolver.d.mts +2 -2
- package/dist/mcpToolResolver.mjs +1 -2
- package/dist/mcpWidget.d.mts +2 -2
- package/dist/moduleResolution.cjs +43 -8
- package/dist/moduleResolution.cjs.map +1 -1
- package/dist/moduleResolution.d.mts +10 -1
- package/dist/moduleResolution.d.mts.map +1 -1
- package/dist/moduleResolution.mjs +40 -7
- package/dist/moduleResolution.mjs.map +1 -1
- package/dist/narration.cjs +3 -3
- package/dist/narration.d.mts +2 -2
- package/dist/narration.mjs +1 -2
- package/dist/native.cjs +9 -0
- package/dist/native.d.mts +4 -3
- package/dist/native.mjs +3 -2
- package/dist/nodePlatform.cjs +77 -0
- package/dist/nodePlatform.cjs.map +1 -0
- package/dist/nodePlatform.d.mts +17 -0
- package/dist/nodePlatform.d.mts.map +1 -0
- package/dist/nodePlatform.mjs +72 -0
- package/dist/nodePlatform.mjs.map +1 -0
- package/dist/notification.cjs +15 -15
- package/dist/notification.d.mts +2 -2
- package/dist/notification.mjs +1 -2
- package/dist/packageApi.cjs +11 -11
- package/dist/packageApi.d.mts +2 -2
- package/dist/packageApi.mjs +2 -2
- package/dist/packageApiServer.cjs +45 -27
- package/dist/packageApiServer.cjs.map +1 -1
- package/dist/packageApiServer.d.mts +36 -26
- package/dist/packageApiServer.d.mts.map +1 -1
- package/dist/packageApiServer.mjs +44 -26
- package/dist/packageApiServer.mjs.map +1 -1
- package/dist/piSettings.cjs +41 -20
- package/dist/piSettings.d.mts +4 -2
- package/dist/piSettings.mjs +4 -2
- package/dist/platform.cjs +62 -0
- package/dist/platform.d.mts +10 -0
- package/dist/platform.mjs +10 -0
- package/dist/pluginProtocol.cjs +7 -8
- package/dist/pluginProtocol.d.mts +2 -2
- package/dist/pluginProtocol.mjs +1 -2
- package/dist/poPackage.cjs +12 -0
- package/dist/poPackage.d.mts +3 -0
- package/dist/poPackage.mjs +3 -0
- package/dist/profileIdentity.cjs +1 -1
- package/dist/profileIdentity.d.mts +2 -2
- package/dist/profileIdentity.mjs +1 -2
- package/dist/protocol.cjs +3 -3
- package/dist/protocol.d.mts +2 -2
- package/dist/protocol.mjs +1 -2
- package/dist/readiness.cjs +6 -6
- package/dist/readiness.d.mts +2 -2
- package/dist/readiness.mjs +1 -2
- package/dist/remoteApi.cjs.map +1 -1
- package/dist/remoteApi.d.mts +2 -2
- package/dist/remoteApi.mjs.map +1 -1
- package/dist/remoteRuntime.cjs +42 -65
- package/dist/remoteRuntime.cjs.map +1 -1
- package/dist/remoteRuntime.d.mts +3 -2
- package/dist/remoteRuntime.d.mts.map +1 -1
- package/dist/remoteRuntime.mjs +41 -62
- package/dist/remoteRuntime.mjs.map +1 -1
- package/dist/runtimeConfig.cjs +4 -4
- package/dist/runtimeConfig.cjs.map +1 -1
- package/dist/runtimeConfig.d.mts +10 -9
- package/dist/runtimeConfig.d.mts.map +1 -1
- package/dist/runtimeConfig.mjs +4 -4
- package/dist/runtimeConfig.mjs.map +1 -1
- package/dist/runtimeContextApi.cjs +10 -3
- package/dist/runtimeContextApi.cjs.map +1 -1
- package/dist/runtimeContextApi.d.mts +3 -3
- package/dist/runtimeContextApi.d.mts.map +1 -1
- package/dist/runtimeContextApi.mjs +10 -3
- package/dist/runtimeContextApi.mjs.map +1 -1
- package/dist/runtimeCordisHost.cjs +46 -46
- package/dist/runtimeCordisHost.cjs.map +1 -1
- package/dist/runtimeCordisHost.d.mts +29 -28
- package/dist/runtimeCordisHost.d.mts.map +1 -1
- package/dist/runtimeCordisHost.mjs +42 -42
- package/dist/runtimeCordisHost.mjs.map +1 -1
- package/dist/runtimeIdentity.cjs +6 -9
- package/dist/runtimeIdentity.cjs.map +1 -1
- package/dist/runtimeIdentity.d.mts +5 -1
- package/dist/runtimeIdentity.d.mts.map +1 -1
- package/dist/runtimeIdentity.mjs +5 -8
- package/dist/runtimeIdentity.mjs.map +1 -1
- package/dist/runtimeJson.cjs +10 -45
- package/dist/runtimeJson.d.mts +3 -22
- package/dist/runtimeJson.mjs +3 -39
- package/dist/runtimeLogSinkTelemetry.cjs +19 -19
- package/dist/runtimeLogSinkTelemetry.cjs.map +1 -1
- package/dist/runtimeLogSinkTelemetry.d.mts +19 -19
- package/dist/runtimeLogSinkTelemetry.mjs +19 -19
- package/dist/runtimeLogSinkTelemetry.mjs.map +1 -1
- package/dist/runtimePackages.cjs +7 -2
- package/dist/runtimePackages.cjs.map +1 -1
- package/dist/runtimePackages.d.mts +4 -1
- package/dist/runtimePackages.d.mts.map +1 -1
- package/dist/runtimePackages.mjs +7 -2
- package/dist/runtimePackages.mjs.map +1 -1
- package/dist/runtimePiSettings.cjs +40 -263
- package/dist/runtimePiSettings.d.mts +3 -72
- package/dist/runtimePiSettings.mjs +3 -241
- package/dist/runtimeProtocol.cjs +19 -19
- package/dist/runtimeProtocol.cjs.map +1 -1
- package/dist/runtimeProtocol.d.mts +7 -7
- package/dist/runtimeProtocol.d.mts.map +1 -1
- package/dist/runtimeProtocol.mjs +17 -17
- package/dist/runtimeProtocol.mjs.map +1 -1
- package/dist/runtimeTransition.cjs +9 -9
- package/dist/runtimeTransition.cjs.map +1 -1
- package/dist/runtimeTransition.d.mts +10 -10
- package/dist/runtimeTransition.d.mts.map +1 -1
- package/dist/runtimeTransition.mjs +7 -7
- package/dist/runtimeTransition.mjs.map +1 -1
- package/dist/sandboxHarness.mjs +1 -2
- package/dist/server.cjs +3 -7
- package/dist/server.d.mts +6 -6
- package/dist/server.mjs +3 -4
- package/dist/serverPlugin.cjs +39 -0
- package/dist/serverPlugin.d.mts +12 -0
- package/dist/serverPlugin.mjs +11 -0
- package/dist/serverTelemetry.cjs +1 -1
- package/dist/serverTelemetry.cjs.map +1 -1
- package/dist/serverTelemetry.d.mts +2 -2
- package/dist/serverTelemetry.mjs +2 -2
- package/dist/serverTelemetry.mjs.map +1 -1
- package/dist/sessionFilesApi.cjs +41 -37
- package/dist/sessionFilesApi.cjs.map +1 -1
- package/dist/sessionFilesApi.d.mts +6 -3
- package/dist/sessionFilesApi.d.mts.map +1 -1
- package/dist/sessionFilesApi.mjs +41 -36
- package/dist/sessionFilesApi.mjs.map +1 -1
- package/dist/sessionProtocol.cjs +31 -6
- package/dist/sessionProtocol.d.mts +8 -3
- package/dist/sessionProtocol.mjs +8 -2
- package/dist/skills.cjs +5 -5
- package/dist/skills.d.mts +2 -2
- package/dist/skills.mjs +1 -2
- package/dist/sqliteSessionStorage.cjs +28 -50
- package/dist/sqliteSessionStorage.cjs.map +1 -1
- package/dist/sqliteSessionStorage.d.mts +13 -20
- package/dist/sqliteSessionStorage.d.mts.map +1 -1
- package/dist/sqliteSessionStorage.mjs +25 -48
- package/dist/sqliteSessionStorage.mjs.map +1 -1
- package/dist/src/constants/agentSettled.cjs +7 -0
- package/dist/src/constants/agentSettled.cjs.map +1 -0
- package/dist/src/constants/agentSettled.mjs +7 -0
- package/dist/src/constants/agentSettled.mjs.map +1 -0
- package/dist/src/constants/contextApi.cjs +3 -1
- package/dist/src/constants/contextApi.cjs.map +1 -1
- package/dist/src/constants/contextApi.d.mts +2 -1
- package/dist/src/constants/contextApi.d.mts.map +1 -1
- package/dist/src/constants/contextApi.mjs +3 -2
- package/dist/src/constants/contextApi.mjs.map +1 -1
- package/dist/src/constants/voiceTools.cjs +6 -6
- package/dist/src/constants/voiceTools.cjs.map +1 -1
- package/dist/src/constants/voiceTools.d.mts +3 -3
- package/dist/src/constants/voiceTools.mjs +4 -4
- package/dist/src/constants/voiceTools.mjs.map +1 -1
- package/dist/src/extensions/extensionFile.cjs +22 -5
- package/dist/src/extensions/extensionFile.cjs.map +1 -1
- package/dist/src/extensions/extensionFile.d.mts +17 -4
- package/dist/src/extensions/extensionFile.d.mts.map +1 -1
- package/dist/src/extensions/extensionFile.mjs +22 -6
- package/dist/src/extensions/extensionFile.mjs.map +1 -1
- package/dist/src/extensions/serverPlugin.cjs +231 -92
- package/dist/src/extensions/serverPlugin.cjs.map +1 -1
- package/dist/src/extensions/serverPlugin.d.mts +2 -2
- package/dist/src/extensions/serverPlugin.d.mts.map +1 -1
- package/dist/src/extensions/serverPlugin.mjs +232 -93
- package/dist/src/extensions/serverPlugin.mjs.map +1 -1
- package/dist/src/pi/piSessionRuntime.cjs +349 -142
- package/dist/src/pi/piSessionRuntime.cjs.map +1 -1
- package/dist/src/pi/piSessionRuntime.d.mts +18 -17
- package/dist/src/pi/piSessionRuntime.d.mts.map +1 -1
- package/dist/src/pi/piSessionRuntime.mjs +342 -135
- package/dist/src/pi/piSessionRuntime.mjs.map +1 -1
- package/dist/src/schemas/agentModel.cjs +2 -2
- package/dist/src/schemas/agentModel.cjs.map +1 -1
- package/dist/src/schemas/agentModel.d.mts +1 -1
- package/dist/src/schemas/agentModel.mjs +2 -2
- package/dist/src/schemas/agentModel.mjs.map +1 -1
- package/dist/src/schemas/apiContracts.d.mts +2 -2
- package/dist/src/schemas/apiContracts.d.mts.map +1 -1
- package/dist/src/schemas/askUser.cjs +4 -4
- package/dist/src/schemas/askUser.cjs.map +1 -1
- package/dist/src/schemas/askUser.d.mts +4 -4
- package/dist/src/schemas/askUser.d.mts.map +1 -1
- package/dist/src/schemas/askUser.mjs +3 -3
- package/dist/src/schemas/askUser.mjs.map +1 -1
- package/dist/src/schemas/backgroundWork.cjs +10 -10
- package/dist/src/schemas/backgroundWork.cjs.map +1 -1
- package/dist/src/schemas/backgroundWork.d.mts +9 -9
- package/dist/src/schemas/backgroundWork.d.mts.map +1 -1
- package/dist/src/schemas/backgroundWork.mjs +8 -8
- package/dist/src/schemas/backgroundWork.mjs.map +1 -1
- package/dist/src/schemas/childProcess.cjs +5 -5
- package/dist/src/schemas/childProcess.cjs.map +1 -1
- package/dist/src/schemas/childProcess.d.mts +2 -2
- package/dist/src/schemas/childProcess.mjs +5 -5
- package/dist/src/schemas/childProcess.mjs.map +1 -1
- package/dist/src/schemas/contextContributions.cjs +10 -10
- package/dist/src/schemas/contextContributions.cjs.map +1 -1
- package/dist/src/schemas/contextContributions.d.mts +16 -16
- package/dist/src/schemas/contextContributions.d.mts.map +1 -1
- package/dist/src/schemas/contextContributions.mjs +8 -8
- package/dist/src/schemas/contextContributions.mjs.map +1 -1
- package/dist/src/schemas/delegation.cjs +17 -17
- package/dist/src/schemas/delegation.cjs.map +1 -1
- package/dist/src/schemas/delegation.d.mts +16 -16
- package/dist/src/schemas/delegation.d.mts.map +1 -1
- package/dist/src/schemas/delegation.mjs +10 -10
- package/dist/src/schemas/delegation.mjs.map +1 -1
- package/dist/src/schemas/extensionFile.d.mts +23 -19
- package/dist/src/schemas/extensionFile.d.mts.map +1 -1
- package/dist/src/schemas/footer.cjs.map +1 -1
- package/dist/src/schemas/footer.d.mts +5 -5
- package/dist/src/schemas/footer.d.mts.map +1 -1
- package/dist/src/schemas/footer.mjs.map +1 -1
- package/dist/src/schemas/headless.cjs +37 -37
- package/dist/src/schemas/headless.cjs.map +1 -1
- package/dist/src/schemas/headless.d.mts +100 -101
- package/dist/src/schemas/headless.d.mts.map +1 -1
- package/dist/src/schemas/headless.mjs +24 -24
- package/dist/src/schemas/headless.mjs.map +1 -1
- package/dist/src/schemas/help.cjs +60 -60
- package/dist/src/schemas/help.cjs.map +1 -1
- package/dist/src/schemas/help.d.mts +43 -43
- package/dist/src/schemas/help.d.mts.map +1 -1
- package/dist/src/schemas/help.mjs +41 -41
- package/dist/src/schemas/help.mjs.map +1 -1
- package/dist/src/schemas/home.cjs +127 -0
- package/dist/src/schemas/home.cjs.map +1 -0
- package/dist/src/schemas/home.d.mts +63 -0
- package/dist/src/schemas/home.d.mts.map +1 -0
- package/dist/src/schemas/home.mjs +121 -0
- package/dist/src/schemas/home.mjs.map +1 -0
- package/dist/src/schemas/httpApiContracts.cjs +441 -0
- package/dist/src/schemas/httpApiContracts.cjs.map +1 -0
- package/dist/src/schemas/httpApiContracts.d.mts +78 -0
- package/dist/src/schemas/httpApiContracts.d.mts.map +1 -0
- package/dist/src/schemas/httpApiContracts.mjs +434 -0
- package/dist/src/schemas/httpApiContracts.mjs.map +1 -0
- package/dist/src/schemas/hubChannel.cjs +3 -0
- package/dist/src/schemas/hubChannel.cjs.map +1 -1
- package/dist/src/schemas/hubChannel.d.mts +84 -60
- package/dist/src/schemas/hubChannel.d.mts.map +1 -1
- package/dist/src/schemas/hubChannel.mjs +3 -1
- package/dist/src/schemas/hubChannel.mjs.map +1 -1
- package/dist/src/schemas/leader.cjs.map +1 -1
- package/dist/src/schemas/leader.d.mts +3 -3
- package/dist/src/schemas/leader.d.mts.map +1 -1
- package/dist/src/schemas/leader.mjs.map +1 -1
- package/dist/src/schemas/mcpBundle.d.mts +3 -3
- package/dist/src/schemas/mcpFacet.cjs.map +1 -1
- package/dist/src/schemas/mcpFacet.d.mts +22 -22
- package/dist/src/schemas/mcpFacet.d.mts.map +1 -1
- package/dist/src/schemas/mcpFacet.mjs.map +1 -1
- package/dist/src/schemas/mcpProjection.cjs +41 -41
- package/dist/src/schemas/mcpProjection.cjs.map +1 -1
- package/dist/src/schemas/mcpProjection.d.mts +31 -30
- package/dist/src/schemas/mcpProjection.d.mts.map +1 -1
- package/dist/src/schemas/mcpProjection.mjs +29 -29
- package/dist/src/schemas/mcpProjection.mjs.map +1 -1
- package/dist/src/schemas/mcpSession.cjs +23 -23
- package/dist/src/schemas/mcpSession.cjs.map +1 -1
- package/dist/src/schemas/mcpSession.d.mts +12 -12
- package/dist/src/schemas/mcpSession.d.mts.map +1 -1
- package/dist/src/schemas/mcpSession.mjs +18 -18
- package/dist/src/schemas/mcpSession.mjs.map +1 -1
- package/dist/src/schemas/mcpStatus.cjs +5 -5
- package/dist/src/schemas/mcpStatus.cjs.map +1 -1
- package/dist/src/schemas/mcpStatus.d.mts +4 -4
- package/dist/src/schemas/mcpStatus.d.mts.map +1 -1
- package/dist/src/schemas/mcpStatus.mjs +4 -4
- package/dist/src/schemas/mcpStatus.mjs.map +1 -1
- package/dist/src/schemas/mcpToolResolver.cjs +9 -9
- package/dist/src/schemas/mcpToolResolver.cjs.map +1 -1
- package/dist/src/schemas/mcpToolResolver.d.mts +7 -7
- package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -1
- package/dist/src/schemas/mcpToolResolver.mjs +7 -7
- package/dist/src/schemas/mcpToolResolver.mjs.map +1 -1
- package/dist/src/schemas/narration.cjs +9 -9
- package/dist/src/schemas/narration.cjs.map +1 -1
- package/dist/src/schemas/narration.d.mts +5 -5
- package/dist/src/schemas/narration.d.mts.map +1 -1
- package/dist/src/schemas/narration.mjs +7 -7
- package/dist/src/schemas/narration.mjs.map +1 -1
- package/dist/src/schemas/notification.cjs +45 -45
- package/dist/src/schemas/notification.cjs.map +1 -1
- package/dist/src/schemas/notification.d.mts +22 -22
- package/dist/src/schemas/notification.d.mts.map +1 -1
- package/dist/src/schemas/notification.mjs +31 -31
- package/dist/src/schemas/notification.mjs.map +1 -1
- package/dist/src/schemas/packageApi.cjs +28 -28
- package/dist/src/schemas/packageApi.cjs.map +1 -1
- package/dist/src/schemas/packageApi.d.mts +91 -65
- package/dist/src/schemas/packageApi.d.mts.map +1 -1
- package/dist/src/schemas/packageApi.mjs +18 -18
- package/dist/src/schemas/packageApi.mjs.map +1 -1
- package/dist/src/schemas/platform.cjs +34 -0
- package/dist/src/schemas/platform.cjs.map +1 -0
- package/dist/src/schemas/platform.d.mts +75 -0
- package/dist/src/schemas/platform.d.mts.map +1 -0
- package/dist/src/schemas/platform.mjs +27 -0
- package/dist/src/schemas/platform.mjs.map +1 -0
- package/dist/src/schemas/pluginContributions.cjs.map +1 -1
- package/dist/src/schemas/pluginContributions.d.mts +12 -12
- package/dist/src/schemas/pluginContributions.d.mts.map +1 -1
- package/dist/src/schemas/pluginContributions.mjs.map +1 -1
- package/dist/src/schemas/pluginProtocol.cjs +24 -27
- package/dist/src/schemas/pluginProtocol.cjs.map +1 -1
- package/dist/src/schemas/pluginProtocol.d.mts +21 -21
- package/dist/src/schemas/pluginProtocol.d.mts.map +1 -1
- package/dist/src/schemas/pluginProtocol.mjs +18 -20
- package/dist/src/schemas/pluginProtocol.mjs.map +1 -1
- package/dist/src/schemas/profileIdentity.cjs +2 -2
- package/dist/src/schemas/profileIdentity.cjs.map +1 -1
- package/dist/src/schemas/profileIdentity.d.mts +1 -1
- package/dist/src/schemas/profileIdentity.mjs +2 -2
- package/dist/src/schemas/profileIdentity.mjs.map +1 -1
- package/dist/src/schemas/protocolChannelsContract.cjs +27 -0
- package/dist/src/schemas/protocolChannelsContract.cjs.map +1 -0
- package/dist/src/schemas/protocolChannelsContract.d.mts +37 -0
- package/dist/src/schemas/protocolChannelsContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolChannelsContract.mjs +25 -0
- package/dist/src/schemas/protocolChannelsContract.mjs.map +1 -0
- package/dist/src/schemas/protocolContracts.cjs +168 -0
- package/dist/src/schemas/protocolContracts.cjs.map +1 -0
- package/dist/src/schemas/protocolContracts.d.mts +69 -0
- package/dist/src/schemas/protocolContracts.d.mts.map +1 -0
- package/dist/src/schemas/protocolContracts.mjs +164 -0
- package/dist/src/schemas/protocolContracts.mjs.map +1 -0
- package/dist/src/schemas/protocolHubContract.cjs +51 -0
- package/dist/src/schemas/protocolHubContract.cjs.map +1 -0
- package/dist/src/schemas/protocolHubContract.d.mts +218 -0
- package/dist/src/schemas/protocolHubContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolHubContract.mjs +49 -0
- package/dist/src/schemas/protocolHubContract.mjs.map +1 -0
- package/dist/src/schemas/protocolSessionContract.cjs +22 -0
- package/dist/src/schemas/protocolSessionContract.cjs.map +1 -0
- package/dist/src/schemas/protocolSessionContract.d.mts +324 -0
- package/dist/src/schemas/protocolSessionContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolSessionContract.mjs +22 -0
- package/dist/src/schemas/protocolSessionContract.mjs.map +1 -0
- package/dist/src/schemas/protocolThreadContract.cjs +21 -0
- package/dist/src/schemas/protocolThreadContract.cjs.map +1 -0
- package/dist/src/schemas/protocolThreadContract.d.mts +29 -0
- package/dist/src/schemas/protocolThreadContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolThreadContract.mjs +20 -0
- package/dist/src/schemas/protocolThreadContract.mjs.map +1 -0
- package/dist/src/schemas/readiness.cjs +36 -36
- package/dist/src/schemas/readiness.cjs.map +1 -1
- package/dist/src/schemas/readiness.d.mts +37 -37
- package/dist/src/schemas/readiness.d.mts.map +1 -1
- package/dist/src/schemas/readiness.mjs +31 -31
- package/dist/src/schemas/readiness.mjs.map +1 -1
- package/dist/src/schemas/serverBundle.d.mts +5 -5
- package/dist/src/schemas/serverPlugin.cjs +103 -0
- package/dist/src/schemas/serverPlugin.cjs.map +1 -0
- package/dist/src/schemas/serverPlugin.d.mts +176 -0
- package/dist/src/schemas/serverPlugin.d.mts.map +1 -0
- package/dist/src/schemas/serverPlugin.mjs +95 -0
- package/dist/src/schemas/serverPlugin.mjs.map +1 -0
- package/dist/src/schemas/serverScope.cjs +37 -0
- package/dist/src/schemas/serverScope.cjs.map +1 -0
- package/dist/src/schemas/serverScope.d.mts +77 -0
- package/dist/src/schemas/serverScope.d.mts.map +1 -0
- package/dist/src/schemas/serverScope.mjs +33 -0
- package/dist/src/schemas/serverScope.mjs.map +1 -0
- package/dist/src/schemas/sessionApiContracts.cjs +320 -0
- package/dist/src/schemas/sessionApiContracts.cjs.map +1 -0
- package/dist/src/schemas/sessionApiContracts.mjs +318 -0
- package/dist/src/schemas/sessionApiContracts.mjs.map +1 -0
- package/dist/src/schemas/sessionProtocol.cjs +20 -13
- package/dist/src/schemas/sessionProtocol.cjs.map +1 -1
- package/dist/src/schemas/sessionProtocol.d.mts +37 -54
- package/dist/src/schemas/sessionProtocol.d.mts.map +1 -1
- package/dist/src/schemas/sessionProtocol.mjs +17 -8
- package/dist/src/schemas/sessionProtocol.mjs.map +1 -1
- package/dist/src/schemas/skills.cjs +16 -16
- package/dist/src/schemas/skills.cjs.map +1 -1
- package/dist/src/schemas/skills.d.mts +7 -7
- package/dist/src/schemas/skills.d.mts.map +1 -1
- package/dist/src/schemas/skills.mjs +12 -12
- package/dist/src/schemas/skills.mjs.map +1 -1
- package/dist/src/schemas/toolOverrides.cjs +9 -9
- package/dist/src/schemas/toolOverrides.cjs.map +1 -1
- package/dist/src/schemas/toolOverrides.d.mts +8 -8
- package/dist/src/schemas/toolOverrides.d.mts.map +1 -1
- package/dist/src/schemas/toolOverrides.mjs +7 -7
- package/dist/src/schemas/toolOverrides.mjs.map +1 -1
- package/dist/src/schemas/toolSurface.cjs +9 -9
- package/dist/src/schemas/toolSurface.cjs.map +1 -1
- package/dist/src/schemas/toolSurface.d.mts +13 -13
- package/dist/src/schemas/toolSurface.d.mts.map +1 -1
- package/dist/src/schemas/toolSurface.mjs +7 -7
- package/dist/src/schemas/toolSurface.mjs.map +1 -1
- package/dist/src/schemas/uiHub.cjs +9 -9
- package/dist/src/schemas/uiHub.cjs.map +1 -1
- package/dist/src/schemas/uiHub.d.mts +12 -12
- package/dist/src/schemas/uiHub.d.mts.map +1 -1
- package/dist/src/schemas/uiHub.mjs +7 -7
- package/dist/src/schemas/uiHub.mjs.map +1 -1
- package/dist/src/server/directHarnessRuntime.cjs +691 -775
- package/dist/src/server/directHarnessRuntime.cjs.map +1 -1
- package/dist/src/server/directHarnessRuntime.d.mts +5 -1
- package/dist/src/server/directHarnessRuntime.d.mts.map +1 -0
- package/dist/src/server/directHarnessRuntime.mjs +671 -754
- package/dist/src/server/directHarnessRuntime.mjs.map +1 -1
- package/dist/src/server/largeFrameLink.cjs +47 -0
- package/dist/src/server/largeFrameLink.cjs.map +1 -0
- package/dist/src/server/largeFrameLink.mjs +47 -0
- package/dist/src/server/largeFrameLink.mjs.map +1 -0
- package/dist/src/server/liveImport.cjs +1 -1
- package/dist/src/server/liveImport.cjs.map +1 -1
- package/dist/src/server/liveImport.d.mts +1 -1
- package/dist/src/server/liveImport.mjs +1 -1
- package/dist/src/server/liveImport.mjs.map +1 -1
- package/dist/src/server/mcpBundleLoader.cjs.map +1 -1
- package/dist/src/server/mcpBundleLoader.d.mts +6 -6
- package/dist/src/server/mcpBundleLoader.d.mts.map +1 -1
- package/dist/src/server/mcpBundleLoader.mjs.map +1 -1
- package/dist/src/server/serverPackages.cjs +60 -0
- package/dist/src/server/serverPackages.cjs.map +1 -0
- package/dist/src/server/serverPackages.d.mts +44 -0
- package/dist/src/server/serverPackages.d.mts.map +1 -0
- package/dist/src/server/serverPackages.mjs +59 -0
- package/dist/src/server/serverPackages.mjs.map +1 -0
- package/dist/src/server/serverScope.cjs +510 -0
- package/dist/src/server/serverScope.cjs.map +1 -0
- package/dist/src/server/serverScope.d.mts +123 -0
- package/dist/src/server/serverScope.d.mts.map +1 -0
- package/dist/src/server/serverScope.mjs +510 -0
- package/dist/src/server/serverScope.mjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.cjs +3 -3
- package/dist/src/server/sessionMcpHandler.cjs.map +1 -1
- package/dist/src/server/sessionMcpHandler.mjs +4 -4
- package/dist/src/server/sessionMcpHandler.mjs.map +1 -1
- package/dist/src/server/sessionMcpRoutes.cjs +2 -1
- package/dist/src/server/sessionMcpRoutes.cjs.map +1 -1
- package/dist/src/server/sessionMcpRoutes.mjs +2 -1
- package/dist/src/server/sessionMcpRoutes.mjs.map +1 -1
- package/dist/src/server/threadJournals.cjs +38 -107
- package/dist/src/server/threadJournals.cjs.map +1 -1
- package/dist/src/server/threadJournals.mjs +38 -104
- package/dist/src/server/threadJournals.mjs.map +1 -1
- package/dist/src/services/apiSurfaceAssert/index.cjs +1 -1
- package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -1
- package/dist/src/services/apiSurfaceAssert/index.d.mts +6 -6
- package/dist/src/services/apiSurfaceAssert/index.mjs +1 -1
- package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -1
- package/dist/src/services/chatgptAuth/index.cjs +1 -220
- package/dist/src/services/chatgptAuth/index.cjs.map +1 -1
- package/dist/src/services/chatgptAuth/index.d.mts +0 -18
- package/dist/src/services/chatgptAuth/index.d.mts.map +1 -1
- package/dist/src/services/chatgptAuth/index.mjs +1 -217
- package/dist/src/services/chatgptAuth/index.mjs.map +1 -1
- package/dist/src/services/chatgptImages/index.cjs +1 -1
- package/dist/src/services/chatgptImages/index.cjs.map +1 -1
- package/dist/src/services/chatgptImages/index.mjs +1 -1
- package/dist/src/services/chatgptImages/index.mjs.map +1 -1
- package/dist/src/services/chatgptLogin/index.cjs +230 -0
- package/dist/src/services/chatgptLogin/index.cjs.map +1 -0
- package/dist/src/services/chatgptLogin/index.d.mts +21 -0
- package/dist/src/services/chatgptLogin/index.d.mts.map +1 -0
- package/dist/src/services/chatgptLogin/index.mjs +227 -0
- package/dist/src/services/chatgptLogin/index.mjs.map +1 -0
- package/dist/src/services/chatgptWebSearch/index.cjs +1 -1
- package/dist/src/services/chatgptWebSearch/index.cjs.map +1 -1
- package/dist/src/services/chatgptWebSearch/index.mjs +1 -1
- package/dist/src/services/chatgptWebSearch/index.mjs.map +1 -1
- package/dist/src/services/contextContributions/index.cjs +8 -8
- package/dist/src/services/contextContributions/index.cjs.map +1 -1
- package/dist/src/services/contextContributions/index.d.mts +3 -3
- package/dist/src/services/contextContributions/index.d.mts.map +1 -1
- package/dist/src/services/contextContributions/index.mjs +8 -8
- package/dist/src/services/contextContributions/index.mjs.map +1 -1
- package/dist/src/services/devProxyStore/devProxyRecords.cjs +59 -0
- package/dist/src/services/devProxyStore/devProxyRecords.cjs.map +1 -0
- package/dist/src/services/devProxyStore/devProxyRecords.mjs +56 -0
- package/dist/src/services/devProxyStore/devProxyRecords.mjs.map +1 -0
- package/dist/src/services/devProxyStore/index.cjs +7 -101
- package/dist/src/services/devProxyStore/index.cjs.map +1 -1
- package/dist/src/services/devProxyStore/index.mjs +7 -101
- package/dist/src/services/devProxyStore/index.mjs.map +1 -1
- package/dist/src/services/devProxyStore/sync.cjs +66 -0
- package/dist/src/services/devProxyStore/sync.cjs.map +1 -0
- package/dist/src/services/devProxyStore/sync.mjs +63 -0
- package/dist/src/services/devProxyStore/sync.mjs.map +1 -0
- package/dist/src/services/durableNavigation/docs.cjs +15 -0
- package/dist/src/services/durableNavigation/docs.cjs.map +1 -0
- package/dist/src/services/durableNavigation/docs.mjs +16 -0
- package/dist/src/services/durableNavigation/docs.mjs.map +1 -0
- package/dist/src/services/durableNavigation/index.cjs +3 -18
- package/dist/src/services/durableNavigation/index.cjs.map +1 -1
- package/dist/src/services/durableNavigation/index.mjs +2 -17
- package/dist/src/services/durableNavigation/index.mjs.map +1 -1
- package/dist/src/services/durableQueue/docs.cjs +12 -0
- package/dist/src/services/durableQueue/docs.cjs.map +1 -0
- package/dist/src/services/durableQueue/docs.mjs +13 -0
- package/dist/src/services/durableQueue/docs.mjs.map +1 -0
- package/dist/src/services/durableQueue/index.cjs +151 -0
- package/dist/src/services/durableQueue/index.cjs.map +1 -0
- package/dist/src/services/durableQueue/index.mjs +149 -0
- package/dist/src/services/durableQueue/index.mjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/docs.cjs +11 -0
- package/dist/src/services/durableRequestReceipts/docs.cjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/docs.mjs +12 -0
- package/dist/src/services/durableRequestReceipts/docs.mjs.map +1 -0
- package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.cjs +10 -16
- package/dist/src/services/durableRequestReceipts/index.cjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/index.d.mts +12 -0
- package/dist/src/services/durableRequestReceipts/index.d.mts.map +1 -0
- package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.mjs +7 -13
- package/dist/src/services/durableRequestReceipts/index.mjs.map +1 -0
- package/dist/src/services/durableSession/docs.cjs +65 -0
- package/dist/src/services/durableSession/docs.cjs.map +1 -0
- package/dist/src/services/durableSession/docs.d.mts +17 -0
- package/dist/src/services/durableSession/docs.d.mts.map +1 -0
- package/dist/src/services/durableSession/docs.mjs +60 -0
- package/dist/src/services/durableSession/docs.mjs.map +1 -0
- package/dist/src/services/durableSession/index.cjs +21 -0
- package/dist/src/services/durableSession/index.cjs.map +1 -0
- package/dist/src/services/durableSession/index.d.mts +13 -0
- package/dist/src/services/durableSession/index.d.mts.map +1 -0
- package/dist/src/services/durableSession/index.mjs +20 -0
- package/dist/src/services/durableSession/index.mjs.map +1 -0
- package/dist/src/services/durableSubagents/docs.cjs +15 -0
- package/dist/src/services/durableSubagents/docs.cjs.map +1 -0
- package/dist/src/services/durableSubagents/docs.mjs +16 -0
- package/dist/src/services/durableSubagents/docs.mjs.map +1 -0
- package/dist/src/services/durableSubagents/extension.cjs +11 -0
- package/dist/src/services/durableSubagents/extension.cjs.map +1 -0
- package/dist/src/services/durableSubagents/extension.mjs +12 -0
- package/dist/src/services/durableSubagents/extension.mjs.map +1 -0
- package/dist/src/services/durableSubagents/index.cjs +95 -0
- package/dist/src/services/durableSubagents/index.cjs.map +1 -0
- package/dist/src/services/durableSubagents/index.mjs +90 -0
- package/dist/src/services/durableSubagents/index.mjs.map +1 -0
- package/dist/src/services/durableSubagents/tasks.cjs +25 -0
- package/dist/src/services/durableSubagents/tasks.cjs.map +1 -0
- package/dist/src/services/durableSubagents/tasks.mjs +26 -0
- package/dist/src/services/durableSubagents/tasks.mjs.map +1 -0
- package/dist/src/services/headlessClient/index.cjs +20 -13
- package/dist/src/services/headlessClient/index.cjs.map +1 -1
- package/dist/src/services/headlessClient/index.mjs +21 -14
- package/dist/src/services/headlessClient/index.mjs.map +1 -1
- package/dist/src/services/historyOwnership/type.d.mts +15 -0
- package/dist/src/services/historyOwnership/type.d.mts.map +1 -0
- package/dist/src/services/hubChannelHarness/index.cjs +2 -2
- package/dist/src/services/hubChannelHarness/index.cjs.map +1 -1
- package/dist/src/services/hubChannelHarness/index.d.mts +8 -8
- package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -1
- package/dist/src/services/hubChannelHarness/index.mjs +2 -2
- package/dist/src/services/hubChannelHarness/index.mjs.map +1 -1
- package/dist/src/services/json/core.cjs +30 -0
- package/dist/src/services/json/core.cjs.map +1 -0
- package/dist/src/services/json/core.d.mts +21 -0
- package/dist/src/services/json/core.d.mts.map +1 -0
- package/dist/src/services/json/core.mjs +26 -0
- package/dist/src/services/json/core.mjs.map +1 -0
- package/dist/src/services/json/sync.cjs +48 -0
- package/dist/src/services/json/sync.cjs.map +1 -0
- package/dist/src/services/json/sync.d.mts +22 -0
- package/dist/src/services/json/sync.d.mts.map +1 -0
- package/dist/src/services/json/sync.mjs +43 -0
- package/dist/src/services/json/sync.mjs.map +1 -0
- package/dist/src/services/kernel/index.cjs +2 -2
- package/dist/src/services/kernel/index.cjs.map +1 -1
- package/dist/src/services/kernel/index.d.mts +3 -3
- package/dist/src/services/kernel/index.d.mts.map +1 -1
- package/dist/src/services/kernel/index.mjs +2 -2
- package/dist/src/services/kernel/index.mjs.map +1 -1
- package/dist/src/services/nativeChildTools/index.cjs +16 -0
- package/dist/src/services/nativeChildTools/index.cjs.map +1 -0
- package/dist/src/services/nativeChildTools/index.mjs +16 -0
- package/dist/src/services/nativeChildTools/index.mjs.map +1 -0
- package/dist/src/services/nodeHost/index.cjs +30 -0
- package/dist/src/services/nodeHost/index.cjs.map +1 -0
- package/dist/src/services/nodeHost/index.d.mts +16 -0
- package/dist/src/services/nodeHost/index.d.mts.map +1 -0
- package/dist/src/services/nodeHost/index.mjs +27 -0
- package/dist/src/services/nodeHost/index.mjs.map +1 -0
- package/dist/src/services/nodeModelDependencies/index.cjs +89 -0
- package/dist/src/services/nodeModelDependencies/index.cjs.map +1 -0
- package/dist/src/services/nodeModelDependencies/index.mjs +86 -0
- package/dist/src/services/nodeModelDependencies/index.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.cjs +6 -128
- package/dist/src/services/openSessionRegistry/index.cjs.map +1 -1
- package/dist/src/services/openSessionRegistry/index.d.mts +5 -36
- package/dist/src/services/openSessionRegistry/index.mjs +6 -128
- package/dist/src/services/openSessionRegistry/index.mjs.map +1 -1
- package/dist/src/services/openSessionRegistry/openSessionRecords.cjs +87 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts +30 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.mjs +81 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.cjs +71 -0
- package/dist/src/services/openSessionRegistry/sync.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.d.mts +14 -0
- package/dist/src/services/openSessionRegistry/sync.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.mjs +68 -0
- package/dist/src/services/openSessionRegistry/sync.mjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.cjs +1 -1
- package/dist/src/services/packageApiHarness/index.cjs.map +1 -1
- package/dist/src/services/packageApiHarness/index.d.mts +6 -6
- package/dist/src/services/packageApiHarness/index.d.mts.map +1 -1
- package/dist/src/services/packageApiHarness/index.mjs +2 -2
- package/dist/src/services/packageApiHarness/index.mjs.map +1 -1
- package/dist/src/services/piArgs/index.cjs +53 -0
- package/dist/src/services/piArgs/index.cjs.map +1 -0
- package/dist/src/services/piArgs/index.d.mts +6 -0
- package/dist/src/services/piArgs/index.d.mts.map +1 -0
- package/dist/src/services/piArgs/index.mjs +53 -0
- package/dist/src/services/piArgs/index.mjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.cjs +47 -39
- package/dist/src/services/piExtensionHost/index.cjs.map +1 -1
- package/dist/src/services/piExtensionHost/index.d.mts +83 -0
- package/dist/src/services/piExtensionHost/index.d.mts.map +1 -0
- package/dist/src/services/piExtensionHost/index.mjs +47 -38
- package/dist/src/services/piExtensionHost/index.mjs.map +1 -1
- package/dist/src/services/piHelpTools/index.cjs +5 -5
- package/dist/src/services/piHelpTools/index.cjs.map +1 -1
- package/dist/src/services/piHelpTools/index.d.mts.map +1 -1
- package/dist/src/services/piHelpTools/index.mjs +7 -7
- package/dist/src/services/piHelpTools/index.mjs.map +1 -1
- package/dist/src/services/piMessages/index.cjs +106 -0
- package/dist/src/services/piMessages/index.cjs.map +1 -0
- package/dist/src/services/piMessages/index.mjs +105 -0
- package/dist/src/services/piMessages/index.mjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.cjs +4 -4
- package/dist/src/services/piSessionEntries/index.cjs.map +1 -1
- package/dist/src/services/piSessionEntries/index.mjs +3 -3
- package/dist/src/services/piSessionEntries/index.mjs.map +1 -1
- package/dist/src/services/piSettings/core.cjs +308 -0
- package/dist/src/services/piSettings/core.cjs.map +1 -0
- package/dist/src/services/piSettings/core.d.mts +102 -0
- package/dist/src/services/piSettings/core.d.mts.map +1 -0
- package/dist/src/services/piSettings/core.mjs +276 -0
- package/dist/src/services/piSettings/core.mjs.map +1 -0
- package/dist/src/services/piSettings/sync.cjs +119 -0
- package/dist/src/services/piSettings/sync.cjs.map +1 -0
- package/dist/src/services/piSettings/sync.d.mts +44 -0
- package/dist/src/services/piSettings/sync.d.mts.map +1 -0
- package/dist/src/services/piSettings/sync.mjs +110 -0
- package/dist/src/services/piSettings/sync.mjs.map +1 -0
- package/dist/src/services/piSummary/index.cjs +7 -0
- package/dist/src/services/piSummary/index.cjs.map +1 -0
- package/dist/src/services/piSummary/index.mjs +7 -0
- package/dist/src/services/piSummary/index.mjs.map +1 -0
- package/dist/src/services/platformFiles/index.cjs +44 -0
- package/dist/src/services/platformFiles/index.cjs.map +1 -0
- package/dist/src/services/platformFiles/index.d.mts +16 -0
- package/dist/src/services/platformFiles/index.d.mts.map +1 -0
- package/dist/src/services/platformFiles/index.mjs +39 -0
- package/dist/src/services/platformFiles/index.mjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.cjs +19 -13
- package/dist/src/services/pluginLifecycle/index.cjs.map +1 -1
- package/dist/src/services/pluginLifecycle/index.d.mts +2 -0
- package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -1
- package/dist/src/services/pluginLifecycle/index.mjs +19 -14
- package/dist/src/services/pluginLifecycle/index.mjs.map +1 -1
- package/dist/src/services/poPackage/core.cjs +73 -0
- package/dist/src/services/poPackage/core.cjs.map +1 -0
- package/dist/src/services/poPackage/core.d.mts +32 -0
- package/dist/src/services/poPackage/core.d.mts.map +1 -0
- package/dist/src/services/poPackage/core.mjs +66 -0
- package/dist/src/services/poPackage/core.mjs.map +1 -0
- package/dist/src/services/poPackage/sync.cjs +55 -0
- package/dist/src/services/poPackage/sync.cjs.map +1 -0
- package/dist/src/services/poPackage/sync.d.mts +21 -0
- package/dist/src/services/poPackage/sync.d.mts.map +1 -0
- package/dist/src/services/poPackage/sync.mjs +50 -0
- package/dist/src/services/poPackage/sync.mjs.map +1 -0
- package/dist/src/services/providerAuth/index.cjs +11 -7
- package/dist/src/services/providerAuth/index.cjs.map +1 -1
- package/dist/src/services/providerAuth/index.mjs +11 -7
- package/dist/src/services/providerAuth/index.mjs.map +1 -1
- package/dist/src/services/publicFileShares/index.cjs +1 -1
- package/dist/src/services/publicFileShares/index.cjs.map +1 -1
- package/dist/src/services/publicFileShares/index.d.mts +2 -2
- package/dist/src/services/publicFileShares/index.mjs +2 -2
- package/dist/src/services/publicFileShares/index.mjs.map +1 -1
- package/dist/src/services/remoteAccess/index.d.mts +1 -0
- package/dist/src/services/remoteAccess/index.d.mts.map +1 -1
- package/dist/src/services/remoteAccessStore/index.cjs +8 -190
- package/dist/src/services/remoteAccessStore/index.cjs.map +1 -1
- package/dist/src/services/remoteAccessStore/index.d.mts +2 -0
- package/dist/src/services/remoteAccessStore/index.mjs +7 -187
- package/dist/src/services/remoteAccessStore/index.mjs.map +1 -1
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs +98 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs +88 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs.map +1 -0
- package/dist/src/services/remoteAccessStore/sync.cjs +111 -0
- package/dist/src/services/remoteAccessStore/sync.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/sync.mjs +108 -0
- package/dist/src/services/remoteAccessStore/sync.mjs.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.cjs +23 -0
- package/dist/src/services/runtimeIdentity/sync.cjs.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.d.mts +9 -0
- package/dist/src/services/runtimeIdentity/sync.d.mts.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.mjs +20 -0
- package/dist/src/services/runtimeIdentity/sync.mjs.map +1 -0
- package/dist/src/services/serialRunner/index.cjs +25 -0
- package/dist/src/services/serialRunner/index.cjs.map +1 -0
- package/dist/src/services/serialRunner/index.d.mts +10 -0
- package/dist/src/services/serialRunner/index.d.mts.map +1 -0
- package/dist/src/services/serialRunner/index.mjs +25 -0
- package/dist/src/services/serialRunner/index.mjs.map +1 -0
- package/dist/src/services/{serverFacet → serverHost}/index.cjs +5 -5
- package/dist/src/services/serverHost/index.cjs.map +1 -0
- package/dist/src/services/serverHost/index.d.mts +31 -0
- package/dist/src/services/serverHost/index.d.mts.map +1 -0
- package/dist/src/services/{serverFacet → serverHost}/index.mjs +5 -5
- package/dist/src/services/serverHost/index.mjs.map +1 -0
- package/dist/src/services/sessionAttachments/index.cjs +4 -3
- package/dist/src/services/sessionAttachments/index.cjs.map +1 -1
- package/dist/src/services/sessionAttachments/index.d.mts +1 -6
- package/dist/src/services/sessionAttachments/index.d.mts.map +1 -1
- package/dist/src/services/sessionAttachments/index.mjs +3 -2
- package/dist/src/services/sessionAttachments/index.mjs.map +1 -1
- package/dist/src/services/sessionAttachments/type.d.mts +9 -0
- package/dist/src/services/sessionAttachments/type.d.mts.map +1 -0
- package/dist/src/services/sessionFiles/index.cjs +96 -0
- package/dist/src/services/sessionFiles/index.cjs.map +1 -0
- package/dist/src/services/sessionFiles/index.d.mts +33 -0
- package/dist/src/services/sessionFiles/index.d.mts.map +1 -0
- package/dist/src/services/sessionFiles/index.mjs +89 -0
- package/dist/src/services/sessionFiles/index.mjs.map +1 -0
- package/dist/src/services/sessionFiles/sessionDirectory.cjs +66 -0
- package/dist/src/services/sessionFiles/sessionDirectory.cjs.map +1 -0
- package/dist/src/services/sessionFiles/sessionDirectory.mjs +62 -0
- package/dist/src/services/sessionFiles/sessionDirectory.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.cjs +31 -33
- package/dist/src/services/sessionGitStatus/index.cjs.map +1 -1
- package/dist/src/services/sessionGitStatus/index.mjs +31 -33
- package/dist/src/services/sessionGitStatus/index.mjs.map +1 -1
- package/dist/src/services/sessionPresentation/index.cjs +3 -27
- package/dist/src/services/sessionPresentation/index.cjs.map +1 -1
- package/dist/src/services/sessionPresentation/index.mjs +3 -27
- package/dist/src/services/sessionPresentation/index.mjs.map +1 -1
- package/dist/src/services/skillPrompt/index.cjs +11 -0
- package/dist/src/services/skillPrompt/index.cjs.map +1 -0
- package/dist/src/services/skillPrompt/index.mjs +11 -0
- package/dist/src/services/skillPrompt/index.mjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs +44 -30
- package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -1
- package/dist/src/services/sqliteSessionHistory/index.d.mts +7 -4
- package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -1
- package/dist/src/services/sqliteSessionHistory/index.mjs +43 -28
- package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.cjs +21 -45
- package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.d.mts +3 -2
- package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.mjs +16 -38
- package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -1
- package/dist/src/services/testMode/index.cjs +162 -0
- package/dist/src/services/testMode/index.cjs.map +1 -0
- package/dist/src/services/testMode/index.d.mts +17 -0
- package/dist/src/services/testMode/index.d.mts.map +1 -0
- package/dist/src/services/testMode/index.mjs +155 -0
- package/dist/src/services/testMode/index.mjs.map +1 -0
- package/dist/src/services/toolOverrides/index.cjs +6 -6
- package/dist/src/services/toolOverrides/index.cjs.map +1 -1
- package/dist/src/services/toolOverrides/index.d.mts +3 -3
- package/dist/src/services/toolOverrides/index.d.mts.map +1 -1
- package/dist/src/services/toolOverrides/index.mjs +6 -6
- package/dist/src/services/toolOverrides/index.mjs.map +1 -1
- package/dist/src/services/toolPrompt/index.d.mts +17 -0
- package/dist/src/services/toolPrompt/index.d.mts.map +1 -0
- package/dist/src/services/toolSurface/index.cjs +3 -3
- package/dist/src/services/toolSurface/index.cjs.map +1 -1
- package/dist/src/services/toolSurface/index.d.mts +3 -3
- package/dist/src/services/toolSurface/index.d.mts.map +1 -1
- package/dist/src/services/toolSurface/index.mjs +4 -4
- package/dist/src/services/toolSurface/index.mjs.map +1 -1
- package/dist/src/services/traceContext/index.cjs.map +1 -1
- package/dist/src/services/traceContext/index.mjs.map +1 -1
- package/dist/src/services/transcriptPages/index.cjs +159 -33
- package/dist/src/services/transcriptPages/index.cjs.map +1 -1
- package/dist/src/services/transcriptPages/index.mjs +158 -34
- package/dist/src/services/transcriptPages/index.mjs.map +1 -1
- package/dist/src/services/voiceToolsContract/index.cjs +7 -7
- package/dist/src/services/voiceToolsContract/index.cjs.map +1 -1
- package/dist/src/services/voiceToolsContract/index.d.mts +4 -4
- package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -1
- package/dist/src/services/voiceToolsContract/index.mjs +7 -7
- package/dist/src/services/voiceToolsContract/index.mjs.map +1 -1
- package/dist/src/services/workspaceRegistry/index.cjs +9 -179
- package/dist/src/services/workspaceRegistry/index.cjs.map +1 -1
- package/dist/src/services/workspaceRegistry/index.d.mts +5 -47
- package/dist/src/services/workspaceRegistry/index.mjs +7 -176
- package/dist/src/services/workspaceRegistry/index.mjs.map +1 -1
- package/dist/src/services/workspaceRegistry/sync.cjs +148 -0
- package/dist/src/services/workspaceRegistry/sync.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/sync.d.mts +34 -0
- package/dist/src/services/workspaceRegistry/sync.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/sync.mjs +140 -0
- package/dist/src/services/workspaceRegistry/sync.mjs.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.cjs +114 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts +31 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.mjs +101 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.mjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +339 -202
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -1
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +16 -21
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -1
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +329 -191
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -1
- package/dist/src/systems/child/services/childSession/index.cjs +94 -20
- package/dist/src/systems/child/services/childSession/index.cjs.map +1 -1
- package/dist/src/systems/child/services/childSession/index.d.mts +12 -3
- package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -1
- package/dist/src/systems/child/services/childSession/index.mjs +94 -20
- package/dist/src/systems/child/services/childSession/index.mjs.map +1 -1
- package/dist/src/systems/child/types/childSession.cjs +33 -13
- package/dist/src/systems/child/types/childSession.cjs.map +1 -1
- package/dist/src/systems/child/types/childSession.d.mts +143 -80
- package/dist/src/systems/child/types/childSession.d.mts.map +1 -1
- package/dist/src/systems/child/types/childSession.mjs +24 -9
- package/dist/src/systems/child/types/childSession.mjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.cjs +30 -27
- package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.d.mts +22 -22
- package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.mjs +33 -30
- package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs +248 -229
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +4 -5
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs +239 -219
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -1
- package/dist/src/systems/main/types/headlessHost.d.mts +16 -14
- package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -1
- package/dist/src/testing/pi/testHost.cjs +2 -2
- package/dist/src/testing/pi/testHost.cjs.map +1 -1
- package/dist/src/testing/pi/testHost.d.mts +3 -2
- package/dist/src/testing/pi/testHost.mjs +3 -3
- package/dist/src/testing/pi/testHost.mjs.map +1 -1
- package/dist/src/types/config.d.mts +1 -1
- package/dist/src/types/config.d.mts.map +1 -1
- package/dist/src/types/kernel.d.mts +3 -3
- package/dist/src/types/server/directHarnessRuntime.d.mts +54 -25
- package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -1
- package/dist/src/types/server/sessionToolSurface.d.mts +9 -9
- package/dist/src/web/services/apiClient/index.d.mts +1 -0
- package/dist/src/web/services/apiPaths/index.cjs.map +1 -1
- package/dist/src/web/services/apiPaths/index.d.mts +1 -1
- package/dist/src/web/services/apiPaths/index.mjs.map +1 -1
- package/dist/src/web/services/mcpWidget.cjs.map +1 -1
- package/dist/src/web/services/mcpWidget.d.mts +2 -2
- package/dist/src/web/services/mcpWidget.d.mts.map +1 -1
- package/dist/src/web/services/mcpWidget.mjs.map +1 -1
- package/dist/src/web/services/testing/templateRail.cjs +3 -0
- package/dist/src/web/services/testing/templateRail.cjs.map +1 -1
- package/dist/src/web/services/testing/templateRail.mjs +3 -0
- package/dist/src/web/services/testing/templateRail.mjs.map +1 -1
- package/dist/src/web/types/mcpWidget.d.mts +1 -1
- package/dist/src/web/types/nativeTemplate.d.mts +1 -1
- package/dist/src/web/types/nativeTemplate.d.mts.map +1 -1
- package/dist/src/web/types/template.d.mts +8 -0
- package/dist/src/web/types/template.d.mts.map +1 -1
- package/dist/src/web/types/webPlugin.d.mts +17 -5
- package/dist/src/web/types/webPlugin.d.mts.map +1 -1
- package/dist/testMode.cjs +4 -0
- package/dist/testMode.d.mts +2 -0
- package/dist/testMode.mjs +1 -0
- package/dist/testing.cjs +1 -1
- package/dist/testing.d.mts +2 -2
- package/dist/testing.mjs +2 -2
- package/dist/toolInventory.cjs.map +1 -1
- package/dist/toolInventory.mjs.map +1 -1
- package/dist/toolNames.mjs +1 -2
- package/dist/toolOverrides.cjs +4 -4
- package/dist/toolOverrides.d.mts +3 -3
- package/dist/toolOverrides.mjs +3 -3
- package/dist/toolSurface.cjs +4 -4
- package/dist/toolSurface.d.mts +3 -3
- package/dist/toolSurface.mjs +3 -3
- package/dist/transition.cjs +3 -3
- package/dist/transition.d.cjs +3 -3
- package/dist/transition.d.mts +2 -2
- package/dist/transition.mjs +1 -2
- package/dist/transitionClassifier.cjs.map +1 -1
- package/dist/transitionClassifier.d.mts +2 -2
- package/dist/transitionClassifier.d.mts.map +1 -1
- package/dist/transitionClassifier.mjs.map +1 -1
- package/dist/transitionCoordinator.cjs +3 -3
- package/dist/transitionCoordinator.cjs.map +1 -1
- package/dist/transitionCoordinator.d.mts +4 -4
- package/dist/transitionCoordinator.d.mts.map +1 -1
- package/dist/transitionCoordinator.mjs +3 -3
- package/dist/transitionCoordinator.mjs.map +1 -1
- package/dist/typesContextApi.d.mts +2 -1
- package/dist/typesContextApi.d.mts.map +1 -1
- package/dist/uiHub.cjs +3 -3
- package/dist/uiHub.d.mts +2 -2
- package/dist/uiHub.mjs +1 -2
- package/dist/voiceTools.cjs +5 -5
- package/dist/voiceTools.d.mts +3 -3
- package/dist/voiceTools.mjs +3 -3
- package/dist/web.cjs +8 -0
- package/dist/web.d.mts +3 -2
- package/dist/web.mjs +2 -1
- package/dist/webCompositions.cjs.map +1 -1
- package/dist/webCompositions.d.mts +7 -7
- package/dist/webCompositions.d.mts.map +1 -1
- package/dist/webCompositions.mjs.map +1 -1
- package/licenses/Codex-Apache-2.0.txt +201 -0
- package/package.json +58 -53
- package/dist/doomPackage.cjs +0 -61
- package/dist/doomPackage.cjs.map +0 -1
- package/dist/doomPackage.d.mts +0 -17
- package/dist/doomPackage.d.mts.map +0 -1
- package/dist/doomPackage.mjs +0 -54
- package/dist/doomPackage.mjs.map +0 -1
- package/dist/jsonlSessionRepo.cjs +0 -44
- package/dist/jsonlSessionRepo.cjs.map +0 -1
- package/dist/jsonlSessionRepo.d.mts +0 -7
- package/dist/jsonlSessionRepo.d.mts.map +0 -1
- package/dist/jsonlSessionRepo.mjs +0 -42
- package/dist/jsonlSessionRepo.mjs.map +0 -1
- package/dist/runtimeJson.cjs.map +0 -1
- package/dist/runtimeJson.d.mts.map +0 -1
- package/dist/runtimeJson.mjs.map +0 -1
- package/dist/runtimePiSettings.cjs.map +0 -1
- package/dist/runtimePiSettings.d.mts.map +0 -1
- package/dist/runtimePiSettings.mjs.map +0 -1
- package/dist/serverFacet.cjs +0 -34
- package/dist/serverFacet.d.mts +0 -10
- package/dist/serverFacet.mjs +0 -9
- package/dist/src/pi/piWebSocketListener.cjs +0 -115
- package/dist/src/pi/piWebSocketListener.cjs.map +0 -1
- package/dist/src/pi/piWebSocketListener.mjs +0 -115
- package/dist/src/pi/piWebSocketListener.mjs.map +0 -1
- package/dist/src/schemas/serverFacet.cjs +0 -111
- package/dist/src/schemas/serverFacet.cjs.map +0 -1
- package/dist/src/schemas/serverFacet.d.mts +0 -152
- package/dist/src/schemas/serverFacet.d.mts.map +0 -1
- package/dist/src/schemas/serverFacet.mjs +0 -101
- package/dist/src/schemas/serverFacet.mjs.map +0 -1
- package/dist/src/schemas/sessionUpdates.d.mts +0 -34
- package/dist/src/schemas/sessionUpdates.d.mts.map +0 -1
- package/dist/src/server/headlessProtocol.cjs +0 -382
- package/dist/src/server/headlessProtocol.cjs.map +0 -1
- package/dist/src/server/headlessProtocol.mjs +0 -382
- package/dist/src/server/headlessProtocol.mjs.map +0 -1
- package/dist/src/server/nativeChildTranscriptReader.cjs +0 -20
- package/dist/src/server/nativeChildTranscriptReader.cjs.map +0 -1
- package/dist/src/server/nativeChildTranscriptReader.mjs +0 -18
- package/dist/src/server/nativeChildTranscriptReader.mjs.map +0 -1
- package/dist/src/server/serverFacetLoader.cjs +0 -214
- package/dist/src/server/serverFacetLoader.cjs.map +0 -1
- package/dist/src/server/serverFacetLoader.d.mts +0 -72
- package/dist/src/server/serverFacetLoader.d.mts.map +0 -1
- package/dist/src/server/serverFacetLoader.mjs +0 -212
- package/dist/src/server/serverFacetLoader.mjs.map +0 -1
- package/dist/src/services/acpSessionUpdates/index.cjs +0 -129
- package/dist/src/services/acpSessionUpdates/index.cjs.map +0 -1
- package/dist/src/services/acpSessionUpdates/index.mjs +0 -129
- package/dist/src/services/acpSessionUpdates/index.mjs.map +0 -1
- package/dist/src/services/historyImport/index.cjs +0 -8
- package/dist/src/services/historyImport/index.cjs.map +0 -1
- package/dist/src/services/historyImport/index.d.mts +0 -68
- package/dist/src/services/historyImport/index.d.mts.map +0 -1
- package/dist/src/services/historyImport/index.mjs +0 -8
- package/dist/src/services/historyImport/index.mjs.map +0 -1
- package/dist/src/services/openSessionRegistry/index.d.mts.map +0 -1
- package/dist/src/services/requestReceipts/index.cjs.map +0 -1
- package/dist/src/services/requestReceipts/index.d.mts +0 -11
- package/dist/src/services/requestReceipts/index.d.mts.map +0 -1
- package/dist/src/services/requestReceipts/index.mjs.map +0 -1
- package/dist/src/services/rpcTranscript/index.cjs +0 -633
- package/dist/src/services/rpcTranscript/index.cjs.map +0 -1
- package/dist/src/services/rpcTranscript/index.d.mts +0 -50
- package/dist/src/services/rpcTranscript/index.d.mts.map +0 -1
- package/dist/src/services/rpcTranscript/index.mjs +0 -632
- package/dist/src/services/rpcTranscript/index.mjs.map +0 -1
- package/dist/src/services/serverFacet/index.cjs.map +0 -1
- package/dist/src/services/serverFacet/index.d.mts +0 -31
- package/dist/src/services/serverFacet/index.d.mts.map +0 -1
- package/dist/src/services/serverFacet/index.mjs.map +0 -1
- package/dist/src/services/workspaceRegistry/index.d.mts.map +0 -1
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +0 -28
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +0 -1
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +0 -25
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +0 -1
- package/dist/terminalPiChildSessionService.cjs +0 -324
- package/dist/terminalPiChildSessionService.cjs.map +0 -1
- package/dist/terminalPiChildSessionService.d.mts +0 -46
- package/dist/terminalPiChildSessionService.d.mts.map +0 -1
- package/dist/terminalPiChildSessionService.mjs +0 -318
- package/dist/terminalPiChildSessionService.mjs.map +0 -1
- package/dist/v3Export.cjs +0 -10
- package/dist/v3Export.cjs.map +0 -1
- package/dist/v3Export.d.mts +0 -35
- package/dist/v3Export.d.mts.map +0 -1
- package/dist/v3Export.mjs +0 -9
- package/dist/v3Export.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless.mjs","names":[],"sources":["../../../src/schemas/headless.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport type { ThinkingLevel } from '@earendil-works/pi-agent-core';\nimport type { CallToolResult, Tool } from '@modelcontextprotocol/server';\nimport type { Static, TSchema } from 'typebox';\n\nimport type { SessionToolSurface } from '../types/server/sessionToolSurface';\nimport type { DoomSessionContext } from './hubChannel';\nimport type { DoomNotificationRequest } from './notification';\nimport type { DoomServerBundleEntry } from './serverBundle';\n\n/** Session-only contributions. This is not a Pi ExtensionAPI or a TUI adapter. */\nexport const DOOM_HEADLESS_HOST_SERVICE = 'doom/headless-host';\nexport const DOOM_HEADLESS_OWNER = Symbol.for('doom/headless-owner');\n\nconst PROMPT_ADMISSION_ERROR = 'DoomHeadlessPromptAdmissionError';\n\n/** Admission is a host boundary, not an advisory facet-hook failure. */\nexport class DoomHeadlessPromptAdmissionError extends Error {\n constructor(cause: unknown) {\n super(cause instanceof Error ? cause.message : String(cause), { cause });\n this.name = PROMPT_ADMISSION_ERROR;\n }\n}\n\nconst SESSION_SETUP_ERROR = 'DoomSessionSetupError';\n\n/**\n * A session cannot start until the user fixes their setup, such as configuring a model.\n *\n * Its message is written for the user and says what to do, so a server returns it as is\n * rather than hiding it behind a generic internal error.\n */\nexport class DoomSessionSetupError extends Error {\n constructor(message: string) {\n super(message);\n this.name = SESSION_SETUP_ERROR;\n }\n}\n\n/** Error identity must survive independently bundled server and extension graphs. */\nexport function isDoomSessionSetupError(error: unknown): error is Error {\n return error instanceof Error && error.name === SESSION_SETUP_ERROR;\n}\n\n/** Error identity must survive independently bundled server and extension graphs. */\nexport function isDoomHeadlessPromptAdmissionError(error: unknown): boolean {\n return error instanceof Error && error.name === PROMPT_ADMISSION_ERROR;\n}\nconst TOOL_BUSY_ERROR = 'DoomHeadlessToolBusyError';\n\n/** The tool and its hooks have not started. */\nexport class DoomHeadlessToolBusyError extends Error {\n constructor() {\n super('An operation is already running');\n this.name = TOOL_BUSY_ERROR;\n }\n}\n\nexport function isDoomHeadlessToolBusyError(error: unknown): boolean {\n return error instanceof Error && error.name === TOOL_BUSY_ERROR;\n}\n\nexport interface DoomHeadlessSelection {\n readonly majorMode: string;\n readonly activeLayers: readonly string[];\n readonly domains: readonly string[];\n readonly profile?: string;\n /** Feature-owned activation sets, keyed by the contributing capability. */\n readonly state?: Readonly<Record<string, readonly string[]>>;\n}\n\n/** One package-owned selection transition. Server facets change exactly one axis per operation. */\nexport type DoomHeadlessSelectionChange =\n | { readonly axis: 'majorMode'; readonly majorMode: string }\n | { readonly axis: 'domains'; readonly domains: readonly string[] }\n | { readonly axis: 'profile'; readonly profile?: string }\n | {\n readonly axis: 'state';\n readonly key: string;\n readonly values: readonly string[];\n };\n\nexport function readDoomHeadlessOwner(context: Context): DoomServerBundleEntry | undefined {\n return (context as Context & { [DOOM_HEADLESS_OWNER]?: DoomServerBundleEntry })[DOOM_HEADLESS_OWNER];\n}\n\nexport interface DoomHeadlessRegistration {\n dispose(): void;\n}\n\nexport type DoomHeadlessContent = { type: 'text'; text: string } | { type: 'image'; data: string; mimeType: string };\n\nexport interface DoomHeadlessToolResult {\n content: DoomHeadlessContent[];\n /** Public MCP result data. Internal renderer details are not a remote result contract. */\n structuredContent?: Record<string, unknown>;\n /** Component-only MCP metadata, never inferred from internal renderer details. */\n _meta?: CallToolResult['_meta'];\n details?: unknown;\n isError?: boolean;\n}\n\n/**\n * Narrows a Pi tool result to the headless contract. Pi types `structuredContent` as any JSON\n * value, while MCP only accepts an object, so anything else is dropped rather than forwarded.\n */\nexport function toDoomHeadlessToolResult(result: {\n readonly content: DoomHeadlessContent[];\n readonly details?: unknown;\n readonly structuredContent?: unknown;\n readonly _meta?: CallToolResult['_meta'];\n readonly isError?: boolean;\n}): DoomHeadlessToolResult {\n const { structuredContent } = result;\n return {\n content: result.content,\n details: result.details,\n ...(result._meta === undefined ? {} : { _meta: result._meta }),\n ...(typeof structuredContent === 'object' && structuredContent !== null && !Array.isArray(structuredContent)\n ? { structuredContent: structuredContent as Record<string, unknown> }\n : {}),\n ...(result.isError === undefined ? {} : { isError: result.isError }),\n };\n}\n\nexport interface DoomHeadlessClientRequest {\n kind: 'confirm' | 'select' | 'input';\n title: string;\n message?: string;\n options?: readonly { label: string; description?: string; value: string }[];\n initialValue?: string;\n multiline?: boolean;\n}\n\nexport interface DoomHeadlessClient {\n /**\n * Operator-facing surface only: the body is flattened to one line and capped at 4096 characters\n * by schemas/notification.ts:73-83, and the model never sees it. Use session.admitPrompt to\n * reach the model.\n */\n notify(request: DoomNotificationRequest): void | Promise<void>;\n request(request: DoomHeadlessClientRequest, signal?: AbortSignal): Promise<unknown>;\n setStatus(source: string, text: string | undefined): void;\n appendComposerText?(text: string): void;\n}\n\nexport interface DoomHeadlessModelSettings {\n model?: { provider: string; id: string };\n thinkingLevel: ThinkingLevel;\n}\n\nexport interface DoomHeadlessSession {\n readModelSettings?(): Promise<DoomHeadlessModelSettings>;\n setFastMode?(enabled: boolean): Promise<void>;\n setModelSettings?(settings: Partial<DoomHeadlessModelSettings>): Promise<void>;\n /** Query durable history on demand; hosts do not retain the entire transcript. */\n entries(query?: {\n type?: 'custom' | 'message';\n customType?: string;\n limit?: number;\n }): readonly Record<string, unknown>[] | Promise<readonly Record<string, unknown>[]>;\n appendCustomEntry(type: string, data: unknown): Promise<void>;\n /** Append a displayable informational message to history and model context, without admitting input or starting a turn. */\n appendMessage?(message: { type: string; text: string; display?: boolean; details?: unknown }): Promise<string | void>;\n /**\n * Admit one custom message without awaiting its turn, using environmental input policy.\n * Defaults to followUp. Reusing requestId deduplicates normal Durable admission retries;\n * locked-agent appends and deferred operator admission do not provide that guarantee.\n */\n admitMessage?(\n message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n },\n delivery?: 'steer' | 'followUp',\n requestId?: string,\n ): Promise<void>;\n /** Register a checkpoint flush before the next tool-turn request. Idle writes return undefined instead of queueing when busy. */\n registerCheckpointBoundary?(\n callback: (boundary: {\n signal?: AbortSignal;\n appendMessage(message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n }): Promise<string | undefined>;\n }) => Promise<void>,\n ): {\n appendMessage(message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n }): Promise<string | undefined>;\n dispose(): void;\n };\n /** Detached canonical model context before facet transformations, with context edits applied and no system message. */\n contextMessages?(): Promise<readonly Record<string, unknown>[]>;\n /** The latest measured assistant usage and the selected model's context window. */\n contextUsage?(): Promise<{ tokens: number | null; contextWindow: number } | undefined>;\n /** Label a durable entry without admitting input or starting a turn. */\n setLabel?(entryId: string, label: string | undefined): Promise<void>;\n /**\n * Delivers operator input through prompt preflight and awaits its turn.\n * Environmental input uses admitPrompt with origin omitted instead.\n * An idle agent is woken; busy delivery uses Durable steering or follow-up.\n */\n prompt(text: string, delivery?: 'prompt' | 'steer' | 'followUp'): Promise<void>;\n /**\n * Admits input without awaiting its turn. Environmental input omits origin and never\n * changes the operator queue. Operator origin uses prompt preflight, including voice\n * capture; 'interrupt' cancels the active run and admits operator input while preserving\n * retained queued work. Environmental callers may reuse requestId when retrying the same input.\n */\n admitPrompt?(\n text: string,\n delivery?: 'prompt' | 'steer' | 'followUp' | 'interrupt',\n origin?: 'operator',\n requestId?: string,\n ): Promise<void>;\n abort(): Promise<void>;\n compact(instructions?: string): Promise<void>;\n activity(): Promise<{ hasPendingMessages: boolean; isIdle: boolean }>;\n /** Renames the durable session and publishes the updated title to presentation clients. */\n setName?(name: string): Promise<void>;\n /** Capture the current persisted branch for an in-process child fork. */\n forkSource?(): Promise<{\n kind: 'v4-fork';\n sessionFile: string;\n branch: string;\n entryId?: string;\n }>;\n}\n\n/** A grant-filtered skill view available only during one remote MCP tool invocation. */\nexport interface DoomMcpSkillAccess {\n list(): Promise<readonly { name: string; description: string }[]>;\n read(name: string): Promise<string>;\n}\n\n/** A stateless auxiliary request. These tools are private to this request, never registered on the agent. */\nexport interface DoomHeadlessToolCompletionRequest {\n systemPrompt: string;\n input: string;\n maxTokens: number;\n cacheRetention?: 'none' | 'short' | 'long';\n signal?: AbortSignal;\n tools: readonly Pick<DoomHeadlessTool, 'name' | 'description' | 'parameters'>[];\n}\n\nexport interface DoomHeadlessToolCompletionResult {\n toolCalls: readonly { id: string; name: string; arguments: unknown }[];\n usage: { totalTokens: number };\n}\n\n/** Credential-free catalog metadata. Facets cannot obtain auth, headers, or a mutable registry. */\nexport interface DoomHeadlessModelMetadata {\n readonly provider: string;\n readonly id: string;\n readonly api?: string;\n readonly baseUrl?: string;\n readonly name?: string;\n readonly compat?: Readonly<Record<string, boolean | string>>;\n}\n\nexport interface DoomHeadlessExecutionContext {\n readonly cwd: string;\n /** The checkout the session runs in, distinct from the tool execution directory. */\n readonly repoRoot: string;\n readonly sessionId: string;\n /** The session's baseline context, when its host knows its workspace. */\n readonly sessionContext?: DoomSessionContext;\n /** Immutable session configuration. Facets must not read or mutate process.env. */\n readonly environment: Readonly<Record<string, string | undefined>>;\n readonly client: DoomHeadlessClient;\n readonly session: DoomHeadlessSession;\n readonly model?: DoomHeadlessModelMetadata;\n /** Lookup in this session's catalog, including physical models named by finalized messages. */\n readonly getModel?: (provider: string, id: string) => DoomHeadlessModelMetadata | undefined;\n /** Detached credential-free authenticated chat catalog snapshot, without refreshing providers. */\n readonly getAvailableModels?: () => readonly {\n readonly provider: string;\n readonly id: string;\n }[];\n /** Operation cancellation, supplied only for an active invocation. */\n readonly signal?: AbortSignal;\n readonly textCompletion?: {\n available(reference: string): boolean;\n /** Tool-less conversation summary through the host's guarded session provider. */\n summarize?(\n reference: string,\n request: {\n messages: readonly Record<string, unknown>[];\n instructions: string;\n previousSummary?: string;\n thinkingLevel?: ThinkingLevel;\n signal?: AbortSignal;\n },\n ): Promise<string>;\n complete(\n reference: string,\n request: {\n systemPrompt: string;\n input: string;\n maxTokens: number;\n cacheRetention?: 'none' | 'short' | 'long';\n signal?: AbortSignal;\n },\n ): Promise<string>;\n };\n readonly toolCompletion?: {\n complete(reference: string, request: DoomHeadlessToolCompletionRequest): Promise<DoomHeadlessToolCompletionResult>;\n };\n /** Guarded image operation. Credentials and transport configuration remain host-owned. */\n readonly imageGeneration?: {\n available(): boolean;\n generate(request: {\n prompt: string;\n transparentBackground?: boolean;\n images?: readonly { data: string; mimeType: string }[];\n correlationId: string;\n signal?: AbortSignal;\n }): Promise<{ data: string; mimeType: 'image/png'; requestId?: string; generationId?: string }>;\n };\n /**\n * Guarded web search. Credentials, endpoint, model choice, session identity and transport remain host-owned.\n * `commands` follows a schema owned by the calling package; the host only bounds it.\n */\n readonly webSearch?: {\n available(): boolean;\n search(request: {\n commands: Readonly<Record<string, unknown>>;\n /** Optional plain-text excerpt, oldest first. Omit to send no conversation content. */\n conversation?: readonly { role: 'user' | 'assistant'; text: string }[];\n access: 'cached' | 'indexed' | 'live';\n signal?: AbortSignal;\n }): Promise<{ output: string; results?: readonly Record<string, unknown>[] }>;\n };\n readonly selection: DoomHeadlessSelection;\n /** Present only while an authenticated remote MCP tool is running. */\n readonly mcpSkills?: DoomMcpSkillAccess;\n shutdown(): void;\n}\n\n/** Conditions narrow an eligible owner's contributions; they can never restore a disabled owner. */\nexport interface DoomHeadlessCondition {\n state?: Readonly<Record<string, string>>;\n attribution?: { kind: 'minor' | 'domain'; mode: string; label?: string };\n domain?: string;\n}\n\nexport interface DoomHeadlessToolRestriction {\n when?: DoomHeadlessCondition;\n /** Optional capability ceiling. An empty list disables every tool. */\n allowedTools?: readonly string[];\n /**\n * Narrow exclusions without disabling unrelated tools. Exclude a tool your package owns, or a\n * specific foreign tool the mode exists to withdraw. Never enumerate an allowlist here.\n */\n excludedTools?: readonly string[];\n}\n\nexport interface DoomHeadlessTool<TParameters extends TSchema = TSchema> {\n when?: DoomHeadlessCondition;\n name: string;\n label?: string;\n description: string;\n parameters: TParameters;\n annotations?: Tool['annotations'];\n outputSchema?: Tool['outputSchema'];\n /** Remote presentation only. Component tool access must be explicitly opted into. */\n _meta?: Tool['_meta'] & {\n ui?: { resourceUri?: string; visibility?: ('model' | 'app')[] };\n };\n promptSnippet?: string;\n promptGuidelines?: readonly string[];\n executionMode?: 'parallel' | 'serial';\n execute(\n toolCallId: string,\n parameters: Static<TParameters>,\n signal: AbortSignal | undefined,\n onUpdate: ((result: DoomHeadlessToolResult) => void) | undefined,\n context: DoomHeadlessExecutionContext,\n ): Promise<DoomHeadlessToolResult>;\n}\n\n/**\n * One package contribution to the session's resource surface.\n *\n * `kind` decides what the model is billed for, and the difference is large:\n * - `context` is EAGER. `read()` runs on every prompt build and the text is pasted\n * into the system prompt verbatim. Reserve it for small live session state that\n * exists nowhere on disk. Never use it for a file the package ships: a README\n * registered this way costs its full length on every single turn.\n * - `skill` is LAZY. Only `name`, `description` and `path` reach the prompt; the\n * agent reads the file itself when the description matches the task.\n * - `prompt` is inert until the user invokes it by name.\n *\n * The rule in one line: if it is a file the package ships, it is a `skill`.\n */\nexport interface DoomHeadlessResource {\n when?: DoomHeadlessCondition;\n name: string;\n /** Model-visible selection signal. A `skill` without one tells the agent nothing. */\n description?: string;\n /** Absolute path of the file `read()` returns, so an advertised skill is one the agent can open. */\n path?: string;\n kind: 'prompt' | 'skill' | 'context';\n read(context: DoomHeadlessExecutionContext): string | Promise<string>;\n}\n\nexport interface DoomHeadlessCommand {\n when?: DoomHeadlessCondition;\n name: string;\n description: string;\n /** Selection-only control allowed after a coherent selection fails admission. */\n selectionRecovery?: boolean;\n execute(args: string, context: DoomHeadlessExecutionContext): void | Promise<void>;\n}\n\nexport type DoomHeadlessEventName =\n | 'session_start'\n | 'session_shutdown'\n | 'session_tree'\n | 'before_agent_start'\n | 'agent_start'\n | 'agent_end'\n | 'agent_settled'\n | 'turn_start'\n | 'turn_end'\n | 'context'\n | 'before_provider_request'\n | 'message_start'\n | 'message_update'\n | 'message_end'\n | 'tool_call'\n | 'tool_execution_start'\n | 'tool_execution_update'\n | 'tool_execution_end'\n | 'tool_result'\n | 'model_select'\n | 'session_before_compact'\n | 'session_compact';\n\nexport type DoomHeadlessHookEvent<E extends DoomHeadlessEventName> = E extends 'before_provider_request'\n ? {\n lane: string;\n runId: string;\n model: { provider: string; id: string; api?: string };\n payload: unknown;\n }\n : E extends 'session_before_compact'\n ? {\n reason: string;\n preparation: unknown;\n instructions?: string;\n customInstructions?: string;\n }\n : E extends 'model_select'\n ? { model: { provider: string; id: string } }\n : Readonly<Record<string, unknown>>;\n\nexport interface DoomHeadlessCompactionResult {\n summary: string;\n tokensBefore: number;\n retainedTail: Record<string, unknown>[];\n usage?: Record<string, unknown>;\n details?: unknown;\n}\n\nexport type DoomHeadlessHookResult<E extends DoomHeadlessEventName> = E extends 'before_provider_request'\n ? { payload: unknown } | void\n : E extends 'session_before_compact'\n ? {\n cancel?: boolean;\n decline?: boolean;\n compaction?: DoomHeadlessCompactionResult;\n } | void\n : E extends 'context'\n ? { messages?: unknown[]; systemPrompt?: string } | void\n : E extends 'before_agent_start'\n ? { systemPrompt?: string } | void\n : E extends 'tool_call'\n ? {\n args?: Record<string, unknown>;\n block?: { reason: string; terminate?: boolean };\n } | void\n : E extends 'tool_result'\n ? {\n content?: DoomHeadlessContent[];\n details?: unknown;\n isError?: boolean;\n usage?: Record<string, unknown>;\n terminate?: boolean;\n } | void\n : unknown;\n\nexport type DoomHeadlessHook<E extends DoomHeadlessEventName = DoomHeadlessEventName> = E extends DoomHeadlessEventName\n ? {\n when?: DoomHeadlessCondition;\n event: E;\n handle(\n event: Readonly<DoomHeadlessHookEvent<E>>,\n context: DoomHeadlessExecutionContext,\n ): DoomHeadlessHookResult<E> | Promise<DoomHeadlessHookResult<E>>;\n }\n : never;\n\n/** A retained facet can register activity without starting disabled watchers or services. */\nexport interface DoomHeadlessActivity {\n when?: DoomHeadlessCondition;\n name: string;\n start(context: DoomHeadlessExecutionContext): (() => void | Promise<void>) | Promise<() => void | Promise<void>>;\n}\n\n/** Read-only metadata for the currently applied session, never executable declarations or resource bodies. */\nexport interface DoomHeadlessCapability {\n readonly source: string;\n readonly name: string;\n readonly kind: 'tool' | 'skill';\n readonly when?: DoomHeadlessCondition;\n readonly active: boolean;\n readonly discoverable: boolean;\n readonly reason?: 'inactive' | 'restricted' | 'shadowed' | 'unavailable' | 'not-discoverable';\n}\n\n/** Visibility controls model discovery only, never admission for external execution. */\nexport function isDoomHeadlessToolModelVisible(tool: Pick<DoomHeadlessTool, '_meta'>): boolean {\n const visibility = tool._meta?.ui?.visibility;\n return visibility === undefined || visibility.includes('model');\n}\n\nexport interface DoomHeadlessCapabilitySnapshot {\n readonly revision: number;\n readonly ready: boolean;\n readonly capabilities: readonly DoomHeadlessCapability[];\n}\n\n/** Registrations inherit package ownership from the caller's Cordis facet. */\n/**\n * The tool a server session loads skills through. When a session carries it, the prompt lists\n * every skill by name and points here, so a skill needs no file the agent could read.\n */\nexport const DOOM_LOAD_SKILL_TOOL = 'load_skill';\n\nexport interface DoomHeadlessHostService {\n readonly context: DoomHeadlessExecutionContext;\n /** Admitted external execution, sharing native hooks, restrictions and session lifetime. */\n readonly toolSurface?: Pick<SessionToolSurface, 'readSurface' | 'invokeTool'>;\n /** The instructions of an applied skill by exact name, or undefined when none is applied. */\n readSkill(name: string): string | undefined;\n changeSelection(change: DoomHeadlessSelectionChange): Promise<void>;\n assertActive(source?: string): void;\n subscribeSelection(listener: (selection: DoomHeadlessSelection) => void | Promise<void>): () => void;\n /** Inspect only a coherently applied generation. A transition returns ready=false and no partial inventory. */\n inspectCapabilities(): DoomHeadlessCapabilitySnapshot;\n registerToolRestriction(restriction: DoomHeadlessToolRestriction): DoomHeadlessRegistration;\n registerTool<TParameters extends TSchema>(tool: DoomHeadlessTool<TParameters>): DoomHeadlessRegistration;\n registerResource(resource: DoomHeadlessResource): DoomHeadlessRegistration;\n registerCommand(command: DoomHeadlessCommand): DoomHeadlessRegistration;\n registerHook(hook: DoomHeadlessHook): DoomHeadlessRegistration;\n registerActivity(activity: DoomHeadlessActivity): DoomHeadlessRegistration;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'doom/headless-host': DoomHeadlessHostService;\n }\n}\n\nexport function readDoomHeadlessHost(context: Context): DoomHeadlessHostService | undefined {\n return context.get(DOOM_HEADLESS_HOST_SERVICE) as DoomHeadlessHostService | undefined;\n}\n\nexport function requireDoomHeadlessHost(context: Context): DoomHeadlessHostService {\n const host = readDoomHeadlessHost(context);\n if (!host) throw new Error('This contribution requires the Doom headless session host.');\n return host;\n}\n"],"mappings":";;AAWA,MAAa,6BAA6B;AAC1C,MAAa,sBAAsB,OAAO,IAAI,qBAAqB;AAEnE,MAAM,yBAAyB;;AAG/B,IAAa,mCAAb,cAAsD,MAAM;CAC1D,YAAY,OAAgB;EAC1B,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG,EAAE,MAAM,CAAC;EACvE,KAAK,OAAO;CACd;AACF;AAEA,MAAM,sBAAsB;;;;;;;AAQ5B,IAAa,wBAAb,cAA2C,MAAM;CAC/C,YAAY,SAAiB;EAC3B,MAAM,OAAO;EACb,KAAK,OAAO;CACd;AACF;;AAGA,SAAgB,wBAAwB,OAAgC;CACtE,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;;AAGA,SAAgB,mCAAmC,OAAyB;CAC1E,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;AACA,MAAM,kBAAkB;;AAGxB,IAAa,4BAAb,cAA+C,MAAM;CACnD,cAAc;EACZ,MAAM,iCAAiC;EACvC,KAAK,OAAO;CACd;AACF;AAEA,SAAgB,4BAA4B,OAAyB;CACnE,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;AAsBA,SAAgB,sBAAsB,SAAqD;CACzF,OAAQ,QAAwE;AAClF;;;;;AAsBA,SAAgB,yBAAyB,QAMd;CACzB,MAAM,EAAE,sBAAsB;CAC9B,OAAO;EACL,SAAS,OAAO;EAChB,SAAS,OAAO;EAChB,GAAI,OAAO,UAAU,KAAA,IAAY,CAAC,IAAI,EAAE,OAAO,OAAO,MAAM;EAC5D,GAAI,OAAO,sBAAsB,YAAY,sBAAsB,QAAQ,CAAC,MAAM,QAAQ,iBAAiB,IACvG,EAAqB,kBAA6C,IAClE,CAAC;EACL,GAAI,OAAO,YAAY,KAAA,IAAY,CAAC,IAAI,EAAE,SAAS,OAAO,QAAQ;CACpE;AACF;;AAuZA,SAAgB,+BAA+B,MAAgD;CAC7F,MAAM,aAAa,KAAK,OAAO,IAAI;CACnC,OAAO,eAAe,KAAA,KAAa,WAAW,SAAS,OAAO;AAChE;;;;;;AAaA,MAAa,uBAAuB;AA2BpC,SAAgB,qBAAqB,SAAuD;CAC1F,OAAO,QAAQ,IAAI,0BAA0B;AAC/C;AAEA,SAAgB,wBAAwB,SAA2C;CACjF,MAAM,OAAO,qBAAqB,OAAO;CACzC,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,4DAA4D;CACvF,OAAO;AACT"}
|
|
1
|
+
{"version":3,"file":"headless.mjs","names":[],"sources":["../../../src/schemas/headless.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport type { ThinkingLevel } from '@earendil-works/pi-agent-core';\nimport type { CallToolResult, Tool } from '@modelcontextprotocol/server';\nimport type { Static, TSchema } from 'typebox';\n\nimport type { SessionToolSurface } from '../types/server/sessionToolSurface';\nimport type { PoSessionContext } from './hubChannel';\nimport type { PoNotificationRequest } from './notification';\nimport type { PoServerBundleEntry } from './serverBundle';\n\n/** Session-only contributions. This is not a Pi ExtensionAPI or a TUI adapter. */\nexport const PO_HEADLESS_HOST_SERVICE = 'po/headless-host';\nexport const PO_HEADLESS_OWNER = Symbol.for('po/headless-owner');\n\nconst PROMPT_ADMISSION_ERROR = 'PoHeadlessPromptAdmissionError';\n\n/** Admission is a host boundary, not an advisory package-hook failure. */\nexport class PoHeadlessPromptAdmissionError extends Error {\n constructor(cause: unknown) {\n super(cause instanceof Error ? cause.message : String(cause), { cause });\n this.name = PROMPT_ADMISSION_ERROR;\n }\n}\n\nconst SESSION_SETUP_ERROR = 'PoSessionSetupError';\n\n/**\n * A session cannot start until the user fixes their setup, such as configuring a model.\n *\n * Its message is written for the user and says what to do, so a server returns it as is\n * rather than hiding it behind a generic internal error.\n */\nexport class PoSessionSetupError extends Error {\n constructor(message: string) {\n super(message);\n this.name = SESSION_SETUP_ERROR;\n }\n}\n\n/** Error identity must survive independently bundled server and extension graphs. */\nexport function isPoSessionSetupError(error: unknown): error is Error {\n return error instanceof Error && error.name === SESSION_SETUP_ERROR;\n}\n\n/** Error identity must survive independently bundled server and extension graphs. */\nexport function isPoHeadlessPromptAdmissionError(error: unknown): boolean {\n return error instanceof Error && error.name === PROMPT_ADMISSION_ERROR;\n}\nconst TOOL_BUSY_ERROR = 'PoHeadlessToolBusyError';\n\n/** The tool and its hooks have not started. */\nexport class PoHeadlessToolBusyError extends Error {\n constructor() {\n super('An operation is already running');\n this.name = TOOL_BUSY_ERROR;\n }\n}\n\nexport function isPoHeadlessToolBusyError(error: unknown): boolean {\n return error instanceof Error && error.name === TOOL_BUSY_ERROR;\n}\n\nexport interface PoHeadlessSelection {\n readonly majorMode: string;\n readonly activeLayers: readonly string[];\n readonly domains: readonly string[];\n readonly profile?: string;\n /** Feature-owned activation sets, keyed by the contributing capability. */\n readonly state?: Readonly<Record<string, readonly string[]>>;\n}\n\n/** One package-owned selection transition. Server packages change exactly one axis per operation. */\nexport type PoHeadlessSelectionChange =\n | { readonly axis: 'majorMode'; readonly majorMode: string }\n | { readonly axis: 'domains'; readonly domains: readonly string[] }\n | { readonly axis: 'profile'; readonly profile?: string }\n | {\n readonly axis: 'state';\n readonly key: string;\n readonly values: readonly string[];\n };\n\nexport function readPoHeadlessOwner(context: Context): PoServerBundleEntry | undefined {\n return (context as Context & { [PO_HEADLESS_OWNER]?: PoServerBundleEntry })[PO_HEADLESS_OWNER];\n}\n\nexport interface PoHeadlessRegistration {\n dispose(): void;\n}\n\nexport type PoHeadlessContent = { type: 'text'; text: string } | { type: 'image'; data: string; mimeType: string };\n\nexport interface PoHeadlessToolResult {\n content: PoHeadlessContent[];\n /** Public MCP result data. Internal renderer details are not a remote result contract. */\n structuredContent?: Record<string, unknown>;\n /** Component-only MCP metadata, never inferred from internal renderer details. */\n _meta?: CallToolResult['_meta'];\n details?: unknown;\n isError?: boolean;\n}\n\n/**\n * Narrows a Pi tool result to the headless contract. Pi types `structuredContent` as any JSON\n * value, while MCP only accepts an object, so anything else is dropped rather than forwarded.\n */\nexport function toPoHeadlessToolResult(result: {\n readonly content: PoHeadlessContent[];\n readonly details?: unknown;\n readonly structuredContent?: unknown;\n readonly _meta?: CallToolResult['_meta'];\n readonly isError?: boolean;\n}): PoHeadlessToolResult {\n const { structuredContent } = result;\n return {\n content: result.content,\n details: result.details,\n ...(result._meta === undefined ? {} : { _meta: result._meta }),\n ...(typeof structuredContent === 'object' && structuredContent !== null && !Array.isArray(structuredContent)\n ? { structuredContent: structuredContent as Record<string, unknown> }\n : {}),\n ...(result.isError === undefined ? {} : { isError: result.isError }),\n };\n}\n\nexport interface PoHeadlessClientRequest {\n kind: 'confirm' | 'select' | 'input';\n title: string;\n message?: string;\n options?: readonly { label: string; description?: string; value: string }[];\n initialValue?: string;\n multiline?: boolean;\n}\n\nexport interface PoHeadlessClient {\n /**\n * Operator-facing surface only: the body is flattened to one line and capped at 4096 characters\n * by schemas/notification.ts:73-83, and the model never sees it. Use session.admitPrompt to\n * reach the model.\n */\n notify(request: PoNotificationRequest): void | Promise<void>;\n request(request: PoHeadlessClientRequest, signal?: AbortSignal): Promise<unknown>;\n /** Ignored once the session has closed, so a package can clear its status while it unwinds. */\n setStatus(source: string, text: string | undefined): void;\n appendComposerText?(text: string): void;\n}\n\nexport interface PoHeadlessModelSettings {\n model?: { provider: string; id: string };\n thinkingLevel: ThinkingLevel;\n}\n\nexport interface PoHeadlessSession {\n readModelSettings?(): Promise<PoHeadlessModelSettings>;\n setFastMode?(enabled: boolean): Promise<void>;\n setModelSettings?(settings: Partial<PoHeadlessModelSettings>): Promise<void>;\n /** Query durable history on demand; hosts do not retain the entire transcript. */\n entries(query?: {\n type?: 'custom' | 'message';\n customType?: string;\n limit?: number;\n }): readonly Record<string, unknown>[] | Promise<readonly Record<string, unknown>[]>;\n appendCustomEntry(type: string, data: unknown): Promise<void>;\n /** Append a displayable informational message to history and model context, without admitting input or starting a turn. */\n appendMessage?(message: { type: string; text: string; display?: boolean; details?: unknown }): Promise<string | void>;\n /**\n * Admit one custom message without awaiting its turn, using environmental input policy.\n * Defaults to followUp. Reusing requestId deduplicates normal Durable admission retries;\n * locked-agent appends and deferred operator admission do not provide that guarantee.\n */\n admitMessage?(\n message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n },\n delivery?: 'steer' | 'followUp',\n requestId?: string,\n ): Promise<void>;\n /** Register a checkpoint flush before the next tool-turn request. Idle writes return undefined instead of queueing when busy. */\n registerCheckpointBoundary?(\n callback: (boundary: {\n signal?: AbortSignal;\n appendMessage(message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n }): Promise<string | undefined>;\n }) => Promise<void>,\n ): {\n appendMessage(message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n }): Promise<string | undefined>;\n dispose(): void;\n };\n /** Detached canonical model context before package transformations, with context edits applied and no system message. */\n contextMessages?(): Promise<readonly Record<string, unknown>[]>;\n /** The latest measured assistant usage and the selected model's context window. */\n contextUsage?(): Promise<{ tokens: number | null; contextWindow: number } | undefined>;\n /** Label a durable entry without admitting input or starting a turn. */\n setLabel?(entryId: string, label: string | undefined): Promise<void>;\n /**\n * Delivers operator input through prompt preflight and awaits its turn.\n * Environmental input uses admitPrompt with origin omitted instead.\n * An idle agent is woken; busy delivery uses Durable steering or follow-up.\n */\n prompt(text: string, delivery?: 'prompt' | 'steer' | 'followUp'): Promise<void>;\n /**\n * Admits input without awaiting its turn. Environmental input omits origin and never\n * changes the operator queue. Operator origin uses prompt preflight, including voice\n * capture; 'interrupt' cancels the active run and admits operator input while preserving\n * retained queued work. Environmental callers may reuse requestId when retrying the same input.\n */\n admitPrompt?(\n text: string,\n delivery?: 'prompt' | 'steer' | 'followUp' | 'interrupt',\n origin?: 'operator',\n requestId?: string,\n ): Promise<void>;\n abort(): Promise<void>;\n compact(instructions?: string): Promise<void>;\n activity(): Promise<{ hasPendingMessages: boolean; isIdle: boolean }>;\n /** Renames the durable session and publishes the updated title to presentation clients. */\n setName?(name: string): Promise<void>;\n /** The current branch's newest entry, for a child that starts from this session's history. */\n forkSource?(): Promise<{\n kind: 'fork';\n entryId?: string;\n }>;\n}\n\n/** A grant-filtered skill view available only during one remote MCP tool invocation. */\nexport interface PoMcpSkillAccess {\n list(): Promise<readonly { name: string; description: string }[]>;\n read(name: string): Promise<string>;\n}\n\n/** A stateless auxiliary request. These tools are private to this request, never registered on the agent. */\nexport interface PoHeadlessToolCompletionRequest {\n systemPrompt: string;\n input: string;\n maxTokens: number;\n cacheRetention?: 'none' | 'short' | 'long';\n signal?: AbortSignal;\n tools: readonly Pick<PoHeadlessTool, 'name' | 'description' | 'parameters'>[];\n}\n\nexport interface PoHeadlessToolCompletionResult {\n toolCalls: readonly { id: string; name: string; arguments: unknown }[];\n usage: { totalTokens: number };\n}\n\n/** Credential-free catalog metadata. Packages cannot obtain auth, headers, or a mutable registry. */\nexport interface PoHeadlessModelMetadata {\n readonly provider: string;\n readonly id: string;\n readonly api?: string;\n readonly baseUrl?: string;\n readonly name?: string;\n readonly compat?: Readonly<Record<string, boolean | string>>;\n}\n\nexport interface PoHeadlessExecutionContext {\n readonly cwd: string;\n /** The checkout the session runs in, distinct from the tool execution directory. */\n readonly repoRoot: string;\n readonly sessionId: string;\n /** The session's baseline context, when its host knows its workspace. */\n readonly sessionContext?: PoSessionContext;\n /** Immutable session configuration. Packages must not read or mutate process.env. */\n readonly environment: Readonly<Record<string, string | undefined>>;\n readonly client: PoHeadlessClient;\n readonly session: PoHeadlessSession;\n readonly model?: PoHeadlessModelMetadata;\n /** Lookup in this session's catalog, including physical models named by finalized messages. */\n readonly getModel?: (provider: string, id: string) => PoHeadlessModelMetadata | undefined;\n /** Detached credential-free authenticated chat catalog, read after refreshing provider availability. */\n readonly getAvailableModels?: () => Promise<\n readonly {\n readonly provider: string;\n readonly id: string;\n }[]\n >;\n /** Operation cancellation, supplied only for an active invocation. */\n readonly signal?: AbortSignal;\n readonly textCompletion?: {\n available(reference: string): boolean;\n /** Tool-less conversation summary through the host's guarded session provider. */\n summarize?(\n reference: string,\n request: {\n messages: readonly Record<string, unknown>[];\n instructions: string;\n previousSummary?: string;\n thinkingLevel?: ThinkingLevel;\n signal?: AbortSignal;\n },\n ): Promise<string>;\n complete(\n reference: string,\n request: {\n systemPrompt: string;\n input: string;\n maxTokens: number;\n cacheRetention?: 'none' | 'short' | 'long';\n signal?: AbortSignal;\n },\n ): Promise<string>;\n };\n readonly toolCompletion?: {\n complete(reference: string, request: PoHeadlessToolCompletionRequest): Promise<PoHeadlessToolCompletionResult>;\n };\n /** Guarded image operation. Credentials and transport configuration remain host-owned. */\n readonly imageGeneration?: {\n available(): boolean;\n generate(request: {\n prompt: string;\n transparentBackground?: boolean;\n images?: readonly { data: string; mimeType: string }[];\n correlationId: string;\n signal?: AbortSignal;\n }): Promise<{ data: string; mimeType: 'image/png'; requestId?: string; generationId?: string }>;\n };\n /**\n * Guarded web search. Credentials, endpoint, model choice, session identity and transport remain host-owned.\n * `commands` follows a schema owned by the calling package; the host only bounds it.\n */\n readonly webSearch?: {\n available(): boolean;\n search(request: {\n commands: Readonly<Record<string, unknown>>;\n /** Optional plain-text excerpt, oldest first. Omit to send no conversation content. */\n conversation?: readonly { role: 'user' | 'assistant'; text: string }[];\n access: 'cached' | 'indexed' | 'live';\n signal?: AbortSignal;\n }): Promise<{ output: string; results?: readonly Record<string, unknown>[] }>;\n };\n readonly selection: PoHeadlessSelection;\n /** Present only while an authenticated remote MCP tool is running. */\n readonly mcpSkills?: PoMcpSkillAccess;\n shutdown(): void;\n}\n\n/** Conditions narrow an eligible owner's contributions; they can never restore a disabled owner. */\nexport interface PoHeadlessCondition {\n state?: Readonly<Record<string, string>>;\n attribution?: { kind: 'minor' | 'domain'; mode: string; label?: string };\n domain?: string;\n}\n\nexport interface PoHeadlessToolRestriction {\n when?: PoHeadlessCondition;\n /** Optional capability ceiling. An empty list disables every tool. */\n allowedTools?: readonly string[];\n /**\n * Narrow exclusions without disabling unrelated tools. Exclude a tool your package owns, or a\n * specific foreign tool the mode exists to withdraw. Never enumerate an allowlist here.\n */\n excludedTools?: readonly string[];\n}\n\nexport interface PoHeadlessTool<TParameters extends TSchema = TSchema> {\n when?: PoHeadlessCondition;\n name: string;\n label?: string;\n description: string;\n parameters: TParameters;\n annotations?: Tool['annotations'];\n outputSchema?: Tool['outputSchema'];\n /** Remote presentation only. Component tool access must be explicitly opted into. */\n _meta?: Tool['_meta'] & {\n ui?: { resourceUri?: string; visibility?: ('model' | 'app')[] };\n };\n promptSnippet?: string;\n promptGuidelines?: readonly string[];\n executionMode?: 'parallel' | 'serial';\n execute(\n toolCallId: string,\n parameters: Static<TParameters>,\n signal: AbortSignal | undefined,\n onUpdate: ((result: PoHeadlessToolResult) => void) | undefined,\n context: PoHeadlessExecutionContext,\n ): Promise<PoHeadlessToolResult>;\n}\n\n/**\n * One package contribution to the session's resource surface.\n *\n * `kind` decides what the model is billed for, and the difference is large:\n * - `context` is EAGER. `read()` runs on every prompt build and the text is pasted\n * into the system prompt verbatim. Reserve it for small live session state that\n * exists nowhere on disk. Never use it for a file the package ships: a README\n * registered this way costs its full length on every single turn.\n * - `skill` is LAZY. Only `name`, `description` and `path` reach the prompt; the\n * agent reads the file itself when the description matches the task.\n * - `prompt` is inert until the user invokes it by name.\n *\n * The rule in one line: if it is a file the package ships, it is a `skill`.\n */\nexport interface PoHeadlessResource {\n when?: PoHeadlessCondition;\n name: string;\n /** Model-visible selection signal. A `skill` without one tells the agent nothing. */\n description?: string;\n /** Absolute path of the file `read()` returns, so an advertised skill is one the agent can open. */\n path?: string;\n kind: 'prompt' | 'skill' | 'context';\n read(context: PoHeadlessExecutionContext): string | Promise<string>;\n}\n\nexport interface PoHeadlessCommand {\n when?: PoHeadlessCondition;\n name: string;\n description: string;\n /** Selection-only control allowed after a coherent selection fails admission. */\n selectionRecovery?: boolean;\n execute(args: string, context: PoHeadlessExecutionContext): void | Promise<void>;\n}\n\nexport type PoHeadlessEventName =\n | 'session_start'\n | 'session_shutdown'\n | 'session_tree'\n | 'before_agent_start'\n | 'agent_start'\n | 'agent_end'\n | 'agent_settled'\n | 'turn_start'\n | 'turn_end'\n | 'context'\n | 'before_provider_request'\n | 'message_start'\n | 'message_update'\n | 'message_end'\n | 'tool_call'\n | 'tool_execution_start'\n | 'tool_execution_update'\n | 'tool_execution_end'\n | 'tool_result'\n | 'model_select'\n | 'session_before_compact'\n | 'session_compact';\n\nexport type PoHeadlessHookEvent<E extends PoHeadlessEventName> = E extends 'before_provider_request'\n ? {\n lane: string;\n runId: string;\n model: { provider: string; id: string; api?: string };\n payload: unknown;\n }\n : E extends 'session_before_compact'\n ? {\n reason: string;\n preparation: unknown;\n instructions?: string;\n customInstructions?: string;\n }\n : E extends 'model_select'\n ? { model: { provider: string; id: string } }\n : Readonly<Record<string, unknown>>;\n\nexport interface PoHeadlessCompactionResult {\n summary: string;\n tokensBefore: number;\n retainedTail: Record<string, unknown>[];\n usage?: Record<string, unknown>;\n details?: unknown;\n}\n\nexport type PoHeadlessHookResult<E extends PoHeadlessEventName> = E extends 'before_provider_request'\n ? { payload: unknown } | void\n : E extends 'session_before_compact'\n ? {\n cancel?: boolean;\n decline?: boolean;\n compaction?: PoHeadlessCompactionResult;\n } | void\n : E extends 'context'\n ? { messages?: unknown[]; systemPrompt?: string } | void\n : E extends 'before_agent_start'\n ? { systemPrompt?: string } | void\n : E extends 'tool_call'\n ? {\n args?: Record<string, unknown>;\n block?: { reason: string; terminate?: boolean };\n } | void\n : E extends 'tool_result'\n ? {\n content?: PoHeadlessContent[];\n details?: unknown;\n isError?: boolean;\n usage?: Record<string, unknown>;\n terminate?: boolean;\n } | void\n : unknown;\n\nexport type PoHeadlessHook<E extends PoHeadlessEventName = PoHeadlessEventName> = E extends PoHeadlessEventName\n ? {\n when?: PoHeadlessCondition;\n event: E;\n handle(\n event: Readonly<PoHeadlessHookEvent<E>>,\n context: PoHeadlessExecutionContext,\n ): PoHeadlessHookResult<E> | Promise<PoHeadlessHookResult<E>>;\n }\n : never;\n\n/** A retained package can register activity without starting disabled watchers or services. */\nexport interface PoHeadlessActivity {\n when?: PoHeadlessCondition;\n name: string;\n start(context: PoHeadlessExecutionContext): (() => void | Promise<void>) | Promise<() => void | Promise<void>>;\n}\n\n/** Read-only metadata for the currently applied session, never executable declarations or resource bodies. */\nexport interface PoHeadlessCapability {\n readonly source: string;\n readonly name: string;\n readonly kind: 'tool' | 'skill';\n readonly when?: PoHeadlessCondition;\n readonly active: boolean;\n readonly discoverable: boolean;\n readonly reason?: 'inactive' | 'restricted' | 'shadowed' | 'unavailable' | 'not-discoverable';\n}\n\n/** Visibility controls model discovery only, never admission for external execution. */\nexport function isPoHeadlessToolModelVisible(tool: Pick<PoHeadlessTool, '_meta'>): boolean {\n const visibility = tool._meta?.ui?.visibility;\n return visibility === undefined || visibility.includes('model');\n}\n\nexport interface PoHeadlessCapabilitySnapshot {\n readonly revision: number;\n readonly ready: boolean;\n readonly capabilities: readonly PoHeadlessCapability[];\n}\n\n/** Registrations inherit package ownership from the caller's Cordis fiber. */\n/**\n * The tool a server session loads skills through. When a session carries it, the prompt lists\n * every skill by name and points here, so a skill needs no file the agent could read.\n */\nexport const PO_LOAD_SKILL_TOOL = 'load_skill';\n\nexport interface PoHeadlessHostService {\n readonly context: PoHeadlessExecutionContext;\n /** Admitted external execution, sharing native hooks, restrictions and session lifetime. */\n readonly toolSurface?: Pick<SessionToolSurface, 'readSurface' | 'invokeTool'>;\n /** The instructions of an applied skill by exact name, or undefined when none is applied. */\n readSkill(name: string): string | undefined;\n changeSelection(change: PoHeadlessSelectionChange): Promise<void>;\n assertActive(source?: string): void;\n subscribeSelection(listener: (selection: PoHeadlessSelection) => void | Promise<void>): () => void;\n /** Inspect only a coherently applied generation. A transition returns ready=false and no partial inventory. */\n inspectCapabilities(): PoHeadlessCapabilitySnapshot;\n registerToolRestriction(restriction: PoHeadlessToolRestriction): PoHeadlessRegistration;\n registerTool<TParameters extends TSchema>(tool: PoHeadlessTool<TParameters>): PoHeadlessRegistration;\n registerResource(resource: PoHeadlessResource): PoHeadlessRegistration;\n registerCommand(command: PoHeadlessCommand): PoHeadlessRegistration;\n registerHook(hook: PoHeadlessHook): PoHeadlessRegistration;\n registerActivity(activity: PoHeadlessActivity): PoHeadlessRegistration;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'po/headless-host': PoHeadlessHostService;\n }\n}\n\nexport function readPoHeadlessHost(context: Context): PoHeadlessHostService | undefined {\n return context.get(PO_HEADLESS_HOST_SERVICE) as PoHeadlessHostService | undefined;\n}\n\nexport function requirePoHeadlessHost(context: Context): PoHeadlessHostService {\n const host = readPoHeadlessHost(context);\n if (!host) throw new Error('This contribution requires the Po headless session host.');\n return host;\n}\n"],"mappings":";;AAWA,MAAa,2BAA2B;AACxC,MAAa,oBAAoB,OAAO,IAAI,mBAAmB;AAE/D,MAAM,yBAAyB;;AAG/B,IAAa,iCAAb,cAAoD,MAAM;CACxD,YAAY,OAAgB;EAC1B,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG,EAAE,MAAM,CAAC;EACvE,KAAK,OAAO;CACd;AACF;AAEA,MAAM,sBAAsB;;;;;;;AAQ5B,IAAa,sBAAb,cAAyC,MAAM;CAC7C,YAAY,SAAiB;EAC3B,MAAM,OAAO;EACb,KAAK,OAAO;CACd;AACF;;AAGA,SAAgB,sBAAsB,OAAgC;CACpE,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;;AAGA,SAAgB,iCAAiC,OAAyB;CACxE,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;AACA,MAAM,kBAAkB;;AAGxB,IAAa,0BAAb,cAA6C,MAAM;CACjD,cAAc;EACZ,MAAM,iCAAiC;EACvC,KAAK,OAAO;CACd;AACF;AAEA,SAAgB,0BAA0B,OAAyB;CACjE,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;AAsBA,SAAgB,oBAAoB,SAAmD;CACrF,OAAQ,QAAoE;AAC9E;;;;;AAsBA,SAAgB,uBAAuB,QAMd;CACvB,MAAM,EAAE,sBAAsB;CAC9B,OAAO;EACL,SAAS,OAAO;EAChB,SAAS,OAAO;EAChB,GAAI,OAAO,UAAU,KAAA,IAAY,CAAC,IAAI,EAAE,OAAO,OAAO,MAAM;EAC5D,GAAI,OAAO,sBAAsB,YAAY,sBAAsB,QAAQ,CAAC,MAAM,QAAQ,iBAAiB,IACvG,EAAqB,kBAA6C,IAClE,CAAC;EACL,GAAI,OAAO,YAAY,KAAA,IAAY,CAAC,IAAI,EAAE,SAAS,OAAO,QAAQ;CACpE;AACF;;AAwZA,SAAgB,6BAA6B,MAA8C;CACzF,MAAM,aAAa,KAAK,OAAO,IAAI;CACnC,OAAO,eAAe,KAAA,KAAa,WAAW,SAAS,OAAO;AAChE;;;;;;AAaA,MAAa,qBAAqB;AA2BlC,SAAgB,mBAAmB,SAAqD;CACtF,OAAO,QAAQ,IAAI,wBAAwB;AAC7C;AAEA,SAAgB,sBAAsB,SAAyC;CAC7E,MAAM,OAAO,mBAAmB,OAAO;CACvC,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,0DAA0D;CACrF,OAAO;AACT"}
|
|
@@ -2,24 +2,24 @@ let typebox = require("typebox");
|
|
|
2
2
|
let typebox_value = require("typebox/value");
|
|
3
3
|
//#region src/schemas/help.ts
|
|
4
4
|
/** Provider-owned Cordis service for the live Help catalog. */
|
|
5
|
-
const
|
|
6
|
-
const
|
|
5
|
+
const PO_HELP_SERVICE = "po/help";
|
|
6
|
+
const PO_HELP_WHEN = {
|
|
7
7
|
state: { "minor-mode": "help" },
|
|
8
8
|
attribution: {
|
|
9
9
|
kind: "minor",
|
|
10
10
|
mode: "help"
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
13
|
+
const PO_HELP_MAX_CONTRIBUTORS = 32;
|
|
14
|
+
const PO_HELP_MAX_SKILLS = 64;
|
|
15
|
+
const PO_HELP_MAX_DIAGNOSTICS = 64;
|
|
16
|
+
const PO_HELP_MAX_DESCRIPTION_LENGTH = 512;
|
|
17
|
+
const PO_HELP_MAX_DIAGNOSTIC_LENGTH = 512;
|
|
18
18
|
const MAX_SOURCE_LENGTH = 128;
|
|
19
19
|
const MAX_SKILL_NAME_LENGTH = 64;
|
|
20
20
|
const MAX_MODULE_URL_LENGTH = 4096;
|
|
21
21
|
const MAX_IDENTIFIER_LENGTH = 256;
|
|
22
|
-
const
|
|
22
|
+
const PO_HELP_ERROR_CODE = {
|
|
23
23
|
contributorLimit: "HELP_CONTRIBUTOR_LIMIT",
|
|
24
24
|
disposed: "HELP_DISPOSED",
|
|
25
25
|
duplicateSkill: "HELP_DUPLICATE_SKILL",
|
|
@@ -28,38 +28,38 @@ const DOOM_HELP_ERROR_CODE = {
|
|
|
28
28
|
invalidGeneration: "HELP_INVALID_GENERATION",
|
|
29
29
|
invalidSnapshot: "HELP_INVALID_SNAPSHOT"
|
|
30
30
|
};
|
|
31
|
-
var
|
|
31
|
+
var PoHelpError = class extends Error {
|
|
32
32
|
code;
|
|
33
33
|
constructor(code, message) {
|
|
34
34
|
super(message);
|
|
35
|
-
this.name = "
|
|
35
|
+
this.name = "PoHelpError";
|
|
36
36
|
this.code = code;
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
|
-
const
|
|
39
|
+
const PoHelpSourceSchema = typebox.Type.String({
|
|
40
40
|
minLength: 1,
|
|
41
41
|
maxLength: MAX_SOURCE_LENGTH,
|
|
42
42
|
pattern: "^[A-Za-z0-9@][A-Za-z0-9@/._:-]*$"
|
|
43
43
|
});
|
|
44
|
-
const
|
|
44
|
+
const PoHelpSkillNameSchema = typebox.Type.String({
|
|
45
45
|
minLength: 1,
|
|
46
46
|
maxLength: MAX_SKILL_NAME_LENGTH,
|
|
47
47
|
pattern: "^[a-z0-9][a-z0-9-]*$"
|
|
48
48
|
});
|
|
49
|
-
const
|
|
50
|
-
name:
|
|
49
|
+
const PoHelpSkillDescriptorSchema = typebox.Type.Object({
|
|
50
|
+
name: PoHelpSkillNameSchema,
|
|
51
51
|
description: typebox.Type.String({
|
|
52
52
|
minLength: 1,
|
|
53
53
|
maxLength: 512
|
|
54
54
|
})
|
|
55
55
|
}, { additionalProperties: false });
|
|
56
|
-
const
|
|
57
|
-
source:
|
|
56
|
+
const PoHelpContributionSchema = typebox.Type.Object({
|
|
57
|
+
source: PoHelpSourceSchema,
|
|
58
58
|
moduleUrl: typebox.Type.String({
|
|
59
59
|
minLength: 1,
|
|
60
60
|
maxLength: MAX_MODULE_URL_LENGTH
|
|
61
61
|
}),
|
|
62
|
-
skills: typebox.Type.Array(
|
|
62
|
+
skills: typebox.Type.Array(PoHelpSkillDescriptorSchema, {
|
|
63
63
|
minItems: 1,
|
|
64
64
|
maxItems: 64
|
|
65
65
|
})
|
|
@@ -68,15 +68,15 @@ const GenerationSchema = typebox.Type.String({
|
|
|
68
68
|
minLength: 1,
|
|
69
69
|
maxLength: MAX_IDENTIFIER_LENGTH
|
|
70
70
|
});
|
|
71
|
-
const
|
|
71
|
+
const PoHelpActivationSchema = typebox.Type.Union([
|
|
72
72
|
typebox.Type.Literal("inactive"),
|
|
73
73
|
typebox.Type.Literal("activating"),
|
|
74
74
|
typebox.Type.Literal("active"),
|
|
75
75
|
typebox.Type.Literal("degraded")
|
|
76
76
|
]);
|
|
77
|
-
const
|
|
78
|
-
source:
|
|
79
|
-
name:
|
|
77
|
+
const PoHelpSkillSchema = typebox.Type.Object({
|
|
78
|
+
source: PoHelpSourceSchema,
|
|
79
|
+
name: PoHelpSkillNameSchema,
|
|
80
80
|
description: typebox.Type.String({
|
|
81
81
|
minLength: 1,
|
|
82
82
|
maxLength: 512
|
|
@@ -90,8 +90,8 @@ const DoomHelpSkillSchema = typebox.Type.Object({
|
|
|
90
90
|
maxLength: MAX_MODULE_URL_LENGTH
|
|
91
91
|
})
|
|
92
92
|
}, { additionalProperties: false });
|
|
93
|
-
const
|
|
94
|
-
source: typebox.Type.Optional(
|
|
93
|
+
const PoHelpDiagnosticSchema = typebox.Type.Object({
|
|
94
|
+
source: typebox.Type.Optional(PoHelpSourceSchema),
|
|
95
95
|
code: typebox.Type.String({
|
|
96
96
|
minLength: 1,
|
|
97
97
|
maxLength: 64,
|
|
@@ -102,12 +102,12 @@ const DoomHelpDiagnosticSchema = typebox.Type.Object({
|
|
|
102
102
|
maxLength: 512
|
|
103
103
|
})
|
|
104
104
|
}, { additionalProperties: false });
|
|
105
|
-
const
|
|
105
|
+
const PoHelpSnapshotSchema = typebox.Type.Object({
|
|
106
106
|
hostGeneration: GenerationSchema,
|
|
107
107
|
revision: typebox.Type.Integer({ minimum: 0 }),
|
|
108
|
-
activation:
|
|
109
|
-
skills: typebox.Type.Array(
|
|
110
|
-
diagnostics: typebox.Type.Array(
|
|
108
|
+
activation: PoHelpActivationSchema,
|
|
109
|
+
skills: typebox.Type.Array(PoHelpSkillSchema, { maxItems: 64 }),
|
|
110
|
+
diagnostics: typebox.Type.Array(PoHelpDiagnosticSchema, { maxItems: 64 })
|
|
111
111
|
}, { additionalProperties: false });
|
|
112
112
|
function schemaFailure(schema, value) {
|
|
113
113
|
const [first] = (0, typebox_value.Errors)(schema, value);
|
|
@@ -128,17 +128,17 @@ function cloneSnapshot(snapshot) {
|
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
130
|
function validateContribution(contribution) {
|
|
131
|
-
if (!(0, typebox_value.Check)(
|
|
131
|
+
if (!(0, typebox_value.Check)(PoHelpContributionSchema, contribution)) throw new PoHelpError(PO_HELP_ERROR_CODE.invalidContribution, `Invalid Help contribution${schemaFailure(PoHelpContributionSchema, contribution)}.`);
|
|
132
132
|
const names = /* @__PURE__ */ new Set();
|
|
133
133
|
for (const skill of contribution.skills) {
|
|
134
|
-
if (names.has(skill.name)) throw new
|
|
134
|
+
if (names.has(skill.name)) throw new PoHelpError(PO_HELP_ERROR_CODE.duplicateSkill, `Help contribution '${contribution.source}' declares duplicate skill '${skill.name}'.`);
|
|
135
135
|
names.add(skill.name);
|
|
136
136
|
}
|
|
137
137
|
return cloneContribution(contribution);
|
|
138
138
|
}
|
|
139
139
|
/** Creates the provider-owned Help service value for one Cordis session. */
|
|
140
|
-
function
|
|
141
|
-
if (!(0, typebox_value.Check)(GenerationSchema, generation)) throw new
|
|
140
|
+
function createPoHelpService(generation) {
|
|
141
|
+
if (!(0, typebox_value.Check)(GenerationSchema, generation)) throw new PoHelpError(PO_HELP_ERROR_CODE.invalidGeneration, "Po Help requires a valid generation.");
|
|
142
142
|
const contributions = /* @__PURE__ */ new Map();
|
|
143
143
|
const contributionListeners = /* @__PURE__ */ new Set();
|
|
144
144
|
const snapshotListeners = /* @__PURE__ */ new Set();
|
|
@@ -153,7 +153,7 @@ function createDoomHelpService(generation) {
|
|
|
153
153
|
diagnostics: []
|
|
154
154
|
};
|
|
155
155
|
const ensureActive = () => {
|
|
156
|
-
if (disposed) throw new
|
|
156
|
+
if (disposed) throw new PoHelpError(PO_HELP_ERROR_CODE.disposed, "The Po Help service is disposed.");
|
|
157
157
|
};
|
|
158
158
|
const list = () => [...contributions.values()].map(({ contribution }) => cloneContribution(contribution)).sort((left, right) => left.source.localeCompare(right.source));
|
|
159
159
|
const notifyContributions = () => {
|
|
@@ -165,7 +165,7 @@ function createDoomHelpService(generation) {
|
|
|
165
165
|
register(contribution) {
|
|
166
166
|
ensureActive();
|
|
167
167
|
const validated = validateContribution(contribution);
|
|
168
|
-
if (!contributions.has(validated.source) && contributions.size >= 32) throw new
|
|
168
|
+
if (!contributions.has(validated.source) && contributions.size >= 32) throw new PoHelpError(PO_HELP_ERROR_CODE.contributorLimit, `Help accepts at most 32 contributors.`);
|
|
169
169
|
registrationSequence += 1;
|
|
170
170
|
const token = Symbol(validated.source);
|
|
171
171
|
const registrationGeneration = `${generation}:help:${registrationSequence}`;
|
|
@@ -197,7 +197,7 @@ function createDoomHelpService(generation) {
|
|
|
197
197
|
getSnapshot: () => cloneSnapshot(snapshot),
|
|
198
198
|
publish(draft) {
|
|
199
199
|
ensureActive();
|
|
200
|
-
if (draft.activation === "inactive" && draft.skills.length > 0) throw new
|
|
200
|
+
if (draft.activation === "inactive" && draft.skills.length > 0) throw new PoHelpError(PO_HELP_ERROR_CODE.inactiveSnapshot, "Inactive Help snapshots cannot expose skills.");
|
|
201
201
|
const next = {
|
|
202
202
|
hostGeneration: generation,
|
|
203
203
|
revision: snapshot.revision + 1,
|
|
@@ -205,7 +205,7 @@ function createDoomHelpService(generation) {
|
|
|
205
205
|
skills: draft.skills.map((skill) => ({ ...skill })),
|
|
206
206
|
diagnostics: draft.diagnostics.map((diagnostic) => ({ ...diagnostic }))
|
|
207
207
|
};
|
|
208
|
-
if (!(0, typebox_value.Check)(
|
|
208
|
+
if (!(0, typebox_value.Check)(PoHelpSnapshotSchema, next)) throw new PoHelpError(PO_HELP_ERROR_CODE.invalidSnapshot, `Invalid Help snapshot${schemaFailure(PoHelpSnapshotSchema, next)}.`);
|
|
209
209
|
snapshot = next;
|
|
210
210
|
const published = cloneSnapshot(snapshot);
|
|
211
211
|
for (const listener of snapshotListeners) listener(cloneSnapshot(published));
|
|
@@ -248,34 +248,34 @@ function createDoomHelpService(generation) {
|
|
|
248
248
|
}
|
|
249
249
|
});
|
|
250
250
|
}
|
|
251
|
-
function
|
|
252
|
-
return context.get(
|
|
251
|
+
function readPoHelpService(context) {
|
|
252
|
+
return context.get(PO_HELP_SERVICE);
|
|
253
253
|
}
|
|
254
|
-
function
|
|
255
|
-
const service =
|
|
256
|
-
if (!service) throw new Error("
|
|
254
|
+
function requirePoHelpService(context) {
|
|
255
|
+
const service = readPoHelpService(context);
|
|
256
|
+
if (!service) throw new Error("Po Help is unavailable. Load @agimon-ai/po-help.");
|
|
257
257
|
return service;
|
|
258
258
|
}
|
|
259
259
|
//#endregion
|
|
260
|
-
exports.
|
|
261
|
-
exports.
|
|
262
|
-
exports.
|
|
263
|
-
exports.
|
|
264
|
-
exports.
|
|
265
|
-
exports.
|
|
266
|
-
exports.
|
|
267
|
-
exports.
|
|
268
|
-
exports.
|
|
269
|
-
exports.
|
|
270
|
-
exports.
|
|
271
|
-
exports.
|
|
272
|
-
exports.
|
|
273
|
-
exports.
|
|
274
|
-
exports.
|
|
275
|
-
exports.
|
|
276
|
-
exports.
|
|
277
|
-
exports.
|
|
278
|
-
exports.
|
|
279
|
-
exports.
|
|
260
|
+
exports.PO_HELP_ERROR_CODE = PO_HELP_ERROR_CODE;
|
|
261
|
+
exports.PO_HELP_MAX_CONTRIBUTORS = PO_HELP_MAX_CONTRIBUTORS;
|
|
262
|
+
exports.PO_HELP_MAX_DESCRIPTION_LENGTH = PO_HELP_MAX_DESCRIPTION_LENGTH;
|
|
263
|
+
exports.PO_HELP_MAX_DIAGNOSTICS = PO_HELP_MAX_DIAGNOSTICS;
|
|
264
|
+
exports.PO_HELP_MAX_DIAGNOSTIC_LENGTH = PO_HELP_MAX_DIAGNOSTIC_LENGTH;
|
|
265
|
+
exports.PO_HELP_MAX_SKILLS = PO_HELP_MAX_SKILLS;
|
|
266
|
+
exports.PO_HELP_SERVICE = PO_HELP_SERVICE;
|
|
267
|
+
exports.PO_HELP_WHEN = PO_HELP_WHEN;
|
|
268
|
+
exports.PoHelpActivationSchema = PoHelpActivationSchema;
|
|
269
|
+
exports.PoHelpContributionSchema = PoHelpContributionSchema;
|
|
270
|
+
exports.PoHelpDiagnosticSchema = PoHelpDiagnosticSchema;
|
|
271
|
+
exports.PoHelpError = PoHelpError;
|
|
272
|
+
exports.PoHelpSkillDescriptorSchema = PoHelpSkillDescriptorSchema;
|
|
273
|
+
exports.PoHelpSkillNameSchema = PoHelpSkillNameSchema;
|
|
274
|
+
exports.PoHelpSkillSchema = PoHelpSkillSchema;
|
|
275
|
+
exports.PoHelpSnapshotSchema = PoHelpSnapshotSchema;
|
|
276
|
+
exports.PoHelpSourceSchema = PoHelpSourceSchema;
|
|
277
|
+
exports.createPoHelpService = createPoHelpService;
|
|
278
|
+
exports.readPoHelpService = readPoHelpService;
|
|
279
|
+
exports.requirePoHelpService = requirePoHelpService;
|
|
280
280
|
|
|
281
281
|
//# sourceMappingURL=help.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.cjs","names":["Type","Errors","Check"],"sources":["../../../src/schemas/help.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport { type Static, Type } from 'typebox';\nimport { Check, Errors } from 'typebox/value';\n\n/** Provider-owned Cordis service for the live Help catalog. */\nexport const DOOM_HELP_SERVICE = 'doom/help';\nexport const DOOM_HELP_WHEN = {\n state: { 'minor-mode': 'help' },\n attribution: { kind: 'minor', mode: 'help' },\n} as const;\nexport const DOOM_HELP_MAX_CONTRIBUTORS = 32;\nexport const DOOM_HELP_MAX_SKILLS = 64;\nexport const DOOM_HELP_MAX_DIAGNOSTICS = 64;\nexport const DOOM_HELP_MAX_DESCRIPTION_LENGTH = 512;\nexport const DOOM_HELP_MAX_DIAGNOSTIC_LENGTH = 512;\n\nconst MAX_SOURCE_LENGTH = 128;\nconst MAX_SKILL_NAME_LENGTH = 64;\nconst MAX_MODULE_URL_LENGTH = 4_096;\nconst MAX_IDENTIFIER_LENGTH = 256;\n\nexport const DOOM_HELP_ERROR_CODE = {\n contributorLimit: 'HELP_CONTRIBUTOR_LIMIT',\n disposed: 'HELP_DISPOSED',\n duplicateSkill: 'HELP_DUPLICATE_SKILL',\n inactiveSnapshot: 'HELP_INACTIVE_SNAPSHOT',\n invalidContribution: 'HELP_INVALID_CONTRIBUTION',\n invalidGeneration: 'HELP_INVALID_GENERATION',\n invalidSnapshot: 'HELP_INVALID_SNAPSHOT',\n} as const;\n\nexport type DoomHelpErrorCode = (typeof DOOM_HELP_ERROR_CODE)[keyof typeof DOOM_HELP_ERROR_CODE];\n\nexport class DoomHelpError extends Error {\n readonly code: DoomHelpErrorCode;\n\n constructor(code: DoomHelpErrorCode, message: string) {\n super(message);\n this.name = 'DoomHelpError';\n this.code = code;\n }\n}\n\nexport const DoomHelpSourceSchema = Type.String({\n minLength: 1,\n maxLength: MAX_SOURCE_LENGTH,\n pattern: '^[A-Za-z0-9@][A-Za-z0-9@/._:-]*$',\n});\n\nexport const DoomHelpSkillNameSchema = Type.String({\n minLength: 1,\n maxLength: MAX_SKILL_NAME_LENGTH,\n pattern: '^[a-z0-9][a-z0-9-]*$',\n});\n\nexport const DoomHelpSkillDescriptorSchema = Type.Object(\n {\n name: DoomHelpSkillNameSchema,\n description: Type.String({ minLength: 1, maxLength: DOOM_HELP_MAX_DESCRIPTION_LENGTH }),\n },\n { additionalProperties: false },\n);\nexport type DoomHelpSkillDescriptor = Static<typeof DoomHelpSkillDescriptorSchema>;\n\nexport const DoomHelpContributionSchema = Type.Object(\n {\n source: DoomHelpSourceSchema,\n moduleUrl: Type.String({ minLength: 1, maxLength: MAX_MODULE_URL_LENGTH }),\n skills: Type.Array(DoomHelpSkillDescriptorSchema, { minItems: 1, maxItems: DOOM_HELP_MAX_SKILLS }),\n },\n { additionalProperties: false },\n);\nexport type DoomHelpContribution = Static<typeof DoomHelpContributionSchema>;\n\nconst GenerationSchema = Type.String({ minLength: 1, maxLength: MAX_IDENTIFIER_LENGTH });\n\nexport const DoomHelpActivationSchema = Type.Union([\n Type.Literal('inactive'),\n Type.Literal('activating'),\n Type.Literal('active'),\n Type.Literal('degraded'),\n]);\nexport type DoomHelpActivation = Static<typeof DoomHelpActivationSchema>;\n\nexport const DoomHelpSkillSchema = Type.Object(\n {\n source: DoomHelpSourceSchema,\n name: DoomHelpSkillNameSchema,\n description: Type.String({ minLength: 1, maxLength: DOOM_HELP_MAX_DESCRIPTION_LENGTH }),\n filePath: Type.String({ minLength: 1, maxLength: MAX_MODULE_URL_LENGTH }),\n baseDir: Type.String({ minLength: 1, maxLength: MAX_MODULE_URL_LENGTH }),\n },\n { additionalProperties: false },\n);\nexport type DoomHelpSkill = Static<typeof DoomHelpSkillSchema>;\n\nexport const DoomHelpDiagnosticSchema = Type.Object(\n {\n source: Type.Optional(DoomHelpSourceSchema),\n code: Type.String({ minLength: 1, maxLength: 64, pattern: '^[A-Z0-9_]+$' }),\n message: Type.String({ minLength: 1, maxLength: DOOM_HELP_MAX_DIAGNOSTIC_LENGTH }),\n },\n { additionalProperties: false },\n);\nexport type DoomHelpDiagnostic = Static<typeof DoomHelpDiagnosticSchema>;\n\nexport const DoomHelpSnapshotSchema = Type.Object(\n {\n hostGeneration: GenerationSchema,\n revision: Type.Integer({ minimum: 0 }),\n activation: DoomHelpActivationSchema,\n skills: Type.Array(DoomHelpSkillSchema, { maxItems: DOOM_HELP_MAX_SKILLS }),\n diagnostics: Type.Array(DoomHelpDiagnosticSchema, { maxItems: DOOM_HELP_MAX_DIAGNOSTICS }),\n },\n { additionalProperties: false },\n);\nexport type DoomHelpSnapshot = Static<typeof DoomHelpSnapshotSchema>;\n\nexport interface DoomHelpSnapshotDraft {\n readonly activation: DoomHelpActivation;\n readonly skills: readonly DoomHelpSkill[];\n readonly diagnostics: readonly DoomHelpDiagnostic[];\n}\n\nexport interface DoomHelpContributionHandle {\n readonly source: string;\n readonly generation: string;\n dispose(): void;\n}\n\n/** Direct, session-local registrar and query surface owned by po-help. */\nexport interface DoomHelpService {\n readonly generation: string;\n register(contribution: DoomHelpContribution): DoomHelpContributionHandle;\n listContributions(): readonly DoomHelpContribution[];\n subscribeContributions(listener: (contributions: readonly DoomHelpContribution[]) => void): () => void;\n getSnapshot(): DoomHelpSnapshot;\n publish(snapshot: DoomHelpSnapshotDraft): DoomHelpSnapshot;\n subscribeSnapshot(listener: (snapshot: DoomHelpSnapshot) => void): () => void;\n /** Bind the skill consumer's accepted file paths, without duplicating its inventory. */\n bindSkillInventory(read: () => Promise<readonly string[] | undefined>): () => void;\n /** Accepted Help skills, or undefined while the consumer is absent, discovering, or superseded. */\n inspectSkills(): Promise<readonly DoomHelpSkill[] | undefined>;\n dispose(): void;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'doom/help': DoomHelpService;\n }\n}\n\ninterface RegisteredContribution {\n readonly token: symbol;\n readonly generation: string;\n readonly contribution: DoomHelpContribution;\n}\n\nfunction schemaFailure(\n schema: typeof DoomHelpContributionSchema | typeof DoomHelpSnapshotSchema,\n value: unknown,\n): string {\n const [first] = Errors(schema, value);\n return first ? ` at ${first.instancePath || '/'}: ${first.message}` : '';\n}\n\nfunction cloneContribution(contribution: DoomHelpContribution): DoomHelpContribution {\n return {\n source: contribution.source,\n moduleUrl: contribution.moduleUrl,\n skills: contribution.skills.map((skill) => ({ ...skill })),\n };\n}\n\nfunction cloneSnapshot(snapshot: DoomHelpSnapshot): DoomHelpSnapshot {\n return {\n ...snapshot,\n skills: snapshot.skills.map((skill) => ({ ...skill })),\n diagnostics: snapshot.diagnostics.map((diagnostic) => ({ ...diagnostic })),\n };\n}\n\nfunction validateContribution(contribution: DoomHelpContribution): DoomHelpContribution {\n if (!Check(DoomHelpContributionSchema, contribution)) {\n throw new DoomHelpError(\n DOOM_HELP_ERROR_CODE.invalidContribution,\n `Invalid Help contribution${schemaFailure(DoomHelpContributionSchema, contribution)}.`,\n );\n }\n const names = new Set<string>();\n for (const skill of contribution.skills) {\n if (names.has(skill.name)) {\n throw new DoomHelpError(\n DOOM_HELP_ERROR_CODE.duplicateSkill,\n `Help contribution '${contribution.source}' declares duplicate skill '${skill.name}'.`,\n );\n }\n names.add(skill.name);\n }\n return cloneContribution(contribution);\n}\n\n/** Creates the provider-owned Help service value for one Cordis session. */\nexport function createDoomHelpService(generation: string): DoomHelpService {\n if (!Check(GenerationSchema, generation)) {\n throw new DoomHelpError(DOOM_HELP_ERROR_CODE.invalidGeneration, 'Doom Help requires a valid generation.');\n }\n\n const contributions = new Map<string, RegisteredContribution>();\n const contributionListeners = new Set<(value: readonly DoomHelpContribution[]) => void>();\n const snapshotListeners = new Set<(value: DoomHelpSnapshot) => void>();\n let registrationSequence = 0;\n let disposed = false;\n let skillInventory: { token: symbol; read: () => Promise<readonly string[] | undefined> } | undefined;\n let snapshot: DoomHelpSnapshot = {\n hostGeneration: generation,\n revision: 0,\n activation: 'inactive',\n skills: [],\n diagnostics: [],\n };\n\n const ensureActive = (): void => {\n if (disposed) throw new DoomHelpError(DOOM_HELP_ERROR_CODE.disposed, 'The Doom Help service is disposed.');\n };\n const list = (): readonly DoomHelpContribution[] =>\n [...contributions.values()]\n .map(({ contribution }) => cloneContribution(contribution))\n .sort((left, right) => left.source.localeCompare(right.source));\n const notifyContributions = (): void => {\n const value = list();\n for (const listener of contributionListeners) listener(value);\n };\n\n const service: DoomHelpService = {\n generation,\n register(contribution) {\n ensureActive();\n const validated = validateContribution(contribution);\n if (!contributions.has(validated.source) && contributions.size >= DOOM_HELP_MAX_CONTRIBUTORS) {\n throw new DoomHelpError(\n DOOM_HELP_ERROR_CODE.contributorLimit,\n `Help accepts at most ${DOOM_HELP_MAX_CONTRIBUTORS} contributors.`,\n );\n }\n registrationSequence += 1;\n const token = Symbol(validated.source);\n const registrationGeneration = `${generation}:help:${registrationSequence}`;\n contributions.set(validated.source, {\n token,\n generation: registrationGeneration,\n contribution: validated,\n });\n notifyContributions();\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 (contributions.get(validated.source)?.token !== token) return;\n contributions.delete(validated.source);\n notifyContributions();\n },\n });\n },\n listContributions: list,\n subscribeContributions(listener) {\n ensureActive();\n contributionListeners.add(listener);\n return () => contributionListeners.delete(listener);\n },\n getSnapshot: () => cloneSnapshot(snapshot),\n publish(draft) {\n ensureActive();\n if (draft.activation === 'inactive' && draft.skills.length > 0) {\n throw new DoomHelpError(DOOM_HELP_ERROR_CODE.inactiveSnapshot, 'Inactive Help snapshots cannot expose skills.');\n }\n const next: DoomHelpSnapshot = {\n hostGeneration: generation,\n revision: snapshot.revision + 1,\n activation: draft.activation,\n skills: draft.skills.map((skill) => ({ ...skill })),\n diagnostics: draft.diagnostics.map((diagnostic) => ({ ...diagnostic })),\n };\n if (!Check(DoomHelpSnapshotSchema, next)) {\n throw new DoomHelpError(\n DOOM_HELP_ERROR_CODE.invalidSnapshot,\n `Invalid Help snapshot${schemaFailure(DoomHelpSnapshotSchema, next)}.`,\n );\n }\n snapshot = next;\n const published = cloneSnapshot(snapshot);\n for (const listener of snapshotListeners) listener(cloneSnapshot(published));\n return published;\n },\n subscribeSnapshot(listener) {\n ensureActive();\n snapshotListeners.add(listener);\n return () => snapshotListeners.delete(listener);\n },\n bindSkillInventory(read) {\n ensureActive();\n const token = Symbol('help-skill-inventory');\n skillInventory = { token, read };\n return () => {\n if (skillInventory?.token === token) skillInventory = undefined;\n };\n },\n async inspectSkills() {\n if (disposed) return undefined;\n if (snapshot.activation === 'inactive') return [];\n const reader = skillInventory;\n if (!reader) return undefined;\n const revision = snapshot.revision;\n const paths = await reader.read();\n if (disposed || reader !== skillInventory || revision !== snapshot.revision || paths === undefined)\n return undefined;\n const accepted = new Set(paths);\n return snapshot.skills.filter((skill) => accepted.has(skill.filePath)).map((skill) => ({ ...skill }));\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n skillInventory = undefined;\n contributions.clear();\n contributionListeners.clear();\n snapshotListeners.clear();\n },\n };\n return Object.freeze(service);\n}\n\nexport function readDoomHelpService(context: Context): DoomHelpService | undefined {\n return context.get(DOOM_HELP_SERVICE) as DoomHelpService | undefined;\n}\n\nexport function requireDoomHelpService(context: Context): DoomHelpService {\n const service = readDoomHelpService(context);\n if (!service) throw new Error('Doom Help is unavailable. Load @agimon-ai/po-help.');\n return service;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"help.cjs","names":["Type","Errors","Check"],"sources":["../../../src/schemas/help.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport { type Static, Type } from 'typebox';\nimport { Check, Errors } from 'typebox/value';\n\n/** Provider-owned Cordis service for the live Help catalog. */\nexport const PO_HELP_SERVICE = 'po/help';\nexport const PO_HELP_WHEN = {\n state: { 'minor-mode': 'help' },\n attribution: { kind: 'minor', mode: 'help' },\n} as const;\nexport const PO_HELP_MAX_CONTRIBUTORS = 32;\nexport const PO_HELP_MAX_SKILLS = 64;\nexport const PO_HELP_MAX_DIAGNOSTICS = 64;\nexport const PO_HELP_MAX_DESCRIPTION_LENGTH = 512;\nexport const PO_HELP_MAX_DIAGNOSTIC_LENGTH = 512;\n\nconst MAX_SOURCE_LENGTH = 128;\nconst MAX_SKILL_NAME_LENGTH = 64;\nconst MAX_MODULE_URL_LENGTH = 4_096;\nconst MAX_IDENTIFIER_LENGTH = 256;\n\nexport const PO_HELP_ERROR_CODE = {\n contributorLimit: 'HELP_CONTRIBUTOR_LIMIT',\n disposed: 'HELP_DISPOSED',\n duplicateSkill: 'HELP_DUPLICATE_SKILL',\n inactiveSnapshot: 'HELP_INACTIVE_SNAPSHOT',\n invalidContribution: 'HELP_INVALID_CONTRIBUTION',\n invalidGeneration: 'HELP_INVALID_GENERATION',\n invalidSnapshot: 'HELP_INVALID_SNAPSHOT',\n} as const;\n\nexport type PoHelpErrorCode = (typeof PO_HELP_ERROR_CODE)[keyof typeof PO_HELP_ERROR_CODE];\n\nexport class PoHelpError extends Error {\n readonly code: PoHelpErrorCode;\n\n constructor(code: PoHelpErrorCode, message: string) {\n super(message);\n this.name = 'PoHelpError';\n this.code = code;\n }\n}\n\nexport const PoHelpSourceSchema = Type.String({\n minLength: 1,\n maxLength: MAX_SOURCE_LENGTH,\n pattern: '^[A-Za-z0-9@][A-Za-z0-9@/._:-]*$',\n});\n\nexport const PoHelpSkillNameSchema = Type.String({\n minLength: 1,\n maxLength: MAX_SKILL_NAME_LENGTH,\n pattern: '^[a-z0-9][a-z0-9-]*$',\n});\n\nexport const PoHelpSkillDescriptorSchema = Type.Object(\n {\n name: PoHelpSkillNameSchema,\n description: Type.String({ minLength: 1, maxLength: PO_HELP_MAX_DESCRIPTION_LENGTH }),\n },\n { additionalProperties: false },\n);\nexport type PoHelpSkillDescriptor = Static<typeof PoHelpSkillDescriptorSchema>;\n\nexport const PoHelpContributionSchema = Type.Object(\n {\n source: PoHelpSourceSchema,\n moduleUrl: Type.String({ minLength: 1, maxLength: MAX_MODULE_URL_LENGTH }),\n skills: Type.Array(PoHelpSkillDescriptorSchema, { minItems: 1, maxItems: PO_HELP_MAX_SKILLS }),\n },\n { additionalProperties: false },\n);\nexport type PoHelpContribution = Static<typeof PoHelpContributionSchema>;\n\nconst GenerationSchema = Type.String({ minLength: 1, maxLength: MAX_IDENTIFIER_LENGTH });\n\nexport const PoHelpActivationSchema = Type.Union([\n Type.Literal('inactive'),\n Type.Literal('activating'),\n Type.Literal('active'),\n Type.Literal('degraded'),\n]);\nexport type PoHelpActivation = Static<typeof PoHelpActivationSchema>;\n\nexport const PoHelpSkillSchema = Type.Object(\n {\n source: PoHelpSourceSchema,\n name: PoHelpSkillNameSchema,\n description: Type.String({ minLength: 1, maxLength: PO_HELP_MAX_DESCRIPTION_LENGTH }),\n filePath: Type.String({ minLength: 1, maxLength: MAX_MODULE_URL_LENGTH }),\n baseDir: Type.String({ minLength: 1, maxLength: MAX_MODULE_URL_LENGTH }),\n },\n { additionalProperties: false },\n);\nexport type PoHelpSkill = Static<typeof PoHelpSkillSchema>;\n\nexport const PoHelpDiagnosticSchema = Type.Object(\n {\n source: Type.Optional(PoHelpSourceSchema),\n code: Type.String({ minLength: 1, maxLength: 64, pattern: '^[A-Z0-9_]+$' }),\n message: Type.String({ minLength: 1, maxLength: PO_HELP_MAX_DIAGNOSTIC_LENGTH }),\n },\n { additionalProperties: false },\n);\nexport type PoHelpDiagnostic = Static<typeof PoHelpDiagnosticSchema>;\n\nexport const PoHelpSnapshotSchema = Type.Object(\n {\n hostGeneration: GenerationSchema,\n revision: Type.Integer({ minimum: 0 }),\n activation: PoHelpActivationSchema,\n skills: Type.Array(PoHelpSkillSchema, { maxItems: PO_HELP_MAX_SKILLS }),\n diagnostics: Type.Array(PoHelpDiagnosticSchema, { maxItems: PO_HELP_MAX_DIAGNOSTICS }),\n },\n { additionalProperties: false },\n);\nexport type PoHelpSnapshot = Static<typeof PoHelpSnapshotSchema>;\n\nexport interface PoHelpSnapshotDraft {\n readonly activation: PoHelpActivation;\n readonly skills: readonly PoHelpSkill[];\n readonly diagnostics: readonly PoHelpDiagnostic[];\n}\n\nexport interface PoHelpContributionHandle {\n readonly source: string;\n readonly generation: string;\n dispose(): void;\n}\n\n/** Direct, session-local registrar and query surface owned by po-help. */\nexport interface PoHelpService {\n readonly generation: string;\n register(contribution: PoHelpContribution): PoHelpContributionHandle;\n listContributions(): readonly PoHelpContribution[];\n subscribeContributions(listener: (contributions: readonly PoHelpContribution[]) => void): () => void;\n getSnapshot(): PoHelpSnapshot;\n publish(snapshot: PoHelpSnapshotDraft): PoHelpSnapshot;\n subscribeSnapshot(listener: (snapshot: PoHelpSnapshot) => void): () => void;\n /** Bind the skill consumer's accepted file paths, without duplicating its inventory. */\n bindSkillInventory(read: () => Promise<readonly string[] | undefined>): () => void;\n /** Accepted Help skills, or undefined while the consumer is absent, discovering, or superseded. */\n inspectSkills(): Promise<readonly PoHelpSkill[] | undefined>;\n dispose(): void;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'po/help': PoHelpService;\n }\n}\n\ninterface RegisteredContribution {\n readonly token: symbol;\n readonly generation: string;\n readonly contribution: PoHelpContribution;\n}\n\nfunction schemaFailure(schema: typeof PoHelpContributionSchema | typeof PoHelpSnapshotSchema, value: unknown): string {\n const [first] = Errors(schema, value);\n return first ? ` at ${first.instancePath || '/'}: ${first.message}` : '';\n}\n\nfunction cloneContribution(contribution: PoHelpContribution): PoHelpContribution {\n return {\n source: contribution.source,\n moduleUrl: contribution.moduleUrl,\n skills: contribution.skills.map((skill) => ({ ...skill })),\n };\n}\n\nfunction cloneSnapshot(snapshot: PoHelpSnapshot): PoHelpSnapshot {\n return {\n ...snapshot,\n skills: snapshot.skills.map((skill) => ({ ...skill })),\n diagnostics: snapshot.diagnostics.map((diagnostic) => ({ ...diagnostic })),\n };\n}\n\nfunction validateContribution(contribution: PoHelpContribution): PoHelpContribution {\n if (!Check(PoHelpContributionSchema, contribution)) {\n throw new PoHelpError(\n PO_HELP_ERROR_CODE.invalidContribution,\n `Invalid Help contribution${schemaFailure(PoHelpContributionSchema, contribution)}.`,\n );\n }\n const names = new Set<string>();\n for (const skill of contribution.skills) {\n if (names.has(skill.name)) {\n throw new PoHelpError(\n PO_HELP_ERROR_CODE.duplicateSkill,\n `Help contribution '${contribution.source}' declares duplicate skill '${skill.name}'.`,\n );\n }\n names.add(skill.name);\n }\n return cloneContribution(contribution);\n}\n\n/** Creates the provider-owned Help service value for one Cordis session. */\nexport function createPoHelpService(generation: string): PoHelpService {\n if (!Check(GenerationSchema, generation)) {\n throw new PoHelpError(PO_HELP_ERROR_CODE.invalidGeneration, 'Po Help requires a valid generation.');\n }\n\n const contributions = new Map<string, RegisteredContribution>();\n const contributionListeners = new Set<(value: readonly PoHelpContribution[]) => void>();\n const snapshotListeners = new Set<(value: PoHelpSnapshot) => void>();\n let registrationSequence = 0;\n let disposed = false;\n let skillInventory: { token: symbol; read: () => Promise<readonly string[] | undefined> } | undefined;\n let snapshot: PoHelpSnapshot = {\n hostGeneration: generation,\n revision: 0,\n activation: 'inactive',\n skills: [],\n diagnostics: [],\n };\n\n const ensureActive = (): void => {\n if (disposed) throw new PoHelpError(PO_HELP_ERROR_CODE.disposed, 'The Po Help service is disposed.');\n };\n const list = (): readonly PoHelpContribution[] =>\n [...contributions.values()]\n .map(({ contribution }) => cloneContribution(contribution))\n .sort((left, right) => left.source.localeCompare(right.source));\n const notifyContributions = (): void => {\n const value = list();\n for (const listener of contributionListeners) listener(value);\n };\n\n const service: PoHelpService = {\n generation,\n register(contribution) {\n ensureActive();\n const validated = validateContribution(contribution);\n if (!contributions.has(validated.source) && contributions.size >= PO_HELP_MAX_CONTRIBUTORS) {\n throw new PoHelpError(\n PO_HELP_ERROR_CODE.contributorLimit,\n `Help accepts at most ${PO_HELP_MAX_CONTRIBUTORS} contributors.`,\n );\n }\n registrationSequence += 1;\n const token = Symbol(validated.source);\n const registrationGeneration = `${generation}:help:${registrationSequence}`;\n contributions.set(validated.source, {\n token,\n generation: registrationGeneration,\n contribution: validated,\n });\n notifyContributions();\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 (contributions.get(validated.source)?.token !== token) return;\n contributions.delete(validated.source);\n notifyContributions();\n },\n });\n },\n listContributions: list,\n subscribeContributions(listener) {\n ensureActive();\n contributionListeners.add(listener);\n return () => contributionListeners.delete(listener);\n },\n getSnapshot: () => cloneSnapshot(snapshot),\n publish(draft) {\n ensureActive();\n if (draft.activation === 'inactive' && draft.skills.length > 0) {\n throw new PoHelpError(PO_HELP_ERROR_CODE.inactiveSnapshot, 'Inactive Help snapshots cannot expose skills.');\n }\n const next: PoHelpSnapshot = {\n hostGeneration: generation,\n revision: snapshot.revision + 1,\n activation: draft.activation,\n skills: draft.skills.map((skill) => ({ ...skill })),\n diagnostics: draft.diagnostics.map((diagnostic) => ({ ...diagnostic })),\n };\n if (!Check(PoHelpSnapshotSchema, next)) {\n throw new PoHelpError(\n PO_HELP_ERROR_CODE.invalidSnapshot,\n `Invalid Help snapshot${schemaFailure(PoHelpSnapshotSchema, next)}.`,\n );\n }\n snapshot = next;\n const published = cloneSnapshot(snapshot);\n for (const listener of snapshotListeners) listener(cloneSnapshot(published));\n return published;\n },\n subscribeSnapshot(listener) {\n ensureActive();\n snapshotListeners.add(listener);\n return () => snapshotListeners.delete(listener);\n },\n bindSkillInventory(read) {\n ensureActive();\n const token = Symbol('help-skill-inventory');\n skillInventory = { token, read };\n return () => {\n if (skillInventory?.token === token) skillInventory = undefined;\n };\n },\n async inspectSkills() {\n if (disposed) return undefined;\n if (snapshot.activation === 'inactive') return [];\n const reader = skillInventory;\n if (!reader) return undefined;\n const revision = snapshot.revision;\n const paths = await reader.read();\n if (disposed || reader !== skillInventory || revision !== snapshot.revision || paths === undefined)\n return undefined;\n const accepted = new Set(paths);\n return snapshot.skills.filter((skill) => accepted.has(skill.filePath)).map((skill) => ({ ...skill }));\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n skillInventory = undefined;\n contributions.clear();\n contributionListeners.clear();\n snapshotListeners.clear();\n },\n };\n return Object.freeze(service);\n}\n\nexport function readPoHelpService(context: Context): PoHelpService | undefined {\n return context.get(PO_HELP_SERVICE) as PoHelpService | undefined;\n}\n\nexport function requirePoHelpService(context: Context): PoHelpService {\n const service = readPoHelpService(context);\n if (!service) throw new Error('Po Help is unavailable. Load @agimon-ai/po-help.');\n return service;\n}\n"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { Static, Type } from "typebox";
|
|
|
2
2
|
import { Context } from "@deepseek-ai/cordis";
|
|
3
3
|
//#region src/schemas/help.d.ts
|
|
4
4
|
/** Provider-owned Cordis service for the live Help catalog. */
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
5
|
+
export declare const PO_HELP_SERVICE = "po/help";
|
|
6
|
+
export declare const PO_HELP_WHEN: {
|
|
7
7
|
readonly state: {
|
|
8
8
|
readonly 'minor-mode': 'help';
|
|
9
9
|
};
|
|
@@ -12,12 +12,12 @@ export declare const DOOM_HELP_WHEN: {
|
|
|
12
12
|
readonly mode: 'help';
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
|
-
export declare const
|
|
16
|
-
export declare const
|
|
17
|
-
export declare const
|
|
18
|
-
export declare const
|
|
19
|
-
export declare const
|
|
20
|
-
export declare const
|
|
15
|
+
export declare const PO_HELP_MAX_CONTRIBUTORS = 32;
|
|
16
|
+
export declare const PO_HELP_MAX_SKILLS = 64;
|
|
17
|
+
export declare const PO_HELP_MAX_DIAGNOSTICS = 64;
|
|
18
|
+
export declare const PO_HELP_MAX_DESCRIPTION_LENGTH = 512;
|
|
19
|
+
export declare const PO_HELP_MAX_DIAGNOSTIC_LENGTH = 512;
|
|
20
|
+
export declare const PO_HELP_ERROR_CODE: {
|
|
21
21
|
readonly contributorLimit: 'HELP_CONTRIBUTOR_LIMIT';
|
|
22
22
|
readonly disposed: 'HELP_DISPOSED';
|
|
23
23
|
readonly duplicateSkill: 'HELP_DUPLICATE_SKILL';
|
|
@@ -26,19 +26,19 @@ export declare const DOOM_HELP_ERROR_CODE: {
|
|
|
26
26
|
readonly invalidGeneration: 'HELP_INVALID_GENERATION';
|
|
27
27
|
readonly invalidSnapshot: 'HELP_INVALID_SNAPSHOT';
|
|
28
28
|
};
|
|
29
|
-
export type
|
|
30
|
-
export declare class
|
|
31
|
-
readonly code:
|
|
32
|
-
constructor(code:
|
|
29
|
+
export type PoHelpErrorCode = (typeof PO_HELP_ERROR_CODE)[keyof typeof PO_HELP_ERROR_CODE];
|
|
30
|
+
export declare class PoHelpError extends Error {
|
|
31
|
+
readonly code: PoHelpErrorCode;
|
|
32
|
+
constructor(code: PoHelpErrorCode, message: string);
|
|
33
33
|
}
|
|
34
|
-
export declare const
|
|
35
|
-
export declare const
|
|
36
|
-
export declare const
|
|
34
|
+
export declare const PoHelpSourceSchema: Type.TString;
|
|
35
|
+
export declare const PoHelpSkillNameSchema: Type.TString;
|
|
36
|
+
export declare const PoHelpSkillDescriptorSchema: Type.TObject<{
|
|
37
37
|
name: Type.TString;
|
|
38
38
|
description: Type.TString;
|
|
39
39
|
}>;
|
|
40
|
-
export type
|
|
41
|
-
export declare const
|
|
40
|
+
export type PoHelpSkillDescriptor = Static<typeof PoHelpSkillDescriptorSchema>;
|
|
41
|
+
export declare const PoHelpContributionSchema: Type.TObject<{
|
|
42
42
|
source: Type.TString;
|
|
43
43
|
moduleUrl: Type.TString;
|
|
44
44
|
skills: Type.TArray<Type.TObject<{
|
|
@@ -46,24 +46,24 @@ export declare const DoomHelpContributionSchema: Type.TObject<{
|
|
|
46
46
|
description: Type.TString;
|
|
47
47
|
}>>;
|
|
48
48
|
}>;
|
|
49
|
-
export type
|
|
50
|
-
export declare const
|
|
51
|
-
export type
|
|
52
|
-
export declare const
|
|
49
|
+
export type PoHelpContribution = Static<typeof PoHelpContributionSchema>;
|
|
50
|
+
export declare const PoHelpActivationSchema: Type.TUnion<[Type.TLiteral<"inactive">, Type.TLiteral<"activating">, Type.TLiteral<"active">, Type.TLiteral<"degraded">]>;
|
|
51
|
+
export type PoHelpActivation = Static<typeof PoHelpActivationSchema>;
|
|
52
|
+
export declare const PoHelpSkillSchema: Type.TObject<{
|
|
53
53
|
source: Type.TString;
|
|
54
54
|
name: Type.TString;
|
|
55
55
|
description: Type.TString;
|
|
56
56
|
filePath: Type.TString;
|
|
57
57
|
baseDir: Type.TString;
|
|
58
58
|
}>;
|
|
59
|
-
export type
|
|
60
|
-
export declare const
|
|
59
|
+
export type PoHelpSkill = Static<typeof PoHelpSkillSchema>;
|
|
60
|
+
export declare const PoHelpDiagnosticSchema: Type.TObject<{
|
|
61
61
|
source: Type.TOptional<Type.TString>;
|
|
62
62
|
code: Type.TString;
|
|
63
63
|
message: Type.TString;
|
|
64
64
|
}>;
|
|
65
|
-
export type
|
|
66
|
-
export declare const
|
|
65
|
+
export type PoHelpDiagnostic = Static<typeof PoHelpDiagnosticSchema>;
|
|
66
|
+
export declare const PoHelpSnapshotSchema: Type.TObject<{
|
|
67
67
|
hostGeneration: Type.TString;
|
|
68
68
|
revision: Type.TInteger;
|
|
69
69
|
activation: Type.TUnion<[Type.TLiteral<"inactive">, Type.TLiteral<"activating">, Type.TLiteral<"active">, Type.TLiteral<"degraded">]>;
|
|
@@ -80,40 +80,40 @@ export declare const DoomHelpSnapshotSchema: Type.TObject<{
|
|
|
80
80
|
message: Type.TString;
|
|
81
81
|
}>>;
|
|
82
82
|
}>;
|
|
83
|
-
export type
|
|
84
|
-
export interface
|
|
85
|
-
readonly activation:
|
|
86
|
-
readonly skills: readonly
|
|
87
|
-
readonly diagnostics: readonly
|
|
83
|
+
export type PoHelpSnapshot = Static<typeof PoHelpSnapshotSchema>;
|
|
84
|
+
export interface PoHelpSnapshotDraft {
|
|
85
|
+
readonly activation: PoHelpActivation;
|
|
86
|
+
readonly skills: readonly PoHelpSkill[];
|
|
87
|
+
readonly diagnostics: readonly PoHelpDiagnostic[];
|
|
88
88
|
}
|
|
89
|
-
export interface
|
|
89
|
+
export interface PoHelpContributionHandle {
|
|
90
90
|
readonly source: string;
|
|
91
91
|
readonly generation: string;
|
|
92
92
|
dispose(): void;
|
|
93
93
|
}
|
|
94
94
|
/** Direct, session-local registrar and query surface owned by po-help. */
|
|
95
|
-
export interface
|
|
95
|
+
export interface PoHelpService {
|
|
96
96
|
readonly generation: string;
|
|
97
|
-
register(contribution:
|
|
98
|
-
listContributions(): readonly
|
|
99
|
-
subscribeContributions(listener: (contributions: readonly
|
|
100
|
-
getSnapshot():
|
|
101
|
-
publish(snapshot:
|
|
102
|
-
subscribeSnapshot(listener: (snapshot:
|
|
97
|
+
register(contribution: PoHelpContribution): PoHelpContributionHandle;
|
|
98
|
+
listContributions(): readonly PoHelpContribution[];
|
|
99
|
+
subscribeContributions(listener: (contributions: readonly PoHelpContribution[]) => void): () => void;
|
|
100
|
+
getSnapshot(): PoHelpSnapshot;
|
|
101
|
+
publish(snapshot: PoHelpSnapshotDraft): PoHelpSnapshot;
|
|
102
|
+
subscribeSnapshot(listener: (snapshot: PoHelpSnapshot) => void): () => void;
|
|
103
103
|
/** Bind the skill consumer's accepted file paths, without duplicating its inventory. */
|
|
104
104
|
bindSkillInventory(read: () => Promise<readonly string[] | undefined>): () => void;
|
|
105
105
|
/** Accepted Help skills, or undefined while the consumer is absent, discovering, or superseded. */
|
|
106
|
-
inspectSkills(): Promise<readonly
|
|
106
|
+
inspectSkills(): Promise<readonly PoHelpSkill[] | undefined>;
|
|
107
107
|
dispose(): void;
|
|
108
108
|
}
|
|
109
109
|
declare module '@deepseek-ai/cordis' {
|
|
110
110
|
interface Context {
|
|
111
|
-
'
|
|
111
|
+
'po/help': PoHelpService;
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
/** Creates the provider-owned Help service value for one Cordis session. */
|
|
115
|
-
export declare function
|
|
116
|
-
export declare function
|
|
117
|
-
export declare function
|
|
115
|
+
export declare function createPoHelpService(generation: string): PoHelpService;
|
|
116
|
+
export declare function readPoHelpService(context: Context): PoHelpService | undefined;
|
|
117
|
+
export declare function requirePoHelpService(context: Context): PoHelpService;
|
|
118
118
|
//#endregion
|
|
119
119
|
//# sourceMappingURL=help.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.mts","names":[],"sources":["../../../src/schemas/help.ts"],"mappings":";;;;qBAKa;qBACA;WACX;aAAS;;WACT;aAAe;aAAe;;;qBAEnB;qBACA;qBACA;qBACA;qBACA;qBAOA;WACX;WACA;WACA;WACA;WACA;WACA;WACA;;YAGU,
|
|
1
|
+
{"version":3,"file":"help.d.mts","names":[],"sources":["../../../src/schemas/help.ts"],"mappings":";;;;qBAKa;qBACA;WACX;aAAS;;WACT;aAAe;aAAe;;;qBAEnB;qBACA;qBACA;qBACA;qBACA;qBAOA;WACX;WACA;WACA;WACA;WACA;WACA;WACA;;YAGU,0BAA0B,iCAAiC;qBAE1D,oBAAoB;WACtB,MAAM;EAEf,YAAY,MAAM,iBAAiB;;qBAOxB,oBAAkB,KAAA;qBAMlB,uBAAqB,KAAA;qBAMrB,6BAA2B,KAAA;;;;YAO5B,wBAAwB,cAAc;qBAErC,0BAAwB,KAAA;;;;;;;;YAQzB,qBAAqB,cAAc;qBAIlC,wBAAsB,KAAA,QAAA,KAAA,sBAAA,KAAA,wBAAA,KAAA,oBAAA,KAAA;YAMvB,mBAAmB,cAAc;qBAEhC,mBAAiB,KAAA;;;;;;;YAUlB,cAAc,cAAc;qBAE3B,wBAAsB,KAAA;;;;;YAQvB,mBAAmB,cAAc;qBAEhC,sBAAoB,KAAA;;;;;;;;;;;;;;;;;YAUrB,iBAAiB,cAAc;iBAE1B;WACN,YAAY;WACZ,iBAAiB;WACjB,sBAAsB;;iBAGhB;WACN;WACA;EACT;;;iBAIe;WACN;EACT,SAAS,cAAc,qBAAqB;EAC5C,8BAA8B;EAC9B,uBAAuB,WAAW,wBAAwB;EAC1D,eAAe;EACf,QAAQ,UAAU,sBAAsB;EACxC,kBAAkB,WAAW,UAAU;;EAEvC,mBAAmB,YAAY;;EAE/B,iBAAiB,iBAAiB;EAClC;;;YAIU;IACR,WAAW;;;;wBAoDC,oBAAoB,qBAAqB;wBAmIzC,kBAAkB,SAAS,UAAU;wBAIrC,qBAAqB,SAAS,UAAU"}
|