@agimon-ai/po-core 0.0.0-alpha.2 → 0.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +149 -21
- package/NOTICE +41 -0
- package/dist/agentModel.cjs +1 -1
- package/dist/agentModel.d.mts +2 -2
- package/dist/agentModel.mjs +1 -2
- package/dist/apiContracts.cjs +623 -802
- package/dist/apiContracts.cjs.map +1 -1
- package/dist/apiContracts.d.mts +277 -615
- package/dist/apiContracts.d.mts.map +1 -1
- package/dist/apiContracts.mjs +617 -794
- package/dist/apiContracts.mjs.map +1 -1
- package/dist/askUser.cjs +2 -2
- package/dist/askUser.d.mts +2 -2
- package/dist/askUser.mjs +1 -2
- package/dist/authorTools.mjs +1 -2
- package/dist/backgroundWork.cjs +3 -3
- package/dist/backgroundWork.d.mts +2 -2
- package/dist/backgroundWork.mjs +1 -2
- package/dist/bundleAssetPolicy.mjs +1 -2
- package/dist/chatgptAuth.cjs +3 -2
- package/dist/chatgptAuth.d.mts +3 -2
- package/dist/chatgptAuth.mjs +2 -1
- package/dist/childProcess.cjs +1 -1
- package/dist/childProcess.d.mts +2 -2
- package/dist/childProcess.mjs +1 -2
- package/dist/childSession.cjs +11 -6
- package/dist/childSession.d.mts +3 -3
- package/dist/childSession.mjs +3 -3
- package/dist/cockpitContainer.mjs +1 -2
- package/dist/config.cjs +1 -1
- package/dist/config.d.mts +3 -3
- package/dist/config.mjs +1 -2
- package/dist/contextApi.cjs +1 -0
- package/dist/contextApi.d.mts +2 -2
- package/dist/contextApi.mjs +2 -2
- package/dist/contextContributions.cjs +4 -4
- package/dist/contextContributions.d.mts +3 -3
- package/dist/contextContributions.mjs +3 -3
- package/dist/contextDetailStore.cjs +7 -5
- package/dist/contextDetailStore.cjs.map +1 -1
- package/dist/contextDetailStore.d.mts +2 -1
- package/dist/contextDetailStore.d.mts.map +1 -1
- package/dist/contextDetailStore.mjs +6 -4
- package/dist/contextDetailStore.mjs.map +1 -1
- package/dist/contextProjection.cjs +7 -2
- package/dist/contextProjection.cjs.map +1 -1
- package/dist/contextProjection.d.mts +4 -1
- package/dist/contextProjection.d.mts.map +1 -1
- package/dist/contextProjection.mjs +5 -2
- package/dist/contextProjection.mjs.map +1 -1
- package/dist/cordisHost.cjs +11 -11
- package/dist/cordisHost.d.mts +2 -2
- package/dist/cordisHost.mjs +1 -2
- package/dist/delegation.cjs +8 -8
- package/dist/delegation.d.mts +2 -2
- package/dist/delegation.mjs +1 -2
- package/dist/executionBudget.cjs +4 -3
- package/dist/executionBudget.cjs.map +1 -1
- package/dist/executionBudget.d.mts +2 -2
- package/dist/executionBudget.d.mts.map +1 -1
- package/dist/executionBudget.mjs +4 -3
- package/dist/executionBudget.mjs.map +1 -1
- package/dist/extensionFile.cjs +5 -0
- package/dist/extensionFile.d.mts +4 -2
- package/dist/extensionFile.mjs +4 -2
- package/dist/footer.d.mts +2 -2
- package/dist/footer.mjs +1 -2
- package/dist/headless.cjs +14 -14
- package/dist/headless.d.mts +2 -2
- package/dist/headless.mjs +1 -2
- package/dist/headlessHub.cjs +308 -109
- package/dist/headlessHub.cjs.map +1 -1
- package/dist/headlessHub.d.mts +71 -36
- package/dist/headlessHub.d.mts.map +1 -1
- package/dist/headlessHub.mjs +309 -110
- package/dist/headlessHub.mjs.map +1 -1
- package/dist/headlessProtocol.cjs +327 -0
- package/dist/headlessProtocol.cjs.map +1 -0
- package/dist/headlessProtocol.d.mts +30 -0
- package/dist/headlessProtocol.d.mts.map +1 -0
- package/dist/headlessProtocol.mjs +326 -0
- package/dist/headlessProtocol.mjs.map +1 -0
- package/dist/headlessServer.cjs +166 -151
- package/dist/headlessServer.cjs.map +1 -1
- package/dist/headlessServer.d.mts +13 -5
- package/dist/headlessServer.d.mts.map +1 -1
- package/dist/headlessServer.mjs +166 -151
- package/dist/headlessServer.mjs.map +1 -1
- package/dist/headlessSessionHost.d.mts +58 -21
- package/dist/headlessSessionHost.d.mts.map +1 -1
- package/dist/help.cjs +20 -20
- package/dist/help.d.mts +2 -2
- package/dist/help.mjs +2 -2
- package/dist/history.cjs +16 -20
- package/dist/history.d.mts +9 -7
- package/dist/history.mjs +6 -7
- package/dist/historyOwnership.cjs.map +1 -1
- package/dist/historyOwnership.d.mts +1 -1
- package/dist/historyOwnership.mjs.map +1 -1
- package/dist/hubChannel.cjs +9 -0
- package/dist/hubChannel.d.mts +3 -2
- package/dist/hubChannel.mjs +3 -2
- package/dist/index.cjs +26 -28
- package/dist/index.d.mts +6 -6
- package/dist/index.mjs +6 -6
- package/dist/interop/chord.mjs +1 -0
- package/dist/interop/chordContext.mjs +1 -0
- package/dist/json.cjs +11 -5
- package/dist/json.d.mts +4 -2
- package/dist/json.mjs +4 -2
- package/dist/kernel.cjs +1 -1
- package/dist/kernel.d.mts +3 -3
- package/dist/kernel.mjs +1 -2
- package/dist/leader.d.mts +2 -2
- package/dist/leader.mjs +1 -2
- package/dist/logSinkTelemetry.mjs +1 -2
- package/dist/machineApi.cjs +80 -74
- package/dist/machineApi.cjs.map +1 -1
- package/dist/machineApi.d.mts +5 -2
- package/dist/machineApi.d.mts.map +1 -1
- package/dist/machineApi.mjs +78 -71
- package/dist/machineApi.mjs.map +1 -1
- package/dist/main.cjs +2 -1
- package/dist/main.d.mts +2 -1
- package/dist/main.mjs +2 -1
- package/dist/mcpFacet.d.mts +3 -3
- package/dist/mcpProjection.cjs +13 -13
- package/dist/mcpProjection.d.mts +2 -2
- package/dist/mcpProjection.mjs +1 -2
- package/dist/mcpSchemaCost.cjs +4 -4
- package/dist/mcpSchemaCost.cjs.map +1 -1
- package/dist/mcpSchemaCost.d.mts +2 -2
- package/dist/mcpSchemaCost.mjs +4 -4
- package/dist/mcpSchemaCost.mjs.map +1 -1
- package/dist/mcpSession.cjs +7 -7
- package/dist/mcpSession.d.mts +2 -2
- package/dist/mcpSession.mjs +1 -2
- package/dist/mcpStatus.cjs +2 -2
- package/dist/mcpStatus.d.mts +2 -2
- package/dist/mcpStatus.mjs +1 -2
- package/dist/mcpToolResolver.cjs +3 -3
- package/dist/mcpToolResolver.d.mts +2 -2
- package/dist/mcpToolResolver.mjs +1 -2
- package/dist/mcpWidget.d.mts +2 -2
- package/dist/moduleResolution.cjs +43 -8
- package/dist/moduleResolution.cjs.map +1 -1
- package/dist/moduleResolution.d.mts +10 -1
- package/dist/moduleResolution.d.mts.map +1 -1
- package/dist/moduleResolution.mjs +40 -7
- package/dist/moduleResolution.mjs.map +1 -1
- package/dist/narration.cjs +3 -3
- package/dist/narration.d.mts +2 -2
- package/dist/narration.mjs +1 -2
- package/dist/native.cjs +9 -0
- package/dist/native.d.mts +4 -3
- package/dist/native.mjs +3 -2
- package/dist/nodePlatform.cjs +77 -0
- package/dist/nodePlatform.cjs.map +1 -0
- package/dist/nodePlatform.d.mts +17 -0
- package/dist/nodePlatform.d.mts.map +1 -0
- package/dist/nodePlatform.mjs +72 -0
- package/dist/nodePlatform.mjs.map +1 -0
- package/dist/notification.cjs +15 -15
- package/dist/notification.d.mts +2 -2
- package/dist/notification.mjs +1 -2
- package/dist/packageApi.cjs +11 -11
- package/dist/packageApi.d.mts +2 -2
- package/dist/packageApi.mjs +2 -2
- package/dist/packageApiServer.cjs +45 -27
- package/dist/packageApiServer.cjs.map +1 -1
- package/dist/packageApiServer.d.mts +36 -26
- package/dist/packageApiServer.d.mts.map +1 -1
- package/dist/packageApiServer.mjs +44 -26
- package/dist/packageApiServer.mjs.map +1 -1
- package/dist/piSettings.cjs +41 -20
- package/dist/piSettings.d.mts +4 -2
- package/dist/piSettings.mjs +4 -2
- package/dist/platform.cjs +62 -0
- package/dist/platform.d.mts +10 -0
- package/dist/platform.mjs +10 -0
- package/dist/pluginProtocol.cjs +7 -8
- package/dist/pluginProtocol.d.mts +2 -2
- package/dist/pluginProtocol.mjs +1 -2
- package/dist/poPackage.cjs +12 -0
- package/dist/poPackage.d.mts +3 -0
- package/dist/poPackage.mjs +3 -0
- package/dist/profileIdentity.cjs +1 -1
- package/dist/profileIdentity.d.mts +2 -2
- package/dist/profileIdentity.mjs +1 -2
- package/dist/protocol.cjs +3 -3
- package/dist/protocol.d.mts +2 -2
- package/dist/protocol.mjs +1 -2
- package/dist/readiness.cjs +6 -6
- package/dist/readiness.d.mts +2 -2
- package/dist/readiness.mjs +1 -2
- package/dist/remoteApi.cjs.map +1 -1
- package/dist/remoteApi.d.mts +2 -2
- package/dist/remoteApi.mjs.map +1 -1
- package/dist/remoteRuntime.cjs +42 -65
- package/dist/remoteRuntime.cjs.map +1 -1
- package/dist/remoteRuntime.d.mts +3 -2
- package/dist/remoteRuntime.d.mts.map +1 -1
- package/dist/remoteRuntime.mjs +41 -62
- package/dist/remoteRuntime.mjs.map +1 -1
- package/dist/runtimeConfig.cjs +4 -4
- package/dist/runtimeConfig.cjs.map +1 -1
- package/dist/runtimeConfig.d.mts +10 -9
- package/dist/runtimeConfig.d.mts.map +1 -1
- package/dist/runtimeConfig.mjs +4 -4
- package/dist/runtimeConfig.mjs.map +1 -1
- package/dist/runtimeContextApi.cjs +10 -3
- package/dist/runtimeContextApi.cjs.map +1 -1
- package/dist/runtimeContextApi.d.mts +3 -3
- package/dist/runtimeContextApi.d.mts.map +1 -1
- package/dist/runtimeContextApi.mjs +10 -3
- package/dist/runtimeContextApi.mjs.map +1 -1
- package/dist/runtimeCordisHost.cjs +46 -46
- package/dist/runtimeCordisHost.cjs.map +1 -1
- package/dist/runtimeCordisHost.d.mts +29 -28
- package/dist/runtimeCordisHost.d.mts.map +1 -1
- package/dist/runtimeCordisHost.mjs +42 -42
- package/dist/runtimeCordisHost.mjs.map +1 -1
- package/dist/runtimeIdentity.cjs +6 -9
- package/dist/runtimeIdentity.cjs.map +1 -1
- package/dist/runtimeIdentity.d.mts +5 -1
- package/dist/runtimeIdentity.d.mts.map +1 -1
- package/dist/runtimeIdentity.mjs +5 -8
- package/dist/runtimeIdentity.mjs.map +1 -1
- package/dist/runtimeJson.cjs +10 -45
- package/dist/runtimeJson.d.mts +3 -22
- package/dist/runtimeJson.mjs +3 -39
- package/dist/runtimeLogSinkTelemetry.cjs +19 -19
- package/dist/runtimeLogSinkTelemetry.cjs.map +1 -1
- package/dist/runtimeLogSinkTelemetry.d.mts +19 -19
- package/dist/runtimeLogSinkTelemetry.mjs +19 -19
- package/dist/runtimeLogSinkTelemetry.mjs.map +1 -1
- package/dist/runtimePackages.cjs +7 -2
- package/dist/runtimePackages.cjs.map +1 -1
- package/dist/runtimePackages.d.mts +4 -1
- package/dist/runtimePackages.d.mts.map +1 -1
- package/dist/runtimePackages.mjs +7 -2
- package/dist/runtimePackages.mjs.map +1 -1
- package/dist/runtimePiSettings.cjs +40 -263
- package/dist/runtimePiSettings.d.mts +3 -72
- package/dist/runtimePiSettings.mjs +3 -241
- package/dist/runtimeProtocol.cjs +19 -19
- package/dist/runtimeProtocol.cjs.map +1 -1
- package/dist/runtimeProtocol.d.mts +7 -7
- package/dist/runtimeProtocol.d.mts.map +1 -1
- package/dist/runtimeProtocol.mjs +17 -17
- package/dist/runtimeProtocol.mjs.map +1 -1
- package/dist/runtimeTransition.cjs +9 -9
- package/dist/runtimeTransition.cjs.map +1 -1
- package/dist/runtimeTransition.d.mts +10 -10
- package/dist/runtimeTransition.d.mts.map +1 -1
- package/dist/runtimeTransition.mjs +7 -7
- package/dist/runtimeTransition.mjs.map +1 -1
- package/dist/sandboxHarness.mjs +1 -2
- package/dist/server.cjs +3 -7
- package/dist/server.d.mts +6 -6
- package/dist/server.mjs +3 -4
- package/dist/serverPlugin.cjs +39 -0
- package/dist/serverPlugin.d.mts +12 -0
- package/dist/serverPlugin.mjs +11 -0
- package/dist/serverTelemetry.cjs +1 -1
- package/dist/serverTelemetry.cjs.map +1 -1
- package/dist/serverTelemetry.d.mts +2 -2
- package/dist/serverTelemetry.mjs +2 -2
- package/dist/serverTelemetry.mjs.map +1 -1
- package/dist/sessionFilesApi.cjs +41 -37
- package/dist/sessionFilesApi.cjs.map +1 -1
- package/dist/sessionFilesApi.d.mts +6 -3
- package/dist/sessionFilesApi.d.mts.map +1 -1
- package/dist/sessionFilesApi.mjs +41 -36
- package/dist/sessionFilesApi.mjs.map +1 -1
- package/dist/sessionProtocol.cjs +31 -6
- package/dist/sessionProtocol.d.mts +8 -3
- package/dist/sessionProtocol.mjs +8 -2
- package/dist/skills.cjs +5 -5
- package/dist/skills.d.mts +2 -2
- package/dist/skills.mjs +1 -2
- package/dist/sqliteSessionStorage.cjs +28 -50
- package/dist/sqliteSessionStorage.cjs.map +1 -1
- package/dist/sqliteSessionStorage.d.mts +13 -20
- package/dist/sqliteSessionStorage.d.mts.map +1 -1
- package/dist/sqliteSessionStorage.mjs +25 -48
- package/dist/sqliteSessionStorage.mjs.map +1 -1
- package/dist/src/constants/agentSettled.cjs +7 -0
- package/dist/src/constants/agentSettled.cjs.map +1 -0
- package/dist/src/constants/agentSettled.mjs +7 -0
- package/dist/src/constants/agentSettled.mjs.map +1 -0
- package/dist/src/constants/contextApi.cjs +3 -1
- package/dist/src/constants/contextApi.cjs.map +1 -1
- package/dist/src/constants/contextApi.d.mts +2 -1
- package/dist/src/constants/contextApi.d.mts.map +1 -1
- package/dist/src/constants/contextApi.mjs +3 -2
- package/dist/src/constants/contextApi.mjs.map +1 -1
- package/dist/src/constants/voiceTools.cjs +6 -6
- package/dist/src/constants/voiceTools.cjs.map +1 -1
- package/dist/src/constants/voiceTools.d.mts +3 -3
- package/dist/src/constants/voiceTools.mjs +4 -4
- package/dist/src/constants/voiceTools.mjs.map +1 -1
- package/dist/src/extensions/extensionFile.cjs +22 -5
- package/dist/src/extensions/extensionFile.cjs.map +1 -1
- package/dist/src/extensions/extensionFile.d.mts +17 -4
- package/dist/src/extensions/extensionFile.d.mts.map +1 -1
- package/dist/src/extensions/extensionFile.mjs +22 -6
- package/dist/src/extensions/extensionFile.mjs.map +1 -1
- package/dist/src/extensions/serverPlugin.cjs +231 -92
- package/dist/src/extensions/serverPlugin.cjs.map +1 -1
- package/dist/src/extensions/serverPlugin.d.mts +2 -2
- package/dist/src/extensions/serverPlugin.d.mts.map +1 -1
- package/dist/src/extensions/serverPlugin.mjs +232 -93
- package/dist/src/extensions/serverPlugin.mjs.map +1 -1
- package/dist/src/pi/piSessionRuntime.cjs +349 -142
- package/dist/src/pi/piSessionRuntime.cjs.map +1 -1
- package/dist/src/pi/piSessionRuntime.d.mts +18 -17
- package/dist/src/pi/piSessionRuntime.d.mts.map +1 -1
- package/dist/src/pi/piSessionRuntime.mjs +342 -135
- package/dist/src/pi/piSessionRuntime.mjs.map +1 -1
- package/dist/src/schemas/agentModel.cjs +2 -2
- package/dist/src/schemas/agentModel.cjs.map +1 -1
- package/dist/src/schemas/agentModel.d.mts +1 -1
- package/dist/src/schemas/agentModel.mjs +2 -2
- package/dist/src/schemas/agentModel.mjs.map +1 -1
- package/dist/src/schemas/apiContracts.d.mts +2 -2
- package/dist/src/schemas/apiContracts.d.mts.map +1 -1
- package/dist/src/schemas/askUser.cjs +4 -4
- package/dist/src/schemas/askUser.cjs.map +1 -1
- package/dist/src/schemas/askUser.d.mts +4 -4
- package/dist/src/schemas/askUser.d.mts.map +1 -1
- package/dist/src/schemas/askUser.mjs +3 -3
- package/dist/src/schemas/askUser.mjs.map +1 -1
- package/dist/src/schemas/backgroundWork.cjs +10 -10
- package/dist/src/schemas/backgroundWork.cjs.map +1 -1
- package/dist/src/schemas/backgroundWork.d.mts +9 -9
- package/dist/src/schemas/backgroundWork.d.mts.map +1 -1
- package/dist/src/schemas/backgroundWork.mjs +8 -8
- package/dist/src/schemas/backgroundWork.mjs.map +1 -1
- package/dist/src/schemas/childProcess.cjs +5 -5
- package/dist/src/schemas/childProcess.cjs.map +1 -1
- package/dist/src/schemas/childProcess.d.mts +2 -2
- package/dist/src/schemas/childProcess.mjs +5 -5
- package/dist/src/schemas/childProcess.mjs.map +1 -1
- package/dist/src/schemas/contextContributions.cjs +10 -10
- package/dist/src/schemas/contextContributions.cjs.map +1 -1
- package/dist/src/schemas/contextContributions.d.mts +16 -16
- package/dist/src/schemas/contextContributions.d.mts.map +1 -1
- package/dist/src/schemas/contextContributions.mjs +8 -8
- package/dist/src/schemas/contextContributions.mjs.map +1 -1
- package/dist/src/schemas/delegation.cjs +17 -17
- package/dist/src/schemas/delegation.cjs.map +1 -1
- package/dist/src/schemas/delegation.d.mts +16 -16
- package/dist/src/schemas/delegation.d.mts.map +1 -1
- package/dist/src/schemas/delegation.mjs +10 -10
- package/dist/src/schemas/delegation.mjs.map +1 -1
- package/dist/src/schemas/extensionFile.d.mts +23 -19
- package/dist/src/schemas/extensionFile.d.mts.map +1 -1
- package/dist/src/schemas/footer.cjs.map +1 -1
- package/dist/src/schemas/footer.d.mts +5 -5
- package/dist/src/schemas/footer.d.mts.map +1 -1
- package/dist/src/schemas/footer.mjs.map +1 -1
- package/dist/src/schemas/headless.cjs +37 -37
- package/dist/src/schemas/headless.cjs.map +1 -1
- package/dist/src/schemas/headless.d.mts +100 -101
- package/dist/src/schemas/headless.d.mts.map +1 -1
- package/dist/src/schemas/headless.mjs +24 -24
- package/dist/src/schemas/headless.mjs.map +1 -1
- package/dist/src/schemas/help.cjs +60 -60
- package/dist/src/schemas/help.cjs.map +1 -1
- package/dist/src/schemas/help.d.mts +43 -43
- package/dist/src/schemas/help.d.mts.map +1 -1
- package/dist/src/schemas/help.mjs +41 -41
- package/dist/src/schemas/help.mjs.map +1 -1
- package/dist/src/schemas/home.cjs +127 -0
- package/dist/src/schemas/home.cjs.map +1 -0
- package/dist/src/schemas/home.d.mts +63 -0
- package/dist/src/schemas/home.d.mts.map +1 -0
- package/dist/src/schemas/home.mjs +121 -0
- package/dist/src/schemas/home.mjs.map +1 -0
- package/dist/src/schemas/httpApiContracts.cjs +441 -0
- package/dist/src/schemas/httpApiContracts.cjs.map +1 -0
- package/dist/src/schemas/httpApiContracts.d.mts +78 -0
- package/dist/src/schemas/httpApiContracts.d.mts.map +1 -0
- package/dist/src/schemas/httpApiContracts.mjs +434 -0
- package/dist/src/schemas/httpApiContracts.mjs.map +1 -0
- package/dist/src/schemas/hubChannel.cjs +3 -0
- package/dist/src/schemas/hubChannel.cjs.map +1 -1
- package/dist/src/schemas/hubChannel.d.mts +84 -60
- package/dist/src/schemas/hubChannel.d.mts.map +1 -1
- package/dist/src/schemas/hubChannel.mjs +3 -1
- package/dist/src/schemas/hubChannel.mjs.map +1 -1
- package/dist/src/schemas/leader.cjs.map +1 -1
- package/dist/src/schemas/leader.d.mts +3 -3
- package/dist/src/schemas/leader.d.mts.map +1 -1
- package/dist/src/schemas/leader.mjs.map +1 -1
- package/dist/src/schemas/mcpBundle.d.mts +3 -3
- package/dist/src/schemas/mcpFacet.cjs.map +1 -1
- package/dist/src/schemas/mcpFacet.d.mts +22 -22
- package/dist/src/schemas/mcpFacet.d.mts.map +1 -1
- package/dist/src/schemas/mcpFacet.mjs.map +1 -1
- package/dist/src/schemas/mcpProjection.cjs +41 -41
- package/dist/src/schemas/mcpProjection.cjs.map +1 -1
- package/dist/src/schemas/mcpProjection.d.mts +31 -30
- package/dist/src/schemas/mcpProjection.d.mts.map +1 -1
- package/dist/src/schemas/mcpProjection.mjs +29 -29
- package/dist/src/schemas/mcpProjection.mjs.map +1 -1
- package/dist/src/schemas/mcpSession.cjs +23 -23
- package/dist/src/schemas/mcpSession.cjs.map +1 -1
- package/dist/src/schemas/mcpSession.d.mts +12 -12
- package/dist/src/schemas/mcpSession.d.mts.map +1 -1
- package/dist/src/schemas/mcpSession.mjs +18 -18
- package/dist/src/schemas/mcpSession.mjs.map +1 -1
- package/dist/src/schemas/mcpStatus.cjs +5 -5
- package/dist/src/schemas/mcpStatus.cjs.map +1 -1
- package/dist/src/schemas/mcpStatus.d.mts +4 -4
- package/dist/src/schemas/mcpStatus.d.mts.map +1 -1
- package/dist/src/schemas/mcpStatus.mjs +4 -4
- package/dist/src/schemas/mcpStatus.mjs.map +1 -1
- package/dist/src/schemas/mcpToolResolver.cjs +9 -9
- package/dist/src/schemas/mcpToolResolver.cjs.map +1 -1
- package/dist/src/schemas/mcpToolResolver.d.mts +7 -7
- package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -1
- package/dist/src/schemas/mcpToolResolver.mjs +7 -7
- package/dist/src/schemas/mcpToolResolver.mjs.map +1 -1
- package/dist/src/schemas/narration.cjs +9 -9
- package/dist/src/schemas/narration.cjs.map +1 -1
- package/dist/src/schemas/narration.d.mts +5 -5
- package/dist/src/schemas/narration.d.mts.map +1 -1
- package/dist/src/schemas/narration.mjs +7 -7
- package/dist/src/schemas/narration.mjs.map +1 -1
- package/dist/src/schemas/notification.cjs +45 -45
- package/dist/src/schemas/notification.cjs.map +1 -1
- package/dist/src/schemas/notification.d.mts +22 -22
- package/dist/src/schemas/notification.d.mts.map +1 -1
- package/dist/src/schemas/notification.mjs +31 -31
- package/dist/src/schemas/notification.mjs.map +1 -1
- package/dist/src/schemas/packageApi.cjs +28 -28
- package/dist/src/schemas/packageApi.cjs.map +1 -1
- package/dist/src/schemas/packageApi.d.mts +91 -65
- package/dist/src/schemas/packageApi.d.mts.map +1 -1
- package/dist/src/schemas/packageApi.mjs +18 -18
- package/dist/src/schemas/packageApi.mjs.map +1 -1
- package/dist/src/schemas/platform.cjs +34 -0
- package/dist/src/schemas/platform.cjs.map +1 -0
- package/dist/src/schemas/platform.d.mts +75 -0
- package/dist/src/schemas/platform.d.mts.map +1 -0
- package/dist/src/schemas/platform.mjs +27 -0
- package/dist/src/schemas/platform.mjs.map +1 -0
- package/dist/src/schemas/pluginContributions.cjs.map +1 -1
- package/dist/src/schemas/pluginContributions.d.mts +12 -12
- package/dist/src/schemas/pluginContributions.d.mts.map +1 -1
- package/dist/src/schemas/pluginContributions.mjs.map +1 -1
- package/dist/src/schemas/pluginProtocol.cjs +24 -27
- package/dist/src/schemas/pluginProtocol.cjs.map +1 -1
- package/dist/src/schemas/pluginProtocol.d.mts +21 -21
- package/dist/src/schemas/pluginProtocol.d.mts.map +1 -1
- package/dist/src/schemas/pluginProtocol.mjs +18 -20
- package/dist/src/schemas/pluginProtocol.mjs.map +1 -1
- package/dist/src/schemas/profileIdentity.cjs +2 -2
- package/dist/src/schemas/profileIdentity.cjs.map +1 -1
- package/dist/src/schemas/profileIdentity.d.mts +1 -1
- package/dist/src/schemas/profileIdentity.mjs +2 -2
- package/dist/src/schemas/profileIdentity.mjs.map +1 -1
- package/dist/src/schemas/protocolChannelsContract.cjs +27 -0
- package/dist/src/schemas/protocolChannelsContract.cjs.map +1 -0
- package/dist/src/schemas/protocolChannelsContract.d.mts +37 -0
- package/dist/src/schemas/protocolChannelsContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolChannelsContract.mjs +25 -0
- package/dist/src/schemas/protocolChannelsContract.mjs.map +1 -0
- package/dist/src/schemas/protocolContracts.cjs +168 -0
- package/dist/src/schemas/protocolContracts.cjs.map +1 -0
- package/dist/src/schemas/protocolContracts.d.mts +69 -0
- package/dist/src/schemas/protocolContracts.d.mts.map +1 -0
- package/dist/src/schemas/protocolContracts.mjs +164 -0
- package/dist/src/schemas/protocolContracts.mjs.map +1 -0
- package/dist/src/schemas/protocolHubContract.cjs +51 -0
- package/dist/src/schemas/protocolHubContract.cjs.map +1 -0
- package/dist/src/schemas/protocolHubContract.d.mts +218 -0
- package/dist/src/schemas/protocolHubContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolHubContract.mjs +49 -0
- package/dist/src/schemas/protocolHubContract.mjs.map +1 -0
- package/dist/src/schemas/protocolSessionContract.cjs +22 -0
- package/dist/src/schemas/protocolSessionContract.cjs.map +1 -0
- package/dist/src/schemas/protocolSessionContract.d.mts +324 -0
- package/dist/src/schemas/protocolSessionContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolSessionContract.mjs +22 -0
- package/dist/src/schemas/protocolSessionContract.mjs.map +1 -0
- package/dist/src/schemas/protocolThreadContract.cjs +21 -0
- package/dist/src/schemas/protocolThreadContract.cjs.map +1 -0
- package/dist/src/schemas/protocolThreadContract.d.mts +29 -0
- package/dist/src/schemas/protocolThreadContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolThreadContract.mjs +20 -0
- package/dist/src/schemas/protocolThreadContract.mjs.map +1 -0
- package/dist/src/schemas/readiness.cjs +36 -36
- package/dist/src/schemas/readiness.cjs.map +1 -1
- package/dist/src/schemas/readiness.d.mts +37 -37
- package/dist/src/schemas/readiness.d.mts.map +1 -1
- package/dist/src/schemas/readiness.mjs +31 -31
- package/dist/src/schemas/readiness.mjs.map +1 -1
- package/dist/src/schemas/serverBundle.d.mts +5 -5
- package/dist/src/schemas/serverPlugin.cjs +103 -0
- package/dist/src/schemas/serverPlugin.cjs.map +1 -0
- package/dist/src/schemas/serverPlugin.d.mts +176 -0
- package/dist/src/schemas/serverPlugin.d.mts.map +1 -0
- package/dist/src/schemas/serverPlugin.mjs +95 -0
- package/dist/src/schemas/serverPlugin.mjs.map +1 -0
- package/dist/src/schemas/serverScope.cjs +37 -0
- package/dist/src/schemas/serverScope.cjs.map +1 -0
- package/dist/src/schemas/serverScope.d.mts +77 -0
- package/dist/src/schemas/serverScope.d.mts.map +1 -0
- package/dist/src/schemas/serverScope.mjs +33 -0
- package/dist/src/schemas/serverScope.mjs.map +1 -0
- package/dist/src/schemas/sessionApiContracts.cjs +320 -0
- package/dist/src/schemas/sessionApiContracts.cjs.map +1 -0
- package/dist/src/schemas/sessionApiContracts.mjs +318 -0
- package/dist/src/schemas/sessionApiContracts.mjs.map +1 -0
- package/dist/src/schemas/sessionProtocol.cjs +20 -13
- package/dist/src/schemas/sessionProtocol.cjs.map +1 -1
- package/dist/src/schemas/sessionProtocol.d.mts +37 -54
- package/dist/src/schemas/sessionProtocol.d.mts.map +1 -1
- package/dist/src/schemas/sessionProtocol.mjs +17 -8
- package/dist/src/schemas/sessionProtocol.mjs.map +1 -1
- package/dist/src/schemas/skills.cjs +16 -16
- package/dist/src/schemas/skills.cjs.map +1 -1
- package/dist/src/schemas/skills.d.mts +7 -7
- package/dist/src/schemas/skills.d.mts.map +1 -1
- package/dist/src/schemas/skills.mjs +12 -12
- package/dist/src/schemas/skills.mjs.map +1 -1
- package/dist/src/schemas/toolOverrides.cjs +9 -9
- package/dist/src/schemas/toolOverrides.cjs.map +1 -1
- package/dist/src/schemas/toolOverrides.d.mts +8 -8
- package/dist/src/schemas/toolOverrides.d.mts.map +1 -1
- package/dist/src/schemas/toolOverrides.mjs +7 -7
- package/dist/src/schemas/toolOverrides.mjs.map +1 -1
- package/dist/src/schemas/toolSurface.cjs +9 -9
- package/dist/src/schemas/toolSurface.cjs.map +1 -1
- package/dist/src/schemas/toolSurface.d.mts +13 -13
- package/dist/src/schemas/toolSurface.d.mts.map +1 -1
- package/dist/src/schemas/toolSurface.mjs +7 -7
- package/dist/src/schemas/toolSurface.mjs.map +1 -1
- package/dist/src/schemas/uiHub.cjs +9 -9
- package/dist/src/schemas/uiHub.cjs.map +1 -1
- package/dist/src/schemas/uiHub.d.mts +12 -12
- package/dist/src/schemas/uiHub.d.mts.map +1 -1
- package/dist/src/schemas/uiHub.mjs +7 -7
- package/dist/src/schemas/uiHub.mjs.map +1 -1
- package/dist/src/server/directHarnessRuntime.cjs +691 -775
- package/dist/src/server/directHarnessRuntime.cjs.map +1 -1
- package/dist/src/server/directHarnessRuntime.d.mts +5 -1
- package/dist/src/server/directHarnessRuntime.d.mts.map +1 -0
- package/dist/src/server/directHarnessRuntime.mjs +671 -754
- package/dist/src/server/directHarnessRuntime.mjs.map +1 -1
- package/dist/src/server/largeFrameLink.cjs +47 -0
- package/dist/src/server/largeFrameLink.cjs.map +1 -0
- package/dist/src/server/largeFrameLink.mjs +47 -0
- package/dist/src/server/largeFrameLink.mjs.map +1 -0
- package/dist/src/server/liveImport.cjs +1 -1
- package/dist/src/server/liveImport.cjs.map +1 -1
- package/dist/src/server/liveImport.d.mts +1 -1
- package/dist/src/server/liveImport.mjs +1 -1
- package/dist/src/server/liveImport.mjs.map +1 -1
- package/dist/src/server/mcpBundleLoader.cjs.map +1 -1
- package/dist/src/server/mcpBundleLoader.d.mts +6 -6
- package/dist/src/server/mcpBundleLoader.d.mts.map +1 -1
- package/dist/src/server/mcpBundleLoader.mjs.map +1 -1
- package/dist/src/server/serverPackages.cjs +60 -0
- package/dist/src/server/serverPackages.cjs.map +1 -0
- package/dist/src/server/serverPackages.d.mts +44 -0
- package/dist/src/server/serverPackages.d.mts.map +1 -0
- package/dist/src/server/serverPackages.mjs +59 -0
- package/dist/src/server/serverPackages.mjs.map +1 -0
- package/dist/src/server/serverScope.cjs +510 -0
- package/dist/src/server/serverScope.cjs.map +1 -0
- package/dist/src/server/serverScope.d.mts +123 -0
- package/dist/src/server/serverScope.d.mts.map +1 -0
- package/dist/src/server/serverScope.mjs +510 -0
- package/dist/src/server/serverScope.mjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.cjs +3 -3
- package/dist/src/server/sessionMcpHandler.cjs.map +1 -1
- package/dist/src/server/sessionMcpHandler.mjs +4 -4
- package/dist/src/server/sessionMcpHandler.mjs.map +1 -1
- package/dist/src/server/sessionMcpRoutes.cjs +2 -1
- package/dist/src/server/sessionMcpRoutes.cjs.map +1 -1
- package/dist/src/server/sessionMcpRoutes.mjs +2 -1
- package/dist/src/server/sessionMcpRoutes.mjs.map +1 -1
- package/dist/src/server/threadJournals.cjs +38 -107
- package/dist/src/server/threadJournals.cjs.map +1 -1
- package/dist/src/server/threadJournals.mjs +38 -104
- package/dist/src/server/threadJournals.mjs.map +1 -1
- package/dist/src/services/apiSurfaceAssert/index.cjs +1 -1
- package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -1
- package/dist/src/services/apiSurfaceAssert/index.d.mts +6 -6
- package/dist/src/services/apiSurfaceAssert/index.mjs +1 -1
- package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -1
- package/dist/src/services/chatgptAuth/index.cjs +1 -220
- package/dist/src/services/chatgptAuth/index.cjs.map +1 -1
- package/dist/src/services/chatgptAuth/index.d.mts +0 -18
- package/dist/src/services/chatgptAuth/index.d.mts.map +1 -1
- package/dist/src/services/chatgptAuth/index.mjs +1 -217
- package/dist/src/services/chatgptAuth/index.mjs.map +1 -1
- package/dist/src/services/chatgptImages/index.cjs +1 -1
- package/dist/src/services/chatgptImages/index.cjs.map +1 -1
- package/dist/src/services/chatgptImages/index.mjs +1 -1
- package/dist/src/services/chatgptImages/index.mjs.map +1 -1
- package/dist/src/services/chatgptLogin/index.cjs +230 -0
- package/dist/src/services/chatgptLogin/index.cjs.map +1 -0
- package/dist/src/services/chatgptLogin/index.d.mts +21 -0
- package/dist/src/services/chatgptLogin/index.d.mts.map +1 -0
- package/dist/src/services/chatgptLogin/index.mjs +227 -0
- package/dist/src/services/chatgptLogin/index.mjs.map +1 -0
- package/dist/src/services/chatgptWebSearch/index.cjs +1 -1
- package/dist/src/services/chatgptWebSearch/index.cjs.map +1 -1
- package/dist/src/services/chatgptWebSearch/index.mjs +1 -1
- package/dist/src/services/chatgptWebSearch/index.mjs.map +1 -1
- package/dist/src/services/contextContributions/index.cjs +8 -8
- package/dist/src/services/contextContributions/index.cjs.map +1 -1
- package/dist/src/services/contextContributions/index.d.mts +3 -3
- package/dist/src/services/contextContributions/index.d.mts.map +1 -1
- package/dist/src/services/contextContributions/index.mjs +8 -8
- package/dist/src/services/contextContributions/index.mjs.map +1 -1
- package/dist/src/services/devProxyStore/devProxyRecords.cjs +59 -0
- package/dist/src/services/devProxyStore/devProxyRecords.cjs.map +1 -0
- package/dist/src/services/devProxyStore/devProxyRecords.mjs +56 -0
- package/dist/src/services/devProxyStore/devProxyRecords.mjs.map +1 -0
- package/dist/src/services/devProxyStore/index.cjs +7 -101
- package/dist/src/services/devProxyStore/index.cjs.map +1 -1
- package/dist/src/services/devProxyStore/index.mjs +7 -101
- package/dist/src/services/devProxyStore/index.mjs.map +1 -1
- package/dist/src/services/devProxyStore/sync.cjs +66 -0
- package/dist/src/services/devProxyStore/sync.cjs.map +1 -0
- package/dist/src/services/devProxyStore/sync.mjs +63 -0
- package/dist/src/services/devProxyStore/sync.mjs.map +1 -0
- package/dist/src/services/durableNavigation/docs.cjs +15 -0
- package/dist/src/services/durableNavigation/docs.cjs.map +1 -0
- package/dist/src/services/durableNavigation/docs.mjs +16 -0
- package/dist/src/services/durableNavigation/docs.mjs.map +1 -0
- package/dist/src/services/durableNavigation/index.cjs +3 -18
- package/dist/src/services/durableNavigation/index.cjs.map +1 -1
- package/dist/src/services/durableNavigation/index.mjs +2 -17
- package/dist/src/services/durableNavigation/index.mjs.map +1 -1
- package/dist/src/services/durableQueue/docs.cjs +12 -0
- package/dist/src/services/durableQueue/docs.cjs.map +1 -0
- package/dist/src/services/durableQueue/docs.mjs +13 -0
- package/dist/src/services/durableQueue/docs.mjs.map +1 -0
- package/dist/src/services/durableQueue/index.cjs +151 -0
- package/dist/src/services/durableQueue/index.cjs.map +1 -0
- package/dist/src/services/durableQueue/index.mjs +149 -0
- package/dist/src/services/durableQueue/index.mjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/docs.cjs +11 -0
- package/dist/src/services/durableRequestReceipts/docs.cjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/docs.mjs +12 -0
- package/dist/src/services/durableRequestReceipts/docs.mjs.map +1 -0
- package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.cjs +10 -16
- package/dist/src/services/durableRequestReceipts/index.cjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/index.d.mts +12 -0
- package/dist/src/services/durableRequestReceipts/index.d.mts.map +1 -0
- package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.mjs +7 -13
- package/dist/src/services/durableRequestReceipts/index.mjs.map +1 -0
- package/dist/src/services/durableSession/docs.cjs +65 -0
- package/dist/src/services/durableSession/docs.cjs.map +1 -0
- package/dist/src/services/durableSession/docs.d.mts +17 -0
- package/dist/src/services/durableSession/docs.d.mts.map +1 -0
- package/dist/src/services/durableSession/docs.mjs +60 -0
- package/dist/src/services/durableSession/docs.mjs.map +1 -0
- package/dist/src/services/durableSession/index.cjs +21 -0
- package/dist/src/services/durableSession/index.cjs.map +1 -0
- package/dist/src/services/durableSession/index.d.mts +13 -0
- package/dist/src/services/durableSession/index.d.mts.map +1 -0
- package/dist/src/services/durableSession/index.mjs +20 -0
- package/dist/src/services/durableSession/index.mjs.map +1 -0
- package/dist/src/services/durableSubagents/docs.cjs +15 -0
- package/dist/src/services/durableSubagents/docs.cjs.map +1 -0
- package/dist/src/services/durableSubagents/docs.mjs +16 -0
- package/dist/src/services/durableSubagents/docs.mjs.map +1 -0
- package/dist/src/services/durableSubagents/extension.cjs +11 -0
- package/dist/src/services/durableSubagents/extension.cjs.map +1 -0
- package/dist/src/services/durableSubagents/extension.mjs +12 -0
- package/dist/src/services/durableSubagents/extension.mjs.map +1 -0
- package/dist/src/services/durableSubagents/index.cjs +95 -0
- package/dist/src/services/durableSubagents/index.cjs.map +1 -0
- package/dist/src/services/durableSubagents/index.mjs +90 -0
- package/dist/src/services/durableSubagents/index.mjs.map +1 -0
- package/dist/src/services/durableSubagents/tasks.cjs +25 -0
- package/dist/src/services/durableSubagents/tasks.cjs.map +1 -0
- package/dist/src/services/durableSubagents/tasks.mjs +26 -0
- package/dist/src/services/durableSubagents/tasks.mjs.map +1 -0
- package/dist/src/services/headlessClient/index.cjs +20 -13
- package/dist/src/services/headlessClient/index.cjs.map +1 -1
- package/dist/src/services/headlessClient/index.mjs +21 -14
- package/dist/src/services/headlessClient/index.mjs.map +1 -1
- package/dist/src/services/historyOwnership/type.d.mts +15 -0
- package/dist/src/services/historyOwnership/type.d.mts.map +1 -0
- package/dist/src/services/hubChannelHarness/index.cjs +2 -2
- package/dist/src/services/hubChannelHarness/index.cjs.map +1 -1
- package/dist/src/services/hubChannelHarness/index.d.mts +8 -8
- package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -1
- package/dist/src/services/hubChannelHarness/index.mjs +2 -2
- package/dist/src/services/hubChannelHarness/index.mjs.map +1 -1
- package/dist/src/services/json/core.cjs +30 -0
- package/dist/src/services/json/core.cjs.map +1 -0
- package/dist/src/services/json/core.d.mts +21 -0
- package/dist/src/services/json/core.d.mts.map +1 -0
- package/dist/src/services/json/core.mjs +26 -0
- package/dist/src/services/json/core.mjs.map +1 -0
- package/dist/src/services/json/sync.cjs +48 -0
- package/dist/src/services/json/sync.cjs.map +1 -0
- package/dist/src/services/json/sync.d.mts +22 -0
- package/dist/src/services/json/sync.d.mts.map +1 -0
- package/dist/src/services/json/sync.mjs +43 -0
- package/dist/src/services/json/sync.mjs.map +1 -0
- package/dist/src/services/kernel/index.cjs +2 -2
- package/dist/src/services/kernel/index.cjs.map +1 -1
- package/dist/src/services/kernel/index.d.mts +3 -3
- package/dist/src/services/kernel/index.d.mts.map +1 -1
- package/dist/src/services/kernel/index.mjs +2 -2
- package/dist/src/services/kernel/index.mjs.map +1 -1
- package/dist/src/services/nativeChildTools/index.cjs +16 -0
- package/dist/src/services/nativeChildTools/index.cjs.map +1 -0
- package/dist/src/services/nativeChildTools/index.mjs +16 -0
- package/dist/src/services/nativeChildTools/index.mjs.map +1 -0
- package/dist/src/services/nodeHost/index.cjs +30 -0
- package/dist/src/services/nodeHost/index.cjs.map +1 -0
- package/dist/src/services/nodeHost/index.d.mts +16 -0
- package/dist/src/services/nodeHost/index.d.mts.map +1 -0
- package/dist/src/services/nodeHost/index.mjs +27 -0
- package/dist/src/services/nodeHost/index.mjs.map +1 -0
- package/dist/src/services/nodeModelDependencies/index.cjs +89 -0
- package/dist/src/services/nodeModelDependencies/index.cjs.map +1 -0
- package/dist/src/services/nodeModelDependencies/index.mjs +86 -0
- package/dist/src/services/nodeModelDependencies/index.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.cjs +6 -128
- package/dist/src/services/openSessionRegistry/index.cjs.map +1 -1
- package/dist/src/services/openSessionRegistry/index.d.mts +5 -36
- package/dist/src/services/openSessionRegistry/index.mjs +6 -128
- package/dist/src/services/openSessionRegistry/index.mjs.map +1 -1
- package/dist/src/services/openSessionRegistry/openSessionRecords.cjs +87 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts +30 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.mjs +81 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.cjs +71 -0
- package/dist/src/services/openSessionRegistry/sync.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.d.mts +14 -0
- package/dist/src/services/openSessionRegistry/sync.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.mjs +68 -0
- package/dist/src/services/openSessionRegistry/sync.mjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.cjs +1 -1
- package/dist/src/services/packageApiHarness/index.cjs.map +1 -1
- package/dist/src/services/packageApiHarness/index.d.mts +6 -6
- package/dist/src/services/packageApiHarness/index.d.mts.map +1 -1
- package/dist/src/services/packageApiHarness/index.mjs +2 -2
- package/dist/src/services/packageApiHarness/index.mjs.map +1 -1
- package/dist/src/services/piArgs/index.cjs +53 -0
- package/dist/src/services/piArgs/index.cjs.map +1 -0
- package/dist/src/services/piArgs/index.d.mts +6 -0
- package/dist/src/services/piArgs/index.d.mts.map +1 -0
- package/dist/src/services/piArgs/index.mjs +53 -0
- package/dist/src/services/piArgs/index.mjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.cjs +47 -39
- package/dist/src/services/piExtensionHost/index.cjs.map +1 -1
- package/dist/src/services/piExtensionHost/index.d.mts +83 -0
- package/dist/src/services/piExtensionHost/index.d.mts.map +1 -0
- package/dist/src/services/piExtensionHost/index.mjs +47 -38
- package/dist/src/services/piExtensionHost/index.mjs.map +1 -1
- package/dist/src/services/piHelpTools/index.cjs +5 -5
- package/dist/src/services/piHelpTools/index.cjs.map +1 -1
- package/dist/src/services/piHelpTools/index.d.mts.map +1 -1
- package/dist/src/services/piHelpTools/index.mjs +7 -7
- package/dist/src/services/piHelpTools/index.mjs.map +1 -1
- package/dist/src/services/piMessages/index.cjs +106 -0
- package/dist/src/services/piMessages/index.cjs.map +1 -0
- package/dist/src/services/piMessages/index.mjs +105 -0
- package/dist/src/services/piMessages/index.mjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.cjs +4 -4
- package/dist/src/services/piSessionEntries/index.cjs.map +1 -1
- package/dist/src/services/piSessionEntries/index.mjs +3 -3
- package/dist/src/services/piSessionEntries/index.mjs.map +1 -1
- package/dist/src/services/piSettings/core.cjs +308 -0
- package/dist/src/services/piSettings/core.cjs.map +1 -0
- package/dist/src/services/piSettings/core.d.mts +102 -0
- package/dist/src/services/piSettings/core.d.mts.map +1 -0
- package/dist/src/services/piSettings/core.mjs +276 -0
- package/dist/src/services/piSettings/core.mjs.map +1 -0
- package/dist/src/services/piSettings/sync.cjs +119 -0
- package/dist/src/services/piSettings/sync.cjs.map +1 -0
- package/dist/src/services/piSettings/sync.d.mts +44 -0
- package/dist/src/services/piSettings/sync.d.mts.map +1 -0
- package/dist/src/services/piSettings/sync.mjs +110 -0
- package/dist/src/services/piSettings/sync.mjs.map +1 -0
- package/dist/src/services/piSummary/index.cjs +7 -0
- package/dist/src/services/piSummary/index.cjs.map +1 -0
- package/dist/src/services/piSummary/index.mjs +7 -0
- package/dist/src/services/piSummary/index.mjs.map +1 -0
- package/dist/src/services/platformFiles/index.cjs +44 -0
- package/dist/src/services/platformFiles/index.cjs.map +1 -0
- package/dist/src/services/platformFiles/index.d.mts +16 -0
- package/dist/src/services/platformFiles/index.d.mts.map +1 -0
- package/dist/src/services/platformFiles/index.mjs +39 -0
- package/dist/src/services/platformFiles/index.mjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.cjs +19 -13
- package/dist/src/services/pluginLifecycle/index.cjs.map +1 -1
- package/dist/src/services/pluginLifecycle/index.d.mts +2 -0
- package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -1
- package/dist/src/services/pluginLifecycle/index.mjs +19 -14
- package/dist/src/services/pluginLifecycle/index.mjs.map +1 -1
- package/dist/src/services/poPackage/core.cjs +73 -0
- package/dist/src/services/poPackage/core.cjs.map +1 -0
- package/dist/src/services/poPackage/core.d.mts +32 -0
- package/dist/src/services/poPackage/core.d.mts.map +1 -0
- package/dist/src/services/poPackage/core.mjs +66 -0
- package/dist/src/services/poPackage/core.mjs.map +1 -0
- package/dist/src/services/poPackage/sync.cjs +55 -0
- package/dist/src/services/poPackage/sync.cjs.map +1 -0
- package/dist/src/services/poPackage/sync.d.mts +21 -0
- package/dist/src/services/poPackage/sync.d.mts.map +1 -0
- package/dist/src/services/poPackage/sync.mjs +50 -0
- package/dist/src/services/poPackage/sync.mjs.map +1 -0
- package/dist/src/services/providerAuth/index.cjs +11 -7
- package/dist/src/services/providerAuth/index.cjs.map +1 -1
- package/dist/src/services/providerAuth/index.mjs +11 -7
- package/dist/src/services/providerAuth/index.mjs.map +1 -1
- package/dist/src/services/publicFileShares/index.cjs +1 -1
- package/dist/src/services/publicFileShares/index.cjs.map +1 -1
- package/dist/src/services/publicFileShares/index.d.mts +2 -2
- package/dist/src/services/publicFileShares/index.mjs +2 -2
- package/dist/src/services/publicFileShares/index.mjs.map +1 -1
- package/dist/src/services/remoteAccess/index.d.mts +1 -0
- package/dist/src/services/remoteAccess/index.d.mts.map +1 -1
- package/dist/src/services/remoteAccessStore/index.cjs +8 -190
- package/dist/src/services/remoteAccessStore/index.cjs.map +1 -1
- package/dist/src/services/remoteAccessStore/index.d.mts +2 -0
- package/dist/src/services/remoteAccessStore/index.mjs +7 -187
- package/dist/src/services/remoteAccessStore/index.mjs.map +1 -1
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs +98 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs +88 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs.map +1 -0
- package/dist/src/services/remoteAccessStore/sync.cjs +111 -0
- package/dist/src/services/remoteAccessStore/sync.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/sync.mjs +108 -0
- package/dist/src/services/remoteAccessStore/sync.mjs.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.cjs +23 -0
- package/dist/src/services/runtimeIdentity/sync.cjs.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.d.mts +9 -0
- package/dist/src/services/runtimeIdentity/sync.d.mts.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.mjs +20 -0
- package/dist/src/services/runtimeIdentity/sync.mjs.map +1 -0
- package/dist/src/services/serialRunner/index.cjs +25 -0
- package/dist/src/services/serialRunner/index.cjs.map +1 -0
- package/dist/src/services/serialRunner/index.d.mts +10 -0
- package/dist/src/services/serialRunner/index.d.mts.map +1 -0
- package/dist/src/services/serialRunner/index.mjs +25 -0
- package/dist/src/services/serialRunner/index.mjs.map +1 -0
- package/dist/src/services/{serverFacet → serverHost}/index.cjs +5 -5
- package/dist/src/services/serverHost/index.cjs.map +1 -0
- package/dist/src/services/serverHost/index.d.mts +31 -0
- package/dist/src/services/serverHost/index.d.mts.map +1 -0
- package/dist/src/services/{serverFacet → serverHost}/index.mjs +5 -5
- package/dist/src/services/serverHost/index.mjs.map +1 -0
- package/dist/src/services/sessionAttachments/index.cjs +4 -3
- package/dist/src/services/sessionAttachments/index.cjs.map +1 -1
- package/dist/src/services/sessionAttachments/index.d.mts +1 -6
- package/dist/src/services/sessionAttachments/index.d.mts.map +1 -1
- package/dist/src/services/sessionAttachments/index.mjs +3 -2
- package/dist/src/services/sessionAttachments/index.mjs.map +1 -1
- package/dist/src/services/sessionAttachments/type.d.mts +9 -0
- package/dist/src/services/sessionAttachments/type.d.mts.map +1 -0
- package/dist/src/services/sessionFiles/index.cjs +96 -0
- package/dist/src/services/sessionFiles/index.cjs.map +1 -0
- package/dist/src/services/sessionFiles/index.d.mts +33 -0
- package/dist/src/services/sessionFiles/index.d.mts.map +1 -0
- package/dist/src/services/sessionFiles/index.mjs +89 -0
- package/dist/src/services/sessionFiles/index.mjs.map +1 -0
- package/dist/src/services/sessionFiles/sessionDirectory.cjs +66 -0
- package/dist/src/services/sessionFiles/sessionDirectory.cjs.map +1 -0
- package/dist/src/services/sessionFiles/sessionDirectory.mjs +62 -0
- package/dist/src/services/sessionFiles/sessionDirectory.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.cjs +31 -33
- package/dist/src/services/sessionGitStatus/index.cjs.map +1 -1
- package/dist/src/services/sessionGitStatus/index.mjs +31 -33
- package/dist/src/services/sessionGitStatus/index.mjs.map +1 -1
- package/dist/src/services/sessionPresentation/index.cjs +3 -27
- package/dist/src/services/sessionPresentation/index.cjs.map +1 -1
- package/dist/src/services/sessionPresentation/index.mjs +3 -27
- package/dist/src/services/sessionPresentation/index.mjs.map +1 -1
- package/dist/src/services/skillPrompt/index.cjs +11 -0
- package/dist/src/services/skillPrompt/index.cjs.map +1 -0
- package/dist/src/services/skillPrompt/index.mjs +11 -0
- package/dist/src/services/skillPrompt/index.mjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs +44 -30
- package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -1
- package/dist/src/services/sqliteSessionHistory/index.d.mts +7 -4
- package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -1
- package/dist/src/services/sqliteSessionHistory/index.mjs +43 -28
- package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.cjs +21 -45
- package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.d.mts +3 -2
- package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.mjs +16 -38
- package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -1
- package/dist/src/services/testMode/index.cjs +162 -0
- package/dist/src/services/testMode/index.cjs.map +1 -0
- package/dist/src/services/testMode/index.d.mts +17 -0
- package/dist/src/services/testMode/index.d.mts.map +1 -0
- package/dist/src/services/testMode/index.mjs +155 -0
- package/dist/src/services/testMode/index.mjs.map +1 -0
- package/dist/src/services/toolOverrides/index.cjs +6 -6
- package/dist/src/services/toolOverrides/index.cjs.map +1 -1
- package/dist/src/services/toolOverrides/index.d.mts +3 -3
- package/dist/src/services/toolOverrides/index.d.mts.map +1 -1
- package/dist/src/services/toolOverrides/index.mjs +6 -6
- package/dist/src/services/toolOverrides/index.mjs.map +1 -1
- package/dist/src/services/toolPrompt/index.d.mts +17 -0
- package/dist/src/services/toolPrompt/index.d.mts.map +1 -0
- package/dist/src/services/toolSurface/index.cjs +3 -3
- package/dist/src/services/toolSurface/index.cjs.map +1 -1
- package/dist/src/services/toolSurface/index.d.mts +3 -3
- package/dist/src/services/toolSurface/index.d.mts.map +1 -1
- package/dist/src/services/toolSurface/index.mjs +4 -4
- package/dist/src/services/toolSurface/index.mjs.map +1 -1
- package/dist/src/services/traceContext/index.cjs.map +1 -1
- package/dist/src/services/traceContext/index.mjs.map +1 -1
- package/dist/src/services/transcriptPages/index.cjs +159 -33
- package/dist/src/services/transcriptPages/index.cjs.map +1 -1
- package/dist/src/services/transcriptPages/index.mjs +158 -34
- package/dist/src/services/transcriptPages/index.mjs.map +1 -1
- package/dist/src/services/voiceToolsContract/index.cjs +7 -7
- package/dist/src/services/voiceToolsContract/index.cjs.map +1 -1
- package/dist/src/services/voiceToolsContract/index.d.mts +4 -4
- package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -1
- package/dist/src/services/voiceToolsContract/index.mjs +7 -7
- package/dist/src/services/voiceToolsContract/index.mjs.map +1 -1
- package/dist/src/services/workspaceRegistry/index.cjs +9 -179
- package/dist/src/services/workspaceRegistry/index.cjs.map +1 -1
- package/dist/src/services/workspaceRegistry/index.d.mts +5 -47
- package/dist/src/services/workspaceRegistry/index.mjs +7 -176
- package/dist/src/services/workspaceRegistry/index.mjs.map +1 -1
- package/dist/src/services/workspaceRegistry/sync.cjs +148 -0
- package/dist/src/services/workspaceRegistry/sync.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/sync.d.mts +34 -0
- package/dist/src/services/workspaceRegistry/sync.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/sync.mjs +140 -0
- package/dist/src/services/workspaceRegistry/sync.mjs.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.cjs +114 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts +31 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.mjs +101 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.mjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +339 -202
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -1
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +16 -21
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -1
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +329 -191
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -1
- package/dist/src/systems/child/services/childSession/index.cjs +94 -20
- package/dist/src/systems/child/services/childSession/index.cjs.map +1 -1
- package/dist/src/systems/child/services/childSession/index.d.mts +12 -3
- package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -1
- package/dist/src/systems/child/services/childSession/index.mjs +94 -20
- package/dist/src/systems/child/services/childSession/index.mjs.map +1 -1
- package/dist/src/systems/child/types/childSession.cjs +33 -13
- package/dist/src/systems/child/types/childSession.cjs.map +1 -1
- package/dist/src/systems/child/types/childSession.d.mts +143 -80
- package/dist/src/systems/child/types/childSession.d.mts.map +1 -1
- package/dist/src/systems/child/types/childSession.mjs +24 -9
- package/dist/src/systems/child/types/childSession.mjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.cjs +30 -27
- package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.d.mts +22 -22
- package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.mjs +33 -30
- package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs +248 -229
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +4 -5
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs +239 -219
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -1
- package/dist/src/systems/main/types/headlessHost.d.mts +16 -14
- package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -1
- package/dist/src/testing/pi/testHost.cjs +2 -2
- package/dist/src/testing/pi/testHost.cjs.map +1 -1
- package/dist/src/testing/pi/testHost.d.mts +3 -2
- package/dist/src/testing/pi/testHost.mjs +3 -3
- package/dist/src/testing/pi/testHost.mjs.map +1 -1
- package/dist/src/types/config.d.mts +1 -1
- package/dist/src/types/config.d.mts.map +1 -1
- package/dist/src/types/kernel.d.mts +3 -3
- package/dist/src/types/server/directHarnessRuntime.d.mts +54 -25
- package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -1
- package/dist/src/types/server/sessionToolSurface.d.mts +9 -9
- package/dist/src/web/services/apiClient/index.d.mts +1 -0
- package/dist/src/web/services/apiPaths/index.cjs.map +1 -1
- package/dist/src/web/services/apiPaths/index.d.mts +1 -1
- package/dist/src/web/services/apiPaths/index.mjs.map +1 -1
- package/dist/src/web/services/mcpWidget.cjs.map +1 -1
- package/dist/src/web/services/mcpWidget.d.mts +2 -2
- package/dist/src/web/services/mcpWidget.d.mts.map +1 -1
- package/dist/src/web/services/mcpWidget.mjs.map +1 -1
- package/dist/src/web/services/testing/templateRail.cjs +3 -0
- package/dist/src/web/services/testing/templateRail.cjs.map +1 -1
- package/dist/src/web/services/testing/templateRail.mjs +3 -0
- package/dist/src/web/services/testing/templateRail.mjs.map +1 -1
- package/dist/src/web/types/mcpWidget.d.mts +1 -1
- package/dist/src/web/types/nativeTemplate.d.mts +1 -1
- package/dist/src/web/types/nativeTemplate.d.mts.map +1 -1
- package/dist/src/web/types/template.d.mts +8 -0
- package/dist/src/web/types/template.d.mts.map +1 -1
- package/dist/src/web/types/webPlugin.d.mts +17 -5
- package/dist/src/web/types/webPlugin.d.mts.map +1 -1
- package/dist/testMode.cjs +4 -0
- package/dist/testMode.d.mts +2 -0
- package/dist/testMode.mjs +1 -0
- package/dist/testing.cjs +1 -1
- package/dist/testing.d.mts +2 -2
- package/dist/testing.mjs +2 -2
- package/dist/toolInventory.cjs.map +1 -1
- package/dist/toolInventory.mjs.map +1 -1
- package/dist/toolNames.mjs +1 -2
- package/dist/toolOverrides.cjs +4 -4
- package/dist/toolOverrides.d.mts +3 -3
- package/dist/toolOverrides.mjs +3 -3
- package/dist/toolSurface.cjs +4 -4
- package/dist/toolSurface.d.mts +3 -3
- package/dist/toolSurface.mjs +3 -3
- package/dist/transition.cjs +3 -3
- package/dist/transition.d.cjs +3 -3
- package/dist/transition.d.mts +2 -2
- package/dist/transition.mjs +1 -2
- package/dist/transitionClassifier.cjs.map +1 -1
- package/dist/transitionClassifier.d.mts +2 -2
- package/dist/transitionClassifier.d.mts.map +1 -1
- package/dist/transitionClassifier.mjs.map +1 -1
- package/dist/transitionCoordinator.cjs +3 -3
- package/dist/transitionCoordinator.cjs.map +1 -1
- package/dist/transitionCoordinator.d.mts +4 -4
- package/dist/transitionCoordinator.d.mts.map +1 -1
- package/dist/transitionCoordinator.mjs +3 -3
- package/dist/transitionCoordinator.mjs.map +1 -1
- package/dist/typesContextApi.d.mts +2 -1
- package/dist/typesContextApi.d.mts.map +1 -1
- package/dist/uiHub.cjs +3 -3
- package/dist/uiHub.d.mts +2 -2
- package/dist/uiHub.mjs +1 -2
- package/dist/voiceTools.cjs +5 -5
- package/dist/voiceTools.d.mts +3 -3
- package/dist/voiceTools.mjs +3 -3
- package/dist/web.cjs +8 -0
- package/dist/web.d.mts +3 -2
- package/dist/web.mjs +2 -1
- package/dist/webCompositions.cjs.map +1 -1
- package/dist/webCompositions.d.mts +7 -7
- package/dist/webCompositions.d.mts.map +1 -1
- package/dist/webCompositions.mjs.map +1 -1
- package/licenses/Codex-Apache-2.0.txt +201 -0
- package/package.json +58 -53
- package/dist/doomPackage.cjs +0 -61
- package/dist/doomPackage.cjs.map +0 -1
- package/dist/doomPackage.d.mts +0 -17
- package/dist/doomPackage.d.mts.map +0 -1
- package/dist/doomPackage.mjs +0 -54
- package/dist/doomPackage.mjs.map +0 -1
- package/dist/jsonlSessionRepo.cjs +0 -44
- package/dist/jsonlSessionRepo.cjs.map +0 -1
- package/dist/jsonlSessionRepo.d.mts +0 -7
- package/dist/jsonlSessionRepo.d.mts.map +0 -1
- package/dist/jsonlSessionRepo.mjs +0 -42
- package/dist/jsonlSessionRepo.mjs.map +0 -1
- package/dist/runtimeJson.cjs.map +0 -1
- package/dist/runtimeJson.d.mts.map +0 -1
- package/dist/runtimeJson.mjs.map +0 -1
- package/dist/runtimePiSettings.cjs.map +0 -1
- package/dist/runtimePiSettings.d.mts.map +0 -1
- package/dist/runtimePiSettings.mjs.map +0 -1
- package/dist/serverFacet.cjs +0 -34
- package/dist/serverFacet.d.mts +0 -10
- package/dist/serverFacet.mjs +0 -9
- package/dist/src/pi/piWebSocketListener.cjs +0 -115
- package/dist/src/pi/piWebSocketListener.cjs.map +0 -1
- package/dist/src/pi/piWebSocketListener.mjs +0 -115
- package/dist/src/pi/piWebSocketListener.mjs.map +0 -1
- package/dist/src/schemas/serverFacet.cjs +0 -111
- package/dist/src/schemas/serverFacet.cjs.map +0 -1
- package/dist/src/schemas/serverFacet.d.mts +0 -152
- package/dist/src/schemas/serverFacet.d.mts.map +0 -1
- package/dist/src/schemas/serverFacet.mjs +0 -101
- package/dist/src/schemas/serverFacet.mjs.map +0 -1
- package/dist/src/schemas/sessionUpdates.d.mts +0 -34
- package/dist/src/schemas/sessionUpdates.d.mts.map +0 -1
- package/dist/src/server/headlessProtocol.cjs +0 -382
- package/dist/src/server/headlessProtocol.cjs.map +0 -1
- package/dist/src/server/headlessProtocol.mjs +0 -382
- package/dist/src/server/headlessProtocol.mjs.map +0 -1
- package/dist/src/server/nativeChildTranscriptReader.cjs +0 -20
- package/dist/src/server/nativeChildTranscriptReader.cjs.map +0 -1
- package/dist/src/server/nativeChildTranscriptReader.mjs +0 -18
- package/dist/src/server/nativeChildTranscriptReader.mjs.map +0 -1
- package/dist/src/server/serverFacetLoader.cjs +0 -214
- package/dist/src/server/serverFacetLoader.cjs.map +0 -1
- package/dist/src/server/serverFacetLoader.d.mts +0 -72
- package/dist/src/server/serverFacetLoader.d.mts.map +0 -1
- package/dist/src/server/serverFacetLoader.mjs +0 -212
- package/dist/src/server/serverFacetLoader.mjs.map +0 -1
- package/dist/src/services/acpSessionUpdates/index.cjs +0 -129
- package/dist/src/services/acpSessionUpdates/index.cjs.map +0 -1
- package/dist/src/services/acpSessionUpdates/index.mjs +0 -129
- package/dist/src/services/acpSessionUpdates/index.mjs.map +0 -1
- package/dist/src/services/historyImport/index.cjs +0 -8
- package/dist/src/services/historyImport/index.cjs.map +0 -1
- package/dist/src/services/historyImport/index.d.mts +0 -68
- package/dist/src/services/historyImport/index.d.mts.map +0 -1
- package/dist/src/services/historyImport/index.mjs +0 -8
- package/dist/src/services/historyImport/index.mjs.map +0 -1
- package/dist/src/services/openSessionRegistry/index.d.mts.map +0 -1
- package/dist/src/services/requestReceipts/index.cjs.map +0 -1
- package/dist/src/services/requestReceipts/index.d.mts +0 -11
- package/dist/src/services/requestReceipts/index.d.mts.map +0 -1
- package/dist/src/services/requestReceipts/index.mjs.map +0 -1
- package/dist/src/services/rpcTranscript/index.cjs +0 -633
- package/dist/src/services/rpcTranscript/index.cjs.map +0 -1
- package/dist/src/services/rpcTranscript/index.d.mts +0 -50
- package/dist/src/services/rpcTranscript/index.d.mts.map +0 -1
- package/dist/src/services/rpcTranscript/index.mjs +0 -632
- package/dist/src/services/rpcTranscript/index.mjs.map +0 -1
- package/dist/src/services/serverFacet/index.cjs.map +0 -1
- package/dist/src/services/serverFacet/index.d.mts +0 -31
- package/dist/src/services/serverFacet/index.d.mts.map +0 -1
- package/dist/src/services/serverFacet/index.mjs.map +0 -1
- package/dist/src/services/workspaceRegistry/index.d.mts.map +0 -1
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +0 -28
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +0 -1
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +0 -25
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +0 -1
- package/dist/terminalPiChildSessionService.cjs +0 -324
- package/dist/terminalPiChildSessionService.cjs.map +0 -1
- package/dist/terminalPiChildSessionService.d.mts +0 -46
- package/dist/terminalPiChildSessionService.d.mts.map +0 -1
- package/dist/terminalPiChildSessionService.mjs +0 -318
- package/dist/terminalPiChildSessionService.mjs.map +0 -1
- package/dist/v3Export.cjs +0 -10
- package/dist/v3Export.cjs.map +0 -1
- package/dist/v3Export.d.mts +0 -35
- package/dist/v3Export.d.mts.map +0 -1
- package/dist/v3Export.mjs +0 -9
- package/dist/v3Export.mjs.map +0 -1
|
@@ -1,241 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import os from "node:os";
|
|
5
|
-
import path from "node:path";
|
|
6
|
-
//#region src/services/piSettings/index.ts
|
|
7
|
-
/**
|
|
8
|
-
* Pi's user settings, as `po sync` maintains them.
|
|
9
|
-
*
|
|
10
|
-
* The Doom package is registered globally so a plain `pi` process can find the
|
|
11
|
-
* lightweight package bootstrap before project resources are trusted. Sync owns
|
|
12
|
-
* the extension registration, ambient-discovery filter, theme resource, selected default theme, and quiet-startup keys
|
|
13
|
-
* while preserving every unrelated user setting.
|
|
14
|
-
*/
|
|
15
|
-
const PI_CODING_AGENT_DIR_ENV = "PI_CODING_AGENT_DIR";
|
|
16
|
-
/** Moves Po's whole home, agent directory included, away from `~/.po`. */
|
|
17
|
-
const PO_HOME_ENV = "PO_HOME";
|
|
18
|
-
const PO_HOME_DIRECTORY = ".po";
|
|
19
|
-
/** Plain Pi's home, whose agent directory Po falls back to for model config. */
|
|
20
|
-
const PI_HOME_DIRECTORY = ".pi";
|
|
21
|
-
const AGENT_DIRECTORY = "agent";
|
|
22
|
-
const RUNTIME_DIRECTORY = "runtime";
|
|
23
|
-
const SETTINGS_FILE = "settings.json";
|
|
24
|
-
const AUTH_FILE = "auth.json";
|
|
25
|
-
const MODELS_FILE = "models.json";
|
|
26
|
-
const THEMES_DIRECTORY = "themes";
|
|
27
|
-
const EXTENSIONS_KEY = "extensions";
|
|
28
|
-
const THEMES_KEY = "themes";
|
|
29
|
-
const THEME_KEY = "theme";
|
|
30
|
-
const QUIET_STARTUP_KEY = "quietStartup";
|
|
31
|
-
const PO_THEME_NAME = "po-dark";
|
|
32
|
-
const PO_THEME_FILE = `${PO_THEME_NAME}.json`;
|
|
33
|
-
const PACKAGE_MANIFEST = "package.json";
|
|
34
|
-
const AGIMON_SCOPE_PREFIX = "@agimon-ai/";
|
|
35
|
-
const NPM_SOURCE_PREFIX = "npm:";
|
|
36
|
-
const HOME_ALIAS = "~";
|
|
37
|
-
const HOME_ALIAS_PREFIX = "~/";
|
|
38
|
-
/** The stable package entry Pi loads for every synced repository. */
|
|
39
|
-
const DOOM_EXTENSION = DOOM_PACKAGE_NAME;
|
|
40
|
-
/** Suppresses Pi's ambient extension-directory scan while leaving explicit sources intact. */
|
|
41
|
-
const AMBIENT_EXTENSION_FILTER = "!extensions/**";
|
|
42
|
-
/**
|
|
43
|
-
* Pi built-in extensions kept off under Po. po-mcp owns `/mcp` and MCP servers. Codemode and
|
|
44
|
-
* tool search are opt-in in plain Pi, but Po activates every registered tool, so leaving them
|
|
45
|
-
* loaded would declare both to the model in every session.
|
|
46
|
-
*/
|
|
47
|
-
const DISABLED_PI_BUILTINS = [
|
|
48
|
-
"-builtin:mcp",
|
|
49
|
-
"-builtin:codemode",
|
|
50
|
-
"-builtin:tool-search"
|
|
51
|
-
];
|
|
52
|
-
/** Ownership marker `po init` wrote into the dispatcher package manifest. */
|
|
53
|
-
const PO_DISPATCHER_MARKER = 1;
|
|
54
|
-
/**
|
|
55
|
-
* Expands `~` and resolves a relative path against home, never the cwd, so every
|
|
56
|
-
* Po process lands on the same directory wherever it was started.
|
|
57
|
-
*/
|
|
58
|
-
function resolveConfiguredDirectory(configured, homeDirectory) {
|
|
59
|
-
if (configured === HOME_ALIAS) return homeDirectory;
|
|
60
|
-
if (configured.startsWith(HOME_ALIAS_PREFIX)) return path.join(homeDirectory, configured.slice(2));
|
|
61
|
-
return path.resolve(homeDirectory, configured);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Po's home: config, workspaces, runtime registry and its Pi agent directory.
|
|
65
|
-
* Defaults to `~/.po`; `PO_HOME` moves all of it.
|
|
66
|
-
*/
|
|
67
|
-
function poHomeDirectory(homeDirectory = os.homedir(), environment = process.env) {
|
|
68
|
-
const configured = environment[PO_HOME_ENV]?.trim();
|
|
69
|
-
return configured ? resolveConfiguredDirectory(configured, homeDirectory) : path.join(homeDirectory, PO_HOME_DIRECTORY);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* The single install root for runtime packages every Po root shares: its
|
|
73
|
-
* `package.json` declares them and its `node_modules` holds them.
|
|
74
|
-
*/
|
|
75
|
-
function poRuntimeDirectory(homeDirectory = os.homedir(), environment = process.env) {
|
|
76
|
-
return path.join(poHomeDirectory(homeDirectory, environment), RUNTIME_DIRECTORY);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* True when a directory's `.po` folder exists and is a repository's own configuration.
|
|
80
|
-
*
|
|
81
|
-
* Po's home is `~/.po`, so the home directory carries a `.po` folder too. That folder is
|
|
82
|
-
* the global layer, not a repository marker: walking up from any path under home must not
|
|
83
|
-
* stop at home and treat the global configuration as repository configuration.
|
|
84
|
-
*/
|
|
85
|
-
function hasRepositoryDoomDirectory(directory, homeDirectory = os.homedir(), environment = process.env) {
|
|
86
|
-
const marker = path.resolve(directory, PO_HOME_DIRECTORY);
|
|
87
|
-
if (marker === path.resolve(poHomeDirectory(homeDirectory, environment))) return false;
|
|
88
|
-
try {
|
|
89
|
-
return fs.statSync(marker).isDirectory();
|
|
90
|
-
} catch {
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* The Pi agent directory Po runs with. Honors Pi's documented override; every Po
|
|
96
|
-
* entry point sets that override, so the default only applies to library callers.
|
|
97
|
-
*/
|
|
98
|
-
function piAgentDirectory(environment = process.env, homeDirectory = os.homedir()) {
|
|
99
|
-
const configured = environment[PI_CODING_AGENT_DIR_ENV]?.trim();
|
|
100
|
-
if (!configured) return path.join(poHomeDirectory(homeDirectory, environment), AGENT_DIRECTORY);
|
|
101
|
-
return resolveConfiguredDirectory(configured, homeDirectory);
|
|
102
|
-
}
|
|
103
|
-
/** True when the directory names a model: credentials, a custom provider, or a default. */
|
|
104
|
-
function hasModelConfig(agentDirectory) {
|
|
105
|
-
try {
|
|
106
|
-
return fs.existsSync(path.join(agentDirectory, MODELS_FILE)) || Object.keys(readJson(path.join(agentDirectory, AUTH_FILE))).length > 0 || typeof readJson(piSettingsPath(agentDirectory)).defaultProvider === "string";
|
|
107
|
-
} catch {
|
|
108
|
-
return true;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Where Po reads auth.json and models.json from. Po's own agent
|
|
113
|
-
* directory when it names a model; otherwise plain Pi's `~/.pi/agent`, so a user who
|
|
114
|
-
* already set Pi up can start a session before configuring Po.
|
|
115
|
-
*/
|
|
116
|
-
function modelConfigDirectory(agentDirectory, homeDirectory = os.homedir()) {
|
|
117
|
-
if (hasModelConfig(agentDirectory)) return agentDirectory;
|
|
118
|
-
const pi = path.join(homeDirectory, PI_HOME_DIRECTORY, AGENT_DIRECTORY);
|
|
119
|
-
return pi !== agentDirectory && hasModelConfig(pi) ? pi : agentDirectory;
|
|
120
|
-
}
|
|
121
|
-
/** Model defaults fall back independently of credentials, only when settings.json is absent. */
|
|
122
|
-
function modelSettingsDirectory(agentDirectory, homeDirectory = os.homedir()) {
|
|
123
|
-
if (fs.existsSync(piSettingsPath(agentDirectory))) return agentDirectory;
|
|
124
|
-
const pi = path.join(homeDirectory, PI_HOME_DIRECTORY, AGENT_DIRECTORY);
|
|
125
|
-
return fs.existsSync(piSettingsPath(pi)) ? pi : agentDirectory;
|
|
126
|
-
}
|
|
127
|
-
function piSettingsPath(agentDirectory) {
|
|
128
|
-
return path.join(agentDirectory, SETTINGS_FILE);
|
|
129
|
-
}
|
|
130
|
-
function piThemeDirectory(agentDirectory) {
|
|
131
|
-
return path.join(agentDirectory, THEMES_DIRECTORY);
|
|
132
|
-
}
|
|
133
|
-
function stringList(value) {
|
|
134
|
-
return Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : [];
|
|
135
|
-
}
|
|
136
|
-
function settingsRelativePath(agentDirectory, target) {
|
|
137
|
-
const relative = path.relative(agentDirectory, target);
|
|
138
|
-
if (relative.startsWith("..") || path.isAbsolute(relative)) return target;
|
|
139
|
-
return relative.split(path.sep).join("/");
|
|
140
|
-
}
|
|
141
|
-
function isManagedExtension(value) {
|
|
142
|
-
const normalized = value.replaceAll("\\", "/");
|
|
143
|
-
return normalized === DOOM_EXTENSION || normalized === "!extensions/**" || DISABLED_PI_BUILTINS.includes(normalized);
|
|
144
|
-
}
|
|
145
|
-
function isLegacyDoomTheme(value, themeName) {
|
|
146
|
-
const normalized = value.replaceAll("\\", "/");
|
|
147
|
-
return normalized.endsWith(`/doom/${themeName}.json`) || normalized === `doom/${themeName}.json`;
|
|
148
|
-
}
|
|
149
|
-
/** Produces the user settings content for an update, without writing it. */
|
|
150
|
-
function mergePiSettings(current, agentDirectory, update) {
|
|
151
|
-
const theme = settingsRelativePath(agentDirectory, update.themePath);
|
|
152
|
-
const extensions = [
|
|
153
|
-
DOOM_EXTENSION,
|
|
154
|
-
AMBIENT_EXTENSION_FILTER,
|
|
155
|
-
...DISABLED_PI_BUILTINS,
|
|
156
|
-
...stringList(current[EXTENSIONS_KEY]).filter((value) => !isManagedExtension(value))
|
|
157
|
-
];
|
|
158
|
-
const themes = [theme, ...stringList(current[THEMES_KEY]).filter((value) => value !== theme && !isLegacyDoomTheme(value, update.themeName))];
|
|
159
|
-
return {
|
|
160
|
-
...current,
|
|
161
|
-
[QUIET_STARTUP_KEY]: true,
|
|
162
|
-
[EXTENSIONS_KEY]: extensions,
|
|
163
|
-
[THEMES_KEY]: themes,
|
|
164
|
-
[THEME_KEY]: typeof current[THEME_KEY] === "string" ? current[THEME_KEY] : update.themeName
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
function readPiSettings(agentDirectory) {
|
|
168
|
-
const settings = readJson(piSettingsPath(agentDirectory));
|
|
169
|
-
return isRecord(settings) ? settings : {};
|
|
170
|
-
}
|
|
171
|
-
function serializePiSettings(settings) {
|
|
172
|
-
return `${JSON.stringify(settings, null, 2)}\n`;
|
|
173
|
-
}
|
|
174
|
-
/** Merges the Doom-owned keys into Pi's user settings file. */
|
|
175
|
-
function writePiSettings(agentDirectory, update) {
|
|
176
|
-
const settingsPath = piSettingsPath(agentDirectory);
|
|
177
|
-
writeFileAtomic(settingsPath, serializePiSettings(mergePiSettings(readPiSettings(agentDirectory), agentDirectory, update)));
|
|
178
|
-
return settingsPath;
|
|
179
|
-
}
|
|
180
|
-
/** Whether a directory is the dispatcher package `po init` generated, by its manifest ownership marker. */
|
|
181
|
-
function isPoDispatcherPackage(directory) {
|
|
182
|
-
try {
|
|
183
|
-
const parsed = JSON.parse(fs.readFileSync(path.join(directory, PACKAGE_MANIFEST), "utf8"));
|
|
184
|
-
return parsed.name === "@agimon-ai/po" && parsed.poDispatcher === 1;
|
|
185
|
-
} catch {
|
|
186
|
-
return false;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
function poDispatcherDirectory(agentDirectory) {
|
|
190
|
-
const directory = path.join(agentDirectory, ...DOOM_PACKAGE_NAME.split("/"));
|
|
191
|
-
return fs.lstatSync(directory, { throwIfNoEntry: false })?.isDirectory() && isPoDispatcherPackage(directory) ? directory : void 0;
|
|
192
|
-
}
|
|
193
|
-
function isOtherAgimonDistribution(value) {
|
|
194
|
-
const normalized = value.startsWith(NPM_SOURCE_PREFIX) ? value.slice(4) : value;
|
|
195
|
-
return normalized.startsWith(AGIMON_SCOPE_PREFIX) && normalized !== DOOM_EXTENSION;
|
|
196
|
-
}
|
|
197
|
-
function isSharedFilter(value) {
|
|
198
|
-
return value === "!extensions/**" || DISABLED_PI_BUILTINS.includes(value);
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Removes the entries `po init` and older `po sync` runs added to Pi's user agent directory.
|
|
202
|
-
*
|
|
203
|
-
* The shared ambient and built-in filters stay while another `@agimon-ai/*` distribution (doompi)
|
|
204
|
-
* is still registered, because it relies on the same filters. Unrelated settings are preserved,
|
|
205
|
-
* and nothing is written when no Po entry is present. Returns the paths and entries it removed.
|
|
206
|
-
*/
|
|
207
|
-
function removePoPiSettings(agentDirectory) {
|
|
208
|
-
const removed = [];
|
|
209
|
-
const settingsPath = piSettingsPath(agentDirectory);
|
|
210
|
-
const themePath = path.join(piThemeDirectory(agentDirectory), PO_THEME_FILE);
|
|
211
|
-
const current = readPiSettings(agentDirectory);
|
|
212
|
-
const extensions = stringList(current[EXTENSIONS_KEY]);
|
|
213
|
-
const themes = stringList(current[THEMES_KEY]);
|
|
214
|
-
const isPoTheme = (value) => path.resolve(agentDirectory, value) === themePath;
|
|
215
|
-
if (extensions.includes(DOOM_EXTENSION) || themes.some(isPoTheme) || current[THEME_KEY] === PO_THEME_NAME) {
|
|
216
|
-
const keepFilters = extensions.some(isOtherAgimonDistribution);
|
|
217
|
-
const next = { ...current };
|
|
218
|
-
if (Array.isArray(current[EXTENSIONS_KEY])) next[EXTENSIONS_KEY] = current[EXTENSIONS_KEY].filter((value) => value !== DOOM_EXTENSION && (keepFilters || typeof value !== "string" || !isSharedFilter(value)));
|
|
219
|
-
if (Array.isArray(current[THEMES_KEY])) next[THEMES_KEY] = current[THEMES_KEY].filter((value) => typeof value !== "string" || !isPoTheme(value));
|
|
220
|
-
if (current[THEME_KEY] === PO_THEME_NAME) delete next[THEME_KEY];
|
|
221
|
-
writeFileAtomic(settingsPath, serializePiSettings(next));
|
|
222
|
-
removed.push(settingsPath);
|
|
223
|
-
}
|
|
224
|
-
if (fs.lstatSync(themePath, { throwIfNoEntry: false })?.isFile()) {
|
|
225
|
-
fs.rmSync(themePath, { force: true });
|
|
226
|
-
removed.push(themePath);
|
|
227
|
-
}
|
|
228
|
-
const dispatcher = poDispatcherDirectory(agentDirectory);
|
|
229
|
-
if (dispatcher) {
|
|
230
|
-
fs.rmSync(dispatcher, {
|
|
231
|
-
recursive: true,
|
|
232
|
-
force: true
|
|
233
|
-
});
|
|
234
|
-
removed.push(dispatcher);
|
|
235
|
-
}
|
|
236
|
-
return removed;
|
|
237
|
-
}
|
|
238
|
-
//#endregion
|
|
239
|
-
export { AMBIENT_EXTENSION_FILTER, DISABLED_PI_BUILTINS, DOOM_EXTENSION, PO_DISPATCHER_MARKER, PO_HOME_ENV, hasRepositoryDoomDirectory, isPoDispatcherPackage, mergePiSettings, modelConfigDirectory, modelSettingsDirectory, piAgentDirectory, piSettingsPath, piThemeDirectory, poHomeDirectory, poRuntimeDirectory, readPiSettings, removePoPiSettings, serializePiSettings, writePiSettings };
|
|
240
|
-
|
|
241
|
-
//# sourceMappingURL=runtimePiSettings.mjs.map
|
|
1
|
+
import { AGENT_DIRECTORY, AMBIENT_EXTENSION_FILTER, AUTH_FILE, DISABLED_PI_BUILTINS, MODELS_FILE, PI_HOME_DIRECTORY, PO_DISPATCHER_MARKER, PO_EXTENSION, PO_HOME_DIRECTORY, PO_HOME_ENV, PO_THEME_FILE, hasRepositoryPoDirectoryAsync, isPoDispatcherManifest, isPoDispatcherPackageAsync, isPoHomeMarker, mergePiSettings, modelConfigDirectoryAsync, modelSettingsDirectoryAsync, normalizePiSettings, piAgentDirectory, piSettingsPath, piThemeDirectory, poDispatcherPath, poHomeDirectory, poRuntimeDirectory, poThemePath, prunePoPiSettings, readPiSettingsAsync, removePoPiSettingsAsync, serializePiSettings, writePiSettingsAsync } from "./src/services/piSettings/core.mjs";
|
|
2
|
+
import { hasRepositoryPoDirectory, isPoDispatcherPackage, modelConfigDirectory, modelSettingsDirectory, readPiSettings, removePoPiSettings, writePiSettings } from "./src/services/piSettings/sync.mjs";
|
|
3
|
+
export { AGENT_DIRECTORY, AMBIENT_EXTENSION_FILTER, AUTH_FILE, DISABLED_PI_BUILTINS, MODELS_FILE, PI_HOME_DIRECTORY, PO_DISPATCHER_MARKER, PO_EXTENSION, PO_HOME_DIRECTORY, PO_HOME_ENV, PO_THEME_FILE, hasRepositoryPoDirectory, hasRepositoryPoDirectoryAsync, isPoDispatcherManifest, isPoDispatcherPackage, isPoDispatcherPackageAsync, isPoHomeMarker, mergePiSettings, modelConfigDirectory, modelConfigDirectoryAsync, modelSettingsDirectory, modelSettingsDirectoryAsync, normalizePiSettings, piAgentDirectory, piSettingsPath, piThemeDirectory, poDispatcherPath, poHomeDirectory, poRuntimeDirectory, poThemePath, prunePoPiSettings, readPiSettings, readPiSettingsAsync, removePoPiSettings, removePoPiSettingsAsync, serializePiSettings, writePiSettings, writePiSettingsAsync };
|
package/dist/runtimeProtocol.cjs
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
let typebox = require("typebox");
|
|
3
3
|
let typebox_value = require("typebox/value");
|
|
4
4
|
//#region src/schemas/protocol.ts
|
|
5
|
-
const
|
|
5
|
+
const PO_PROTOCOL_ERROR_CODE = {
|
|
6
6
|
aborted: "ABORTED",
|
|
7
7
|
invalidMessage: "INVALID_MESSAGE",
|
|
8
8
|
providerError: "PROVIDER_ERROR",
|
|
@@ -15,23 +15,23 @@ const ProtocolErrorSchema = typebox.Type.Object({
|
|
|
15
15
|
message: typebox.Type.String({ minLength: 1 }),
|
|
16
16
|
retryable: typebox.Type.Optional(typebox.Type.Boolean())
|
|
17
17
|
}, { additionalProperties: false });
|
|
18
|
-
var
|
|
18
|
+
var PoProtocolError = class extends Error {
|
|
19
19
|
code;
|
|
20
20
|
retryable;
|
|
21
21
|
constructor(payload) {
|
|
22
22
|
super(payload.message);
|
|
23
|
-
this.name = "
|
|
23
|
+
this.name = "PoProtocolError";
|
|
24
24
|
this.code = payload.code;
|
|
25
25
|
this.retryable = payload.retryable ?? false;
|
|
26
26
|
}
|
|
27
27
|
};
|
|
28
|
-
var
|
|
28
|
+
var PoProtocolValidationError = class extends PoProtocolError {
|
|
29
29
|
constructor(channel, details) {
|
|
30
30
|
super({
|
|
31
|
-
code:
|
|
31
|
+
code: PO_PROTOCOL_ERROR_CODE.invalidMessage,
|
|
32
32
|
message: `Invalid message on ${channel}: ${details}`
|
|
33
33
|
});
|
|
34
|
-
this.name = "
|
|
34
|
+
this.name = "PoProtocolValidationError";
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
const EnvelopeBaseSchema = typebox.Type.Object({
|
|
@@ -50,8 +50,8 @@ function envelopeSchema(payload) {
|
|
|
50
50
|
}, { additionalProperties: false });
|
|
51
51
|
}
|
|
52
52
|
function protocolName(channel) {
|
|
53
|
-
const match = /^(
|
|
54
|
-
if (!match) throw new Error(`Invalid
|
|
53
|
+
const match = /^(po:[^:]+(?::[^:]+)*):v\d+:/.exec(channel);
|
|
54
|
+
if (!match) throw new Error(`Invalid Po protocol channel: ${channel}`);
|
|
55
55
|
return match[1];
|
|
56
56
|
}
|
|
57
57
|
/** Up to three field-level problems, e.g. `/ must have required properties path`. */
|
|
@@ -62,16 +62,16 @@ function validationDetails(schema, value) {
|
|
|
62
62
|
}).join("; ");
|
|
63
63
|
}
|
|
64
64
|
function assertValid(channel, schema, value) {
|
|
65
|
-
if (!(0, typebox_value.Check)(schema, value)) throw new
|
|
65
|
+
if (!(0, typebox_value.Check)(schema, value)) throw new PoProtocolValidationError(channel, validationDetails(schema, value));
|
|
66
66
|
}
|
|
67
67
|
function asProtocolError(error) {
|
|
68
|
-
if (error instanceof
|
|
68
|
+
if (error instanceof PoProtocolError) return {
|
|
69
69
|
code: error.code,
|
|
70
70
|
message: error.message,
|
|
71
71
|
retryable: error.retryable
|
|
72
72
|
};
|
|
73
73
|
return {
|
|
74
|
-
code:
|
|
74
|
+
code: PO_PROTOCOL_ERROR_CODE.providerError,
|
|
75
75
|
message: error instanceof Error ? error.message : String(error)
|
|
76
76
|
};
|
|
77
77
|
}
|
|
@@ -168,16 +168,16 @@ function createProtocolRuntime(options) {
|
|
|
168
168
|
if (envelope.sessionId !== options.sessionId) return;
|
|
169
169
|
if (envelope.correlationId !== messageId) return;
|
|
170
170
|
if (requestOptions.expectedSource && envelope.source !== requestOptions.expectedSource) return;
|
|
171
|
-
finish(() => reject(new
|
|
171
|
+
finish(() => reject(new PoProtocolError(envelope.payload)));
|
|
172
172
|
}));
|
|
173
|
-
const timer = setTimeout(() => finish(() => reject(new
|
|
174
|
-
code:
|
|
173
|
+
const timer = setTimeout(() => finish(() => reject(new PoProtocolError({
|
|
174
|
+
code: PO_PROTOCOL_ERROR_CODE.timeout,
|
|
175
175
|
message: `Timed out waiting for ${definition.responseKind}`
|
|
176
176
|
}))), requestOptions.timeoutMs ?? timeoutDefault);
|
|
177
177
|
cleanups.push(() => clearTimeout(timer));
|
|
178
178
|
if (requestOptions.signal) {
|
|
179
|
-
const abort = () => finish(() => reject(new
|
|
180
|
-
code:
|
|
179
|
+
const abort = () => finish(() => reject(new PoProtocolError({
|
|
180
|
+
code: PO_PROTOCOL_ERROR_CODE.aborted,
|
|
181
181
|
message: "Request aborted"
|
|
182
182
|
})));
|
|
183
183
|
requestOptions.signal.addEventListener("abort", abort, { once: true });
|
|
@@ -215,9 +215,9 @@ function createProtocolRuntime(options) {
|
|
|
215
215
|
};
|
|
216
216
|
}
|
|
217
217
|
//#endregion
|
|
218
|
-
exports.
|
|
219
|
-
exports.
|
|
220
|
-
exports.
|
|
218
|
+
exports.PO_PROTOCOL_ERROR_CODE = PO_PROTOCOL_ERROR_CODE;
|
|
219
|
+
exports.PoProtocolError = PoProtocolError;
|
|
220
|
+
exports.PoProtocolValidationError = PoProtocolValidationError;
|
|
221
221
|
exports.ProtocolErrorSchema = ProtocolErrorSchema;
|
|
222
222
|
exports.createProtocolRuntime = createProtocolRuntime;
|
|
223
223
|
exports.defineJob = defineJob;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeProtocol.cjs","names":["Type","Errors","Check"],"sources":["../src/schemas/protocol.ts"],"sourcesContent":["import { type Static, type TSchema, Type } from 'typebox';\nimport { Check, Errors } from 'typebox/value';\n\nexport const DOOM_PROTOCOL_ERROR_CODE = {\n aborted: 'ABORTED',\n invalidMessage: 'INVALID_MESSAGE',\n providerError: 'PROVIDER_ERROR',\n timeout: 'TIMEOUT',\n} as const;\n\nconst DEFAULT_PROTOCOL_TIMEOUT_MS = 5_000;\nconst DEFAULT_DUPLICATE_WINDOW = 256;\n\nexport interface EventBusLike {\n emit(event: string, data: unknown): void;\n on(event: string, handler: (data: unknown) => void): () => void;\n}\n\nexport const ProtocolErrorSchema = Type.Object(\n {\n code: Type.String({ minLength: 1 }),\n message: Type.String({ minLength: 1 }),\n retryable: Type.Optional(Type.Boolean()),\n },\n { additionalProperties: false },\n);\n\nexport type ProtocolErrorPayload = Static<typeof ProtocolErrorSchema>;\n\nexport class DoomProtocolError extends Error {\n readonly code: string;\n readonly retryable: boolean;\n\n constructor(payload: ProtocolErrorPayload) {\n super(payload.message);\n this.name = 'DoomProtocolError';\n this.code = payload.code;\n this.retryable = payload.retryable ?? false;\n }\n}\n\nexport class DoomProtocolValidationError extends DoomProtocolError {\n constructor(channel: string, details: string) {\n super({ code: DOOM_PROTOCOL_ERROR_CODE.invalidMessage, message: `Invalid message on ${channel}: ${details}` });\n this.name = 'DoomProtocolValidationError';\n }\n}\n\nexport interface ProtocolIdentity {\n source: string;\n sessionId: string;\n}\n\ninterface ProtocolEnvelope<TPayload> extends ProtocolIdentity {\n protocol: string;\n version: 1;\n kind: string;\n messageId: string;\n correlationId?: string;\n payload: TPayload;\n}\n\nexport interface NotificationDefinition<TPayload extends TSchema> {\n channel: string;\n kind: string;\n payload: TPayload;\n}\n\nexport interface RequestReplyDefinition<TRequest extends TSchema, TResponse extends TSchema> {\n requestChannel: string;\n responseChannel: string;\n errorChannel: string;\n requestKind: string;\n responseKind: string;\n request: TRequest;\n response: TResponse;\n}\n\nexport interface RequestOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n /** Ignore correlated replies from any source except this exact provider. */\n expectedSource?: string;\n}\n\nexport interface ProtocolRuntimeOptions extends ProtocolIdentity {\n bus: EventBusLike;\n defaultTimeoutMs?: number;\n createMessageId?: () => string;\n duplicateWindow?: number;\n}\n\nexport interface ProtocolRuntime {\n notify<TPayload extends TSchema>(definition: NotificationDefinition<TPayload>, payload: Static<TPayload>): void;\n onNotification<TPayload extends TSchema>(\n definition: NotificationDefinition<TPayload>,\n handler: (payload: Static<TPayload>, identity: ProtocolIdentity) => void | Promise<void>,\n ): () => void;\n request<TRequest extends TSchema, TResponse extends TSchema>(\n definition: RequestReplyDefinition<TRequest, TResponse>,\n payload: Static<TRequest>,\n options?: RequestOptions,\n ): Promise<Static<TResponse>>;\n provide<TRequest extends TSchema, TResponse extends TSchema>(\n definition: RequestReplyDefinition<TRequest, TResponse>,\n handler: (payload: Static<TRequest>, identity: ProtocolIdentity) => Static<TResponse> | Promise<Static<TResponse>>,\n ): () => void;\n}\n\nconst EnvelopeBaseSchema = Type.Object(\n {\n protocol: Type.String({ minLength: 1 }),\n version: Type.Literal(1),\n kind: Type.String({ minLength: 1 }),\n messageId: Type.String({ minLength: 1 }),\n correlationId: Type.Optional(Type.String({ minLength: 1 })),\n source: Type.String({ minLength: 1 }),\n sessionId: Type.String({ minLength: 1 }),\n },\n { additionalProperties: false },\n);\n\nfunction envelopeSchema<TPayload extends TSchema>(payload: TPayload) {\n return Type.Object({ ...EnvelopeBaseSchema.properties, payload }, { additionalProperties: false });\n}\n\nfunction protocolName(channel: string): string {\n const match = /^(doom:[^:]+(?::[^:]+)*):v\\d+:/.exec(channel);\n if (!match) throw new Error(`Invalid Doom protocol channel: ${channel}`);\n return match[1];\n}\n\n/** Up to three field-level problems, e.g. `/ must have required properties path`. */\nexport function validationDetails(schema: TSchema, value: unknown): string {\n return (\n Errors(schema, value)\n // Each extra key also yields a bare `schema is false`; the additionalProperties entry names them instead.\n .filter((error) => !(error.keyword === 'boolean' && error.schemaPath.endsWith('/additionalProperties')))\n .slice(0, 3)\n .map((error) => {\n const extra =\n error.keyword === 'additionalProperties'\n ? `: ${((error.params as { additionalProperties?: string[] }).additionalProperties ?? []).join(', ')}`\n : '';\n return `${error.instancePath || '/'} ${error.message}${extra}`;\n })\n .join('; ')\n );\n}\n\nfunction assertValid<TSchemaValue extends TSchema>(\n channel: string,\n schema: TSchemaValue,\n value: unknown,\n): asserts value is Static<TSchemaValue> {\n if (!Check(schema, value)) throw new DoomProtocolValidationError(channel, validationDetails(schema, value));\n}\n\nfunction asProtocolError(error: unknown): ProtocolErrorPayload {\n if (error instanceof DoomProtocolError) {\n return { code: error.code, message: error.message, retryable: error.retryable };\n }\n return {\n code: DOOM_PROTOCOL_ERROR_CODE.providerError,\n message: error instanceof Error ? error.message : String(error),\n };\n}\n\nexport function defineNotification<TPayload extends TSchema>(definition: {\n channel: `doom:${string}:${string}:v1:${string}`;\n kind: string;\n payload: TPayload;\n}): NotificationDefinition<TPayload> {\n protocolName(definition.channel);\n return definition;\n}\n\nexport function defineRequestReply<TRequest extends TSchema, TResponse extends TSchema>(definition: {\n channels: {\n request: `doom:${string}:${string}:v1:${string}`;\n response: `doom:${string}:${string}:v1:${string}`;\n error: `doom:${string}:${string}:v1:${string}`;\n };\n kinds: { request: string; response: string };\n request: TRequest;\n response: TResponse;\n}): RequestReplyDefinition<TRequest, TResponse> {\n const protocol = protocolName(definition.channels.request);\n for (const channel of [definition.channels.response, definition.channels.error]) {\n if (protocolName(channel) !== protocol) throw new Error('Request/reply channels must share one protocol');\n }\n return {\n requestChannel: definition.channels.request,\n responseChannel: definition.channels.response,\n errorChannel: definition.channels.error,\n requestKind: definition.kinds.request,\n responseKind: definition.kinds.response,\n request: definition.request,\n response: definition.response,\n };\n}\n\nexport const defineJob = defineRequestReply;\n\nexport function createProtocolRuntime(options: ProtocolRuntimeOptions): ProtocolRuntime {\n const timeoutDefault = options.defaultTimeoutMs ?? DEFAULT_PROTOCOL_TIMEOUT_MS;\n const duplicateWindow = options.duplicateWindow ?? DEFAULT_DUPLICATE_WINDOW;\n const createMessageId = options.createMessageId ?? (() => `${options.source}:${crypto.randomUUID()}`);\n\n const rethrowAsync = (error: unknown): void => {\n queueMicrotask(() => {\n throw error instanceof Error ? error : new Error(String(error));\n });\n };\n\n function duplicateGuard(): (messageId: string) => boolean {\n const handled = new Set<string>();\n return (messageId) => {\n if (handled.has(messageId)) return false;\n handled.add(messageId);\n if (handled.size > duplicateWindow) handled.delete(handled.values().next().value as string);\n return true;\n };\n }\n\n function base(channel: string, kind: string, messageId = createMessageId(), correlationId?: string) {\n return {\n protocol: protocolName(channel),\n version: 1 as const,\n kind,\n messageId,\n ...(correlationId ? { correlationId } : {}),\n source: options.source,\n sessionId: options.sessionId,\n };\n }\n\n return {\n notify<TPayload extends TSchema>(definition: NotificationDefinition<TPayload>, payload: Static<TPayload>) {\n assertValid(definition.channel, definition.payload, payload);\n options.bus.emit(definition.channel, { ...base(definition.channel, definition.kind), payload });\n },\n\n onNotification<TPayload extends TSchema>(\n definition: NotificationDefinition<TPayload>,\n handler: (payload: Static<TPayload>, identity: ProtocolIdentity) => void | Promise<void>,\n ) {\n const schema = envelopeSchema(definition.payload);\n const remember = duplicateGuard();\n return options.bus.on(definition.channel, (message) => {\n assertValid(definition.channel, schema, message);\n const envelope = message as unknown as ProtocolEnvelope<Static<TPayload>>;\n if (envelope.sessionId !== options.sessionId) return;\n if (!remember(envelope.messageId)) return;\n void Promise.resolve(handler(envelope.payload, envelope)).catch(rethrowAsync);\n });\n },\n\n request<TRequest extends TSchema, TResponse extends TSchema>(\n definition: RequestReplyDefinition<TRequest, TResponse>,\n payload: Static<TRequest>,\n requestOptions: RequestOptions = {},\n ) {\n assertValid(definition.requestChannel, definition.request, payload);\n const messageId = createMessageId();\n const responseSchema = envelopeSchema(definition.response);\n const errorSchema = envelopeSchema(ProtocolErrorSchema);\n return new Promise<Static<typeof definition.response>>((resolve, reject) => {\n let settled = false;\n const cleanups: Array<() => void> = [];\n const finish = (action: () => void) => {\n if (settled) return;\n settled = true;\n for (const cleanup of cleanups.splice(0)) cleanup();\n action();\n };\n cleanups.push(\n options.bus.on(definition.responseChannel, (message) => {\n assertValid(definition.responseChannel, responseSchema, message);\n const envelope = message as unknown as ProtocolEnvelope<Static<TResponse>>;\n if (envelope.sessionId !== options.sessionId) return;\n if (envelope.correlationId !== messageId) return;\n if (requestOptions.expectedSource && envelope.source !== requestOptions.expectedSource) return;\n finish(() => resolve(envelope.payload));\n }),\n options.bus.on(definition.errorChannel, (message) => {\n assertValid(definition.errorChannel, errorSchema, message);\n const envelope = message as unknown as ProtocolEnvelope<ProtocolErrorPayload>;\n if (envelope.sessionId !== options.sessionId) return;\n if (envelope.correlationId !== messageId) return;\n if (requestOptions.expectedSource && envelope.source !== requestOptions.expectedSource) return;\n finish(() => reject(new DoomProtocolError(envelope.payload)));\n }),\n );\n const timer = setTimeout(\n () =>\n finish(() =>\n reject(\n new DoomProtocolError({\n code: DOOM_PROTOCOL_ERROR_CODE.timeout,\n message: `Timed out waiting for ${definition.responseKind}`,\n }),\n ),\n ),\n requestOptions.timeoutMs ?? timeoutDefault,\n );\n cleanups.push(() => clearTimeout(timer));\n if (requestOptions.signal) {\n const abort = () =>\n finish(() =>\n reject(new DoomProtocolError({ code: DOOM_PROTOCOL_ERROR_CODE.aborted, message: 'Request aborted' })),\n );\n requestOptions.signal.addEventListener('abort', abort, { once: true });\n cleanups.push(() => requestOptions.signal?.removeEventListener('abort', abort));\n if (requestOptions.signal.aborted) return abort();\n }\n options.bus.emit(definition.requestChannel, {\n ...base(definition.requestChannel, definition.requestKind, messageId),\n payload,\n });\n });\n },\n\n provide<TRequest extends TSchema, TResponse extends TSchema>(\n definition: RequestReplyDefinition<TRequest, TResponse>,\n handler: (\n payload: Static<TRequest>,\n identity: ProtocolIdentity,\n ) => Static<TResponse> | Promise<Static<TResponse>>,\n ) {\n const requestSchema = envelopeSchema(definition.request);\n const remember = duplicateGuard();\n return options.bus.on(definition.requestChannel, (message) => {\n assertValid(definition.requestChannel, requestSchema, message);\n const envelope = message as unknown as ProtocolEnvelope<Static<TRequest>>;\n if (envelope.sessionId !== options.sessionId) return;\n if (!remember(envelope.messageId)) return;\n void Promise.resolve()\n .then(() => handler(envelope.payload, envelope))\n .then(\n (payload) => {\n assertValid(definition.responseChannel, definition.response, payload);\n options.bus.emit(definition.responseChannel, {\n ...base(definition.responseChannel, definition.responseKind, createMessageId(), envelope.messageId),\n payload,\n });\n },\n (error) => {\n options.bus.emit(definition.errorChannel, {\n ...base(definition.errorChannel, 'error', createMessageId(), envelope.messageId),\n payload: asProtocolError(error),\n });\n },\n );\n });\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtimeProtocol.cjs","names":["Type","Errors","Check"],"sources":["../src/schemas/protocol.ts"],"sourcesContent":["import { type Static, type TSchema, Type } from 'typebox';\nimport { Check, Errors } from 'typebox/value';\n\nexport const PO_PROTOCOL_ERROR_CODE = {\n aborted: 'ABORTED',\n invalidMessage: 'INVALID_MESSAGE',\n providerError: 'PROVIDER_ERROR',\n timeout: 'TIMEOUT',\n} as const;\n\nconst DEFAULT_PROTOCOL_TIMEOUT_MS = 5_000;\nconst DEFAULT_DUPLICATE_WINDOW = 256;\n\nexport interface EventBusLike {\n emit(event: string, data: unknown): void;\n on(event: string, handler: (data: unknown) => void): () => void;\n}\n\nexport const ProtocolErrorSchema = Type.Object(\n {\n code: Type.String({ minLength: 1 }),\n message: Type.String({ minLength: 1 }),\n retryable: Type.Optional(Type.Boolean()),\n },\n { additionalProperties: false },\n);\n\nexport type ProtocolErrorPayload = Static<typeof ProtocolErrorSchema>;\n\nexport class PoProtocolError extends Error {\n readonly code: string;\n readonly retryable: boolean;\n\n constructor(payload: ProtocolErrorPayload) {\n super(payload.message);\n this.name = 'PoProtocolError';\n this.code = payload.code;\n this.retryable = payload.retryable ?? false;\n }\n}\n\nexport class PoProtocolValidationError extends PoProtocolError {\n constructor(channel: string, details: string) {\n super({ code: PO_PROTOCOL_ERROR_CODE.invalidMessage, message: `Invalid message on ${channel}: ${details}` });\n this.name = 'PoProtocolValidationError';\n }\n}\n\nexport interface ProtocolIdentity {\n source: string;\n sessionId: string;\n}\n\ninterface ProtocolEnvelope<TPayload> extends ProtocolIdentity {\n protocol: string;\n version: 1;\n kind: string;\n messageId: string;\n correlationId?: string;\n payload: TPayload;\n}\n\nexport interface NotificationDefinition<TPayload extends TSchema> {\n channel: string;\n kind: string;\n payload: TPayload;\n}\n\nexport interface RequestReplyDefinition<TRequest extends TSchema, TResponse extends TSchema> {\n requestChannel: string;\n responseChannel: string;\n errorChannel: string;\n requestKind: string;\n responseKind: string;\n request: TRequest;\n response: TResponse;\n}\n\nexport interface RequestOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n /** Ignore correlated replies from any source except this exact provider. */\n expectedSource?: string;\n}\n\nexport interface ProtocolRuntimeOptions extends ProtocolIdentity {\n bus: EventBusLike;\n defaultTimeoutMs?: number;\n createMessageId?: () => string;\n duplicateWindow?: number;\n}\n\nexport interface ProtocolRuntime {\n notify<TPayload extends TSchema>(definition: NotificationDefinition<TPayload>, payload: Static<TPayload>): void;\n onNotification<TPayload extends TSchema>(\n definition: NotificationDefinition<TPayload>,\n handler: (payload: Static<TPayload>, identity: ProtocolIdentity) => void | Promise<void>,\n ): () => void;\n request<TRequest extends TSchema, TResponse extends TSchema>(\n definition: RequestReplyDefinition<TRequest, TResponse>,\n payload: Static<TRequest>,\n options?: RequestOptions,\n ): Promise<Static<TResponse>>;\n provide<TRequest extends TSchema, TResponse extends TSchema>(\n definition: RequestReplyDefinition<TRequest, TResponse>,\n handler: (payload: Static<TRequest>, identity: ProtocolIdentity) => Static<TResponse> | Promise<Static<TResponse>>,\n ): () => void;\n}\n\nconst EnvelopeBaseSchema = Type.Object(\n {\n protocol: Type.String({ minLength: 1 }),\n version: Type.Literal(1),\n kind: Type.String({ minLength: 1 }),\n messageId: Type.String({ minLength: 1 }),\n correlationId: Type.Optional(Type.String({ minLength: 1 })),\n source: Type.String({ minLength: 1 }),\n sessionId: Type.String({ minLength: 1 }),\n },\n { additionalProperties: false },\n);\n\nfunction envelopeSchema<TPayload extends TSchema>(payload: TPayload) {\n return Type.Object({ ...EnvelopeBaseSchema.properties, payload }, { additionalProperties: false });\n}\n\nfunction protocolName(channel: string): string {\n const match = /^(po:[^:]+(?::[^:]+)*):v\\d+:/.exec(channel);\n if (!match) throw new Error(`Invalid Po protocol channel: ${channel}`);\n return match[1];\n}\n\n/** Up to three field-level problems, e.g. `/ must have required properties path`. */\nexport function validationDetails(schema: TSchema, value: unknown): string {\n return (\n Errors(schema, value)\n // Each extra key also yields a bare `schema is false`; the additionalProperties entry names them instead.\n .filter((error) => !(error.keyword === 'boolean' && error.schemaPath.endsWith('/additionalProperties')))\n .slice(0, 3)\n .map((error) => {\n const extra =\n error.keyword === 'additionalProperties'\n ? `: ${((error.params as { additionalProperties?: string[] }).additionalProperties ?? []).join(', ')}`\n : '';\n return `${error.instancePath || '/'} ${error.message}${extra}`;\n })\n .join('; ')\n );\n}\n\nfunction assertValid<TSchemaValue extends TSchema>(\n channel: string,\n schema: TSchemaValue,\n value: unknown,\n): asserts value is Static<TSchemaValue> {\n if (!Check(schema, value)) throw new PoProtocolValidationError(channel, validationDetails(schema, value));\n}\n\nfunction asProtocolError(error: unknown): ProtocolErrorPayload {\n if (error instanceof PoProtocolError) {\n return { code: error.code, message: error.message, retryable: error.retryable };\n }\n return {\n code: PO_PROTOCOL_ERROR_CODE.providerError,\n message: error instanceof Error ? error.message : String(error),\n };\n}\n\nexport function defineNotification<TPayload extends TSchema>(definition: {\n channel: `po:${string}:${string}:v1:${string}`;\n kind: string;\n payload: TPayload;\n}): NotificationDefinition<TPayload> {\n protocolName(definition.channel);\n return definition;\n}\n\nexport function defineRequestReply<TRequest extends TSchema, TResponse extends TSchema>(definition: {\n channels: {\n request: `po:${string}:${string}:v1:${string}`;\n response: `po:${string}:${string}:v1:${string}`;\n error: `po:${string}:${string}:v1:${string}`;\n };\n kinds: { request: string; response: string };\n request: TRequest;\n response: TResponse;\n}): RequestReplyDefinition<TRequest, TResponse> {\n const protocol = protocolName(definition.channels.request);\n for (const channel of [definition.channels.response, definition.channels.error]) {\n if (protocolName(channel) !== protocol) throw new Error('Request/reply channels must share one protocol');\n }\n return {\n requestChannel: definition.channels.request,\n responseChannel: definition.channels.response,\n errorChannel: definition.channels.error,\n requestKind: definition.kinds.request,\n responseKind: definition.kinds.response,\n request: definition.request,\n response: definition.response,\n };\n}\n\nexport const defineJob = defineRequestReply;\n\nexport function createProtocolRuntime(options: ProtocolRuntimeOptions): ProtocolRuntime {\n const timeoutDefault = options.defaultTimeoutMs ?? DEFAULT_PROTOCOL_TIMEOUT_MS;\n const duplicateWindow = options.duplicateWindow ?? DEFAULT_DUPLICATE_WINDOW;\n const createMessageId = options.createMessageId ?? (() => `${options.source}:${crypto.randomUUID()}`);\n\n const rethrowAsync = (error: unknown): void => {\n queueMicrotask(() => {\n throw error instanceof Error ? error : new Error(String(error));\n });\n };\n\n function duplicateGuard(): (messageId: string) => boolean {\n const handled = new Set<string>();\n return (messageId) => {\n if (handled.has(messageId)) return false;\n handled.add(messageId);\n if (handled.size > duplicateWindow) handled.delete(handled.values().next().value as string);\n return true;\n };\n }\n\n function base(channel: string, kind: string, messageId = createMessageId(), correlationId?: string) {\n return {\n protocol: protocolName(channel),\n version: 1 as const,\n kind,\n messageId,\n ...(correlationId ? { correlationId } : {}),\n source: options.source,\n sessionId: options.sessionId,\n };\n }\n\n return {\n notify<TPayload extends TSchema>(definition: NotificationDefinition<TPayload>, payload: Static<TPayload>) {\n assertValid(definition.channel, definition.payload, payload);\n options.bus.emit(definition.channel, { ...base(definition.channel, definition.kind), payload });\n },\n\n onNotification<TPayload extends TSchema>(\n definition: NotificationDefinition<TPayload>,\n handler: (payload: Static<TPayload>, identity: ProtocolIdentity) => void | Promise<void>,\n ) {\n const schema = envelopeSchema(definition.payload);\n const remember = duplicateGuard();\n return options.bus.on(definition.channel, (message) => {\n assertValid(definition.channel, schema, message);\n const envelope = message as unknown as ProtocolEnvelope<Static<TPayload>>;\n if (envelope.sessionId !== options.sessionId) return;\n if (!remember(envelope.messageId)) return;\n void Promise.resolve(handler(envelope.payload, envelope)).catch(rethrowAsync);\n });\n },\n\n request<TRequest extends TSchema, TResponse extends TSchema>(\n definition: RequestReplyDefinition<TRequest, TResponse>,\n payload: Static<TRequest>,\n requestOptions: RequestOptions = {},\n ) {\n assertValid(definition.requestChannel, definition.request, payload);\n const messageId = createMessageId();\n const responseSchema = envelopeSchema(definition.response);\n const errorSchema = envelopeSchema(ProtocolErrorSchema);\n return new Promise<Static<typeof definition.response>>((resolve, reject) => {\n let settled = false;\n const cleanups: Array<() => void> = [];\n const finish = (action: () => void) => {\n if (settled) return;\n settled = true;\n for (const cleanup of cleanups.splice(0)) cleanup();\n action();\n };\n cleanups.push(\n options.bus.on(definition.responseChannel, (message) => {\n assertValid(definition.responseChannel, responseSchema, message);\n const envelope = message as unknown as ProtocolEnvelope<Static<TResponse>>;\n if (envelope.sessionId !== options.sessionId) return;\n if (envelope.correlationId !== messageId) return;\n if (requestOptions.expectedSource && envelope.source !== requestOptions.expectedSource) return;\n finish(() => resolve(envelope.payload));\n }),\n options.bus.on(definition.errorChannel, (message) => {\n assertValid(definition.errorChannel, errorSchema, message);\n const envelope = message as unknown as ProtocolEnvelope<ProtocolErrorPayload>;\n if (envelope.sessionId !== options.sessionId) return;\n if (envelope.correlationId !== messageId) return;\n if (requestOptions.expectedSource && envelope.source !== requestOptions.expectedSource) return;\n finish(() => reject(new PoProtocolError(envelope.payload)));\n }),\n );\n const timer = setTimeout(\n () =>\n finish(() =>\n reject(\n new PoProtocolError({\n code: PO_PROTOCOL_ERROR_CODE.timeout,\n message: `Timed out waiting for ${definition.responseKind}`,\n }),\n ),\n ),\n requestOptions.timeoutMs ?? timeoutDefault,\n );\n cleanups.push(() => clearTimeout(timer));\n if (requestOptions.signal) {\n const abort = () =>\n finish(() =>\n reject(new PoProtocolError({ code: PO_PROTOCOL_ERROR_CODE.aborted, message: 'Request aborted' })),\n );\n requestOptions.signal.addEventListener('abort', abort, { once: true });\n cleanups.push(() => requestOptions.signal?.removeEventListener('abort', abort));\n if (requestOptions.signal.aborted) return abort();\n }\n options.bus.emit(definition.requestChannel, {\n ...base(definition.requestChannel, definition.requestKind, messageId),\n payload,\n });\n });\n },\n\n provide<TRequest extends TSchema, TResponse extends TSchema>(\n definition: RequestReplyDefinition<TRequest, TResponse>,\n handler: (\n payload: Static<TRequest>,\n identity: ProtocolIdentity,\n ) => Static<TResponse> | Promise<Static<TResponse>>,\n ) {\n const requestSchema = envelopeSchema(definition.request);\n const remember = duplicateGuard();\n return options.bus.on(definition.requestChannel, (message) => {\n assertValid(definition.requestChannel, requestSchema, message);\n const envelope = message as unknown as ProtocolEnvelope<Static<TRequest>>;\n if (envelope.sessionId !== options.sessionId) return;\n if (!remember(envelope.messageId)) return;\n void Promise.resolve()\n .then(() => handler(envelope.payload, envelope))\n .then(\n (payload) => {\n assertValid(definition.responseChannel, definition.response, payload);\n options.bus.emit(definition.responseChannel, {\n ...base(definition.responseChannel, definition.responseKind, createMessageId(), envelope.messageId),\n payload,\n });\n },\n (error) => {\n options.bus.emit(definition.errorChannel, {\n ...base(definition.errorChannel, 'error', createMessageId(), envelope.messageId),\n payload: asProtocolError(error),\n });\n },\n );\n });\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Static, TSchema, Type } from "typebox";
|
|
2
2
|
//#region src/schemas/protocol.d.ts
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const PO_PROTOCOL_ERROR_CODE: {
|
|
4
4
|
readonly aborted: 'ABORTED';
|
|
5
5
|
readonly invalidMessage: 'INVALID_MESSAGE';
|
|
6
6
|
readonly providerError: 'PROVIDER_ERROR';
|
|
@@ -16,12 +16,12 @@ export declare const ProtocolErrorSchema: Type.TObject<{
|
|
|
16
16
|
retryable: Type.TOptional<Type.TBoolean>;
|
|
17
17
|
}>;
|
|
18
18
|
export type ProtocolErrorPayload = Static<typeof ProtocolErrorSchema>;
|
|
19
|
-
export declare class
|
|
19
|
+
export declare class PoProtocolError extends Error {
|
|
20
20
|
readonly code: string;
|
|
21
21
|
readonly retryable: boolean;
|
|
22
22
|
constructor(payload: ProtocolErrorPayload);
|
|
23
23
|
}
|
|
24
|
-
export declare class
|
|
24
|
+
export declare class PoProtocolValidationError extends PoProtocolError {
|
|
25
25
|
constructor(channel: string, details: string);
|
|
26
26
|
}
|
|
27
27
|
export interface ProtocolIdentity {
|
|
@@ -63,15 +63,15 @@ export interface ProtocolRuntime {
|
|
|
63
63
|
/** Up to three field-level problems, e.g. `/ must have required properties path`. */
|
|
64
64
|
export declare function validationDetails(schema: TSchema, value: unknown): string;
|
|
65
65
|
export declare function defineNotification<TPayload extends TSchema>(definition: {
|
|
66
|
-
channel: `
|
|
66
|
+
channel: `po:${string}:${string}:v1:${string}`;
|
|
67
67
|
kind: string;
|
|
68
68
|
payload: TPayload;
|
|
69
69
|
}): NotificationDefinition<TPayload>;
|
|
70
70
|
export declare function defineRequestReply<TRequest extends TSchema, TResponse extends TSchema>(definition: {
|
|
71
71
|
channels: {
|
|
72
|
-
request: `
|
|
73
|
-
response: `
|
|
74
|
-
error: `
|
|
72
|
+
request: `po:${string}:${string}:v1:${string}`;
|
|
73
|
+
response: `po:${string}:${string}:v1:${string}`;
|
|
74
|
+
error: `po:${string}:${string}:v1:${string}`;
|
|
75
75
|
};
|
|
76
76
|
kinds: {
|
|
77
77
|
request: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeProtocol.d.mts","names":[],"sources":["../src/schemas/protocol.ts"],"mappings":";;qBAGa;WACX;WACA;WACA;WACA;;iBAMe;EACf,KAAK,eAAe;EACpB,GAAG,eAAe,UAAU;;qBAGjB,qBAAmB,KAAA;;;;;YASpB,uBAAuB,cAAc;qBAEpC,
|
|
1
|
+
{"version":3,"file":"runtimeProtocol.d.mts","names":[],"sources":["../src/schemas/protocol.ts"],"mappings":";;qBAGa;WACX;WACA;WACA;WACA;;iBAMe;EACf,KAAK,eAAe;EACpB,GAAG,eAAe,UAAU;;qBAGjB,qBAAmB,KAAA;;;;;YASpB,uBAAuB,cAAc;qBAEpC,wBAAwB;WAC1B;WACA;EAET,YAAY,SAAS;;qBAQV,kCAAkC;EAC7C,YAAY,iBAAiB;;iBAMd;EACf;EACA;;iBAYe,uBAAuB,iBAAiB;EACvD;EACA;EACA,SAAS;;iBAGM,uBAAuB,iBAAiB,SAAS,kBAAkB;EAClF;EACA;EACA;EACA;EACA;EACA,SAAS;EACT,UAAU;;iBAGK;EACf,SAAS;EACT;;EAEA;;iBAGe,+BAA+B;EAC9C,KAAK;EACL;EACA;EACA;;iBAGe;EACf,OAAO,iBAAiB,SAAS,YAAY,uBAAuB,WAAW,SAAS,OAAO;EAC/F,eAAe,iBAAiB,SAC9B,YAAY,uBAAuB,WACnC,UAAU,SAAS,OAAO,WAAW,UAAU,4BAA4B;EAE7E,QAAQ,iBAAiB,SAAS,kBAAkB,SAClD,YAAY,uBAAuB,UAAU,YAC7C,SAAS,OAAO,WAChB,UAAU,iBACT,QAAQ,OAAO;EAClB,QAAQ,iBAAiB,SAAS,kBAAkB,SAClD,YAAY,uBAAuB,UAAU,YAC7C,UAAU,SAAS,OAAO,WAAW,UAAU,qBAAqB,OAAO,aAAa,QAAQ,OAAO;;;wBA4B3F,kBAAkB,QAAQ,SAAS;wBAmCnC,mBAAmB,iBAAiB,SAAS;EAC3D;EACA;EACA,SAAS;IACP,uBAAuB;wBAKX,mBAAmB,iBAAiB,SAAS,kBAAkB,SAAS;EACtF;IACE;IACA;IACA;;EAEF;IAAS;IAAiB;;EAC1B,SAAS;EACT,UAAU;IACR,uBAAuB,UAAU;qBAgBxB,kBAAS;wBAEN,sBAAsB,SAAS,yBAAyB"}
|
package/dist/runtimeProtocol.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Type } from "typebox";
|
|
2
2
|
import { Check, Errors } from "typebox/value";
|
|
3
3
|
//#region src/schemas/protocol.ts
|
|
4
|
-
const
|
|
4
|
+
const PO_PROTOCOL_ERROR_CODE = {
|
|
5
5
|
aborted: "ABORTED",
|
|
6
6
|
invalidMessage: "INVALID_MESSAGE",
|
|
7
7
|
providerError: "PROVIDER_ERROR",
|
|
@@ -14,23 +14,23 @@ const ProtocolErrorSchema = Type.Object({
|
|
|
14
14
|
message: Type.String({ minLength: 1 }),
|
|
15
15
|
retryable: Type.Optional(Type.Boolean())
|
|
16
16
|
}, { additionalProperties: false });
|
|
17
|
-
var
|
|
17
|
+
var PoProtocolError = class extends Error {
|
|
18
18
|
code;
|
|
19
19
|
retryable;
|
|
20
20
|
constructor(payload) {
|
|
21
21
|
super(payload.message);
|
|
22
|
-
this.name = "
|
|
22
|
+
this.name = "PoProtocolError";
|
|
23
23
|
this.code = payload.code;
|
|
24
24
|
this.retryable = payload.retryable ?? false;
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
|
-
var
|
|
27
|
+
var PoProtocolValidationError = class extends PoProtocolError {
|
|
28
28
|
constructor(channel, details) {
|
|
29
29
|
super({
|
|
30
|
-
code:
|
|
30
|
+
code: PO_PROTOCOL_ERROR_CODE.invalidMessage,
|
|
31
31
|
message: `Invalid message on ${channel}: ${details}`
|
|
32
32
|
});
|
|
33
|
-
this.name = "
|
|
33
|
+
this.name = "PoProtocolValidationError";
|
|
34
34
|
}
|
|
35
35
|
};
|
|
36
36
|
const EnvelopeBaseSchema = Type.Object({
|
|
@@ -49,8 +49,8 @@ function envelopeSchema(payload) {
|
|
|
49
49
|
}, { additionalProperties: false });
|
|
50
50
|
}
|
|
51
51
|
function protocolName(channel) {
|
|
52
|
-
const match = /^(
|
|
53
|
-
if (!match) throw new Error(`Invalid
|
|
52
|
+
const match = /^(po:[^:]+(?::[^:]+)*):v\d+:/.exec(channel);
|
|
53
|
+
if (!match) throw new Error(`Invalid Po protocol channel: ${channel}`);
|
|
54
54
|
return match[1];
|
|
55
55
|
}
|
|
56
56
|
/** Up to three field-level problems, e.g. `/ must have required properties path`. */
|
|
@@ -61,16 +61,16 @@ function validationDetails(schema, value) {
|
|
|
61
61
|
}).join("; ");
|
|
62
62
|
}
|
|
63
63
|
function assertValid(channel, schema, value) {
|
|
64
|
-
if (!Check(schema, value)) throw new
|
|
64
|
+
if (!Check(schema, value)) throw new PoProtocolValidationError(channel, validationDetails(schema, value));
|
|
65
65
|
}
|
|
66
66
|
function asProtocolError(error) {
|
|
67
|
-
if (error instanceof
|
|
67
|
+
if (error instanceof PoProtocolError) return {
|
|
68
68
|
code: error.code,
|
|
69
69
|
message: error.message,
|
|
70
70
|
retryable: error.retryable
|
|
71
71
|
};
|
|
72
72
|
return {
|
|
73
|
-
code:
|
|
73
|
+
code: PO_PROTOCOL_ERROR_CODE.providerError,
|
|
74
74
|
message: error instanceof Error ? error.message : String(error)
|
|
75
75
|
};
|
|
76
76
|
}
|
|
@@ -167,16 +167,16 @@ function createProtocolRuntime(options) {
|
|
|
167
167
|
if (envelope.sessionId !== options.sessionId) return;
|
|
168
168
|
if (envelope.correlationId !== messageId) return;
|
|
169
169
|
if (requestOptions.expectedSource && envelope.source !== requestOptions.expectedSource) return;
|
|
170
|
-
finish(() => reject(new
|
|
170
|
+
finish(() => reject(new PoProtocolError(envelope.payload)));
|
|
171
171
|
}));
|
|
172
|
-
const timer = setTimeout(() => finish(() => reject(new
|
|
173
|
-
code:
|
|
172
|
+
const timer = setTimeout(() => finish(() => reject(new PoProtocolError({
|
|
173
|
+
code: PO_PROTOCOL_ERROR_CODE.timeout,
|
|
174
174
|
message: `Timed out waiting for ${definition.responseKind}`
|
|
175
175
|
}))), requestOptions.timeoutMs ?? timeoutDefault);
|
|
176
176
|
cleanups.push(() => clearTimeout(timer));
|
|
177
177
|
if (requestOptions.signal) {
|
|
178
|
-
const abort = () => finish(() => reject(new
|
|
179
|
-
code:
|
|
178
|
+
const abort = () => finish(() => reject(new PoProtocolError({
|
|
179
|
+
code: PO_PROTOCOL_ERROR_CODE.aborted,
|
|
180
180
|
message: "Request aborted"
|
|
181
181
|
})));
|
|
182
182
|
requestOptions.signal.addEventListener("abort", abort, { once: true });
|
|
@@ -214,6 +214,6 @@ function createProtocolRuntime(options) {
|
|
|
214
214
|
};
|
|
215
215
|
}
|
|
216
216
|
//#endregion
|
|
217
|
-
export {
|
|
217
|
+
export { PO_PROTOCOL_ERROR_CODE, PoProtocolError, PoProtocolValidationError, ProtocolErrorSchema, createProtocolRuntime, defineJob, defineNotification, defineRequestReply, validationDetails };
|
|
218
218
|
|
|
219
219
|
//# sourceMappingURL=runtimeProtocol.mjs.map
|