@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
|
@@ -2,24 +2,24 @@ import { Type } from "typebox";
|
|
|
2
2
|
import { Check, Errors } from "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 = 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 = 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 = Type.Object({
|
|
50
|
+
name: PoHelpSkillNameSchema,
|
|
51
51
|
description: Type.String({
|
|
52
52
|
minLength: 1,
|
|
53
53
|
maxLength: 512
|
|
54
54
|
})
|
|
55
55
|
}, { additionalProperties: false });
|
|
56
|
-
const
|
|
57
|
-
source:
|
|
56
|
+
const PoHelpContributionSchema = Type.Object({
|
|
57
|
+
source: PoHelpSourceSchema,
|
|
58
58
|
moduleUrl: Type.String({
|
|
59
59
|
minLength: 1,
|
|
60
60
|
maxLength: MAX_MODULE_URL_LENGTH
|
|
61
61
|
}),
|
|
62
|
-
skills: Type.Array(
|
|
62
|
+
skills: Type.Array(PoHelpSkillDescriptorSchema, {
|
|
63
63
|
minItems: 1,
|
|
64
64
|
maxItems: 64
|
|
65
65
|
})
|
|
@@ -68,15 +68,15 @@ const GenerationSchema = Type.String({
|
|
|
68
68
|
minLength: 1,
|
|
69
69
|
maxLength: MAX_IDENTIFIER_LENGTH
|
|
70
70
|
});
|
|
71
|
-
const
|
|
71
|
+
const PoHelpActivationSchema = Type.Union([
|
|
72
72
|
Type.Literal("inactive"),
|
|
73
73
|
Type.Literal("activating"),
|
|
74
74
|
Type.Literal("active"),
|
|
75
75
|
Type.Literal("degraded")
|
|
76
76
|
]);
|
|
77
|
-
const
|
|
78
|
-
source:
|
|
79
|
-
name:
|
|
77
|
+
const PoHelpSkillSchema = Type.Object({
|
|
78
|
+
source: PoHelpSourceSchema,
|
|
79
|
+
name: PoHelpSkillNameSchema,
|
|
80
80
|
description: Type.String({
|
|
81
81
|
minLength: 1,
|
|
82
82
|
maxLength: 512
|
|
@@ -90,8 +90,8 @@ const DoomHelpSkillSchema = Type.Object({
|
|
|
90
90
|
maxLength: MAX_MODULE_URL_LENGTH
|
|
91
91
|
})
|
|
92
92
|
}, { additionalProperties: false });
|
|
93
|
-
const
|
|
94
|
-
source: Type.Optional(
|
|
93
|
+
const PoHelpDiagnosticSchema = Type.Object({
|
|
94
|
+
source: Type.Optional(PoHelpSourceSchema),
|
|
95
95
|
code: Type.String({
|
|
96
96
|
minLength: 1,
|
|
97
97
|
maxLength: 64,
|
|
@@ -102,12 +102,12 @@ const DoomHelpDiagnosticSchema = Type.Object({
|
|
|
102
102
|
maxLength: 512
|
|
103
103
|
})
|
|
104
104
|
}, { additionalProperties: false });
|
|
105
|
-
const
|
|
105
|
+
const PoHelpSnapshotSchema = Type.Object({
|
|
106
106
|
hostGeneration: GenerationSchema,
|
|
107
107
|
revision: Type.Integer({ minimum: 0 }),
|
|
108
|
-
activation:
|
|
109
|
-
skills: Type.Array(
|
|
110
|
-
diagnostics: Type.Array(
|
|
108
|
+
activation: PoHelpActivationSchema,
|
|
109
|
+
skills: Type.Array(PoHelpSkillSchema, { maxItems: 64 }),
|
|
110
|
+
diagnostics: Type.Array(PoHelpDiagnosticSchema, { maxItems: 64 })
|
|
111
111
|
}, { additionalProperties: false });
|
|
112
112
|
function schemaFailure(schema, value) {
|
|
113
113
|
const [first] = Errors(schema, value);
|
|
@@ -128,17 +128,17 @@ function cloneSnapshot(snapshot) {
|
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
130
|
function validateContribution(contribution) {
|
|
131
|
-
if (!Check(
|
|
131
|
+
if (!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 (!Check(GenerationSchema, generation)) throw new
|
|
140
|
+
function createPoHelpService(generation) {
|
|
141
|
+
if (!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 (!Check(
|
|
208
|
+
if (!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,15 +248,15 @@ 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
|
-
export {
|
|
260
|
+
export { PO_HELP_ERROR_CODE, PO_HELP_MAX_CONTRIBUTORS, PO_HELP_MAX_DESCRIPTION_LENGTH, PO_HELP_MAX_DIAGNOSTICS, PO_HELP_MAX_DIAGNOSTIC_LENGTH, PO_HELP_MAX_SKILLS, PO_HELP_SERVICE, PO_HELP_WHEN, PoHelpActivationSchema, PoHelpContributionSchema, PoHelpDiagnosticSchema, PoHelpError, PoHelpSkillDescriptorSchema, PoHelpSkillNameSchema, PoHelpSkillSchema, PoHelpSnapshotSchema, PoHelpSourceSchema, createPoHelpService, readPoHelpService, requirePoHelpService };
|
|
261
261
|
|
|
262
262
|
//# sourceMappingURL=help.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.mjs","names":[],"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.mjs","names":[],"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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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
//#region src/schemas/home.ts
|
|
2
|
+
const HOME_PAGE_LIMIT = 50;
|
|
3
|
+
const HOME_ENTITY_LIMIT = 1e3;
|
|
4
|
+
const HOME_KINDS = [
|
|
5
|
+
"decision",
|
|
6
|
+
"failure",
|
|
7
|
+
"blocked",
|
|
8
|
+
"running",
|
|
9
|
+
"queued",
|
|
10
|
+
"paused",
|
|
11
|
+
"completed"
|
|
12
|
+
];
|
|
13
|
+
function record(input) {
|
|
14
|
+
return input !== null && typeof input === "object" && !Array.isArray(input);
|
|
15
|
+
}
|
|
16
|
+
function text(input, limit = 256) {
|
|
17
|
+
return typeof input === "string" && input.trim().length > 0 && input.length <= limit;
|
|
18
|
+
}
|
|
19
|
+
function timestamp(input) {
|
|
20
|
+
return text(input, 64) && Number.isFinite(Date.parse(input));
|
|
21
|
+
}
|
|
22
|
+
function coverage(input) {
|
|
23
|
+
return input === "ready" || input === "partial" || input === "unavailable";
|
|
24
|
+
}
|
|
25
|
+
function parseHomeContribution(input) {
|
|
26
|
+
if (!record(input) || input.version !== 1 || !text(input.label, 80) || !text(input.source, 128)) return null;
|
|
27
|
+
if (input.destination !== void 0 && !text(input.destination, 128)) return null;
|
|
28
|
+
return {
|
|
29
|
+
version: 1,
|
|
30
|
+
label: input.label,
|
|
31
|
+
source: input.source,
|
|
32
|
+
...input.destination === void 0 ? {} : { destination: input.destination }
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function parseHomeEntity(input) {
|
|
36
|
+
if (!record(input) || !text(input.id, 512) || !text(input.sessionId) || !text(input.title, 160)) return null;
|
|
37
|
+
if (!HOME_KINDS.includes(input.kind) || !timestamp(input.updatedAt)) return null;
|
|
38
|
+
if (input.detail !== void 0 && !text(input.detail, 320)) return null;
|
|
39
|
+
if (input.relatedSessionIds !== void 0 && (!Array.isArray(input.relatedSessionIds) || input.relatedSessionIds.length > 64 || !input.relatedSessionIds.every((id) => text(id)))) return null;
|
|
40
|
+
return {
|
|
41
|
+
id: input.id,
|
|
42
|
+
kind: input.kind,
|
|
43
|
+
title: input.title,
|
|
44
|
+
updatedAt: input.updatedAt,
|
|
45
|
+
sessionId: input.sessionId,
|
|
46
|
+
...input.detail === void 0 ? {} : { detail: input.detail },
|
|
47
|
+
...input.relatedSessionIds === void 0 ? {} : { relatedSessionIds: input.relatedSessionIds }
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/** Reject a malformed source, rather than turning invalid records into a healthy count. */
|
|
51
|
+
function parseHomeProjection(input) {
|
|
52
|
+
if (!record(input) || !coverage(input.coverage) || !Array.isArray(input.entities) || input.entities.length > 1e3) return null;
|
|
53
|
+
const entities = [];
|
|
54
|
+
for (const value of input.entities) {
|
|
55
|
+
const entity = parseHomeEntity(value);
|
|
56
|
+
if (entity === null) return null;
|
|
57
|
+
entities.push(entity);
|
|
58
|
+
}
|
|
59
|
+
if (input.coverage === "unavailable" && entities.length > 0) return null;
|
|
60
|
+
return {
|
|
61
|
+
coverage: input.coverage,
|
|
62
|
+
entities
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function parseHomeCounts(input) {
|
|
66
|
+
if (!record(input)) return null;
|
|
67
|
+
const counts = {};
|
|
68
|
+
for (const kind of HOME_KINDS) {
|
|
69
|
+
const count = input[kind];
|
|
70
|
+
if (!Number.isSafeInteger(count) || count < 0) return null;
|
|
71
|
+
counts[kind] = count;
|
|
72
|
+
}
|
|
73
|
+
return counts;
|
|
74
|
+
}
|
|
75
|
+
function parseHomeSnapshot(input) {
|
|
76
|
+
if (!record(input) || input.version !== 1 || !timestamp(input.observedAt) || !Array.isArray(input.items) || input.items.length > 50 || !Array.isArray(input.sources) || input.sources.length > 5e3 || !Number.isSafeInteger(input.total) || input.total < 0 || !record(input.counts)) return null;
|
|
77
|
+
const counts = parseHomeCounts(input.counts);
|
|
78
|
+
if (counts === null || counts.decision + counts.failure + counts.blocked + counts.paused !== input.total || input.items.length > input.total) return null;
|
|
79
|
+
const items = [];
|
|
80
|
+
for (const value of input.items) {
|
|
81
|
+
const entity = parseHomeEntity(value);
|
|
82
|
+
if (entity === null || ![
|
|
83
|
+
"decision",
|
|
84
|
+
"failure",
|
|
85
|
+
"blocked",
|
|
86
|
+
"paused"
|
|
87
|
+
].includes(entity.kind) || !record(value) || !text(value.source, 128) || value.workspaceId !== void 0 && !text(value.workspaceId)) return null;
|
|
88
|
+
const { relatedSessionIds: _related, ...publicEntity } = entity;
|
|
89
|
+
items.push({
|
|
90
|
+
...publicEntity,
|
|
91
|
+
source: value.source,
|
|
92
|
+
...value.workspaceId === void 0 ? {} : { workspaceId: value.workspaceId }
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
const sources = [];
|
|
96
|
+
for (const value of input.sources) {
|
|
97
|
+
if (!record(value) || !text(value.source, 128) || !coverage(value.coverage) || value.workspaceId !== void 0 && !text(value.workspaceId)) return null;
|
|
98
|
+
const sourceCounts = value.counts === void 0 ? void 0 : parseHomeCounts(value.counts);
|
|
99
|
+
if (sourceCounts === null) return null;
|
|
100
|
+
sources.push({
|
|
101
|
+
source: value.source,
|
|
102
|
+
coverage: value.coverage,
|
|
103
|
+
...sourceCounts === void 0 ? {} : { counts: sourceCounts },
|
|
104
|
+
...value.workspaceId === void 0 ? {} : { workspaceId: value.workspaceId }
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
if (input.nextOffset !== void 0 && (!Number.isSafeInteger(input.nextOffset) || input.nextOffset <= 0 || input.nextOffset >= input.total)) return null;
|
|
108
|
+
return {
|
|
109
|
+
version: 1,
|
|
110
|
+
observedAt: input.observedAt,
|
|
111
|
+
items,
|
|
112
|
+
sources,
|
|
113
|
+
total: input.total,
|
|
114
|
+
counts,
|
|
115
|
+
...input.nextOffset === void 0 ? {} : { nextOffset: input.nextOffset }
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
//#endregion
|
|
119
|
+
exports.HOME_ENTITY_LIMIT = HOME_ENTITY_LIMIT;
|
|
120
|
+
exports.HOME_KINDS = HOME_KINDS;
|
|
121
|
+
exports.HOME_PAGE_LIMIT = HOME_PAGE_LIMIT;
|
|
122
|
+
exports.parseHomeContribution = parseHomeContribution;
|
|
123
|
+
exports.parseHomeEntity = parseHomeEntity;
|
|
124
|
+
exports.parseHomeProjection = parseHomeProjection;
|
|
125
|
+
exports.parseHomeSnapshot = parseHomeSnapshot;
|
|
126
|
+
|
|
127
|
+
//# sourceMappingURL=home.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home.cjs","names":[],"sources":["../../../src/schemas/home.ts"],"sourcesContent":["/** Compact, read-only operational summaries. Detailed state stays with its package. */\nexport type HomeKind = 'decision' | 'failure' | 'blocked' | 'running' | 'queued' | 'paused' | 'completed';\nexport type HomeCoverage = 'ready' | 'partial' | 'unavailable';\n\nexport interface HomeContribution {\n version: 1;\n label: string;\n /** The existing channel frame type owned by this package. */\n source: string;\n /** Existing session activity group, when the host supports opening it. */\n destination?: string;\n}\n\nexport interface HomeEntity {\n /** Canonical within the source and workspace, including run generation or opaque graph identity. */\n id: string;\n kind: HomeKind;\n title: string;\n detail?: string;\n updatedAt: string;\n sessionId: string;\n /** Every additional session whose information this entity contains. Checked before counting. */\n relatedSessionIds?: readonly string[];\n}\n\nexport interface HomeProjection {\n coverage: HomeCoverage;\n entities: readonly HomeEntity[];\n}\n\nexport interface HomeItem extends Omit<HomeEntity, 'relatedSessionIds'> {\n source: string;\n workspaceId?: string;\n}\n\nexport interface HomeSourceStatus {\n source: string;\n workspaceId?: string;\n coverage: HomeCoverage;\n counts?: Record<HomeKind, number>;\n}\n\nexport interface HomeRequest {\n offset?: number;\n limit?: number;\n source?: string;\n workspaceId?: string;\n}\n\nexport interface HomeSnapshot {\n version: 1;\n observedAt: string;\n sources: HomeSourceStatus[];\n /** Attention rows only. Working and finished entities are represented by counts. */\n items: HomeItem[];\n total: number;\n counts: Record<HomeKind, number>;\n nextOffset?: number;\n}\n\nexport const HOME_PAGE_LIMIT = 50;\nexport const HOME_ENTITY_LIMIT = 1_000;\nexport const HOME_KINDS: readonly HomeKind[] = [\n 'decision',\n 'failure',\n 'blocked',\n 'running',\n 'queued',\n 'paused',\n 'completed',\n];\n\nfunction record(input: unknown): input is Record<string, unknown> {\n return input !== null && typeof input === 'object' && !Array.isArray(input);\n}\n\nfunction text(input: unknown, limit = 256): input is string {\n return typeof input === 'string' && input.trim().length > 0 && input.length <= limit;\n}\n\nfunction timestamp(input: unknown): input is string {\n return text(input, 64) && Number.isFinite(Date.parse(input));\n}\n\nfunction coverage(input: unknown): input is HomeCoverage {\n return input === 'ready' || input === 'partial' || input === 'unavailable';\n}\n\nexport function parseHomeContribution(input: unknown): HomeContribution | null {\n if (!record(input) || input.version !== 1 || !text(input.label, 80) || !text(input.source, 128)) return null;\n if (input.destination !== undefined && !text(input.destination, 128)) return null;\n return {\n version: 1,\n label: input.label,\n source: input.source,\n ...(input.destination === undefined ? {} : { destination: input.destination }),\n };\n}\n\nexport function parseHomeEntity(input: unknown): HomeEntity | null {\n if (!record(input) || !text(input.id, 512) || !text(input.sessionId) || !text(input.title, 160)) return null;\n if (!HOME_KINDS.includes(input.kind as HomeKind) || !timestamp(input.updatedAt)) return null;\n if (input.detail !== undefined && !text(input.detail, 320)) return null;\n if (\n input.relatedSessionIds !== undefined &&\n (!Array.isArray(input.relatedSessionIds) ||\n input.relatedSessionIds.length > 64 ||\n !input.relatedSessionIds.every((id) => text(id)))\n )\n return null;\n return {\n id: input.id,\n kind: input.kind as HomeKind,\n title: input.title,\n updatedAt: input.updatedAt,\n sessionId: input.sessionId,\n ...(input.detail === undefined ? {} : { detail: input.detail }),\n ...(input.relatedSessionIds === undefined ? {} : { relatedSessionIds: input.relatedSessionIds as string[] }),\n };\n}\n\n/** Reject a malformed source, rather than turning invalid records into a healthy count. */\nexport function parseHomeProjection(input: unknown): HomeProjection | null {\n if (\n !record(input) ||\n !coverage(input.coverage) ||\n !Array.isArray(input.entities) ||\n input.entities.length > HOME_ENTITY_LIMIT\n )\n return null;\n const entities: HomeEntity[] = [];\n for (const value of input.entities) {\n const entity = parseHomeEntity(value);\n if (entity === null) return null;\n entities.push(entity);\n }\n if (input.coverage === 'unavailable' && entities.length > 0) return null;\n return { coverage: input.coverage, entities };\n}\n\nfunction parseHomeCounts(input: unknown): Record<HomeKind, number> | null {\n if (!record(input)) return null;\n const counts = {} as Record<HomeKind, number>;\n for (const kind of HOME_KINDS) {\n const count = input[kind];\n if (!Number.isSafeInteger(count) || (count as number) < 0) return null;\n counts[kind] = count as number;\n }\n return counts;\n}\n\nexport function parseHomeSnapshot(input: unknown): HomeSnapshot | null {\n if (\n !record(input) ||\n input.version !== 1 ||\n !timestamp(input.observedAt) ||\n !Array.isArray(input.items) ||\n input.items.length > HOME_PAGE_LIMIT ||\n !Array.isArray(input.sources) ||\n input.sources.length > 5_000 ||\n !Number.isSafeInteger(input.total) ||\n (input.total as number) < 0 ||\n !record(input.counts)\n )\n return null;\n const counts = parseHomeCounts(input.counts);\n if (\n counts === null ||\n counts.decision + counts.failure + counts.blocked + counts.paused !== input.total ||\n input.items.length > input.total\n )\n return null;\n const items: HomeItem[] = [];\n for (const value of input.items) {\n const entity = parseHomeEntity(value);\n if (\n entity === null ||\n !['decision', 'failure', 'blocked', 'paused'].includes(entity.kind) ||\n !record(value) ||\n !text(value.source, 128) ||\n (value.workspaceId !== undefined && !text(value.workspaceId))\n )\n return null;\n const { relatedSessionIds: _related, ...publicEntity } = entity;\n items.push({\n ...publicEntity,\n source: value.source,\n ...(value.workspaceId === undefined ? {} : { workspaceId: value.workspaceId }),\n });\n }\n const sources: HomeSourceStatus[] = [];\n for (const value of input.sources) {\n if (\n !record(value) ||\n !text(value.source, 128) ||\n !coverage(value.coverage) ||\n (value.workspaceId !== undefined && !text(value.workspaceId))\n )\n return null;\n const sourceCounts = value.counts === undefined ? undefined : parseHomeCounts(value.counts);\n if (sourceCounts === null) return null;\n sources.push({\n source: value.source,\n coverage: value.coverage,\n ...(sourceCounts === undefined ? {} : { counts: sourceCounts }),\n ...(value.workspaceId === undefined ? {} : { workspaceId: value.workspaceId }),\n });\n }\n if (\n input.nextOffset !== undefined &&\n (!Number.isSafeInteger(input.nextOffset) ||\n (input.nextOffset as number) <= 0 ||\n (input.nextOffset as number) >= (input.total as number))\n )\n return null;\n return {\n version: 1,\n observedAt: input.observedAt,\n items,\n sources,\n total: input.total as number,\n counts,\n ...(input.nextOffset === undefined ? {} : { nextOffset: input.nextOffset as number }),\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
//#region src/schemas/home.d.ts
|
|
2
|
+
/** Compact, read-only operational summaries. Detailed state stays with its package. */
|
|
3
|
+
export type HomeKind = 'decision' | 'failure' | 'blocked' | 'running' | 'queued' | 'paused' | 'completed';
|
|
4
|
+
export type HomeCoverage = 'ready' | 'partial' | 'unavailable';
|
|
5
|
+
export interface HomeContribution {
|
|
6
|
+
version: 1;
|
|
7
|
+
label: string;
|
|
8
|
+
/** The existing channel frame type owned by this package. */
|
|
9
|
+
source: string;
|
|
10
|
+
/** Existing session activity group, when the host supports opening it. */
|
|
11
|
+
destination?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface HomeEntity {
|
|
14
|
+
/** Canonical within the source and workspace, including run generation or opaque graph identity. */
|
|
15
|
+
id: string;
|
|
16
|
+
kind: HomeKind;
|
|
17
|
+
title: string;
|
|
18
|
+
detail?: string;
|
|
19
|
+
updatedAt: string;
|
|
20
|
+
sessionId: string;
|
|
21
|
+
/** Every additional session whose information this entity contains. Checked before counting. */
|
|
22
|
+
relatedSessionIds?: readonly string[];
|
|
23
|
+
}
|
|
24
|
+
export interface HomeProjection {
|
|
25
|
+
coverage: HomeCoverage;
|
|
26
|
+
entities: readonly HomeEntity[];
|
|
27
|
+
}
|
|
28
|
+
export interface HomeItem extends Omit<HomeEntity, 'relatedSessionIds'> {
|
|
29
|
+
source: string;
|
|
30
|
+
workspaceId?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface HomeSourceStatus {
|
|
33
|
+
source: string;
|
|
34
|
+
workspaceId?: string;
|
|
35
|
+
coverage: HomeCoverage;
|
|
36
|
+
counts?: Record<HomeKind, number>;
|
|
37
|
+
}
|
|
38
|
+
export interface HomeRequest {
|
|
39
|
+
offset?: number;
|
|
40
|
+
limit?: number;
|
|
41
|
+
source?: string;
|
|
42
|
+
workspaceId?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface HomeSnapshot {
|
|
45
|
+
version: 1;
|
|
46
|
+
observedAt: string;
|
|
47
|
+
sources: HomeSourceStatus[];
|
|
48
|
+
/** Attention rows only. Working and finished entities are represented by counts. */
|
|
49
|
+
items: HomeItem[];
|
|
50
|
+
total: number;
|
|
51
|
+
counts: Record<HomeKind, number>;
|
|
52
|
+
nextOffset?: number;
|
|
53
|
+
}
|
|
54
|
+
export declare const HOME_PAGE_LIMIT = 50;
|
|
55
|
+
export declare const HOME_ENTITY_LIMIT = 1000;
|
|
56
|
+
export declare const HOME_KINDS: readonly HomeKind[];
|
|
57
|
+
export declare function parseHomeContribution(input: unknown): HomeContribution | null;
|
|
58
|
+
export declare function parseHomeEntity(input: unknown): HomeEntity | null;
|
|
59
|
+
/** Reject a malformed source, rather than turning invalid records into a healthy count. */
|
|
60
|
+
export declare function parseHomeProjection(input: unknown): HomeProjection | null;
|
|
61
|
+
export declare function parseHomeSnapshot(input: unknown): HomeSnapshot | null;
|
|
62
|
+
//#endregion
|
|
63
|
+
//# sourceMappingURL=home.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home.d.mts","names":[],"sources":["../../../src/schemas/home.ts"],"mappings":";;YACY;YACA;iBAEK;EACf;EACA;;EAEA;;EAEA;;iBAGe;;EAEf;EACA,MAAM;EACN;EACA;EACA;EACA;;EAEA;;iBAGe;EACf,UAAU;EACV,mBAAmB;;iBAGJ,iBAAiB,KAAK;EACrC;EACA;;iBAGe;EACf;EACA;EACA,UAAU;EACV,SAAS,OAAO;;iBAGD;EACf;EACA;EACA;EACA;;iBAGe;EACf;EACA;EACA,SAAS;;EAET,OAAO;EACP;EACA,QAAQ,OAAO;EACf;;qBAGW;qBACA;qBACA,qBAAqB;wBA0BlB,sBAAsB,iBAAiB;wBAWvC,gBAAgB,iBAAiB;;wBAuBjC,oBAAoB,iBAAiB;wBA6BrC,kBAAkB,iBAAiB"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
//#region src/schemas/home.ts
|
|
2
|
+
const HOME_PAGE_LIMIT = 50;
|
|
3
|
+
const HOME_ENTITY_LIMIT = 1e3;
|
|
4
|
+
const HOME_KINDS = [
|
|
5
|
+
"decision",
|
|
6
|
+
"failure",
|
|
7
|
+
"blocked",
|
|
8
|
+
"running",
|
|
9
|
+
"queued",
|
|
10
|
+
"paused",
|
|
11
|
+
"completed"
|
|
12
|
+
];
|
|
13
|
+
function record(input) {
|
|
14
|
+
return input !== null && typeof input === "object" && !Array.isArray(input);
|
|
15
|
+
}
|
|
16
|
+
function text(input, limit = 256) {
|
|
17
|
+
return typeof input === "string" && input.trim().length > 0 && input.length <= limit;
|
|
18
|
+
}
|
|
19
|
+
function timestamp(input) {
|
|
20
|
+
return text(input, 64) && Number.isFinite(Date.parse(input));
|
|
21
|
+
}
|
|
22
|
+
function coverage(input) {
|
|
23
|
+
return input === "ready" || input === "partial" || input === "unavailable";
|
|
24
|
+
}
|
|
25
|
+
function parseHomeContribution(input) {
|
|
26
|
+
if (!record(input) || input.version !== 1 || !text(input.label, 80) || !text(input.source, 128)) return null;
|
|
27
|
+
if (input.destination !== void 0 && !text(input.destination, 128)) return null;
|
|
28
|
+
return {
|
|
29
|
+
version: 1,
|
|
30
|
+
label: input.label,
|
|
31
|
+
source: input.source,
|
|
32
|
+
...input.destination === void 0 ? {} : { destination: input.destination }
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function parseHomeEntity(input) {
|
|
36
|
+
if (!record(input) || !text(input.id, 512) || !text(input.sessionId) || !text(input.title, 160)) return null;
|
|
37
|
+
if (!HOME_KINDS.includes(input.kind) || !timestamp(input.updatedAt)) return null;
|
|
38
|
+
if (input.detail !== void 0 && !text(input.detail, 320)) return null;
|
|
39
|
+
if (input.relatedSessionIds !== void 0 && (!Array.isArray(input.relatedSessionIds) || input.relatedSessionIds.length > 64 || !input.relatedSessionIds.every((id) => text(id)))) return null;
|
|
40
|
+
return {
|
|
41
|
+
id: input.id,
|
|
42
|
+
kind: input.kind,
|
|
43
|
+
title: input.title,
|
|
44
|
+
updatedAt: input.updatedAt,
|
|
45
|
+
sessionId: input.sessionId,
|
|
46
|
+
...input.detail === void 0 ? {} : { detail: input.detail },
|
|
47
|
+
...input.relatedSessionIds === void 0 ? {} : { relatedSessionIds: input.relatedSessionIds }
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/** Reject a malformed source, rather than turning invalid records into a healthy count. */
|
|
51
|
+
function parseHomeProjection(input) {
|
|
52
|
+
if (!record(input) || !coverage(input.coverage) || !Array.isArray(input.entities) || input.entities.length > 1e3) return null;
|
|
53
|
+
const entities = [];
|
|
54
|
+
for (const value of input.entities) {
|
|
55
|
+
const entity = parseHomeEntity(value);
|
|
56
|
+
if (entity === null) return null;
|
|
57
|
+
entities.push(entity);
|
|
58
|
+
}
|
|
59
|
+
if (input.coverage === "unavailable" && entities.length > 0) return null;
|
|
60
|
+
return {
|
|
61
|
+
coverage: input.coverage,
|
|
62
|
+
entities
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function parseHomeCounts(input) {
|
|
66
|
+
if (!record(input)) return null;
|
|
67
|
+
const counts = {};
|
|
68
|
+
for (const kind of HOME_KINDS) {
|
|
69
|
+
const count = input[kind];
|
|
70
|
+
if (!Number.isSafeInteger(count) || count < 0) return null;
|
|
71
|
+
counts[kind] = count;
|
|
72
|
+
}
|
|
73
|
+
return counts;
|
|
74
|
+
}
|
|
75
|
+
function parseHomeSnapshot(input) {
|
|
76
|
+
if (!record(input) || input.version !== 1 || !timestamp(input.observedAt) || !Array.isArray(input.items) || input.items.length > 50 || !Array.isArray(input.sources) || input.sources.length > 5e3 || !Number.isSafeInteger(input.total) || input.total < 0 || !record(input.counts)) return null;
|
|
77
|
+
const counts = parseHomeCounts(input.counts);
|
|
78
|
+
if (counts === null || counts.decision + counts.failure + counts.blocked + counts.paused !== input.total || input.items.length > input.total) return null;
|
|
79
|
+
const items = [];
|
|
80
|
+
for (const value of input.items) {
|
|
81
|
+
const entity = parseHomeEntity(value);
|
|
82
|
+
if (entity === null || ![
|
|
83
|
+
"decision",
|
|
84
|
+
"failure",
|
|
85
|
+
"blocked",
|
|
86
|
+
"paused"
|
|
87
|
+
].includes(entity.kind) || !record(value) || !text(value.source, 128) || value.workspaceId !== void 0 && !text(value.workspaceId)) return null;
|
|
88
|
+
const { relatedSessionIds: _related, ...publicEntity } = entity;
|
|
89
|
+
items.push({
|
|
90
|
+
...publicEntity,
|
|
91
|
+
source: value.source,
|
|
92
|
+
...value.workspaceId === void 0 ? {} : { workspaceId: value.workspaceId }
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
const sources = [];
|
|
96
|
+
for (const value of input.sources) {
|
|
97
|
+
if (!record(value) || !text(value.source, 128) || !coverage(value.coverage) || value.workspaceId !== void 0 && !text(value.workspaceId)) return null;
|
|
98
|
+
const sourceCounts = value.counts === void 0 ? void 0 : parseHomeCounts(value.counts);
|
|
99
|
+
if (sourceCounts === null) return null;
|
|
100
|
+
sources.push({
|
|
101
|
+
source: value.source,
|
|
102
|
+
coverage: value.coverage,
|
|
103
|
+
...sourceCounts === void 0 ? {} : { counts: sourceCounts },
|
|
104
|
+
...value.workspaceId === void 0 ? {} : { workspaceId: value.workspaceId }
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
if (input.nextOffset !== void 0 && (!Number.isSafeInteger(input.nextOffset) || input.nextOffset <= 0 || input.nextOffset >= input.total)) return null;
|
|
108
|
+
return {
|
|
109
|
+
version: 1,
|
|
110
|
+
observedAt: input.observedAt,
|
|
111
|
+
items,
|
|
112
|
+
sources,
|
|
113
|
+
total: input.total,
|
|
114
|
+
counts,
|
|
115
|
+
...input.nextOffset === void 0 ? {} : { nextOffset: input.nextOffset }
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
//#endregion
|
|
119
|
+
export { HOME_ENTITY_LIMIT, HOME_KINDS, HOME_PAGE_LIMIT, parseHomeContribution, parseHomeEntity, parseHomeProjection, parseHomeSnapshot };
|
|
120
|
+
|
|
121
|
+
//# sourceMappingURL=home.mjs.map
|