@agimon-ai/po-core 0.0.0-alpha.2 → 0.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +149 -21
- package/NOTICE +41 -0
- package/dist/agentModel.cjs +1 -1
- package/dist/agentModel.d.mts +2 -2
- package/dist/agentModel.mjs +1 -2
- package/dist/apiContracts.cjs +623 -802
- package/dist/apiContracts.cjs.map +1 -1
- package/dist/apiContracts.d.mts +277 -615
- package/dist/apiContracts.d.mts.map +1 -1
- package/dist/apiContracts.mjs +617 -794
- package/dist/apiContracts.mjs.map +1 -1
- package/dist/askUser.cjs +2 -2
- package/dist/askUser.d.mts +2 -2
- package/dist/askUser.mjs +1 -2
- package/dist/authorTools.mjs +1 -2
- package/dist/backgroundWork.cjs +3 -3
- package/dist/backgroundWork.d.mts +2 -2
- package/dist/backgroundWork.mjs +1 -2
- package/dist/bundleAssetPolicy.mjs +1 -2
- package/dist/chatgptAuth.cjs +3 -2
- package/dist/chatgptAuth.d.mts +3 -2
- package/dist/chatgptAuth.mjs +2 -1
- package/dist/childProcess.cjs +1 -1
- package/dist/childProcess.d.mts +2 -2
- package/dist/childProcess.mjs +1 -2
- package/dist/childSession.cjs +11 -6
- package/dist/childSession.d.mts +3 -3
- package/dist/childSession.mjs +3 -3
- package/dist/cockpitContainer.mjs +1 -2
- package/dist/config.cjs +1 -1
- package/dist/config.d.mts +3 -3
- package/dist/config.mjs +1 -2
- package/dist/contextApi.cjs +1 -0
- package/dist/contextApi.d.mts +2 -2
- package/dist/contextApi.mjs +2 -2
- package/dist/contextContributions.cjs +4 -4
- package/dist/contextContributions.d.mts +3 -3
- package/dist/contextContributions.mjs +3 -3
- package/dist/contextDetailStore.cjs +7 -5
- package/dist/contextDetailStore.cjs.map +1 -1
- package/dist/contextDetailStore.d.mts +2 -1
- package/dist/contextDetailStore.d.mts.map +1 -1
- package/dist/contextDetailStore.mjs +6 -4
- package/dist/contextDetailStore.mjs.map +1 -1
- package/dist/contextProjection.cjs +7 -2
- package/dist/contextProjection.cjs.map +1 -1
- package/dist/contextProjection.d.mts +4 -1
- package/dist/contextProjection.d.mts.map +1 -1
- package/dist/contextProjection.mjs +5 -2
- package/dist/contextProjection.mjs.map +1 -1
- package/dist/cordisHost.cjs +11 -11
- package/dist/cordisHost.d.mts +2 -2
- package/dist/cordisHost.mjs +1 -2
- package/dist/delegation.cjs +8 -8
- package/dist/delegation.d.mts +2 -2
- package/dist/delegation.mjs +1 -2
- package/dist/executionBudget.cjs +4 -3
- package/dist/executionBudget.cjs.map +1 -1
- package/dist/executionBudget.d.mts +2 -2
- package/dist/executionBudget.d.mts.map +1 -1
- package/dist/executionBudget.mjs +4 -3
- package/dist/executionBudget.mjs.map +1 -1
- package/dist/extensionFile.cjs +5 -0
- package/dist/extensionFile.d.mts +4 -2
- package/dist/extensionFile.mjs +4 -2
- package/dist/footer.d.mts +2 -2
- package/dist/footer.mjs +1 -2
- package/dist/headless.cjs +14 -14
- package/dist/headless.d.mts +2 -2
- package/dist/headless.mjs +1 -2
- package/dist/headlessHub.cjs +308 -109
- package/dist/headlessHub.cjs.map +1 -1
- package/dist/headlessHub.d.mts +71 -36
- package/dist/headlessHub.d.mts.map +1 -1
- package/dist/headlessHub.mjs +309 -110
- package/dist/headlessHub.mjs.map +1 -1
- package/dist/headlessProtocol.cjs +327 -0
- package/dist/headlessProtocol.cjs.map +1 -0
- package/dist/headlessProtocol.d.mts +30 -0
- package/dist/headlessProtocol.d.mts.map +1 -0
- package/dist/headlessProtocol.mjs +326 -0
- package/dist/headlessProtocol.mjs.map +1 -0
- package/dist/headlessServer.cjs +166 -151
- package/dist/headlessServer.cjs.map +1 -1
- package/dist/headlessServer.d.mts +13 -5
- package/dist/headlessServer.d.mts.map +1 -1
- package/dist/headlessServer.mjs +166 -151
- package/dist/headlessServer.mjs.map +1 -1
- package/dist/headlessSessionHost.d.mts +58 -21
- package/dist/headlessSessionHost.d.mts.map +1 -1
- package/dist/help.cjs +20 -20
- package/dist/help.d.mts +2 -2
- package/dist/help.mjs +2 -2
- package/dist/history.cjs +16 -20
- package/dist/history.d.mts +9 -7
- package/dist/history.mjs +6 -7
- package/dist/historyOwnership.cjs.map +1 -1
- package/dist/historyOwnership.d.mts +1 -1
- package/dist/historyOwnership.mjs.map +1 -1
- package/dist/hubChannel.cjs +9 -0
- package/dist/hubChannel.d.mts +3 -2
- package/dist/hubChannel.mjs +3 -2
- package/dist/index.cjs +26 -28
- package/dist/index.d.mts +6 -6
- package/dist/index.mjs +6 -6
- package/dist/interop/chord.mjs +1 -0
- package/dist/interop/chordContext.mjs +1 -0
- package/dist/json.cjs +11 -5
- package/dist/json.d.mts +4 -2
- package/dist/json.mjs +4 -2
- package/dist/kernel.cjs +1 -1
- package/dist/kernel.d.mts +3 -3
- package/dist/kernel.mjs +1 -2
- package/dist/leader.d.mts +2 -2
- package/dist/leader.mjs +1 -2
- package/dist/logSinkTelemetry.mjs +1 -2
- package/dist/machineApi.cjs +80 -74
- package/dist/machineApi.cjs.map +1 -1
- package/dist/machineApi.d.mts +5 -2
- package/dist/machineApi.d.mts.map +1 -1
- package/dist/machineApi.mjs +78 -71
- package/dist/machineApi.mjs.map +1 -1
- package/dist/main.cjs +2 -1
- package/dist/main.d.mts +2 -1
- package/dist/main.mjs +2 -1
- package/dist/mcpFacet.d.mts +3 -3
- package/dist/mcpProjection.cjs +13 -13
- package/dist/mcpProjection.d.mts +2 -2
- package/dist/mcpProjection.mjs +1 -2
- package/dist/mcpSchemaCost.cjs +4 -4
- package/dist/mcpSchemaCost.cjs.map +1 -1
- package/dist/mcpSchemaCost.d.mts +2 -2
- package/dist/mcpSchemaCost.mjs +4 -4
- package/dist/mcpSchemaCost.mjs.map +1 -1
- package/dist/mcpSession.cjs +7 -7
- package/dist/mcpSession.d.mts +2 -2
- package/dist/mcpSession.mjs +1 -2
- package/dist/mcpStatus.cjs +2 -2
- package/dist/mcpStatus.d.mts +2 -2
- package/dist/mcpStatus.mjs +1 -2
- package/dist/mcpToolResolver.cjs +3 -3
- package/dist/mcpToolResolver.d.mts +2 -2
- package/dist/mcpToolResolver.mjs +1 -2
- package/dist/mcpWidget.d.mts +2 -2
- package/dist/moduleResolution.cjs +43 -8
- package/dist/moduleResolution.cjs.map +1 -1
- package/dist/moduleResolution.d.mts +10 -1
- package/dist/moduleResolution.d.mts.map +1 -1
- package/dist/moduleResolution.mjs +40 -7
- package/dist/moduleResolution.mjs.map +1 -1
- package/dist/narration.cjs +3 -3
- package/dist/narration.d.mts +2 -2
- package/dist/narration.mjs +1 -2
- package/dist/native.cjs +9 -0
- package/dist/native.d.mts +4 -3
- package/dist/native.mjs +3 -2
- package/dist/nodePlatform.cjs +77 -0
- package/dist/nodePlatform.cjs.map +1 -0
- package/dist/nodePlatform.d.mts +17 -0
- package/dist/nodePlatform.d.mts.map +1 -0
- package/dist/nodePlatform.mjs +72 -0
- package/dist/nodePlatform.mjs.map +1 -0
- package/dist/notification.cjs +15 -15
- package/dist/notification.d.mts +2 -2
- package/dist/notification.mjs +1 -2
- package/dist/packageApi.cjs +11 -11
- package/dist/packageApi.d.mts +2 -2
- package/dist/packageApi.mjs +2 -2
- package/dist/packageApiServer.cjs +45 -27
- package/dist/packageApiServer.cjs.map +1 -1
- package/dist/packageApiServer.d.mts +36 -26
- package/dist/packageApiServer.d.mts.map +1 -1
- package/dist/packageApiServer.mjs +44 -26
- package/dist/packageApiServer.mjs.map +1 -1
- package/dist/piSettings.cjs +41 -20
- package/dist/piSettings.d.mts +4 -2
- package/dist/piSettings.mjs +4 -2
- package/dist/platform.cjs +62 -0
- package/dist/platform.d.mts +10 -0
- package/dist/platform.mjs +10 -0
- package/dist/pluginProtocol.cjs +7 -8
- package/dist/pluginProtocol.d.mts +2 -2
- package/dist/pluginProtocol.mjs +1 -2
- package/dist/poPackage.cjs +12 -0
- package/dist/poPackage.d.mts +3 -0
- package/dist/poPackage.mjs +3 -0
- package/dist/profileIdentity.cjs +1 -1
- package/dist/profileIdentity.d.mts +2 -2
- package/dist/profileIdentity.mjs +1 -2
- package/dist/protocol.cjs +3 -3
- package/dist/protocol.d.mts +2 -2
- package/dist/protocol.mjs +1 -2
- package/dist/readiness.cjs +6 -6
- package/dist/readiness.d.mts +2 -2
- package/dist/readiness.mjs +1 -2
- package/dist/remoteApi.cjs.map +1 -1
- package/dist/remoteApi.d.mts +2 -2
- package/dist/remoteApi.mjs.map +1 -1
- package/dist/remoteRuntime.cjs +42 -65
- package/dist/remoteRuntime.cjs.map +1 -1
- package/dist/remoteRuntime.d.mts +3 -2
- package/dist/remoteRuntime.d.mts.map +1 -1
- package/dist/remoteRuntime.mjs +41 -62
- package/dist/remoteRuntime.mjs.map +1 -1
- package/dist/runtimeConfig.cjs +4 -4
- package/dist/runtimeConfig.cjs.map +1 -1
- package/dist/runtimeConfig.d.mts +10 -9
- package/dist/runtimeConfig.d.mts.map +1 -1
- package/dist/runtimeConfig.mjs +4 -4
- package/dist/runtimeConfig.mjs.map +1 -1
- package/dist/runtimeContextApi.cjs +10 -3
- package/dist/runtimeContextApi.cjs.map +1 -1
- package/dist/runtimeContextApi.d.mts +3 -3
- package/dist/runtimeContextApi.d.mts.map +1 -1
- package/dist/runtimeContextApi.mjs +10 -3
- package/dist/runtimeContextApi.mjs.map +1 -1
- package/dist/runtimeCordisHost.cjs +46 -46
- package/dist/runtimeCordisHost.cjs.map +1 -1
- package/dist/runtimeCordisHost.d.mts +29 -28
- package/dist/runtimeCordisHost.d.mts.map +1 -1
- package/dist/runtimeCordisHost.mjs +42 -42
- package/dist/runtimeCordisHost.mjs.map +1 -1
- package/dist/runtimeIdentity.cjs +6 -9
- package/dist/runtimeIdentity.cjs.map +1 -1
- package/dist/runtimeIdentity.d.mts +5 -1
- package/dist/runtimeIdentity.d.mts.map +1 -1
- package/dist/runtimeIdentity.mjs +5 -8
- package/dist/runtimeIdentity.mjs.map +1 -1
- package/dist/runtimeJson.cjs +10 -45
- package/dist/runtimeJson.d.mts +3 -22
- package/dist/runtimeJson.mjs +3 -39
- package/dist/runtimeLogSinkTelemetry.cjs +19 -19
- package/dist/runtimeLogSinkTelemetry.cjs.map +1 -1
- package/dist/runtimeLogSinkTelemetry.d.mts +19 -19
- package/dist/runtimeLogSinkTelemetry.mjs +19 -19
- package/dist/runtimeLogSinkTelemetry.mjs.map +1 -1
- package/dist/runtimePackages.cjs +7 -2
- package/dist/runtimePackages.cjs.map +1 -1
- package/dist/runtimePackages.d.mts +4 -1
- package/dist/runtimePackages.d.mts.map +1 -1
- package/dist/runtimePackages.mjs +7 -2
- package/dist/runtimePackages.mjs.map +1 -1
- package/dist/runtimePiSettings.cjs +40 -263
- package/dist/runtimePiSettings.d.mts +3 -72
- package/dist/runtimePiSettings.mjs +3 -241
- package/dist/runtimeProtocol.cjs +19 -19
- package/dist/runtimeProtocol.cjs.map +1 -1
- package/dist/runtimeProtocol.d.mts +7 -7
- package/dist/runtimeProtocol.d.mts.map +1 -1
- package/dist/runtimeProtocol.mjs +17 -17
- package/dist/runtimeProtocol.mjs.map +1 -1
- package/dist/runtimeTransition.cjs +9 -9
- package/dist/runtimeTransition.cjs.map +1 -1
- package/dist/runtimeTransition.d.mts +10 -10
- package/dist/runtimeTransition.d.mts.map +1 -1
- package/dist/runtimeTransition.mjs +7 -7
- package/dist/runtimeTransition.mjs.map +1 -1
- package/dist/sandboxHarness.mjs +1 -2
- package/dist/server.cjs +3 -7
- package/dist/server.d.mts +6 -6
- package/dist/server.mjs +3 -4
- package/dist/serverPlugin.cjs +39 -0
- package/dist/serverPlugin.d.mts +12 -0
- package/dist/serverPlugin.mjs +11 -0
- package/dist/serverTelemetry.cjs +1 -1
- package/dist/serverTelemetry.cjs.map +1 -1
- package/dist/serverTelemetry.d.mts +2 -2
- package/dist/serverTelemetry.mjs +2 -2
- package/dist/serverTelemetry.mjs.map +1 -1
- package/dist/sessionFilesApi.cjs +41 -37
- package/dist/sessionFilesApi.cjs.map +1 -1
- package/dist/sessionFilesApi.d.mts +6 -3
- package/dist/sessionFilesApi.d.mts.map +1 -1
- package/dist/sessionFilesApi.mjs +41 -36
- package/dist/sessionFilesApi.mjs.map +1 -1
- package/dist/sessionProtocol.cjs +31 -6
- package/dist/sessionProtocol.d.mts +8 -3
- package/dist/sessionProtocol.mjs +8 -2
- package/dist/skills.cjs +5 -5
- package/dist/skills.d.mts +2 -2
- package/dist/skills.mjs +1 -2
- package/dist/sqliteSessionStorage.cjs +28 -50
- package/dist/sqliteSessionStorage.cjs.map +1 -1
- package/dist/sqliteSessionStorage.d.mts +13 -20
- package/dist/sqliteSessionStorage.d.mts.map +1 -1
- package/dist/sqliteSessionStorage.mjs +25 -48
- package/dist/sqliteSessionStorage.mjs.map +1 -1
- package/dist/src/constants/agentSettled.cjs +7 -0
- package/dist/src/constants/agentSettled.cjs.map +1 -0
- package/dist/src/constants/agentSettled.mjs +7 -0
- package/dist/src/constants/agentSettled.mjs.map +1 -0
- package/dist/src/constants/contextApi.cjs +3 -1
- package/dist/src/constants/contextApi.cjs.map +1 -1
- package/dist/src/constants/contextApi.d.mts +2 -1
- package/dist/src/constants/contextApi.d.mts.map +1 -1
- package/dist/src/constants/contextApi.mjs +3 -2
- package/dist/src/constants/contextApi.mjs.map +1 -1
- package/dist/src/constants/voiceTools.cjs +6 -6
- package/dist/src/constants/voiceTools.cjs.map +1 -1
- package/dist/src/constants/voiceTools.d.mts +3 -3
- package/dist/src/constants/voiceTools.mjs +4 -4
- package/dist/src/constants/voiceTools.mjs.map +1 -1
- package/dist/src/extensions/extensionFile.cjs +22 -5
- package/dist/src/extensions/extensionFile.cjs.map +1 -1
- package/dist/src/extensions/extensionFile.d.mts +17 -4
- package/dist/src/extensions/extensionFile.d.mts.map +1 -1
- package/dist/src/extensions/extensionFile.mjs +22 -6
- package/dist/src/extensions/extensionFile.mjs.map +1 -1
- package/dist/src/extensions/serverPlugin.cjs +231 -92
- package/dist/src/extensions/serverPlugin.cjs.map +1 -1
- package/dist/src/extensions/serverPlugin.d.mts +2 -2
- package/dist/src/extensions/serverPlugin.d.mts.map +1 -1
- package/dist/src/extensions/serverPlugin.mjs +232 -93
- package/dist/src/extensions/serverPlugin.mjs.map +1 -1
- package/dist/src/pi/piSessionRuntime.cjs +349 -142
- package/dist/src/pi/piSessionRuntime.cjs.map +1 -1
- package/dist/src/pi/piSessionRuntime.d.mts +18 -17
- package/dist/src/pi/piSessionRuntime.d.mts.map +1 -1
- package/dist/src/pi/piSessionRuntime.mjs +342 -135
- package/dist/src/pi/piSessionRuntime.mjs.map +1 -1
- package/dist/src/schemas/agentModel.cjs +2 -2
- package/dist/src/schemas/agentModel.cjs.map +1 -1
- package/dist/src/schemas/agentModel.d.mts +1 -1
- package/dist/src/schemas/agentModel.mjs +2 -2
- package/dist/src/schemas/agentModel.mjs.map +1 -1
- package/dist/src/schemas/apiContracts.d.mts +2 -2
- package/dist/src/schemas/apiContracts.d.mts.map +1 -1
- package/dist/src/schemas/askUser.cjs +4 -4
- package/dist/src/schemas/askUser.cjs.map +1 -1
- package/dist/src/schemas/askUser.d.mts +4 -4
- package/dist/src/schemas/askUser.d.mts.map +1 -1
- package/dist/src/schemas/askUser.mjs +3 -3
- package/dist/src/schemas/askUser.mjs.map +1 -1
- package/dist/src/schemas/backgroundWork.cjs +10 -10
- package/dist/src/schemas/backgroundWork.cjs.map +1 -1
- package/dist/src/schemas/backgroundWork.d.mts +9 -9
- package/dist/src/schemas/backgroundWork.d.mts.map +1 -1
- package/dist/src/schemas/backgroundWork.mjs +8 -8
- package/dist/src/schemas/backgroundWork.mjs.map +1 -1
- package/dist/src/schemas/childProcess.cjs +5 -5
- package/dist/src/schemas/childProcess.cjs.map +1 -1
- package/dist/src/schemas/childProcess.d.mts +2 -2
- package/dist/src/schemas/childProcess.mjs +5 -5
- package/dist/src/schemas/childProcess.mjs.map +1 -1
- package/dist/src/schemas/contextContributions.cjs +10 -10
- package/dist/src/schemas/contextContributions.cjs.map +1 -1
- package/dist/src/schemas/contextContributions.d.mts +16 -16
- package/dist/src/schemas/contextContributions.d.mts.map +1 -1
- package/dist/src/schemas/contextContributions.mjs +8 -8
- package/dist/src/schemas/contextContributions.mjs.map +1 -1
- package/dist/src/schemas/delegation.cjs +17 -17
- package/dist/src/schemas/delegation.cjs.map +1 -1
- package/dist/src/schemas/delegation.d.mts +16 -16
- package/dist/src/schemas/delegation.d.mts.map +1 -1
- package/dist/src/schemas/delegation.mjs +10 -10
- package/dist/src/schemas/delegation.mjs.map +1 -1
- package/dist/src/schemas/extensionFile.d.mts +23 -19
- package/dist/src/schemas/extensionFile.d.mts.map +1 -1
- package/dist/src/schemas/footer.cjs.map +1 -1
- package/dist/src/schemas/footer.d.mts +5 -5
- package/dist/src/schemas/footer.d.mts.map +1 -1
- package/dist/src/schemas/footer.mjs.map +1 -1
- package/dist/src/schemas/headless.cjs +37 -37
- package/dist/src/schemas/headless.cjs.map +1 -1
- package/dist/src/schemas/headless.d.mts +100 -101
- package/dist/src/schemas/headless.d.mts.map +1 -1
- package/dist/src/schemas/headless.mjs +24 -24
- package/dist/src/schemas/headless.mjs.map +1 -1
- package/dist/src/schemas/help.cjs +60 -60
- package/dist/src/schemas/help.cjs.map +1 -1
- package/dist/src/schemas/help.d.mts +43 -43
- package/dist/src/schemas/help.d.mts.map +1 -1
- package/dist/src/schemas/help.mjs +41 -41
- package/dist/src/schemas/help.mjs.map +1 -1
- package/dist/src/schemas/home.cjs +127 -0
- package/dist/src/schemas/home.cjs.map +1 -0
- package/dist/src/schemas/home.d.mts +63 -0
- package/dist/src/schemas/home.d.mts.map +1 -0
- package/dist/src/schemas/home.mjs +121 -0
- package/dist/src/schemas/home.mjs.map +1 -0
- package/dist/src/schemas/httpApiContracts.cjs +441 -0
- package/dist/src/schemas/httpApiContracts.cjs.map +1 -0
- package/dist/src/schemas/httpApiContracts.d.mts +78 -0
- package/dist/src/schemas/httpApiContracts.d.mts.map +1 -0
- package/dist/src/schemas/httpApiContracts.mjs +434 -0
- package/dist/src/schemas/httpApiContracts.mjs.map +1 -0
- package/dist/src/schemas/hubChannel.cjs +3 -0
- package/dist/src/schemas/hubChannel.cjs.map +1 -1
- package/dist/src/schemas/hubChannel.d.mts +84 -60
- package/dist/src/schemas/hubChannel.d.mts.map +1 -1
- package/dist/src/schemas/hubChannel.mjs +3 -1
- package/dist/src/schemas/hubChannel.mjs.map +1 -1
- package/dist/src/schemas/leader.cjs.map +1 -1
- package/dist/src/schemas/leader.d.mts +3 -3
- package/dist/src/schemas/leader.d.mts.map +1 -1
- package/dist/src/schemas/leader.mjs.map +1 -1
- package/dist/src/schemas/mcpBundle.d.mts +3 -3
- package/dist/src/schemas/mcpFacet.cjs.map +1 -1
- package/dist/src/schemas/mcpFacet.d.mts +22 -22
- package/dist/src/schemas/mcpFacet.d.mts.map +1 -1
- package/dist/src/schemas/mcpFacet.mjs.map +1 -1
- package/dist/src/schemas/mcpProjection.cjs +41 -41
- package/dist/src/schemas/mcpProjection.cjs.map +1 -1
- package/dist/src/schemas/mcpProjection.d.mts +31 -30
- package/dist/src/schemas/mcpProjection.d.mts.map +1 -1
- package/dist/src/schemas/mcpProjection.mjs +29 -29
- package/dist/src/schemas/mcpProjection.mjs.map +1 -1
- package/dist/src/schemas/mcpSession.cjs +23 -23
- package/dist/src/schemas/mcpSession.cjs.map +1 -1
- package/dist/src/schemas/mcpSession.d.mts +12 -12
- package/dist/src/schemas/mcpSession.d.mts.map +1 -1
- package/dist/src/schemas/mcpSession.mjs +18 -18
- package/dist/src/schemas/mcpSession.mjs.map +1 -1
- package/dist/src/schemas/mcpStatus.cjs +5 -5
- package/dist/src/schemas/mcpStatus.cjs.map +1 -1
- package/dist/src/schemas/mcpStatus.d.mts +4 -4
- package/dist/src/schemas/mcpStatus.d.mts.map +1 -1
- package/dist/src/schemas/mcpStatus.mjs +4 -4
- package/dist/src/schemas/mcpStatus.mjs.map +1 -1
- package/dist/src/schemas/mcpToolResolver.cjs +9 -9
- package/dist/src/schemas/mcpToolResolver.cjs.map +1 -1
- package/dist/src/schemas/mcpToolResolver.d.mts +7 -7
- package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -1
- package/dist/src/schemas/mcpToolResolver.mjs +7 -7
- package/dist/src/schemas/mcpToolResolver.mjs.map +1 -1
- package/dist/src/schemas/narration.cjs +9 -9
- package/dist/src/schemas/narration.cjs.map +1 -1
- package/dist/src/schemas/narration.d.mts +5 -5
- package/dist/src/schemas/narration.d.mts.map +1 -1
- package/dist/src/schemas/narration.mjs +7 -7
- package/dist/src/schemas/narration.mjs.map +1 -1
- package/dist/src/schemas/notification.cjs +45 -45
- package/dist/src/schemas/notification.cjs.map +1 -1
- package/dist/src/schemas/notification.d.mts +22 -22
- package/dist/src/schemas/notification.d.mts.map +1 -1
- package/dist/src/schemas/notification.mjs +31 -31
- package/dist/src/schemas/notification.mjs.map +1 -1
- package/dist/src/schemas/packageApi.cjs +28 -28
- package/dist/src/schemas/packageApi.cjs.map +1 -1
- package/dist/src/schemas/packageApi.d.mts +91 -65
- package/dist/src/schemas/packageApi.d.mts.map +1 -1
- package/dist/src/schemas/packageApi.mjs +18 -18
- package/dist/src/schemas/packageApi.mjs.map +1 -1
- package/dist/src/schemas/platform.cjs +34 -0
- package/dist/src/schemas/platform.cjs.map +1 -0
- package/dist/src/schemas/platform.d.mts +75 -0
- package/dist/src/schemas/platform.d.mts.map +1 -0
- package/dist/src/schemas/platform.mjs +27 -0
- package/dist/src/schemas/platform.mjs.map +1 -0
- package/dist/src/schemas/pluginContributions.cjs.map +1 -1
- package/dist/src/schemas/pluginContributions.d.mts +12 -12
- package/dist/src/schemas/pluginContributions.d.mts.map +1 -1
- package/dist/src/schemas/pluginContributions.mjs.map +1 -1
- package/dist/src/schemas/pluginProtocol.cjs +24 -27
- package/dist/src/schemas/pluginProtocol.cjs.map +1 -1
- package/dist/src/schemas/pluginProtocol.d.mts +21 -21
- package/dist/src/schemas/pluginProtocol.d.mts.map +1 -1
- package/dist/src/schemas/pluginProtocol.mjs +18 -20
- package/dist/src/schemas/pluginProtocol.mjs.map +1 -1
- package/dist/src/schemas/profileIdentity.cjs +2 -2
- package/dist/src/schemas/profileIdentity.cjs.map +1 -1
- package/dist/src/schemas/profileIdentity.d.mts +1 -1
- package/dist/src/schemas/profileIdentity.mjs +2 -2
- package/dist/src/schemas/profileIdentity.mjs.map +1 -1
- package/dist/src/schemas/protocolChannelsContract.cjs +27 -0
- package/dist/src/schemas/protocolChannelsContract.cjs.map +1 -0
- package/dist/src/schemas/protocolChannelsContract.d.mts +37 -0
- package/dist/src/schemas/protocolChannelsContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolChannelsContract.mjs +25 -0
- package/dist/src/schemas/protocolChannelsContract.mjs.map +1 -0
- package/dist/src/schemas/protocolContracts.cjs +168 -0
- package/dist/src/schemas/protocolContracts.cjs.map +1 -0
- package/dist/src/schemas/protocolContracts.d.mts +69 -0
- package/dist/src/schemas/protocolContracts.d.mts.map +1 -0
- package/dist/src/schemas/protocolContracts.mjs +164 -0
- package/dist/src/schemas/protocolContracts.mjs.map +1 -0
- package/dist/src/schemas/protocolHubContract.cjs +51 -0
- package/dist/src/schemas/protocolHubContract.cjs.map +1 -0
- package/dist/src/schemas/protocolHubContract.d.mts +218 -0
- package/dist/src/schemas/protocolHubContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolHubContract.mjs +49 -0
- package/dist/src/schemas/protocolHubContract.mjs.map +1 -0
- package/dist/src/schemas/protocolSessionContract.cjs +22 -0
- package/dist/src/schemas/protocolSessionContract.cjs.map +1 -0
- package/dist/src/schemas/protocolSessionContract.d.mts +324 -0
- package/dist/src/schemas/protocolSessionContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolSessionContract.mjs +22 -0
- package/dist/src/schemas/protocolSessionContract.mjs.map +1 -0
- package/dist/src/schemas/protocolThreadContract.cjs +21 -0
- package/dist/src/schemas/protocolThreadContract.cjs.map +1 -0
- package/dist/src/schemas/protocolThreadContract.d.mts +29 -0
- package/dist/src/schemas/protocolThreadContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolThreadContract.mjs +20 -0
- package/dist/src/schemas/protocolThreadContract.mjs.map +1 -0
- package/dist/src/schemas/readiness.cjs +36 -36
- package/dist/src/schemas/readiness.cjs.map +1 -1
- package/dist/src/schemas/readiness.d.mts +37 -37
- package/dist/src/schemas/readiness.d.mts.map +1 -1
- package/dist/src/schemas/readiness.mjs +31 -31
- package/dist/src/schemas/readiness.mjs.map +1 -1
- package/dist/src/schemas/serverBundle.d.mts +5 -5
- package/dist/src/schemas/serverPlugin.cjs +103 -0
- package/dist/src/schemas/serverPlugin.cjs.map +1 -0
- package/dist/src/schemas/serverPlugin.d.mts +176 -0
- package/dist/src/schemas/serverPlugin.d.mts.map +1 -0
- package/dist/src/schemas/serverPlugin.mjs +95 -0
- package/dist/src/schemas/serverPlugin.mjs.map +1 -0
- package/dist/src/schemas/serverScope.cjs +37 -0
- package/dist/src/schemas/serverScope.cjs.map +1 -0
- package/dist/src/schemas/serverScope.d.mts +77 -0
- package/dist/src/schemas/serverScope.d.mts.map +1 -0
- package/dist/src/schemas/serverScope.mjs +33 -0
- package/dist/src/schemas/serverScope.mjs.map +1 -0
- package/dist/src/schemas/sessionApiContracts.cjs +320 -0
- package/dist/src/schemas/sessionApiContracts.cjs.map +1 -0
- package/dist/src/schemas/sessionApiContracts.mjs +318 -0
- package/dist/src/schemas/sessionApiContracts.mjs.map +1 -0
- package/dist/src/schemas/sessionProtocol.cjs +20 -13
- package/dist/src/schemas/sessionProtocol.cjs.map +1 -1
- package/dist/src/schemas/sessionProtocol.d.mts +37 -54
- package/dist/src/schemas/sessionProtocol.d.mts.map +1 -1
- package/dist/src/schemas/sessionProtocol.mjs +17 -8
- package/dist/src/schemas/sessionProtocol.mjs.map +1 -1
- package/dist/src/schemas/skills.cjs +16 -16
- package/dist/src/schemas/skills.cjs.map +1 -1
- package/dist/src/schemas/skills.d.mts +7 -7
- package/dist/src/schemas/skills.d.mts.map +1 -1
- package/dist/src/schemas/skills.mjs +12 -12
- package/dist/src/schemas/skills.mjs.map +1 -1
- package/dist/src/schemas/toolOverrides.cjs +9 -9
- package/dist/src/schemas/toolOverrides.cjs.map +1 -1
- package/dist/src/schemas/toolOverrides.d.mts +8 -8
- package/dist/src/schemas/toolOverrides.d.mts.map +1 -1
- package/dist/src/schemas/toolOverrides.mjs +7 -7
- package/dist/src/schemas/toolOverrides.mjs.map +1 -1
- package/dist/src/schemas/toolSurface.cjs +9 -9
- package/dist/src/schemas/toolSurface.cjs.map +1 -1
- package/dist/src/schemas/toolSurface.d.mts +13 -13
- package/dist/src/schemas/toolSurface.d.mts.map +1 -1
- package/dist/src/schemas/toolSurface.mjs +7 -7
- package/dist/src/schemas/toolSurface.mjs.map +1 -1
- package/dist/src/schemas/uiHub.cjs +9 -9
- package/dist/src/schemas/uiHub.cjs.map +1 -1
- package/dist/src/schemas/uiHub.d.mts +12 -12
- package/dist/src/schemas/uiHub.d.mts.map +1 -1
- package/dist/src/schemas/uiHub.mjs +7 -7
- package/dist/src/schemas/uiHub.mjs.map +1 -1
- package/dist/src/server/directHarnessRuntime.cjs +691 -775
- package/dist/src/server/directHarnessRuntime.cjs.map +1 -1
- package/dist/src/server/directHarnessRuntime.d.mts +5 -1
- package/dist/src/server/directHarnessRuntime.d.mts.map +1 -0
- package/dist/src/server/directHarnessRuntime.mjs +671 -754
- package/dist/src/server/directHarnessRuntime.mjs.map +1 -1
- package/dist/src/server/largeFrameLink.cjs +47 -0
- package/dist/src/server/largeFrameLink.cjs.map +1 -0
- package/dist/src/server/largeFrameLink.mjs +47 -0
- package/dist/src/server/largeFrameLink.mjs.map +1 -0
- package/dist/src/server/liveImport.cjs +1 -1
- package/dist/src/server/liveImport.cjs.map +1 -1
- package/dist/src/server/liveImport.d.mts +1 -1
- package/dist/src/server/liveImport.mjs +1 -1
- package/dist/src/server/liveImport.mjs.map +1 -1
- package/dist/src/server/mcpBundleLoader.cjs.map +1 -1
- package/dist/src/server/mcpBundleLoader.d.mts +6 -6
- package/dist/src/server/mcpBundleLoader.d.mts.map +1 -1
- package/dist/src/server/mcpBundleLoader.mjs.map +1 -1
- package/dist/src/server/serverPackages.cjs +60 -0
- package/dist/src/server/serverPackages.cjs.map +1 -0
- package/dist/src/server/serverPackages.d.mts +44 -0
- package/dist/src/server/serverPackages.d.mts.map +1 -0
- package/dist/src/server/serverPackages.mjs +59 -0
- package/dist/src/server/serverPackages.mjs.map +1 -0
- package/dist/src/server/serverScope.cjs +510 -0
- package/dist/src/server/serverScope.cjs.map +1 -0
- package/dist/src/server/serverScope.d.mts +123 -0
- package/dist/src/server/serverScope.d.mts.map +1 -0
- package/dist/src/server/serverScope.mjs +510 -0
- package/dist/src/server/serverScope.mjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.cjs +3 -3
- package/dist/src/server/sessionMcpHandler.cjs.map +1 -1
- package/dist/src/server/sessionMcpHandler.mjs +4 -4
- package/dist/src/server/sessionMcpHandler.mjs.map +1 -1
- package/dist/src/server/sessionMcpRoutes.cjs +2 -1
- package/dist/src/server/sessionMcpRoutes.cjs.map +1 -1
- package/dist/src/server/sessionMcpRoutes.mjs +2 -1
- package/dist/src/server/sessionMcpRoutes.mjs.map +1 -1
- package/dist/src/server/threadJournals.cjs +38 -107
- package/dist/src/server/threadJournals.cjs.map +1 -1
- package/dist/src/server/threadJournals.mjs +38 -104
- package/dist/src/server/threadJournals.mjs.map +1 -1
- package/dist/src/services/apiSurfaceAssert/index.cjs +1 -1
- package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -1
- package/dist/src/services/apiSurfaceAssert/index.d.mts +6 -6
- package/dist/src/services/apiSurfaceAssert/index.mjs +1 -1
- package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -1
- package/dist/src/services/chatgptAuth/index.cjs +1 -220
- package/dist/src/services/chatgptAuth/index.cjs.map +1 -1
- package/dist/src/services/chatgptAuth/index.d.mts +0 -18
- package/dist/src/services/chatgptAuth/index.d.mts.map +1 -1
- package/dist/src/services/chatgptAuth/index.mjs +1 -217
- package/dist/src/services/chatgptAuth/index.mjs.map +1 -1
- package/dist/src/services/chatgptImages/index.cjs +1 -1
- package/dist/src/services/chatgptImages/index.cjs.map +1 -1
- package/dist/src/services/chatgptImages/index.mjs +1 -1
- package/dist/src/services/chatgptImages/index.mjs.map +1 -1
- package/dist/src/services/chatgptLogin/index.cjs +230 -0
- package/dist/src/services/chatgptLogin/index.cjs.map +1 -0
- package/dist/src/services/chatgptLogin/index.d.mts +21 -0
- package/dist/src/services/chatgptLogin/index.d.mts.map +1 -0
- package/dist/src/services/chatgptLogin/index.mjs +227 -0
- package/dist/src/services/chatgptLogin/index.mjs.map +1 -0
- package/dist/src/services/chatgptWebSearch/index.cjs +1 -1
- package/dist/src/services/chatgptWebSearch/index.cjs.map +1 -1
- package/dist/src/services/chatgptWebSearch/index.mjs +1 -1
- package/dist/src/services/chatgptWebSearch/index.mjs.map +1 -1
- package/dist/src/services/contextContributions/index.cjs +8 -8
- package/dist/src/services/contextContributions/index.cjs.map +1 -1
- package/dist/src/services/contextContributions/index.d.mts +3 -3
- package/dist/src/services/contextContributions/index.d.mts.map +1 -1
- package/dist/src/services/contextContributions/index.mjs +8 -8
- package/dist/src/services/contextContributions/index.mjs.map +1 -1
- package/dist/src/services/devProxyStore/devProxyRecords.cjs +59 -0
- package/dist/src/services/devProxyStore/devProxyRecords.cjs.map +1 -0
- package/dist/src/services/devProxyStore/devProxyRecords.mjs +56 -0
- package/dist/src/services/devProxyStore/devProxyRecords.mjs.map +1 -0
- package/dist/src/services/devProxyStore/index.cjs +7 -101
- package/dist/src/services/devProxyStore/index.cjs.map +1 -1
- package/dist/src/services/devProxyStore/index.mjs +7 -101
- package/dist/src/services/devProxyStore/index.mjs.map +1 -1
- package/dist/src/services/devProxyStore/sync.cjs +66 -0
- package/dist/src/services/devProxyStore/sync.cjs.map +1 -0
- package/dist/src/services/devProxyStore/sync.mjs +63 -0
- package/dist/src/services/devProxyStore/sync.mjs.map +1 -0
- package/dist/src/services/durableNavigation/docs.cjs +15 -0
- package/dist/src/services/durableNavigation/docs.cjs.map +1 -0
- package/dist/src/services/durableNavigation/docs.mjs +16 -0
- package/dist/src/services/durableNavigation/docs.mjs.map +1 -0
- package/dist/src/services/durableNavigation/index.cjs +3 -18
- package/dist/src/services/durableNavigation/index.cjs.map +1 -1
- package/dist/src/services/durableNavigation/index.mjs +2 -17
- package/dist/src/services/durableNavigation/index.mjs.map +1 -1
- package/dist/src/services/durableQueue/docs.cjs +12 -0
- package/dist/src/services/durableQueue/docs.cjs.map +1 -0
- package/dist/src/services/durableQueue/docs.mjs +13 -0
- package/dist/src/services/durableQueue/docs.mjs.map +1 -0
- package/dist/src/services/durableQueue/index.cjs +151 -0
- package/dist/src/services/durableQueue/index.cjs.map +1 -0
- package/dist/src/services/durableQueue/index.mjs +149 -0
- package/dist/src/services/durableQueue/index.mjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/docs.cjs +11 -0
- package/dist/src/services/durableRequestReceipts/docs.cjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/docs.mjs +12 -0
- package/dist/src/services/durableRequestReceipts/docs.mjs.map +1 -0
- package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.cjs +10 -16
- package/dist/src/services/durableRequestReceipts/index.cjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/index.d.mts +12 -0
- package/dist/src/services/durableRequestReceipts/index.d.mts.map +1 -0
- package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.mjs +7 -13
- package/dist/src/services/durableRequestReceipts/index.mjs.map +1 -0
- package/dist/src/services/durableSession/docs.cjs +65 -0
- package/dist/src/services/durableSession/docs.cjs.map +1 -0
- package/dist/src/services/durableSession/docs.d.mts +17 -0
- package/dist/src/services/durableSession/docs.d.mts.map +1 -0
- package/dist/src/services/durableSession/docs.mjs +60 -0
- package/dist/src/services/durableSession/docs.mjs.map +1 -0
- package/dist/src/services/durableSession/index.cjs +21 -0
- package/dist/src/services/durableSession/index.cjs.map +1 -0
- package/dist/src/services/durableSession/index.d.mts +13 -0
- package/dist/src/services/durableSession/index.d.mts.map +1 -0
- package/dist/src/services/durableSession/index.mjs +20 -0
- package/dist/src/services/durableSession/index.mjs.map +1 -0
- package/dist/src/services/durableSubagents/docs.cjs +15 -0
- package/dist/src/services/durableSubagents/docs.cjs.map +1 -0
- package/dist/src/services/durableSubagents/docs.mjs +16 -0
- package/dist/src/services/durableSubagents/docs.mjs.map +1 -0
- package/dist/src/services/durableSubagents/extension.cjs +11 -0
- package/dist/src/services/durableSubagents/extension.cjs.map +1 -0
- package/dist/src/services/durableSubagents/extension.mjs +12 -0
- package/dist/src/services/durableSubagents/extension.mjs.map +1 -0
- package/dist/src/services/durableSubagents/index.cjs +95 -0
- package/dist/src/services/durableSubagents/index.cjs.map +1 -0
- package/dist/src/services/durableSubagents/index.mjs +90 -0
- package/dist/src/services/durableSubagents/index.mjs.map +1 -0
- package/dist/src/services/durableSubagents/tasks.cjs +25 -0
- package/dist/src/services/durableSubagents/tasks.cjs.map +1 -0
- package/dist/src/services/durableSubagents/tasks.mjs +26 -0
- package/dist/src/services/durableSubagents/tasks.mjs.map +1 -0
- package/dist/src/services/headlessClient/index.cjs +20 -13
- package/dist/src/services/headlessClient/index.cjs.map +1 -1
- package/dist/src/services/headlessClient/index.mjs +21 -14
- package/dist/src/services/headlessClient/index.mjs.map +1 -1
- package/dist/src/services/historyOwnership/type.d.mts +15 -0
- package/dist/src/services/historyOwnership/type.d.mts.map +1 -0
- package/dist/src/services/hubChannelHarness/index.cjs +2 -2
- package/dist/src/services/hubChannelHarness/index.cjs.map +1 -1
- package/dist/src/services/hubChannelHarness/index.d.mts +8 -8
- package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -1
- package/dist/src/services/hubChannelHarness/index.mjs +2 -2
- package/dist/src/services/hubChannelHarness/index.mjs.map +1 -1
- package/dist/src/services/json/core.cjs +30 -0
- package/dist/src/services/json/core.cjs.map +1 -0
- package/dist/src/services/json/core.d.mts +21 -0
- package/dist/src/services/json/core.d.mts.map +1 -0
- package/dist/src/services/json/core.mjs +26 -0
- package/dist/src/services/json/core.mjs.map +1 -0
- package/dist/src/services/json/sync.cjs +48 -0
- package/dist/src/services/json/sync.cjs.map +1 -0
- package/dist/src/services/json/sync.d.mts +22 -0
- package/dist/src/services/json/sync.d.mts.map +1 -0
- package/dist/src/services/json/sync.mjs +43 -0
- package/dist/src/services/json/sync.mjs.map +1 -0
- package/dist/src/services/kernel/index.cjs +2 -2
- package/dist/src/services/kernel/index.cjs.map +1 -1
- package/dist/src/services/kernel/index.d.mts +3 -3
- package/dist/src/services/kernel/index.d.mts.map +1 -1
- package/dist/src/services/kernel/index.mjs +2 -2
- package/dist/src/services/kernel/index.mjs.map +1 -1
- package/dist/src/services/nativeChildTools/index.cjs +16 -0
- package/dist/src/services/nativeChildTools/index.cjs.map +1 -0
- package/dist/src/services/nativeChildTools/index.mjs +16 -0
- package/dist/src/services/nativeChildTools/index.mjs.map +1 -0
- package/dist/src/services/nodeHost/index.cjs +30 -0
- package/dist/src/services/nodeHost/index.cjs.map +1 -0
- package/dist/src/services/nodeHost/index.d.mts +16 -0
- package/dist/src/services/nodeHost/index.d.mts.map +1 -0
- package/dist/src/services/nodeHost/index.mjs +27 -0
- package/dist/src/services/nodeHost/index.mjs.map +1 -0
- package/dist/src/services/nodeModelDependencies/index.cjs +89 -0
- package/dist/src/services/nodeModelDependencies/index.cjs.map +1 -0
- package/dist/src/services/nodeModelDependencies/index.mjs +86 -0
- package/dist/src/services/nodeModelDependencies/index.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.cjs +6 -128
- package/dist/src/services/openSessionRegistry/index.cjs.map +1 -1
- package/dist/src/services/openSessionRegistry/index.d.mts +5 -36
- package/dist/src/services/openSessionRegistry/index.mjs +6 -128
- package/dist/src/services/openSessionRegistry/index.mjs.map +1 -1
- package/dist/src/services/openSessionRegistry/openSessionRecords.cjs +87 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts +30 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.mjs +81 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.cjs +71 -0
- package/dist/src/services/openSessionRegistry/sync.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.d.mts +14 -0
- package/dist/src/services/openSessionRegistry/sync.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.mjs +68 -0
- package/dist/src/services/openSessionRegistry/sync.mjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.cjs +1 -1
- package/dist/src/services/packageApiHarness/index.cjs.map +1 -1
- package/dist/src/services/packageApiHarness/index.d.mts +6 -6
- package/dist/src/services/packageApiHarness/index.d.mts.map +1 -1
- package/dist/src/services/packageApiHarness/index.mjs +2 -2
- package/dist/src/services/packageApiHarness/index.mjs.map +1 -1
- package/dist/src/services/piArgs/index.cjs +53 -0
- package/dist/src/services/piArgs/index.cjs.map +1 -0
- package/dist/src/services/piArgs/index.d.mts +6 -0
- package/dist/src/services/piArgs/index.d.mts.map +1 -0
- package/dist/src/services/piArgs/index.mjs +53 -0
- package/dist/src/services/piArgs/index.mjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.cjs +47 -39
- package/dist/src/services/piExtensionHost/index.cjs.map +1 -1
- package/dist/src/services/piExtensionHost/index.d.mts +83 -0
- package/dist/src/services/piExtensionHost/index.d.mts.map +1 -0
- package/dist/src/services/piExtensionHost/index.mjs +47 -38
- package/dist/src/services/piExtensionHost/index.mjs.map +1 -1
- package/dist/src/services/piHelpTools/index.cjs +5 -5
- package/dist/src/services/piHelpTools/index.cjs.map +1 -1
- package/dist/src/services/piHelpTools/index.d.mts.map +1 -1
- package/dist/src/services/piHelpTools/index.mjs +7 -7
- package/dist/src/services/piHelpTools/index.mjs.map +1 -1
- package/dist/src/services/piMessages/index.cjs +106 -0
- package/dist/src/services/piMessages/index.cjs.map +1 -0
- package/dist/src/services/piMessages/index.mjs +105 -0
- package/dist/src/services/piMessages/index.mjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.cjs +4 -4
- package/dist/src/services/piSessionEntries/index.cjs.map +1 -1
- package/dist/src/services/piSessionEntries/index.mjs +3 -3
- package/dist/src/services/piSessionEntries/index.mjs.map +1 -1
- package/dist/src/services/piSettings/core.cjs +308 -0
- package/dist/src/services/piSettings/core.cjs.map +1 -0
- package/dist/src/services/piSettings/core.d.mts +102 -0
- package/dist/src/services/piSettings/core.d.mts.map +1 -0
- package/dist/src/services/piSettings/core.mjs +276 -0
- package/dist/src/services/piSettings/core.mjs.map +1 -0
- package/dist/src/services/piSettings/sync.cjs +119 -0
- package/dist/src/services/piSettings/sync.cjs.map +1 -0
- package/dist/src/services/piSettings/sync.d.mts +44 -0
- package/dist/src/services/piSettings/sync.d.mts.map +1 -0
- package/dist/src/services/piSettings/sync.mjs +110 -0
- package/dist/src/services/piSettings/sync.mjs.map +1 -0
- package/dist/src/services/piSummary/index.cjs +7 -0
- package/dist/src/services/piSummary/index.cjs.map +1 -0
- package/dist/src/services/piSummary/index.mjs +7 -0
- package/dist/src/services/piSummary/index.mjs.map +1 -0
- package/dist/src/services/platformFiles/index.cjs +44 -0
- package/dist/src/services/platformFiles/index.cjs.map +1 -0
- package/dist/src/services/platformFiles/index.d.mts +16 -0
- package/dist/src/services/platformFiles/index.d.mts.map +1 -0
- package/dist/src/services/platformFiles/index.mjs +39 -0
- package/dist/src/services/platformFiles/index.mjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.cjs +19 -13
- package/dist/src/services/pluginLifecycle/index.cjs.map +1 -1
- package/dist/src/services/pluginLifecycle/index.d.mts +2 -0
- package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -1
- package/dist/src/services/pluginLifecycle/index.mjs +19 -14
- package/dist/src/services/pluginLifecycle/index.mjs.map +1 -1
- package/dist/src/services/poPackage/core.cjs +73 -0
- package/dist/src/services/poPackage/core.cjs.map +1 -0
- package/dist/src/services/poPackage/core.d.mts +32 -0
- package/dist/src/services/poPackage/core.d.mts.map +1 -0
- package/dist/src/services/poPackage/core.mjs +66 -0
- package/dist/src/services/poPackage/core.mjs.map +1 -0
- package/dist/src/services/poPackage/sync.cjs +55 -0
- package/dist/src/services/poPackage/sync.cjs.map +1 -0
- package/dist/src/services/poPackage/sync.d.mts +21 -0
- package/dist/src/services/poPackage/sync.d.mts.map +1 -0
- package/dist/src/services/poPackage/sync.mjs +50 -0
- package/dist/src/services/poPackage/sync.mjs.map +1 -0
- package/dist/src/services/providerAuth/index.cjs +11 -7
- package/dist/src/services/providerAuth/index.cjs.map +1 -1
- package/dist/src/services/providerAuth/index.mjs +11 -7
- package/dist/src/services/providerAuth/index.mjs.map +1 -1
- package/dist/src/services/publicFileShares/index.cjs +1 -1
- package/dist/src/services/publicFileShares/index.cjs.map +1 -1
- package/dist/src/services/publicFileShares/index.d.mts +2 -2
- package/dist/src/services/publicFileShares/index.mjs +2 -2
- package/dist/src/services/publicFileShares/index.mjs.map +1 -1
- package/dist/src/services/remoteAccess/index.d.mts +1 -0
- package/dist/src/services/remoteAccess/index.d.mts.map +1 -1
- package/dist/src/services/remoteAccessStore/index.cjs +8 -190
- package/dist/src/services/remoteAccessStore/index.cjs.map +1 -1
- package/dist/src/services/remoteAccessStore/index.d.mts +2 -0
- package/dist/src/services/remoteAccessStore/index.mjs +7 -187
- package/dist/src/services/remoteAccessStore/index.mjs.map +1 -1
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs +98 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs +88 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs.map +1 -0
- package/dist/src/services/remoteAccessStore/sync.cjs +111 -0
- package/dist/src/services/remoteAccessStore/sync.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/sync.mjs +108 -0
- package/dist/src/services/remoteAccessStore/sync.mjs.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.cjs +23 -0
- package/dist/src/services/runtimeIdentity/sync.cjs.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.d.mts +9 -0
- package/dist/src/services/runtimeIdentity/sync.d.mts.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.mjs +20 -0
- package/dist/src/services/runtimeIdentity/sync.mjs.map +1 -0
- package/dist/src/services/serialRunner/index.cjs +25 -0
- package/dist/src/services/serialRunner/index.cjs.map +1 -0
- package/dist/src/services/serialRunner/index.d.mts +10 -0
- package/dist/src/services/serialRunner/index.d.mts.map +1 -0
- package/dist/src/services/serialRunner/index.mjs +25 -0
- package/dist/src/services/serialRunner/index.mjs.map +1 -0
- package/dist/src/services/{serverFacet → serverHost}/index.cjs +5 -5
- package/dist/src/services/serverHost/index.cjs.map +1 -0
- package/dist/src/services/serverHost/index.d.mts +31 -0
- package/dist/src/services/serverHost/index.d.mts.map +1 -0
- package/dist/src/services/{serverFacet → serverHost}/index.mjs +5 -5
- package/dist/src/services/serverHost/index.mjs.map +1 -0
- package/dist/src/services/sessionAttachments/index.cjs +4 -3
- package/dist/src/services/sessionAttachments/index.cjs.map +1 -1
- package/dist/src/services/sessionAttachments/index.d.mts +1 -6
- package/dist/src/services/sessionAttachments/index.d.mts.map +1 -1
- package/dist/src/services/sessionAttachments/index.mjs +3 -2
- package/dist/src/services/sessionAttachments/index.mjs.map +1 -1
- package/dist/src/services/sessionAttachments/type.d.mts +9 -0
- package/dist/src/services/sessionAttachments/type.d.mts.map +1 -0
- package/dist/src/services/sessionFiles/index.cjs +96 -0
- package/dist/src/services/sessionFiles/index.cjs.map +1 -0
- package/dist/src/services/sessionFiles/index.d.mts +33 -0
- package/dist/src/services/sessionFiles/index.d.mts.map +1 -0
- package/dist/src/services/sessionFiles/index.mjs +89 -0
- package/dist/src/services/sessionFiles/index.mjs.map +1 -0
- package/dist/src/services/sessionFiles/sessionDirectory.cjs +66 -0
- package/dist/src/services/sessionFiles/sessionDirectory.cjs.map +1 -0
- package/dist/src/services/sessionFiles/sessionDirectory.mjs +62 -0
- package/dist/src/services/sessionFiles/sessionDirectory.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.cjs +31 -33
- package/dist/src/services/sessionGitStatus/index.cjs.map +1 -1
- package/dist/src/services/sessionGitStatus/index.mjs +31 -33
- package/dist/src/services/sessionGitStatus/index.mjs.map +1 -1
- package/dist/src/services/sessionPresentation/index.cjs +3 -27
- package/dist/src/services/sessionPresentation/index.cjs.map +1 -1
- package/dist/src/services/sessionPresentation/index.mjs +3 -27
- package/dist/src/services/sessionPresentation/index.mjs.map +1 -1
- package/dist/src/services/skillPrompt/index.cjs +11 -0
- package/dist/src/services/skillPrompt/index.cjs.map +1 -0
- package/dist/src/services/skillPrompt/index.mjs +11 -0
- package/dist/src/services/skillPrompt/index.mjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs +44 -30
- package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -1
- package/dist/src/services/sqliteSessionHistory/index.d.mts +7 -4
- package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -1
- package/dist/src/services/sqliteSessionHistory/index.mjs +43 -28
- package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.cjs +21 -45
- package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.d.mts +3 -2
- package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.mjs +16 -38
- package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -1
- package/dist/src/services/testMode/index.cjs +162 -0
- package/dist/src/services/testMode/index.cjs.map +1 -0
- package/dist/src/services/testMode/index.d.mts +17 -0
- package/dist/src/services/testMode/index.d.mts.map +1 -0
- package/dist/src/services/testMode/index.mjs +155 -0
- package/dist/src/services/testMode/index.mjs.map +1 -0
- package/dist/src/services/toolOverrides/index.cjs +6 -6
- package/dist/src/services/toolOverrides/index.cjs.map +1 -1
- package/dist/src/services/toolOverrides/index.d.mts +3 -3
- package/dist/src/services/toolOverrides/index.d.mts.map +1 -1
- package/dist/src/services/toolOverrides/index.mjs +6 -6
- package/dist/src/services/toolOverrides/index.mjs.map +1 -1
- package/dist/src/services/toolPrompt/index.d.mts +17 -0
- package/dist/src/services/toolPrompt/index.d.mts.map +1 -0
- package/dist/src/services/toolSurface/index.cjs +3 -3
- package/dist/src/services/toolSurface/index.cjs.map +1 -1
- package/dist/src/services/toolSurface/index.d.mts +3 -3
- package/dist/src/services/toolSurface/index.d.mts.map +1 -1
- package/dist/src/services/toolSurface/index.mjs +4 -4
- package/dist/src/services/toolSurface/index.mjs.map +1 -1
- package/dist/src/services/traceContext/index.cjs.map +1 -1
- package/dist/src/services/traceContext/index.mjs.map +1 -1
- package/dist/src/services/transcriptPages/index.cjs +159 -33
- package/dist/src/services/transcriptPages/index.cjs.map +1 -1
- package/dist/src/services/transcriptPages/index.mjs +158 -34
- package/dist/src/services/transcriptPages/index.mjs.map +1 -1
- package/dist/src/services/voiceToolsContract/index.cjs +7 -7
- package/dist/src/services/voiceToolsContract/index.cjs.map +1 -1
- package/dist/src/services/voiceToolsContract/index.d.mts +4 -4
- package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -1
- package/dist/src/services/voiceToolsContract/index.mjs +7 -7
- package/dist/src/services/voiceToolsContract/index.mjs.map +1 -1
- package/dist/src/services/workspaceRegistry/index.cjs +9 -179
- package/dist/src/services/workspaceRegistry/index.cjs.map +1 -1
- package/dist/src/services/workspaceRegistry/index.d.mts +5 -47
- package/dist/src/services/workspaceRegistry/index.mjs +7 -176
- package/dist/src/services/workspaceRegistry/index.mjs.map +1 -1
- package/dist/src/services/workspaceRegistry/sync.cjs +148 -0
- package/dist/src/services/workspaceRegistry/sync.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/sync.d.mts +34 -0
- package/dist/src/services/workspaceRegistry/sync.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/sync.mjs +140 -0
- package/dist/src/services/workspaceRegistry/sync.mjs.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.cjs +114 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts +31 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.mjs +101 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.mjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +339 -202
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -1
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +16 -21
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -1
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +329 -191
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -1
- package/dist/src/systems/child/services/childSession/index.cjs +94 -20
- package/dist/src/systems/child/services/childSession/index.cjs.map +1 -1
- package/dist/src/systems/child/services/childSession/index.d.mts +12 -3
- package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -1
- package/dist/src/systems/child/services/childSession/index.mjs +94 -20
- package/dist/src/systems/child/services/childSession/index.mjs.map +1 -1
- package/dist/src/systems/child/types/childSession.cjs +33 -13
- package/dist/src/systems/child/types/childSession.cjs.map +1 -1
- package/dist/src/systems/child/types/childSession.d.mts +143 -80
- package/dist/src/systems/child/types/childSession.d.mts.map +1 -1
- package/dist/src/systems/child/types/childSession.mjs +24 -9
- package/dist/src/systems/child/types/childSession.mjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.cjs +30 -27
- package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.d.mts +22 -22
- package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.mjs +33 -30
- package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs +248 -229
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +4 -5
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs +239 -219
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -1
- package/dist/src/systems/main/types/headlessHost.d.mts +16 -14
- package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -1
- package/dist/src/testing/pi/testHost.cjs +2 -2
- package/dist/src/testing/pi/testHost.cjs.map +1 -1
- package/dist/src/testing/pi/testHost.d.mts +3 -2
- package/dist/src/testing/pi/testHost.mjs +3 -3
- package/dist/src/testing/pi/testHost.mjs.map +1 -1
- package/dist/src/types/config.d.mts +1 -1
- package/dist/src/types/config.d.mts.map +1 -1
- package/dist/src/types/kernel.d.mts +3 -3
- package/dist/src/types/server/directHarnessRuntime.d.mts +54 -25
- package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -1
- package/dist/src/types/server/sessionToolSurface.d.mts +9 -9
- package/dist/src/web/services/apiClient/index.d.mts +1 -0
- package/dist/src/web/services/apiPaths/index.cjs.map +1 -1
- package/dist/src/web/services/apiPaths/index.d.mts +1 -1
- package/dist/src/web/services/apiPaths/index.mjs.map +1 -1
- package/dist/src/web/services/mcpWidget.cjs.map +1 -1
- package/dist/src/web/services/mcpWidget.d.mts +2 -2
- package/dist/src/web/services/mcpWidget.d.mts.map +1 -1
- package/dist/src/web/services/mcpWidget.mjs.map +1 -1
- package/dist/src/web/services/testing/templateRail.cjs +3 -0
- package/dist/src/web/services/testing/templateRail.cjs.map +1 -1
- package/dist/src/web/services/testing/templateRail.mjs +3 -0
- package/dist/src/web/services/testing/templateRail.mjs.map +1 -1
- package/dist/src/web/types/mcpWidget.d.mts +1 -1
- package/dist/src/web/types/nativeTemplate.d.mts +1 -1
- package/dist/src/web/types/nativeTemplate.d.mts.map +1 -1
- package/dist/src/web/types/template.d.mts +8 -0
- package/dist/src/web/types/template.d.mts.map +1 -1
- package/dist/src/web/types/webPlugin.d.mts +17 -5
- package/dist/src/web/types/webPlugin.d.mts.map +1 -1
- package/dist/testMode.cjs +4 -0
- package/dist/testMode.d.mts +2 -0
- package/dist/testMode.mjs +1 -0
- package/dist/testing.cjs +1 -1
- package/dist/testing.d.mts +2 -2
- package/dist/testing.mjs +2 -2
- package/dist/toolInventory.cjs.map +1 -1
- package/dist/toolInventory.mjs.map +1 -1
- package/dist/toolNames.mjs +1 -2
- package/dist/toolOverrides.cjs +4 -4
- package/dist/toolOverrides.d.mts +3 -3
- package/dist/toolOverrides.mjs +3 -3
- package/dist/toolSurface.cjs +4 -4
- package/dist/toolSurface.d.mts +3 -3
- package/dist/toolSurface.mjs +3 -3
- package/dist/transition.cjs +3 -3
- package/dist/transition.d.cjs +3 -3
- package/dist/transition.d.mts +2 -2
- package/dist/transition.mjs +1 -2
- package/dist/transitionClassifier.cjs.map +1 -1
- package/dist/transitionClassifier.d.mts +2 -2
- package/dist/transitionClassifier.d.mts.map +1 -1
- package/dist/transitionClassifier.mjs.map +1 -1
- package/dist/transitionCoordinator.cjs +3 -3
- package/dist/transitionCoordinator.cjs.map +1 -1
- package/dist/transitionCoordinator.d.mts +4 -4
- package/dist/transitionCoordinator.d.mts.map +1 -1
- package/dist/transitionCoordinator.mjs +3 -3
- package/dist/transitionCoordinator.mjs.map +1 -1
- package/dist/typesContextApi.d.mts +2 -1
- package/dist/typesContextApi.d.mts.map +1 -1
- package/dist/uiHub.cjs +3 -3
- package/dist/uiHub.d.mts +2 -2
- package/dist/uiHub.mjs +1 -2
- package/dist/voiceTools.cjs +5 -5
- package/dist/voiceTools.d.mts +3 -3
- package/dist/voiceTools.mjs +3 -3
- package/dist/web.cjs +8 -0
- package/dist/web.d.mts +3 -2
- package/dist/web.mjs +2 -1
- package/dist/webCompositions.cjs.map +1 -1
- package/dist/webCompositions.d.mts +7 -7
- package/dist/webCompositions.d.mts.map +1 -1
- package/dist/webCompositions.mjs.map +1 -1
- package/licenses/Codex-Apache-2.0.txt +201 -0
- package/package.json +58 -53
- package/dist/doomPackage.cjs +0 -61
- package/dist/doomPackage.cjs.map +0 -1
- package/dist/doomPackage.d.mts +0 -17
- package/dist/doomPackage.d.mts.map +0 -1
- package/dist/doomPackage.mjs +0 -54
- package/dist/doomPackage.mjs.map +0 -1
- package/dist/jsonlSessionRepo.cjs +0 -44
- package/dist/jsonlSessionRepo.cjs.map +0 -1
- package/dist/jsonlSessionRepo.d.mts +0 -7
- package/dist/jsonlSessionRepo.d.mts.map +0 -1
- package/dist/jsonlSessionRepo.mjs +0 -42
- package/dist/jsonlSessionRepo.mjs.map +0 -1
- package/dist/runtimeJson.cjs.map +0 -1
- package/dist/runtimeJson.d.mts.map +0 -1
- package/dist/runtimeJson.mjs.map +0 -1
- package/dist/runtimePiSettings.cjs.map +0 -1
- package/dist/runtimePiSettings.d.mts.map +0 -1
- package/dist/runtimePiSettings.mjs.map +0 -1
- package/dist/serverFacet.cjs +0 -34
- package/dist/serverFacet.d.mts +0 -10
- package/dist/serverFacet.mjs +0 -9
- package/dist/src/pi/piWebSocketListener.cjs +0 -115
- package/dist/src/pi/piWebSocketListener.cjs.map +0 -1
- package/dist/src/pi/piWebSocketListener.mjs +0 -115
- package/dist/src/pi/piWebSocketListener.mjs.map +0 -1
- package/dist/src/schemas/serverFacet.cjs +0 -111
- package/dist/src/schemas/serverFacet.cjs.map +0 -1
- package/dist/src/schemas/serverFacet.d.mts +0 -152
- package/dist/src/schemas/serverFacet.d.mts.map +0 -1
- package/dist/src/schemas/serverFacet.mjs +0 -101
- package/dist/src/schemas/serverFacet.mjs.map +0 -1
- package/dist/src/schemas/sessionUpdates.d.mts +0 -34
- package/dist/src/schemas/sessionUpdates.d.mts.map +0 -1
- package/dist/src/server/headlessProtocol.cjs +0 -382
- package/dist/src/server/headlessProtocol.cjs.map +0 -1
- package/dist/src/server/headlessProtocol.mjs +0 -382
- package/dist/src/server/headlessProtocol.mjs.map +0 -1
- package/dist/src/server/nativeChildTranscriptReader.cjs +0 -20
- package/dist/src/server/nativeChildTranscriptReader.cjs.map +0 -1
- package/dist/src/server/nativeChildTranscriptReader.mjs +0 -18
- package/dist/src/server/nativeChildTranscriptReader.mjs.map +0 -1
- package/dist/src/server/serverFacetLoader.cjs +0 -214
- package/dist/src/server/serverFacetLoader.cjs.map +0 -1
- package/dist/src/server/serverFacetLoader.d.mts +0 -72
- package/dist/src/server/serverFacetLoader.d.mts.map +0 -1
- package/dist/src/server/serverFacetLoader.mjs +0 -212
- package/dist/src/server/serverFacetLoader.mjs.map +0 -1
- package/dist/src/services/acpSessionUpdates/index.cjs +0 -129
- package/dist/src/services/acpSessionUpdates/index.cjs.map +0 -1
- package/dist/src/services/acpSessionUpdates/index.mjs +0 -129
- package/dist/src/services/acpSessionUpdates/index.mjs.map +0 -1
- package/dist/src/services/historyImport/index.cjs +0 -8
- package/dist/src/services/historyImport/index.cjs.map +0 -1
- package/dist/src/services/historyImport/index.d.mts +0 -68
- package/dist/src/services/historyImport/index.d.mts.map +0 -1
- package/dist/src/services/historyImport/index.mjs +0 -8
- package/dist/src/services/historyImport/index.mjs.map +0 -1
- package/dist/src/services/openSessionRegistry/index.d.mts.map +0 -1
- package/dist/src/services/requestReceipts/index.cjs.map +0 -1
- package/dist/src/services/requestReceipts/index.d.mts +0 -11
- package/dist/src/services/requestReceipts/index.d.mts.map +0 -1
- package/dist/src/services/requestReceipts/index.mjs.map +0 -1
- package/dist/src/services/rpcTranscript/index.cjs +0 -633
- package/dist/src/services/rpcTranscript/index.cjs.map +0 -1
- package/dist/src/services/rpcTranscript/index.d.mts +0 -50
- package/dist/src/services/rpcTranscript/index.d.mts.map +0 -1
- package/dist/src/services/rpcTranscript/index.mjs +0 -632
- package/dist/src/services/rpcTranscript/index.mjs.map +0 -1
- package/dist/src/services/serverFacet/index.cjs.map +0 -1
- package/dist/src/services/serverFacet/index.d.mts +0 -31
- package/dist/src/services/serverFacet/index.d.mts.map +0 -1
- package/dist/src/services/serverFacet/index.mjs.map +0 -1
- package/dist/src/services/workspaceRegistry/index.d.mts.map +0 -1
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +0 -28
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +0 -1
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +0 -25
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +0 -1
- package/dist/terminalPiChildSessionService.cjs +0 -324
- package/dist/terminalPiChildSessionService.cjs.map +0 -1
- package/dist/terminalPiChildSessionService.d.mts +0 -46
- package/dist/terminalPiChildSessionService.d.mts.map +0 -1
- package/dist/terminalPiChildSessionService.mjs +0 -318
- package/dist/terminalPiChildSessionService.mjs.map +0 -1
- package/dist/v3Export.cjs +0 -10
- package/dist/v3Export.cjs.map +0 -1
- package/dist/v3Export.d.mts +0 -35
- package/dist/v3Export.d.mts.map +0 -1
- package/dist/v3Export.mjs +0 -9
- package/dist/v3Export.mjs.map +0 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//#region src/server/largeFrameLink.ts
|
|
2
|
+
const LARGE_FRAME_SIZE = 33554432;
|
|
3
|
+
/** Report encoded sizes without serializing or retaining frame payloads a second time. */
|
|
4
|
+
function reportingLargeFrames(link, notice) {
|
|
5
|
+
const provided = /* @__PURE__ */ new Map();
|
|
6
|
+
const consumed = /* @__PURE__ */ new Map();
|
|
7
|
+
const calls = /* @__PURE__ */ new Map();
|
|
8
|
+
link.onClose(() => {
|
|
9
|
+
provided.clear();
|
|
10
|
+
consumed.clear();
|
|
11
|
+
calls.clear();
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
get closed() {
|
|
15
|
+
return link.closed;
|
|
16
|
+
},
|
|
17
|
+
send(frame) {
|
|
18
|
+
if (frame.t === "shape") provided.set(frame.id, frame.contract);
|
|
19
|
+
let member = "";
|
|
20
|
+
if (frame.t === "state") member = `${provided.get(frame.hold) ?? frame.hold}.${frame.m}`;
|
|
21
|
+
if (frame.t === "call") member = `${consumed.get(frame.hold) ?? frame.hold}.${frame.member}`;
|
|
22
|
+
if (frame.t === "result") member = calls.get(frame.id) ?? String(frame.id);
|
|
23
|
+
const size = link.send(frame);
|
|
24
|
+
if (frame.t === "result") calls.delete(frame.id);
|
|
25
|
+
if (frame.t === "gone") provided.delete(frame.id);
|
|
26
|
+
if (frame.t === "release") consumed.delete(frame.id);
|
|
27
|
+
if (size !== void 0 && size > LARGE_FRAME_SIZE) notice(`large Chord frame: ${frame.t}${member ? ` ${member}` : ""}, encoded size ${size} (limit ${LARGE_FRAME_SIZE})`);
|
|
28
|
+
return size;
|
|
29
|
+
},
|
|
30
|
+
receive(handler) {
|
|
31
|
+
link.receive((frame) => {
|
|
32
|
+
if (frame.t === "shape") consumed.set(frame.id, frame.contract);
|
|
33
|
+
if (frame.t === "call") calls.set(frame.id, `${provided.get(frame.hold) ?? frame.hold}.${frame.member}`);
|
|
34
|
+
if (frame.t === "cancel") calls.delete(frame.id);
|
|
35
|
+
if (frame.t === "release") provided.delete(frame.id);
|
|
36
|
+
if (frame.t === "gone") consumed.delete(frame.id);
|
|
37
|
+
handler(frame);
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
onClose: (handler) => link.onClose(handler),
|
|
41
|
+
close: (reason) => link.close(reason)
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
exports.reportingLargeFrames = reportingLargeFrames;
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=largeFrameLink.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"largeFrameLink.cjs","names":[],"sources":["../../../src/server/largeFrameLink.ts"],"sourcesContent":["import type { Link } from '@earendil-works/chord';\n\nconst LARGE_FRAME_SIZE = 32 * 1024 * 1024;\n\n/** Report encoded sizes without serializing or retaining frame payloads a second time. */\nexport function reportingLargeFrames(link: Link, notice: (message: string) => void): Link {\n const provided = new Map<number, string>();\n const consumed = new Map<number, string>();\n const calls = new Map<number, string>();\n link.onClose(() => {\n provided.clear();\n consumed.clear();\n calls.clear();\n });\n return {\n get closed() {\n return link.closed;\n },\n send(frame) {\n if (frame.t === 'shape') provided.set(frame.id, frame.contract);\n let member = '';\n if (frame.t === 'state') member = `${provided.get(frame.hold) ?? frame.hold}.${frame.m}`;\n if (frame.t === 'call') member = `${consumed.get(frame.hold) ?? frame.hold}.${frame.member}`;\n if (frame.t === 'result') member = calls.get(frame.id) ?? String(frame.id);\n const size = link.send(frame);\n if (frame.t === 'result') calls.delete(frame.id);\n if (frame.t === 'gone') provided.delete(frame.id);\n if (frame.t === 'release') consumed.delete(frame.id);\n if (size !== undefined && size > LARGE_FRAME_SIZE)\n notice(\n `large Chord frame: ${frame.t}${member ? ` ${member}` : ''}, encoded size ${size} (limit ${LARGE_FRAME_SIZE})`,\n );\n return size;\n },\n receive(handler) {\n link.receive((frame) => {\n if (frame.t === 'shape') consumed.set(frame.id, frame.contract);\n if (frame.t === 'call') calls.set(frame.id, `${provided.get(frame.hold) ?? frame.hold}.${frame.member}`);\n if (frame.t === 'cancel') calls.delete(frame.id);\n if (frame.t === 'release') provided.delete(frame.id);\n if (frame.t === 'gone') consumed.delete(frame.id);\n handler(frame);\n });\n },\n onClose: (handler) => link.onClose(handler),\n close: (reason) => link.close(reason),\n };\n}\n"],"mappings":";AAEA,MAAM,mBAAmB;;AAGzB,SAAgB,qBAAqB,MAAY,QAAyC;CACxF,MAAM,2BAAW,IAAI,IAAoB;CACzC,MAAM,2BAAW,IAAI,IAAoB;CACzC,MAAM,wBAAQ,IAAI,IAAoB;CACtC,KAAK,cAAc;EACjB,SAAS,MAAM;EACf,SAAS,MAAM;EACf,MAAM,MAAM;CACd,CAAC;CACD,OAAO;EACL,IAAI,SAAS;GACX,OAAO,KAAK;EACd;EACA,KAAK,OAAO;GACV,IAAI,MAAM,MAAM,SAAS,SAAS,IAAI,MAAM,IAAI,MAAM,QAAQ;GAC9D,IAAI,SAAS;GACb,IAAI,MAAM,MAAM,SAAS,SAAS,GAAG,SAAS,IAAI,MAAM,IAAI,KAAK,MAAM,KAAK,GAAG,MAAM;GACrF,IAAI,MAAM,MAAM,QAAQ,SAAS,GAAG,SAAS,IAAI,MAAM,IAAI,KAAK,MAAM,KAAK,GAAG,MAAM;GACpF,IAAI,MAAM,MAAM,UAAU,SAAS,MAAM,IAAI,MAAM,EAAE,KAAK,OAAO,MAAM,EAAE;GACzE,MAAM,OAAO,KAAK,KAAK,KAAK;GAC5B,IAAI,MAAM,MAAM,UAAU,MAAM,OAAO,MAAM,EAAE;GAC/C,IAAI,MAAM,MAAM,QAAQ,SAAS,OAAO,MAAM,EAAE;GAChD,IAAI,MAAM,MAAM,WAAW,SAAS,OAAO,MAAM,EAAE;GACnD,IAAI,SAAS,KAAA,KAAa,OAAO,kBAC/B,OACE,sBAAsB,MAAM,IAAI,SAAS,IAAI,WAAW,GAAG,iBAAiB,KAAK,UAAU,iBAAiB,EAC9G;GACF,OAAO;EACT;EACA,QAAQ,SAAS;GACf,KAAK,SAAS,UAAU;IACtB,IAAI,MAAM,MAAM,SAAS,SAAS,IAAI,MAAM,IAAI,MAAM,QAAQ;IAC9D,IAAI,MAAM,MAAM,QAAQ,MAAM,IAAI,MAAM,IAAI,GAAG,SAAS,IAAI,MAAM,IAAI,KAAK,MAAM,KAAK,GAAG,MAAM,QAAQ;IACvG,IAAI,MAAM,MAAM,UAAU,MAAM,OAAO,MAAM,EAAE;IAC/C,IAAI,MAAM,MAAM,WAAW,SAAS,OAAO,MAAM,EAAE;IACnD,IAAI,MAAM,MAAM,QAAQ,SAAS,OAAO,MAAM,EAAE;IAChD,QAAQ,KAAK;GACf,CAAC;EACH;EACA,UAAU,YAAY,KAAK,QAAQ,OAAO;EAC1C,QAAQ,WAAW,KAAK,MAAM,MAAM;CACtC;AACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//#region src/server/largeFrameLink.ts
|
|
2
|
+
const LARGE_FRAME_SIZE = 33554432;
|
|
3
|
+
/** Report encoded sizes without serializing or retaining frame payloads a second time. */
|
|
4
|
+
function reportingLargeFrames(link, notice) {
|
|
5
|
+
const provided = /* @__PURE__ */ new Map();
|
|
6
|
+
const consumed = /* @__PURE__ */ new Map();
|
|
7
|
+
const calls = /* @__PURE__ */ new Map();
|
|
8
|
+
link.onClose(() => {
|
|
9
|
+
provided.clear();
|
|
10
|
+
consumed.clear();
|
|
11
|
+
calls.clear();
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
get closed() {
|
|
15
|
+
return link.closed;
|
|
16
|
+
},
|
|
17
|
+
send(frame) {
|
|
18
|
+
if (frame.t === "shape") provided.set(frame.id, frame.contract);
|
|
19
|
+
let member = "";
|
|
20
|
+
if (frame.t === "state") member = `${provided.get(frame.hold) ?? frame.hold}.${frame.m}`;
|
|
21
|
+
if (frame.t === "call") member = `${consumed.get(frame.hold) ?? frame.hold}.${frame.member}`;
|
|
22
|
+
if (frame.t === "result") member = calls.get(frame.id) ?? String(frame.id);
|
|
23
|
+
const size = link.send(frame);
|
|
24
|
+
if (frame.t === "result") calls.delete(frame.id);
|
|
25
|
+
if (frame.t === "gone") provided.delete(frame.id);
|
|
26
|
+
if (frame.t === "release") consumed.delete(frame.id);
|
|
27
|
+
if (size !== void 0 && size > LARGE_FRAME_SIZE) notice(`large Chord frame: ${frame.t}${member ? ` ${member}` : ""}, encoded size ${size} (limit ${LARGE_FRAME_SIZE})`);
|
|
28
|
+
return size;
|
|
29
|
+
},
|
|
30
|
+
receive(handler) {
|
|
31
|
+
link.receive((frame) => {
|
|
32
|
+
if (frame.t === "shape") consumed.set(frame.id, frame.contract);
|
|
33
|
+
if (frame.t === "call") calls.set(frame.id, `${provided.get(frame.hold) ?? frame.hold}.${frame.member}`);
|
|
34
|
+
if (frame.t === "cancel") calls.delete(frame.id);
|
|
35
|
+
if (frame.t === "release") provided.delete(frame.id);
|
|
36
|
+
if (frame.t === "gone") consumed.delete(frame.id);
|
|
37
|
+
handler(frame);
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
onClose: (handler) => link.onClose(handler),
|
|
41
|
+
close: (reason) => link.close(reason)
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
export { reportingLargeFrames };
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=largeFrameLink.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"largeFrameLink.mjs","names":[],"sources":["../../../src/server/largeFrameLink.ts"],"sourcesContent":["import type { Link } from '@earendil-works/chord';\n\nconst LARGE_FRAME_SIZE = 32 * 1024 * 1024;\n\n/** Report encoded sizes without serializing or retaining frame payloads a second time. */\nexport function reportingLargeFrames(link: Link, notice: (message: string) => void): Link {\n const provided = new Map<number, string>();\n const consumed = new Map<number, string>();\n const calls = new Map<number, string>();\n link.onClose(() => {\n provided.clear();\n consumed.clear();\n calls.clear();\n });\n return {\n get closed() {\n return link.closed;\n },\n send(frame) {\n if (frame.t === 'shape') provided.set(frame.id, frame.contract);\n let member = '';\n if (frame.t === 'state') member = `${provided.get(frame.hold) ?? frame.hold}.${frame.m}`;\n if (frame.t === 'call') member = `${consumed.get(frame.hold) ?? frame.hold}.${frame.member}`;\n if (frame.t === 'result') member = calls.get(frame.id) ?? String(frame.id);\n const size = link.send(frame);\n if (frame.t === 'result') calls.delete(frame.id);\n if (frame.t === 'gone') provided.delete(frame.id);\n if (frame.t === 'release') consumed.delete(frame.id);\n if (size !== undefined && size > LARGE_FRAME_SIZE)\n notice(\n `large Chord frame: ${frame.t}${member ? ` ${member}` : ''}, encoded size ${size} (limit ${LARGE_FRAME_SIZE})`,\n );\n return size;\n },\n receive(handler) {\n link.receive((frame) => {\n if (frame.t === 'shape') consumed.set(frame.id, frame.contract);\n if (frame.t === 'call') calls.set(frame.id, `${provided.get(frame.hold) ?? frame.hold}.${frame.member}`);\n if (frame.t === 'cancel') calls.delete(frame.id);\n if (frame.t === 'release') provided.delete(frame.id);\n if (frame.t === 'gone') consumed.delete(frame.id);\n handler(frame);\n });\n },\n onClose: (handler) => link.onClose(handler),\n close: (reason) => link.close(reason),\n };\n}\n"],"mappings":";AAEA,MAAM,mBAAmB;;AAGzB,SAAgB,qBAAqB,MAAY,QAAyC;CACxF,MAAM,2BAAW,IAAI,IAAoB;CACzC,MAAM,2BAAW,IAAI,IAAoB;CACzC,MAAM,wBAAQ,IAAI,IAAoB;CACtC,KAAK,cAAc;EACjB,SAAS,MAAM;EACf,SAAS,MAAM;EACf,MAAM,MAAM;CACd,CAAC;CACD,OAAO;EACL,IAAI,SAAS;GACX,OAAO,KAAK;EACd;EACA,KAAK,OAAO;GACV,IAAI,MAAM,MAAM,SAAS,SAAS,IAAI,MAAM,IAAI,MAAM,QAAQ;GAC9D,IAAI,SAAS;GACb,IAAI,MAAM,MAAM,SAAS,SAAS,GAAG,SAAS,IAAI,MAAM,IAAI,KAAK,MAAM,KAAK,GAAG,MAAM;GACrF,IAAI,MAAM,MAAM,QAAQ,SAAS,GAAG,SAAS,IAAI,MAAM,IAAI,KAAK,MAAM,KAAK,GAAG,MAAM;GACpF,IAAI,MAAM,MAAM,UAAU,SAAS,MAAM,IAAI,MAAM,EAAE,KAAK,OAAO,MAAM,EAAE;GACzE,MAAM,OAAO,KAAK,KAAK,KAAK;GAC5B,IAAI,MAAM,MAAM,UAAU,MAAM,OAAO,MAAM,EAAE;GAC/C,IAAI,MAAM,MAAM,QAAQ,SAAS,OAAO,MAAM,EAAE;GAChD,IAAI,MAAM,MAAM,WAAW,SAAS,OAAO,MAAM,EAAE;GACnD,IAAI,SAAS,KAAA,KAAa,OAAO,kBAC/B,OACE,sBAAsB,MAAM,IAAI,SAAS,IAAI,WAAW,GAAG,iBAAiB,KAAK,UAAU,iBAAiB,EAC9G;GACF,OAAO;EACT;EACA,QAAQ,SAAS;GACf,KAAK,SAAS,UAAU;IACtB,IAAI,MAAM,MAAM,SAAS,SAAS,IAAI,MAAM,IAAI,MAAM,QAAQ;IAC9D,IAAI,MAAM,MAAM,QAAQ,MAAM,IAAI,MAAM,IAAI,GAAG,SAAS,IAAI,MAAM,IAAI,KAAK,MAAM,KAAK,GAAG,MAAM,QAAQ;IACvG,IAAI,MAAM,MAAM,UAAU,MAAM,OAAO,MAAM,EAAE;IAC/C,IAAI,MAAM,MAAM,WAAW,SAAS,OAAO,MAAM,EAAE;IACnD,IAAI,MAAM,MAAM,QAAQ,SAAS,OAAO,MAAM,EAAE;IAChD,QAAQ,KAAK;GACf,CAAC;EACH;EACA,UAAU,YAAY,KAAK,QAAQ,OAAO;EAC1C,QAAQ,WAAW,KAAK,MAAM,MAAM;CACtC;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/server/liveImport.ts
|
|
2
2
|
/** Longest a live package `import()` may take before it is abandoned and poisoned. */
|
|
3
3
|
const LIVE_IMPORT_TIMEOUT_MS = 15e3;
|
|
4
|
-
/** Longest a package factory (
|
|
4
|
+
/** Longest a package factory (server plugin apply, MCP session, Pi factory) may take. */
|
|
5
5
|
const LIVE_FACTORY_TIMEOUT_MS = 1e4;
|
|
6
6
|
/**
|
|
7
7
|
* Bounds one host-awaited step of package code.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveImport.cjs","names":[],"sources":["../../../src/server/liveImport.ts"],"sourcesContent":["/** Longest a live package `import()` may take before it is abandoned and poisoned. */\nexport const LIVE_IMPORT_TIMEOUT_MS = 15_000;\n/** Longest a package factory (
|
|
1
|
+
{"version":3,"file":"liveImport.cjs","names":[],"sources":["../../../src/server/liveImport.ts"],"sourcesContent":["/** Longest a live package `import()` may take before it is abandoned and poisoned. */\nexport const LIVE_IMPORT_TIMEOUT_MS = 15_000;\n/** Longest a package factory (server plugin apply, MCP session, Pi factory) may take. */\nexport const LIVE_FACTORY_TIMEOUT_MS = 10_000;\n\n/**\n * Bounds one host-awaited step of package code.\n *\n * The abandoned promise keeps running, because a module cannot be cancelled; its late\n * rejection is observed here so it never surfaces as an unhandled rejection.\n */\nexport function withTimeout<T>(work: Promise<T>, ms: number, label: string): Promise<T> {\n let timer: ReturnType<typeof setTimeout> | undefined;\n const timeout = new Promise<never>((_, reject) => {\n timer = setTimeout(() => reject(new Error(`${label} timed out after ${String(ms)} ms`)), ms);\n timer.unref?.();\n });\n work.catch(() => undefined);\n return Promise.race([work, timeout]).finally(() => clearTimeout(timer));\n}\n\nexport interface LiveImportGuard {\n /** Defaults to `LIVE_IMPORT_TIMEOUT_MS`. */\n readonly importTimeoutMs?: number;\n /** Defaults to `LIVE_FACTORY_TIMEOUT_MS`. */\n readonly factoryTimeoutMs?: number;\n /**\n * URLs whose import timed out or threw in this process. Shared across loaders so a bad\n * package is skipped everywhere until its content, and so its URL, changes.\n */\n readonly poisoned?: Set<string>;\n}\n\n/** Imports a live package URL under a timeout, skipping and recording poisoned URLs. */\nexport async function guardedImport(\n url: string,\n importer: (url: string) => Promise<unknown>,\n guard: LiveImportGuard,\n): Promise<unknown> {\n if (guard.poisoned?.has(url))\n throw new Error('skipped: this package content failed to load earlier and retries only after it changes');\n try {\n return await withTimeout(\n Promise.resolve().then(() => importer(url)),\n guard.importTimeoutMs ?? LIVE_IMPORT_TIMEOUT_MS,\n 'import',\n );\n } catch (error) {\n guard.poisoned?.add(url);\n throw error;\n }\n}\n"],"mappings":";;AACA,MAAa,yBAAyB;;AAEtC,MAAa,0BAA0B;;;;;;;AAQvC,SAAgB,YAAe,MAAkB,IAAY,OAA2B;CACtF,IAAI;CACJ,MAAM,UAAU,IAAI,SAAgB,GAAG,WAAW;EAChD,QAAQ,iBAAiB,uBAAO,IAAI,MAAM,GAAG,MAAM,mBAAmB,OAAO,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;EAC3F,MAAM,QAAQ;CAChB,CAAC;CACD,KAAK,YAAY,KAAA,CAAS;CAC1B,OAAO,QAAQ,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,cAAc,aAAa,KAAK,CAAC;AACxE;;AAeA,eAAsB,cACpB,KACA,UACA,OACkB;CAClB,IAAI,MAAM,UAAU,IAAI,GAAG,GACzB,MAAM,IAAI,MAAM,wFAAwF;CAC1G,IAAI;EACF,OAAO,MAAM,YACX,QAAQ,QAAQ,CAAC,CAAC,WAAW,SAAS,GAAG,CAAC,GAC1C,MAAM,mBAAA,MACN,QACF;CACF,SAAS,OAAO;EACd,MAAM,UAAU,IAAI,GAAG;EACvB,MAAM;CACR;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/server/liveImport.d.ts
|
|
2
2
|
/** Longest a live package `import()` may take before it is abandoned and poisoned. */
|
|
3
3
|
export declare const LIVE_IMPORT_TIMEOUT_MS = 15000;
|
|
4
|
-
/** Longest a package factory (
|
|
4
|
+
/** Longest a package factory (server plugin apply, MCP session, Pi factory) may take. */
|
|
5
5
|
export declare const LIVE_FACTORY_TIMEOUT_MS = 10000;
|
|
6
6
|
/**
|
|
7
7
|
* Bounds one host-awaited step of package code.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/server/liveImport.ts
|
|
2
2
|
/** Longest a live package `import()` may take before it is abandoned and poisoned. */
|
|
3
3
|
const LIVE_IMPORT_TIMEOUT_MS = 15e3;
|
|
4
|
-
/** Longest a package factory (
|
|
4
|
+
/** Longest a package factory (server plugin apply, MCP session, Pi factory) may take. */
|
|
5
5
|
const LIVE_FACTORY_TIMEOUT_MS = 1e4;
|
|
6
6
|
/**
|
|
7
7
|
* Bounds one host-awaited step of package code.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveImport.mjs","names":[],"sources":["../../../src/server/liveImport.ts"],"sourcesContent":["/** Longest a live package `import()` may take before it is abandoned and poisoned. */\nexport const LIVE_IMPORT_TIMEOUT_MS = 15_000;\n/** Longest a package factory (
|
|
1
|
+
{"version":3,"file":"liveImport.mjs","names":[],"sources":["../../../src/server/liveImport.ts"],"sourcesContent":["/** Longest a live package `import()` may take before it is abandoned and poisoned. */\nexport const LIVE_IMPORT_TIMEOUT_MS = 15_000;\n/** Longest a package factory (server plugin apply, MCP session, Pi factory) may take. */\nexport const LIVE_FACTORY_TIMEOUT_MS = 10_000;\n\n/**\n * Bounds one host-awaited step of package code.\n *\n * The abandoned promise keeps running, because a module cannot be cancelled; its late\n * rejection is observed here so it never surfaces as an unhandled rejection.\n */\nexport function withTimeout<T>(work: Promise<T>, ms: number, label: string): Promise<T> {\n let timer: ReturnType<typeof setTimeout> | undefined;\n const timeout = new Promise<never>((_, reject) => {\n timer = setTimeout(() => reject(new Error(`${label} timed out after ${String(ms)} ms`)), ms);\n timer.unref?.();\n });\n work.catch(() => undefined);\n return Promise.race([work, timeout]).finally(() => clearTimeout(timer));\n}\n\nexport interface LiveImportGuard {\n /** Defaults to `LIVE_IMPORT_TIMEOUT_MS`. */\n readonly importTimeoutMs?: number;\n /** Defaults to `LIVE_FACTORY_TIMEOUT_MS`. */\n readonly factoryTimeoutMs?: number;\n /**\n * URLs whose import timed out or threw in this process. Shared across loaders so a bad\n * package is skipped everywhere until its content, and so its URL, changes.\n */\n readonly poisoned?: Set<string>;\n}\n\n/** Imports a live package URL under a timeout, skipping and recording poisoned URLs. */\nexport async function guardedImport(\n url: string,\n importer: (url: string) => Promise<unknown>,\n guard: LiveImportGuard,\n): Promise<unknown> {\n if (guard.poisoned?.has(url))\n throw new Error('skipped: this package content failed to load earlier and retries only after it changes');\n try {\n return await withTimeout(\n Promise.resolve().then(() => importer(url)),\n guard.importTimeoutMs ?? LIVE_IMPORT_TIMEOUT_MS,\n 'import',\n );\n } catch (error) {\n guard.poisoned?.add(url);\n throw error;\n }\n}\n"],"mappings":";;AACA,MAAa,yBAAyB;;AAEtC,MAAa,0BAA0B;;;;;;;AAQvC,SAAgB,YAAe,MAAkB,IAAY,OAA2B;CACtF,IAAI;CACJ,MAAM,UAAU,IAAI,SAAgB,GAAG,WAAW;EAChD,QAAQ,iBAAiB,uBAAO,IAAI,MAAM,GAAG,MAAM,mBAAmB,OAAO,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;EAC3F,MAAM,QAAQ;CAChB,CAAC;CACD,KAAK,YAAY,KAAA,CAAS;CAC1B,OAAO,QAAQ,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,cAAc,aAAa,KAAK,CAAC;AACxE;;AAeA,eAAsB,cACpB,KACA,UACA,OACkB;CAClB,IAAI,MAAM,UAAU,IAAI,GAAG,GACzB,MAAM,IAAI,MAAM,wFAAwF;CAC1G,IAAI;EACF,OAAO,MAAM,YACX,QAAQ,QAAQ,CAAC,CAAC,WAAW,SAAS,GAAG,CAAC,GAC1C,MAAM,mBAAA,MACN,QACF;CACF,SAAS,OAAO;EACd,MAAM,UAAU,IAAI,GAAG;EACvB,MAAM;CACR;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpBundleLoader.cjs","names":["guardedImport","withTimeout"],"sources":["../../../src/server/mcpBundleLoader.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"mcpBundleLoader.cjs","names":["guardedImport","withTimeout"],"sources":["../../../src/server/mcpBundleLoader.ts"],"sourcesContent":["import type { PoMcpBundleEntry } from '../schemas/mcpBundle';\nimport type { PoMcpPluginDefinition, PoMcpUiResource } from '../schemas/mcpFacet';\nimport { guardedImport, LIVE_FACTORY_TIMEOUT_MS, type LiveImportGuard, withTimeout } from './liveImport';\n/** The parts of an MCP declaration a live session host reads. */\nexport type McpPluginDeclaration = Omit<PoMcpBundleEntry, 'sha256'> & { readonly sha256?: string };\n\nexport interface LoadedMcpPlugin {\n readonly declaration: McpPluginDeclaration;\n readonly plugin: PoMcpPluginDefinition;\n}\n\nfunction isMcpPlugin(value: unknown): value is PoMcpPluginDefinition {\n if (typeof value !== 'object' || value === null) return false;\n const candidate = value as Partial<PoMcpPluginDefinition>;\n return (\n typeof candidate.name === 'string' &&\n (typeof candidate.session === 'function' || typeof candidate.session === 'object')\n );\n}\n\n/** Points a package's widget-tagged tools at the composed UI resource and serves it with them. */\nfunction withPackageWidgets(\n original: PoMcpPluginDefinition,\n widgets: readonly string[] | undefined,\n ui: PoMcpUiResource | undefined,\n): PoMcpPluginDefinition {\n const allowedWidgets = new Set(widgets ?? []);\n if (ui === undefined || allowedWidgets.size === 0) return original;\n return {\n ...original,\n async session(context) {\n const scope = typeof original.session === 'function' ? await original.session(context) : original.session;\n const { tools: contributedTools, uiResources: contributedResources, ...rest } = scope;\n let usesWidget = false;\n const tools = contributedTools?.map((tool) => {\n const widget = tool._meta?.['po/widget'];\n if (widget === undefined) return tool;\n if (typeof widget !== 'string' || !allowedWidgets.has(widget))\n throw new Error(`MCP tool '${tool.name}' references a widget not owned by its package`);\n usesWidget = true;\n return {\n ...tool,\n _meta: {\n ...tool._meta,\n ui: { ...tool._meta?.ui, resourceUri: ui.uri, visibility: tool._meta?.ui?.visibility ?? ['model'] },\n 'openai/outputTemplate': ui.uri,\n },\n };\n });\n return {\n ...rest,\n ...(tools === undefined ? {} : { tools }),\n uiResources: [...(contributedResources ?? []), ...(usesWidget ? [ui] : [])],\n };\n },\n };\n}\n\n/** The served MCP App resource for composed package widget HTML. */\nexport function mcpUiResource(html: string, sha256: string): PoMcpUiResource {\n return {\n uri: `ui://po/tools/${sha256}/index.html`,\n name: 'po-tool-widgets',\n description: 'Package-owned tool widgets composed by po.',\n mimeType: 'text/html;profile=mcp-app',\n _meta: {\n ui: { csp: { connectDomains: [], resourceDomains: [] }, prefersBorder: true },\n 'openai/widgetPrefersBorder': true,\n 'openai/widgetCSP': { connect_domains: [], resource_domains: [] },\n },\n read: () => html,\n };\n}\n\n/** One live MCP plugin: its declaration plus the URL its package module imports from. */\nexport interface LiveMcpPluginEntry extends McpPluginDeclaration {\n /** Content-addressed import URL for `module`, see the po server's `packageUrl`. */\n readonly url: string;\n}\n\nexport interface LoadMcpPluginsOptions extends LiveImportGuard {\n readonly entries: readonly LiveMcpPluginEntry[];\n readonly majorMode: string;\n readonly activeLayers: readonly string[];\n readonly onNotice?: (message: string) => void;\n /** Retain admitted candidates so a live session can follow selection changes. */\n readonly retainCandidates?: boolean;\n /** Composed package widget UI, served by tools whose package owns the widget. */\n readonly uiResource?: PoMcpUiResource;\n /** Test seam; defaults to native `import()`. */\n readonly importer?: (url: string) => Promise<unknown>;\n}\n\nexport interface LoadedMcpPlugins {\n readonly plugins: readonly LoadedMcpPlugin[];\n}\n\n/**\n * Live reader: imports each package's built MCP entry from its content-addressed URL.\n *\n * Same eligibility rules as `loadMcpBundle`: an ineligible candidate is kept only with\n * `retainCandidates`, and a failure is fatal only for an eligible plugin. Package widgets\n * resolve to `uiResource`, which the po server builds per content key. Each import\n * is bounded and poisoned on failure (see `guardedImport`), and each `session` factory call\n * is bounded by `factoryTimeoutMs`.\n */\nexport async function loadMcpPlugins(options: LoadMcpPluginsOptions): Promise<LoadedMcpPlugins> {\n const importer = options.importer ?? ((url: string) => import(url));\n const factoryTimeoutMs = options.factoryTimeoutMs ?? LIVE_FACTORY_TIMEOUT_MS;\n const plugins: LoadedMcpPlugin[] = [];\n for (const { url, ...declaration } of options.entries) {\n const eligible = declaration.owners.some(\n (owner) =>\n owner.majorMode === options.majorMode &&\n (owner.layer === 'default' || options.activeLayers.includes(owner.layer)),\n );\n if (!eligible && options.retainCandidates !== true) continue;\n try {\n const imported = (await guardedImport(url, importer, options)) as { default?: unknown } | undefined;\n if (!isMcpPlugin(imported?.default)) throw new Error('default export is not an MCP plugin');\n const original = withPackageWidgets(imported.default, declaration.widgets, options.uiResource);\n const session = original.session;\n const label = `MCP plugin '${declaration.packageName}' session`;\n plugins.push({\n declaration,\n plugin:\n typeof session === 'function'\n ? {\n ...original,\n session: (context) =>\n withTimeout(\n Promise.resolve().then(() => session.call(original, context)),\n factoryTimeoutMs,\n label,\n ),\n }\n : original,\n });\n } catch (error) {\n const message = `MCP plugin '${declaration.packageName}' could not load (${error instanceof Error ? error.message : String(error)})`;\n if (eligible) throw new Error(message, { cause: error });\n options.onNotice?.(message);\n }\n }\n return { plugins };\n}\n"],"mappings":";;AAWA,SAAS,YAAY,OAAgD;CACnE,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO;CACxD,MAAM,YAAY;CAClB,OACE,OAAO,UAAU,SAAS,aACzB,OAAO,UAAU,YAAY,cAAc,OAAO,UAAU,YAAY;AAE7E;;AAGA,SAAS,mBACP,UACA,SACA,IACuB;CACvB,MAAM,iBAAiB,IAAI,IAAI,WAAW,CAAC,CAAC;CAC5C,IAAI,OAAO,KAAA,KAAa,eAAe,SAAS,GAAG,OAAO;CAC1D,OAAO;EACL,GAAG;EACH,MAAM,QAAQ,SAAS;GAErB,MAAM,EAAE,OAAO,kBAAkB,aAAa,sBAAsB,GAAG,SADzD,OAAO,SAAS,YAAY,aAAa,MAAM,SAAS,QAAQ,OAAO,IAAI,SAAS;GAElG,IAAI,aAAa;GACjB,MAAM,QAAQ,kBAAkB,KAAK,SAAS;IAC5C,MAAM,SAAS,KAAK,QAAQ;IAC5B,IAAI,WAAW,KAAA,GAAW,OAAO;IACjC,IAAI,OAAO,WAAW,YAAY,CAAC,eAAe,IAAI,MAAM,GAC1D,MAAM,IAAI,MAAM,aAAa,KAAK,KAAK,+CAA+C;IACxF,aAAa;IACb,OAAO;KACL,GAAG;KACH,OAAO;MACL,GAAG,KAAK;MACR,IAAI;OAAE,GAAG,KAAK,OAAO;OAAI,aAAa,GAAG;OAAK,YAAY,KAAK,OAAO,IAAI,cAAc,CAAC,OAAO;MAAE;MAClG,yBAAyB,GAAG;KAC9B;IACF;GACF,CAAC;GACD,OAAO;IACL,GAAG;IACH,GAAI,UAAU,KAAA,IAAY,CAAC,IAAI,EAAE,MAAM;IACvC,aAAa,CAAC,GAAI,wBAAwB,CAAC,GAAI,GAAI,aAAa,CAAC,EAAE,IAAI,CAAC,CAAE;GAC5E;EACF;CACF;AACF;;AAGA,SAAgB,cAAc,MAAc,QAAiC;CAC3E,OAAO;EACL,KAAK,iBAAiB,OAAO;EAC7B,MAAM;EACN,aAAa;EACb,UAAU;EACV,OAAO;GACL,IAAI;IAAE,KAAK;KAAE,gBAAgB,CAAC;KAAG,iBAAiB,CAAC;IAAE;IAAG,eAAe;GAAK;GAC5E,8BAA8B;GAC9B,oBAAoB;IAAE,iBAAiB,CAAC;IAAG,kBAAkB,CAAC;GAAE;EAClE;EACA,YAAY;CACd;AACF;;;;;;;;;;AAkCA,eAAsB,eAAe,SAA2D;CAC9F,MAAM,WAAW,QAAQ,cAAc,QAAgB,OAAO;CAC9D,MAAM,mBAAmB,QAAQ,oBAAA;CACjC,MAAM,UAA6B,CAAC;CACpC,KAAK,MAAM,EAAE,KAAK,GAAG,iBAAiB,QAAQ,SAAS;EACrD,MAAM,WAAW,YAAY,OAAO,MACjC,UACC,MAAM,cAAc,QAAQ,cAC3B,MAAM,UAAU,aAAa,QAAQ,aAAa,SAAS,MAAM,KAAK,EAC3E;EACA,IAAI,CAAC,YAAY,QAAQ,qBAAqB,MAAM;EACpD,IAAI;GACF,MAAM,WAAY,MAAMA,mBAAAA,cAAc,KAAK,UAAU,OAAO;GAC5D,IAAI,CAAC,YAAY,UAAU,OAAO,GAAG,MAAM,IAAI,MAAM,qCAAqC;GAC1F,MAAM,WAAW,mBAAmB,SAAS,SAAS,YAAY,SAAS,QAAQ,UAAU;GAC7F,MAAM,UAAU,SAAS;GACzB,MAAM,QAAQ,eAAe,YAAY,YAAY;GACrD,QAAQ,KAAK;IACX;IACA,QACE,OAAO,YAAY,aACf;KACE,GAAG;KACH,UAAU,YACRC,mBAAAA,YACE,QAAQ,QAAQ,CAAC,CAAC,WAAW,QAAQ,KAAK,UAAU,OAAO,CAAC,GAC5D,kBACA,KACF;IACJ,IACA;GACR,CAAC;EACH,SAAS,OAAO;GACd,MAAM,UAAU,eAAe,YAAY,YAAY,oBAAoB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE;GAClI,IAAI,UAAU,MAAM,IAAI,MAAM,SAAS,EAAE,OAAO,MAAM,CAAC;GACvD,QAAQ,WAAW,OAAO;EAC5B;CACF;CACA,OAAO,EAAE,QAAQ;AACnB"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PoMcpPluginDefinition, PoMcpUiResource } from "../schemas/mcpFacet.mjs";
|
|
2
2
|
import { LiveImportGuard } from "./liveImport.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { PoMcpBundleEntry } from "../schemas/mcpBundle.mjs";
|
|
4
4
|
//#region src/server/mcpBundleLoader.d.ts
|
|
5
5
|
/** The parts of an MCP declaration a live session host reads. */
|
|
6
|
-
export type McpPluginDeclaration = Omit<
|
|
6
|
+
export type McpPluginDeclaration = Omit<PoMcpBundleEntry, 'sha256'> & {
|
|
7
7
|
readonly sha256?: string;
|
|
8
8
|
};
|
|
9
9
|
export interface LoadedMcpPlugin {
|
|
10
10
|
readonly declaration: McpPluginDeclaration;
|
|
11
|
-
readonly plugin:
|
|
11
|
+
readonly plugin: PoMcpPluginDefinition;
|
|
12
12
|
}
|
|
13
13
|
/** The served MCP App resource for composed package widget HTML. */
|
|
14
|
-
export declare function mcpUiResource(html: string, sha256: string):
|
|
14
|
+
export declare function mcpUiResource(html: string, sha256: string): PoMcpUiResource;
|
|
15
15
|
/** One live MCP plugin: its declaration plus the URL its package module imports from. */
|
|
16
16
|
export interface LiveMcpPluginEntry extends McpPluginDeclaration {
|
|
17
17
|
/** Content-addressed import URL for `module`, see the po server's `packageUrl`. */
|
|
@@ -25,7 +25,7 @@ export interface LoadMcpPluginsOptions extends LiveImportGuard {
|
|
|
25
25
|
/** Retain admitted candidates so a live session can follow selection changes. */
|
|
26
26
|
readonly retainCandidates?: boolean;
|
|
27
27
|
/** Composed package widget UI, served by tools whose package owns the widget. */
|
|
28
|
-
readonly uiResource?:
|
|
28
|
+
readonly uiResource?: PoMcpUiResource;
|
|
29
29
|
/** Test seam; defaults to native `import()`. */
|
|
30
30
|
readonly importer?: (url: string) => Promise<unknown>;
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpBundleLoader.d.mts","names":[],"sources":["../../../src/server/mcpBundleLoader.ts"],"mappings":";;;;;YAIY,uBAAuB,KAAK;
|
|
1
|
+
{"version":3,"file":"mcpBundleLoader.d.mts","names":[],"sources":["../../../src/server/mcpBundleLoader.ts"],"mappings":";;;;;YAIY,uBAAuB,KAAK;WAAyC;;iBAEhE;WACN,aAAa;WACb,QAAQ;;;wBAmDH,cAAc,cAAc,iBAAiB;;iBAgB5C,2BAA2B;;WAEjC;;iBAGM,8BAA8B;WACpC,kBAAkB;WAClB;WACA;WACA,YAAY;;WAEZ;;WAEA,aAAa;;WAEb,YAAY,gBAAgB;;iBAGtB;WACN,kBAAkB;;;;;;;;;;;wBAYP,eAAe,SAAS,wBAAwB,QAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpBundleLoader.mjs","names":[],"sources":["../../../src/server/mcpBundleLoader.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"mcpBundleLoader.mjs","names":[],"sources":["../../../src/server/mcpBundleLoader.ts"],"sourcesContent":["import type { PoMcpBundleEntry } from '../schemas/mcpBundle';\nimport type { PoMcpPluginDefinition, PoMcpUiResource } from '../schemas/mcpFacet';\nimport { guardedImport, LIVE_FACTORY_TIMEOUT_MS, type LiveImportGuard, withTimeout } from './liveImport';\n/** The parts of an MCP declaration a live session host reads. */\nexport type McpPluginDeclaration = Omit<PoMcpBundleEntry, 'sha256'> & { readonly sha256?: string };\n\nexport interface LoadedMcpPlugin {\n readonly declaration: McpPluginDeclaration;\n readonly plugin: PoMcpPluginDefinition;\n}\n\nfunction isMcpPlugin(value: unknown): value is PoMcpPluginDefinition {\n if (typeof value !== 'object' || value === null) return false;\n const candidate = value as Partial<PoMcpPluginDefinition>;\n return (\n typeof candidate.name === 'string' &&\n (typeof candidate.session === 'function' || typeof candidate.session === 'object')\n );\n}\n\n/** Points a package's widget-tagged tools at the composed UI resource and serves it with them. */\nfunction withPackageWidgets(\n original: PoMcpPluginDefinition,\n widgets: readonly string[] | undefined,\n ui: PoMcpUiResource | undefined,\n): PoMcpPluginDefinition {\n const allowedWidgets = new Set(widgets ?? []);\n if (ui === undefined || allowedWidgets.size === 0) return original;\n return {\n ...original,\n async session(context) {\n const scope = typeof original.session === 'function' ? await original.session(context) : original.session;\n const { tools: contributedTools, uiResources: contributedResources, ...rest } = scope;\n let usesWidget = false;\n const tools = contributedTools?.map((tool) => {\n const widget = tool._meta?.['po/widget'];\n if (widget === undefined) return tool;\n if (typeof widget !== 'string' || !allowedWidgets.has(widget))\n throw new Error(`MCP tool '${tool.name}' references a widget not owned by its package`);\n usesWidget = true;\n return {\n ...tool,\n _meta: {\n ...tool._meta,\n ui: { ...tool._meta?.ui, resourceUri: ui.uri, visibility: tool._meta?.ui?.visibility ?? ['model'] },\n 'openai/outputTemplate': ui.uri,\n },\n };\n });\n return {\n ...rest,\n ...(tools === undefined ? {} : { tools }),\n uiResources: [...(contributedResources ?? []), ...(usesWidget ? [ui] : [])],\n };\n },\n };\n}\n\n/** The served MCP App resource for composed package widget HTML. */\nexport function mcpUiResource(html: string, sha256: string): PoMcpUiResource {\n return {\n uri: `ui://po/tools/${sha256}/index.html`,\n name: 'po-tool-widgets',\n description: 'Package-owned tool widgets composed by po.',\n mimeType: 'text/html;profile=mcp-app',\n _meta: {\n ui: { csp: { connectDomains: [], resourceDomains: [] }, prefersBorder: true },\n 'openai/widgetPrefersBorder': true,\n 'openai/widgetCSP': { connect_domains: [], resource_domains: [] },\n },\n read: () => html,\n };\n}\n\n/** One live MCP plugin: its declaration plus the URL its package module imports from. */\nexport interface LiveMcpPluginEntry extends McpPluginDeclaration {\n /** Content-addressed import URL for `module`, see the po server's `packageUrl`. */\n readonly url: string;\n}\n\nexport interface LoadMcpPluginsOptions extends LiveImportGuard {\n readonly entries: readonly LiveMcpPluginEntry[];\n readonly majorMode: string;\n readonly activeLayers: readonly string[];\n readonly onNotice?: (message: string) => void;\n /** Retain admitted candidates so a live session can follow selection changes. */\n readonly retainCandidates?: boolean;\n /** Composed package widget UI, served by tools whose package owns the widget. */\n readonly uiResource?: PoMcpUiResource;\n /** Test seam; defaults to native `import()`. */\n readonly importer?: (url: string) => Promise<unknown>;\n}\n\nexport interface LoadedMcpPlugins {\n readonly plugins: readonly LoadedMcpPlugin[];\n}\n\n/**\n * Live reader: imports each package's built MCP entry from its content-addressed URL.\n *\n * Same eligibility rules as `loadMcpBundle`: an ineligible candidate is kept only with\n * `retainCandidates`, and a failure is fatal only for an eligible plugin. Package widgets\n * resolve to `uiResource`, which the po server builds per content key. Each import\n * is bounded and poisoned on failure (see `guardedImport`), and each `session` factory call\n * is bounded by `factoryTimeoutMs`.\n */\nexport async function loadMcpPlugins(options: LoadMcpPluginsOptions): Promise<LoadedMcpPlugins> {\n const importer = options.importer ?? ((url: string) => import(url));\n const factoryTimeoutMs = options.factoryTimeoutMs ?? LIVE_FACTORY_TIMEOUT_MS;\n const plugins: LoadedMcpPlugin[] = [];\n for (const { url, ...declaration } of options.entries) {\n const eligible = declaration.owners.some(\n (owner) =>\n owner.majorMode === options.majorMode &&\n (owner.layer === 'default' || options.activeLayers.includes(owner.layer)),\n );\n if (!eligible && options.retainCandidates !== true) continue;\n try {\n const imported = (await guardedImport(url, importer, options)) as { default?: unknown } | undefined;\n if (!isMcpPlugin(imported?.default)) throw new Error('default export is not an MCP plugin');\n const original = withPackageWidgets(imported.default, declaration.widgets, options.uiResource);\n const session = original.session;\n const label = `MCP plugin '${declaration.packageName}' session`;\n plugins.push({\n declaration,\n plugin:\n typeof session === 'function'\n ? {\n ...original,\n session: (context) =>\n withTimeout(\n Promise.resolve().then(() => session.call(original, context)),\n factoryTimeoutMs,\n label,\n ),\n }\n : original,\n });\n } catch (error) {\n const message = `MCP plugin '${declaration.packageName}' could not load (${error instanceof Error ? error.message : String(error)})`;\n if (eligible) throw new Error(message, { cause: error });\n options.onNotice?.(message);\n }\n }\n return { plugins };\n}\n"],"mappings":";;AAWA,SAAS,YAAY,OAAgD;CACnE,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO;CACxD,MAAM,YAAY;CAClB,OACE,OAAO,UAAU,SAAS,aACzB,OAAO,UAAU,YAAY,cAAc,OAAO,UAAU,YAAY;AAE7E;;AAGA,SAAS,mBACP,UACA,SACA,IACuB;CACvB,MAAM,iBAAiB,IAAI,IAAI,WAAW,CAAC,CAAC;CAC5C,IAAI,OAAO,KAAA,KAAa,eAAe,SAAS,GAAG,OAAO;CAC1D,OAAO;EACL,GAAG;EACH,MAAM,QAAQ,SAAS;GAErB,MAAM,EAAE,OAAO,kBAAkB,aAAa,sBAAsB,GAAG,SADzD,OAAO,SAAS,YAAY,aAAa,MAAM,SAAS,QAAQ,OAAO,IAAI,SAAS;GAElG,IAAI,aAAa;GACjB,MAAM,QAAQ,kBAAkB,KAAK,SAAS;IAC5C,MAAM,SAAS,KAAK,QAAQ;IAC5B,IAAI,WAAW,KAAA,GAAW,OAAO;IACjC,IAAI,OAAO,WAAW,YAAY,CAAC,eAAe,IAAI,MAAM,GAC1D,MAAM,IAAI,MAAM,aAAa,KAAK,KAAK,+CAA+C;IACxF,aAAa;IACb,OAAO;KACL,GAAG;KACH,OAAO;MACL,GAAG,KAAK;MACR,IAAI;OAAE,GAAG,KAAK,OAAO;OAAI,aAAa,GAAG;OAAK,YAAY,KAAK,OAAO,IAAI,cAAc,CAAC,OAAO;MAAE;MAClG,yBAAyB,GAAG;KAC9B;IACF;GACF,CAAC;GACD,OAAO;IACL,GAAG;IACH,GAAI,UAAU,KAAA,IAAY,CAAC,IAAI,EAAE,MAAM;IACvC,aAAa,CAAC,GAAI,wBAAwB,CAAC,GAAI,GAAI,aAAa,CAAC,EAAE,IAAI,CAAC,CAAE;GAC5E;EACF;CACF;AACF;;AAGA,SAAgB,cAAc,MAAc,QAAiC;CAC3E,OAAO;EACL,KAAK,iBAAiB,OAAO;EAC7B,MAAM;EACN,aAAa;EACb,UAAU;EACV,OAAO;GACL,IAAI;IAAE,KAAK;KAAE,gBAAgB,CAAC;KAAG,iBAAiB,CAAC;IAAE;IAAG,eAAe;GAAK;GAC5E,8BAA8B;GAC9B,oBAAoB;IAAE,iBAAiB,CAAC;IAAG,kBAAkB,CAAC;GAAE;EAClE;EACA,YAAY;CACd;AACF;;;;;;;;;;AAkCA,eAAsB,eAAe,SAA2D;CAC9F,MAAM,WAAW,QAAQ,cAAc,QAAgB,OAAO;CAC9D,MAAM,mBAAmB,QAAQ,oBAAA;CACjC,MAAM,UAA6B,CAAC;CACpC,KAAK,MAAM,EAAE,KAAK,GAAG,iBAAiB,QAAQ,SAAS;EACrD,MAAM,WAAW,YAAY,OAAO,MACjC,UACC,MAAM,cAAc,QAAQ,cAC3B,MAAM,UAAU,aAAa,QAAQ,aAAa,SAAS,MAAM,KAAK,EAC3E;EACA,IAAI,CAAC,YAAY,QAAQ,qBAAqB,MAAM;EACpD,IAAI;GACF,MAAM,WAAY,MAAM,cAAc,KAAK,UAAU,OAAO;GAC5D,IAAI,CAAC,YAAY,UAAU,OAAO,GAAG,MAAM,IAAI,MAAM,qCAAqC;GAC1F,MAAM,WAAW,mBAAmB,SAAS,SAAS,YAAY,SAAS,QAAQ,UAAU;GAC7F,MAAM,UAAU,SAAS;GACzB,MAAM,QAAQ,eAAe,YAAY,YAAY;GACrD,QAAQ,KAAK;IACX;IACA,QACE,OAAO,YAAY,aACf;KACE,GAAG;KACH,UAAU,YACR,YACE,QAAQ,QAAQ,CAAC,CAAC,WAAW,QAAQ,KAAK,UAAU,OAAO,CAAC,GAC5D,kBACA,KACF;IACJ,IACA;GACR,CAAC;EACH,SAAS,OAAO;GACd,MAAM,UAAU,eAAe,YAAY,YAAY,oBAAoB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE;GAClI,IAAI,UAAU,MAAM,IAAI,MAAM,SAAS,EAAE,OAAO,MAAM,CAAC;GACvD,QAAQ,WAAW,OAAO;EAC5B;CACF;CACA,OAAO,EAAE,QAAQ;AACnB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const require_liveImport = require("./liveImport.cjs");
|
|
2
|
+
//#region src/server/serverPackages.ts
|
|
3
|
+
/** Pure pre-model metadata from initially admitted session packages, never from retained candidates. */
|
|
4
|
+
function selectedServerProviderOverrides(packages, environment) {
|
|
5
|
+
return packages.flatMap(({ declaration, plugin, initiallyEligible }) => initiallyEligible === false || !declaration.scopes.includes("session") ? [] : plugin.providerOverrides?.({ environment }) ?? []);
|
|
6
|
+
}
|
|
7
|
+
function ownedBy(owners, majorMode, activeLayers) {
|
|
8
|
+
return owners.some((owner) => owner.majorMode === majorMode && (owner.layer === "default" || activeLayers.includes(owner.layer)));
|
|
9
|
+
}
|
|
10
|
+
/** A module's default export is a server plugin when it is a named cordis object plugin. */
|
|
11
|
+
function isServerPlugin(value) {
|
|
12
|
+
return typeof value === "object" && value !== null && typeof value.apply === "function" && typeof value.name === "string";
|
|
13
|
+
}
|
|
14
|
+
async function loadPackageEntries(scope, entries, options, importUrl) {
|
|
15
|
+
const packages = [];
|
|
16
|
+
for (const declaration of entries) {
|
|
17
|
+
if (!declaration.scopes.includes(scope)) continue;
|
|
18
|
+
const eligible = ownedBy(declaration.owners, options.majorMode, options.activeLayers);
|
|
19
|
+
if (!(scope === "session" && options.retainCandidates === true) && !eligible) continue;
|
|
20
|
+
try {
|
|
21
|
+
const imported = await importUrl(declaration);
|
|
22
|
+
if (!isServerPlugin(imported?.default)) throw new Error("default export is not a server plugin");
|
|
23
|
+
packages.push({
|
|
24
|
+
declaration,
|
|
25
|
+
plugin: imported.default,
|
|
26
|
+
...scope === "session" && options.retainCandidates ? {
|
|
27
|
+
retained: true,
|
|
28
|
+
initiallyEligible: eligible
|
|
29
|
+
} : {}
|
|
30
|
+
});
|
|
31
|
+
} catch (error) {
|
|
32
|
+
const message = `Server package '${declaration.packageName}' could not load (${error instanceof Error ? error.message : String(error)})`;
|
|
33
|
+
if (declaration.required && eligible) throw new Error(message, { cause: error });
|
|
34
|
+
options.onNotice?.(message);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return packages;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Live reader: imports each package's built entry from its content-addressed URL.
|
|
41
|
+
*
|
|
42
|
+
* Applies the scope, ownership and `required` rules of each entry. Each import is bounded and a URL that
|
|
43
|
+
* timed out or threw is poisoned (see `guardedImport`); a poisoned required package fails
|
|
44
|
+
* exactly as a load failure does. A URL is imported once per process, so the same content is the
|
|
45
|
+
* same plugin object, which is how a scope tells an unchanged package from a changed one.
|
|
46
|
+
*/
|
|
47
|
+
async function loadServerPackages(scope, options) {
|
|
48
|
+
const importer = options.importer ?? ((url) => import(url));
|
|
49
|
+
const urls = new Map(options.entries.map((entry) => [entry, entry.url]));
|
|
50
|
+
const packages = await loadPackageEntries(scope, options.entries, options, (declaration) => require_liveImport.guardedImport(urls.get(declaration), importer, options));
|
|
51
|
+
return {
|
|
52
|
+
entries: options.entries,
|
|
53
|
+
packages
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
exports.loadServerPackages = loadServerPackages;
|
|
58
|
+
exports.selectedServerProviderOverrides = selectedServerProviderOverrides;
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=serverPackages.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverPackages.cjs","names":["guardedImport"],"sources":["../../../src/server/serverPackages.ts"],"sourcesContent":["import type { PoApiScope } from '../schemas/packageApi';\nimport type { PoServerBundleEntry } from '../schemas/serverBundle';\nimport type { PoServerPlugin, PoServerProviderOverride } from '../schemas/serverPlugin';\nimport { guardedImport, type LiveImportGuard } from './liveImport';\n\n/** One imported package: its bundle entry and the server plugin its module exports. */\nexport interface LoadedServerPackage {\n readonly declaration: PoServerBundleEntry;\n readonly plugin: PoServerPlugin;\n readonly retained?: true;\n readonly initiallyEligible?: boolean;\n}\n\n/** One live server package: the bundle entry shape plus the URL its package module imports from. */\nexport interface LiveServerPackageEntry extends PoServerBundleEntry {\n /** Content-addressed import URL for `module`, see the po server's `packageUrl`. */\n readonly url: string;\n}\n\nexport interface LoadServerPackagesOptions extends LiveImportGuard {\n readonly entries: readonly LiveServerPackageEntry[];\n readonly majorMode: string;\n readonly activeLayers: readonly string[];\n readonly onNotice?: (message: string) => void;\n /** Only a session host with declarative contribution gating may retain all candidates. */\n readonly retainCandidates?: boolean;\n /** Test seam; defaults to native `import()`. */\n readonly importer?: (url: string) => Promise<unknown>;\n}\n\nexport interface LoadedServerPackages {\n readonly entries: readonly LiveServerPackageEntry[];\n readonly packages: readonly LoadedServerPackage[];\n}\n\n/** Pure pre-model metadata from initially admitted session packages, never from retained candidates. */\nexport function selectedServerProviderOverrides(\n packages: readonly LoadedServerPackage[],\n environment: Readonly<Record<string, string | undefined>>,\n): readonly PoServerProviderOverride[] {\n return packages.flatMap(({ declaration, plugin, initiallyEligible }) =>\n initiallyEligible === false || !declaration.scopes.includes('session')\n ? []\n : (plugin.providerOverrides?.({ environment }) ?? []),\n );\n}\n\nfunction ownedBy(\n owners: readonly { readonly majorMode: string; readonly layer: string }[],\n majorMode: string,\n activeLayers: readonly string[],\n): boolean {\n return owners.some(\n (owner) => owner.majorMode === majorMode && (owner.layer === 'default' || activeLayers.includes(owner.layer)),\n );\n}\n\n/** A module's default export is a server plugin when it is a named cordis object plugin. */\nfunction isServerPlugin(value: unknown): value is PoServerPlugin {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as { apply?: unknown }).apply === 'function' &&\n typeof (value as { name?: unknown }).name === 'string'\n );\n}\n\nasync function loadPackageEntries(\n scope: PoApiScope,\n entries: readonly PoServerBundleEntry[],\n options: Pick<LoadServerPackagesOptions, 'majorMode' | 'activeLayers' | 'onNotice' | 'retainCandidates'>,\n importUrl: (declaration: PoServerBundleEntry) => Promise<unknown>,\n): Promise<LoadedServerPackage[]> {\n const packages: LoadedServerPackage[] = [];\n for (const declaration of entries) {\n if (!declaration.scopes.includes(scope)) continue;\n const eligible = ownedBy(declaration.owners, options.majorMode, options.activeLayers);\n if (!(scope === 'session' && options.retainCandidates === true) && !eligible) continue;\n try {\n const imported = (await importUrl(declaration)) as { default?: unknown } | undefined;\n if (!isServerPlugin(imported?.default)) throw new Error('default export is not a server plugin');\n packages.push({\n declaration,\n plugin: imported.default,\n ...(scope === 'session' && options.retainCandidates\n ? { retained: true as const, initiallyEligible: eligible }\n : {}),\n });\n } catch (error) {\n const message = `Server package '${declaration.packageName}' could not load (${error instanceof Error ? error.message : String(error)})`;\n if (declaration.required && eligible) throw new Error(message, { cause: error });\n options.onNotice?.(message);\n }\n }\n return packages;\n}\n\n/**\n * Live reader: imports each package's built entry from its content-addressed URL.\n *\n * Applies the scope, ownership and `required` rules of each entry. Each import is bounded and a URL that\n * timed out or threw is poisoned (see `guardedImport`); a poisoned required package fails\n * exactly as a load failure does. A URL is imported once per process, so the same content is the\n * same plugin object, which is how a scope tells an unchanged package from a changed one.\n */\nexport async function loadServerPackages(\n scope: PoApiScope,\n options: LoadServerPackagesOptions,\n): Promise<LoadedServerPackages> {\n const importer = options.importer ?? ((url: string) => import(url));\n const urls = new Map(options.entries.map((entry) => [entry as PoServerBundleEntry, entry.url]));\n const packages = await loadPackageEntries(scope, options.entries, options, (declaration) =>\n guardedImport(urls.get(declaration)!, importer, options),\n );\n return { entries: options.entries, packages };\n}\n"],"mappings":";;;AAoCA,SAAgB,gCACd,UACA,aACqC;CACrC,OAAO,SAAS,SAAS,EAAE,aAAa,QAAQ,wBAC9C,sBAAsB,SAAS,CAAC,YAAY,OAAO,SAAS,SAAS,IACjE,CAAC,IACA,OAAO,oBAAoB,EAAE,YAAY,CAAC,KAAK,CAAC,CACvD;AACF;AAEA,SAAS,QACP,QACA,WACA,cACS;CACT,OAAO,OAAO,MACX,UAAU,MAAM,cAAc,cAAc,MAAM,UAAU,aAAa,aAAa,SAAS,MAAM,KAAK,EAC7G;AACF;;AAGA,SAAS,eAAe,OAAyC;CAC/D,OACE,OAAO,UAAU,YACjB,UAAU,QACV,OAAQ,MAA8B,UAAU,cAChD,OAAQ,MAA6B,SAAS;AAElD;AAEA,eAAe,mBACb,OACA,SACA,SACA,WACgC;CAChC,MAAM,WAAkC,CAAC;CACzC,KAAK,MAAM,eAAe,SAAS;EACjC,IAAI,CAAC,YAAY,OAAO,SAAS,KAAK,GAAG;EACzC,MAAM,WAAW,QAAQ,YAAY,QAAQ,QAAQ,WAAW,QAAQ,YAAY;EACpF,IAAI,EAAE,UAAU,aAAa,QAAQ,qBAAqB,SAAS,CAAC,UAAU;EAC9E,IAAI;GACF,MAAM,WAAY,MAAM,UAAU,WAAW;GAC7C,IAAI,CAAC,eAAe,UAAU,OAAO,GAAG,MAAM,IAAI,MAAM,uCAAuC;GAC/F,SAAS,KAAK;IACZ;IACA,QAAQ,SAAS;IACjB,GAAI,UAAU,aAAa,QAAQ,mBAC/B;KAAE,UAAU;KAAe,mBAAmB;IAAS,IACvD,CAAC;GACP,CAAC;EACH,SAAS,OAAO;GACd,MAAM,UAAU,mBAAmB,YAAY,YAAY,oBAAoB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE;GACtI,IAAI,YAAY,YAAY,UAAU,MAAM,IAAI,MAAM,SAAS,EAAE,OAAO,MAAM,CAAC;GAC/E,QAAQ,WAAW,OAAO;EAC5B;CACF;CACA,OAAO;AACT;;;;;;;;;AAUA,eAAsB,mBACpB,OACA,SAC+B;CAC/B,MAAM,WAAW,QAAQ,cAAc,QAAgB,OAAO;CAC9D,MAAM,OAAO,IAAI,IAAI,QAAQ,QAAQ,KAAK,UAAU,CAAC,OAA8B,MAAM,GAAG,CAAC,CAAC;CAC9F,MAAM,WAAW,MAAM,mBAAmB,OAAO,QAAQ,SAAS,UAAU,gBAC1EA,mBAAAA,cAAc,KAAK,IAAI,WAAW,GAAI,UAAU,OAAO,CACzD;CACA,OAAO;EAAE,SAAS,QAAQ;EAAS;CAAS;AAC9C"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { PoApiScope } from "../schemas/packageApi.mjs";
|
|
2
|
+
import { PoServerBundleEntry } from "../schemas/serverBundle.mjs";
|
|
3
|
+
import { PoServerPlugin, PoServerProviderOverride } from "../schemas/serverPlugin.mjs";
|
|
4
|
+
import { LiveImportGuard } from "./liveImport.mjs";
|
|
5
|
+
//#region src/server/serverPackages.d.ts
|
|
6
|
+
/** One imported package: its bundle entry and the server plugin its module exports. */
|
|
7
|
+
export interface LoadedServerPackage {
|
|
8
|
+
readonly declaration: PoServerBundleEntry;
|
|
9
|
+
readonly plugin: PoServerPlugin;
|
|
10
|
+
readonly retained?: true;
|
|
11
|
+
readonly initiallyEligible?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/** One live server package: the bundle entry shape plus the URL its package module imports from. */
|
|
14
|
+
export interface LiveServerPackageEntry extends PoServerBundleEntry {
|
|
15
|
+
/** Content-addressed import URL for `module`, see the po server's `packageUrl`. */
|
|
16
|
+
readonly url: string;
|
|
17
|
+
}
|
|
18
|
+
export interface LoadServerPackagesOptions extends LiveImportGuard {
|
|
19
|
+
readonly entries: readonly LiveServerPackageEntry[];
|
|
20
|
+
readonly majorMode: string;
|
|
21
|
+
readonly activeLayers: readonly string[];
|
|
22
|
+
readonly onNotice?: (message: string) => void;
|
|
23
|
+
/** Only a session host with declarative contribution gating may retain all candidates. */
|
|
24
|
+
readonly retainCandidates?: boolean;
|
|
25
|
+
/** Test seam; defaults to native `import()`. */
|
|
26
|
+
readonly importer?: (url: string) => Promise<unknown>;
|
|
27
|
+
}
|
|
28
|
+
export interface LoadedServerPackages {
|
|
29
|
+
readonly entries: readonly LiveServerPackageEntry[];
|
|
30
|
+
readonly packages: readonly LoadedServerPackage[];
|
|
31
|
+
}
|
|
32
|
+
/** Pure pre-model metadata from initially admitted session packages, never from retained candidates. */
|
|
33
|
+
export declare function selectedServerProviderOverrides(packages: readonly LoadedServerPackage[], environment: Readonly<Record<string, string | undefined>>): readonly PoServerProviderOverride[];
|
|
34
|
+
/**
|
|
35
|
+
* Live reader: imports each package's built entry from its content-addressed URL.
|
|
36
|
+
*
|
|
37
|
+
* Applies the scope, ownership and `required` rules of each entry. Each import is bounded and a URL that
|
|
38
|
+
* timed out or threw is poisoned (see `guardedImport`); a poisoned required package fails
|
|
39
|
+
* exactly as a load failure does. A URL is imported once per process, so the same content is the
|
|
40
|
+
* same plugin object, which is how a scope tells an unchanged package from a changed one.
|
|
41
|
+
*/
|
|
42
|
+
export declare function loadServerPackages(scope: PoApiScope, options: LoadServerPackagesOptions): Promise<LoadedServerPackages>;
|
|
43
|
+
//#endregion
|
|
44
|
+
//# sourceMappingURL=serverPackages.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverPackages.d.mts","names":[],"sources":["../../../src/server/serverPackages.ts"],"mappings":";;;;;;iBAMiB;WACN,aAAa;WACb,QAAQ;WACR;WACA;;;iBAIM,+BAA+B;;WAErC;;iBAGM,kCAAkC;WACxC,kBAAkB;WAClB;WACA;WACA,YAAY;;WAEZ;;WAEA,YAAY,gBAAgB;;iBAGtB;WACN,kBAAkB;WAClB,mBAAmB;;;wBAId,gCACd,mBAAmB,uBACnB,aAAa,SAAS,+CACZ;;;;;;;;;wBAkEU,mBACpB,OAAO,YACP,SAAS,4BACR,QAAQ"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { guardedImport } from "./liveImport.mjs";
|
|
2
|
+
//#region src/server/serverPackages.ts
|
|
3
|
+
/** Pure pre-model metadata from initially admitted session packages, never from retained candidates. */
|
|
4
|
+
function selectedServerProviderOverrides(packages, environment) {
|
|
5
|
+
return packages.flatMap(({ declaration, plugin, initiallyEligible }) => initiallyEligible === false || !declaration.scopes.includes("session") ? [] : plugin.providerOverrides?.({ environment }) ?? []);
|
|
6
|
+
}
|
|
7
|
+
function ownedBy(owners, majorMode, activeLayers) {
|
|
8
|
+
return owners.some((owner) => owner.majorMode === majorMode && (owner.layer === "default" || activeLayers.includes(owner.layer)));
|
|
9
|
+
}
|
|
10
|
+
/** A module's default export is a server plugin when it is a named cordis object plugin. */
|
|
11
|
+
function isServerPlugin(value) {
|
|
12
|
+
return typeof value === "object" && value !== null && typeof value.apply === "function" && typeof value.name === "string";
|
|
13
|
+
}
|
|
14
|
+
async function loadPackageEntries(scope, entries, options, importUrl) {
|
|
15
|
+
const packages = [];
|
|
16
|
+
for (const declaration of entries) {
|
|
17
|
+
if (!declaration.scopes.includes(scope)) continue;
|
|
18
|
+
const eligible = ownedBy(declaration.owners, options.majorMode, options.activeLayers);
|
|
19
|
+
if (!(scope === "session" && options.retainCandidates === true) && !eligible) continue;
|
|
20
|
+
try {
|
|
21
|
+
const imported = await importUrl(declaration);
|
|
22
|
+
if (!isServerPlugin(imported?.default)) throw new Error("default export is not a server plugin");
|
|
23
|
+
packages.push({
|
|
24
|
+
declaration,
|
|
25
|
+
plugin: imported.default,
|
|
26
|
+
...scope === "session" && options.retainCandidates ? {
|
|
27
|
+
retained: true,
|
|
28
|
+
initiallyEligible: eligible
|
|
29
|
+
} : {}
|
|
30
|
+
});
|
|
31
|
+
} catch (error) {
|
|
32
|
+
const message = `Server package '${declaration.packageName}' could not load (${error instanceof Error ? error.message : String(error)})`;
|
|
33
|
+
if (declaration.required && eligible) throw new Error(message, { cause: error });
|
|
34
|
+
options.onNotice?.(message);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return packages;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Live reader: imports each package's built entry from its content-addressed URL.
|
|
41
|
+
*
|
|
42
|
+
* Applies the scope, ownership and `required` rules of each entry. Each import is bounded and a URL that
|
|
43
|
+
* timed out or threw is poisoned (see `guardedImport`); a poisoned required package fails
|
|
44
|
+
* exactly as a load failure does. A URL is imported once per process, so the same content is the
|
|
45
|
+
* same plugin object, which is how a scope tells an unchanged package from a changed one.
|
|
46
|
+
*/
|
|
47
|
+
async function loadServerPackages(scope, options) {
|
|
48
|
+
const importer = options.importer ?? ((url) => import(url));
|
|
49
|
+
const urls = new Map(options.entries.map((entry) => [entry, entry.url]));
|
|
50
|
+
const packages = await loadPackageEntries(scope, options.entries, options, (declaration) => guardedImport(urls.get(declaration), importer, options));
|
|
51
|
+
return {
|
|
52
|
+
entries: options.entries,
|
|
53
|
+
packages
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
export { loadServerPackages, selectedServerProviderOverrides };
|
|
58
|
+
|
|
59
|
+
//# sourceMappingURL=serverPackages.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverPackages.mjs","names":[],"sources":["../../../src/server/serverPackages.ts"],"sourcesContent":["import type { PoApiScope } from '../schemas/packageApi';\nimport type { PoServerBundleEntry } from '../schemas/serverBundle';\nimport type { PoServerPlugin, PoServerProviderOverride } from '../schemas/serverPlugin';\nimport { guardedImport, type LiveImportGuard } from './liveImport';\n\n/** One imported package: its bundle entry and the server plugin its module exports. */\nexport interface LoadedServerPackage {\n readonly declaration: PoServerBundleEntry;\n readonly plugin: PoServerPlugin;\n readonly retained?: true;\n readonly initiallyEligible?: boolean;\n}\n\n/** One live server package: the bundle entry shape plus the URL its package module imports from. */\nexport interface LiveServerPackageEntry extends PoServerBundleEntry {\n /** Content-addressed import URL for `module`, see the po server's `packageUrl`. */\n readonly url: string;\n}\n\nexport interface LoadServerPackagesOptions extends LiveImportGuard {\n readonly entries: readonly LiveServerPackageEntry[];\n readonly majorMode: string;\n readonly activeLayers: readonly string[];\n readonly onNotice?: (message: string) => void;\n /** Only a session host with declarative contribution gating may retain all candidates. */\n readonly retainCandidates?: boolean;\n /** Test seam; defaults to native `import()`. */\n readonly importer?: (url: string) => Promise<unknown>;\n}\n\nexport interface LoadedServerPackages {\n readonly entries: readonly LiveServerPackageEntry[];\n readonly packages: readonly LoadedServerPackage[];\n}\n\n/** Pure pre-model metadata from initially admitted session packages, never from retained candidates. */\nexport function selectedServerProviderOverrides(\n packages: readonly LoadedServerPackage[],\n environment: Readonly<Record<string, string | undefined>>,\n): readonly PoServerProviderOverride[] {\n return packages.flatMap(({ declaration, plugin, initiallyEligible }) =>\n initiallyEligible === false || !declaration.scopes.includes('session')\n ? []\n : (plugin.providerOverrides?.({ environment }) ?? []),\n );\n}\n\nfunction ownedBy(\n owners: readonly { readonly majorMode: string; readonly layer: string }[],\n majorMode: string,\n activeLayers: readonly string[],\n): boolean {\n return owners.some(\n (owner) => owner.majorMode === majorMode && (owner.layer === 'default' || activeLayers.includes(owner.layer)),\n );\n}\n\n/** A module's default export is a server plugin when it is a named cordis object plugin. */\nfunction isServerPlugin(value: unknown): value is PoServerPlugin {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as { apply?: unknown }).apply === 'function' &&\n typeof (value as { name?: unknown }).name === 'string'\n );\n}\n\nasync function loadPackageEntries(\n scope: PoApiScope,\n entries: readonly PoServerBundleEntry[],\n options: Pick<LoadServerPackagesOptions, 'majorMode' | 'activeLayers' | 'onNotice' | 'retainCandidates'>,\n importUrl: (declaration: PoServerBundleEntry) => Promise<unknown>,\n): Promise<LoadedServerPackage[]> {\n const packages: LoadedServerPackage[] = [];\n for (const declaration of entries) {\n if (!declaration.scopes.includes(scope)) continue;\n const eligible = ownedBy(declaration.owners, options.majorMode, options.activeLayers);\n if (!(scope === 'session' && options.retainCandidates === true) && !eligible) continue;\n try {\n const imported = (await importUrl(declaration)) as { default?: unknown } | undefined;\n if (!isServerPlugin(imported?.default)) throw new Error('default export is not a server plugin');\n packages.push({\n declaration,\n plugin: imported.default,\n ...(scope === 'session' && options.retainCandidates\n ? { retained: true as const, initiallyEligible: eligible }\n : {}),\n });\n } catch (error) {\n const message = `Server package '${declaration.packageName}' could not load (${error instanceof Error ? error.message : String(error)})`;\n if (declaration.required && eligible) throw new Error(message, { cause: error });\n options.onNotice?.(message);\n }\n }\n return packages;\n}\n\n/**\n * Live reader: imports each package's built entry from its content-addressed URL.\n *\n * Applies the scope, ownership and `required` rules of each entry. Each import is bounded and a URL that\n * timed out or threw is poisoned (see `guardedImport`); a poisoned required package fails\n * exactly as a load failure does. A URL is imported once per process, so the same content is the\n * same plugin object, which is how a scope tells an unchanged package from a changed one.\n */\nexport async function loadServerPackages(\n scope: PoApiScope,\n options: LoadServerPackagesOptions,\n): Promise<LoadedServerPackages> {\n const importer = options.importer ?? ((url: string) => import(url));\n const urls = new Map(options.entries.map((entry) => [entry as PoServerBundleEntry, entry.url]));\n const packages = await loadPackageEntries(scope, options.entries, options, (declaration) =>\n guardedImport(urls.get(declaration)!, importer, options),\n );\n return { entries: options.entries, packages };\n}\n"],"mappings":";;;AAoCA,SAAgB,gCACd,UACA,aACqC;CACrC,OAAO,SAAS,SAAS,EAAE,aAAa,QAAQ,wBAC9C,sBAAsB,SAAS,CAAC,YAAY,OAAO,SAAS,SAAS,IACjE,CAAC,IACA,OAAO,oBAAoB,EAAE,YAAY,CAAC,KAAK,CAAC,CACvD;AACF;AAEA,SAAS,QACP,QACA,WACA,cACS;CACT,OAAO,OAAO,MACX,UAAU,MAAM,cAAc,cAAc,MAAM,UAAU,aAAa,aAAa,SAAS,MAAM,KAAK,EAC7G;AACF;;AAGA,SAAS,eAAe,OAAyC;CAC/D,OACE,OAAO,UAAU,YACjB,UAAU,QACV,OAAQ,MAA8B,UAAU,cAChD,OAAQ,MAA6B,SAAS;AAElD;AAEA,eAAe,mBACb,OACA,SACA,SACA,WACgC;CAChC,MAAM,WAAkC,CAAC;CACzC,KAAK,MAAM,eAAe,SAAS;EACjC,IAAI,CAAC,YAAY,OAAO,SAAS,KAAK,GAAG;EACzC,MAAM,WAAW,QAAQ,YAAY,QAAQ,QAAQ,WAAW,QAAQ,YAAY;EACpF,IAAI,EAAE,UAAU,aAAa,QAAQ,qBAAqB,SAAS,CAAC,UAAU;EAC9E,IAAI;GACF,MAAM,WAAY,MAAM,UAAU,WAAW;GAC7C,IAAI,CAAC,eAAe,UAAU,OAAO,GAAG,MAAM,IAAI,MAAM,uCAAuC;GAC/F,SAAS,KAAK;IACZ;IACA,QAAQ,SAAS;IACjB,GAAI,UAAU,aAAa,QAAQ,mBAC/B;KAAE,UAAU;KAAe,mBAAmB;IAAS,IACvD,CAAC;GACP,CAAC;EACH,SAAS,OAAO;GACd,MAAM,UAAU,mBAAmB,YAAY,YAAY,oBAAoB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE;GACtI,IAAI,YAAY,YAAY,UAAU,MAAM,IAAI,MAAM,SAAS,EAAE,OAAO,MAAM,CAAC;GAC/E,QAAQ,WAAW,OAAO;EAC5B;CACF;CACA,OAAO;AACT;;;;;;;;;AAUA,eAAsB,mBACpB,OACA,SAC+B;CAC/B,MAAM,WAAW,QAAQ,cAAc,QAAgB,OAAO;CAC9D,MAAM,OAAO,IAAI,IAAI,QAAQ,QAAQ,KAAK,UAAU,CAAC,OAA8B,MAAM,GAAG,CAAC,CAAC;CAC9F,MAAM,WAAW,MAAM,mBAAmB,OAAO,QAAQ,SAAS,UAAU,gBAC1E,cAAc,KAAK,IAAI,WAAW,GAAI,UAAU,OAAO,CACzD;CACA,OAAO;EAAE,SAAS,QAAQ;EAAS;CAAS;AAC9C"}
|