@agimon-ai/po-core 0.0.0-alpha.2 → 0.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +149 -21
- package/NOTICE +41 -0
- package/dist/agentModel.cjs +1 -1
- package/dist/agentModel.d.mts +2 -2
- package/dist/agentModel.mjs +1 -2
- package/dist/apiContracts.cjs +623 -802
- package/dist/apiContracts.cjs.map +1 -1
- package/dist/apiContracts.d.mts +277 -615
- package/dist/apiContracts.d.mts.map +1 -1
- package/dist/apiContracts.mjs +617 -794
- package/dist/apiContracts.mjs.map +1 -1
- package/dist/askUser.cjs +2 -2
- package/dist/askUser.d.mts +2 -2
- package/dist/askUser.mjs +1 -2
- package/dist/authorTools.mjs +1 -2
- package/dist/backgroundWork.cjs +3 -3
- package/dist/backgroundWork.d.mts +2 -2
- package/dist/backgroundWork.mjs +1 -2
- package/dist/bundleAssetPolicy.mjs +1 -2
- package/dist/chatgptAuth.cjs +3 -2
- package/dist/chatgptAuth.d.mts +3 -2
- package/dist/chatgptAuth.mjs +2 -1
- package/dist/childProcess.cjs +1 -1
- package/dist/childProcess.d.mts +2 -2
- package/dist/childProcess.mjs +1 -2
- package/dist/childSession.cjs +11 -6
- package/dist/childSession.d.mts +3 -3
- package/dist/childSession.mjs +3 -3
- package/dist/cockpitContainer.mjs +1 -2
- package/dist/config.cjs +1 -1
- package/dist/config.d.mts +3 -3
- package/dist/config.mjs +1 -2
- package/dist/contextApi.cjs +1 -0
- package/dist/contextApi.d.mts +2 -2
- package/dist/contextApi.mjs +2 -2
- package/dist/contextContributions.cjs +4 -4
- package/dist/contextContributions.d.mts +3 -3
- package/dist/contextContributions.mjs +3 -3
- package/dist/contextDetailStore.cjs +7 -5
- package/dist/contextDetailStore.cjs.map +1 -1
- package/dist/contextDetailStore.d.mts +2 -1
- package/dist/contextDetailStore.d.mts.map +1 -1
- package/dist/contextDetailStore.mjs +6 -4
- package/dist/contextDetailStore.mjs.map +1 -1
- package/dist/contextProjection.cjs +7 -2
- package/dist/contextProjection.cjs.map +1 -1
- package/dist/contextProjection.d.mts +4 -1
- package/dist/contextProjection.d.mts.map +1 -1
- package/dist/contextProjection.mjs +5 -2
- package/dist/contextProjection.mjs.map +1 -1
- package/dist/cordisHost.cjs +11 -11
- package/dist/cordisHost.d.mts +2 -2
- package/dist/cordisHost.mjs +1 -2
- package/dist/delegation.cjs +8 -8
- package/dist/delegation.d.mts +2 -2
- package/dist/delegation.mjs +1 -2
- package/dist/executionBudget.cjs +4 -3
- package/dist/executionBudget.cjs.map +1 -1
- package/dist/executionBudget.d.mts +2 -2
- package/dist/executionBudget.d.mts.map +1 -1
- package/dist/executionBudget.mjs +4 -3
- package/dist/executionBudget.mjs.map +1 -1
- package/dist/extensionFile.cjs +5 -0
- package/dist/extensionFile.d.mts +4 -2
- package/dist/extensionFile.mjs +4 -2
- package/dist/footer.d.mts +2 -2
- package/dist/footer.mjs +1 -2
- package/dist/headless.cjs +14 -14
- package/dist/headless.d.mts +2 -2
- package/dist/headless.mjs +1 -2
- package/dist/headlessHub.cjs +308 -109
- package/dist/headlessHub.cjs.map +1 -1
- package/dist/headlessHub.d.mts +71 -36
- package/dist/headlessHub.d.mts.map +1 -1
- package/dist/headlessHub.mjs +309 -110
- package/dist/headlessHub.mjs.map +1 -1
- package/dist/headlessProtocol.cjs +327 -0
- package/dist/headlessProtocol.cjs.map +1 -0
- package/dist/headlessProtocol.d.mts +30 -0
- package/dist/headlessProtocol.d.mts.map +1 -0
- package/dist/headlessProtocol.mjs +326 -0
- package/dist/headlessProtocol.mjs.map +1 -0
- package/dist/headlessServer.cjs +166 -151
- package/dist/headlessServer.cjs.map +1 -1
- package/dist/headlessServer.d.mts +13 -5
- package/dist/headlessServer.d.mts.map +1 -1
- package/dist/headlessServer.mjs +166 -151
- package/dist/headlessServer.mjs.map +1 -1
- package/dist/headlessSessionHost.d.mts +58 -21
- package/dist/headlessSessionHost.d.mts.map +1 -1
- package/dist/help.cjs +20 -20
- package/dist/help.d.mts +2 -2
- package/dist/help.mjs +2 -2
- package/dist/history.cjs +16 -20
- package/dist/history.d.mts +9 -7
- package/dist/history.mjs +6 -7
- package/dist/historyOwnership.cjs.map +1 -1
- package/dist/historyOwnership.d.mts +1 -1
- package/dist/historyOwnership.mjs.map +1 -1
- package/dist/hubChannel.cjs +9 -0
- package/dist/hubChannel.d.mts +3 -2
- package/dist/hubChannel.mjs +3 -2
- package/dist/index.cjs +26 -28
- package/dist/index.d.mts +6 -6
- package/dist/index.mjs +6 -6
- package/dist/interop/chord.mjs +1 -0
- package/dist/interop/chordContext.mjs +1 -0
- package/dist/json.cjs +11 -5
- package/dist/json.d.mts +4 -2
- package/dist/json.mjs +4 -2
- package/dist/kernel.cjs +1 -1
- package/dist/kernel.d.mts +3 -3
- package/dist/kernel.mjs +1 -2
- package/dist/leader.d.mts +2 -2
- package/dist/leader.mjs +1 -2
- package/dist/logSinkTelemetry.mjs +1 -2
- package/dist/machineApi.cjs +80 -74
- package/dist/machineApi.cjs.map +1 -1
- package/dist/machineApi.d.mts +5 -2
- package/dist/machineApi.d.mts.map +1 -1
- package/dist/machineApi.mjs +78 -71
- package/dist/machineApi.mjs.map +1 -1
- package/dist/main.cjs +2 -1
- package/dist/main.d.mts +2 -1
- package/dist/main.mjs +2 -1
- package/dist/mcpFacet.d.mts +3 -3
- package/dist/mcpProjection.cjs +13 -13
- package/dist/mcpProjection.d.mts +2 -2
- package/dist/mcpProjection.mjs +1 -2
- package/dist/mcpSchemaCost.cjs +4 -4
- package/dist/mcpSchemaCost.cjs.map +1 -1
- package/dist/mcpSchemaCost.d.mts +2 -2
- package/dist/mcpSchemaCost.mjs +4 -4
- package/dist/mcpSchemaCost.mjs.map +1 -1
- package/dist/mcpSession.cjs +7 -7
- package/dist/mcpSession.d.mts +2 -2
- package/dist/mcpSession.mjs +1 -2
- package/dist/mcpStatus.cjs +2 -2
- package/dist/mcpStatus.d.mts +2 -2
- package/dist/mcpStatus.mjs +1 -2
- package/dist/mcpToolResolver.cjs +3 -3
- package/dist/mcpToolResolver.d.mts +2 -2
- package/dist/mcpToolResolver.mjs +1 -2
- package/dist/mcpWidget.d.mts +2 -2
- package/dist/moduleResolution.cjs +43 -8
- package/dist/moduleResolution.cjs.map +1 -1
- package/dist/moduleResolution.d.mts +10 -1
- package/dist/moduleResolution.d.mts.map +1 -1
- package/dist/moduleResolution.mjs +40 -7
- package/dist/moduleResolution.mjs.map +1 -1
- package/dist/narration.cjs +3 -3
- package/dist/narration.d.mts +2 -2
- package/dist/narration.mjs +1 -2
- package/dist/native.cjs +9 -0
- package/dist/native.d.mts +4 -3
- package/dist/native.mjs +3 -2
- package/dist/nodePlatform.cjs +77 -0
- package/dist/nodePlatform.cjs.map +1 -0
- package/dist/nodePlatform.d.mts +17 -0
- package/dist/nodePlatform.d.mts.map +1 -0
- package/dist/nodePlatform.mjs +72 -0
- package/dist/nodePlatform.mjs.map +1 -0
- package/dist/notification.cjs +15 -15
- package/dist/notification.d.mts +2 -2
- package/dist/notification.mjs +1 -2
- package/dist/packageApi.cjs +11 -11
- package/dist/packageApi.d.mts +2 -2
- package/dist/packageApi.mjs +2 -2
- package/dist/packageApiServer.cjs +45 -27
- package/dist/packageApiServer.cjs.map +1 -1
- package/dist/packageApiServer.d.mts +36 -26
- package/dist/packageApiServer.d.mts.map +1 -1
- package/dist/packageApiServer.mjs +44 -26
- package/dist/packageApiServer.mjs.map +1 -1
- package/dist/piSettings.cjs +41 -20
- package/dist/piSettings.d.mts +4 -2
- package/dist/piSettings.mjs +4 -2
- package/dist/platform.cjs +62 -0
- package/dist/platform.d.mts +10 -0
- package/dist/platform.mjs +10 -0
- package/dist/pluginProtocol.cjs +7 -8
- package/dist/pluginProtocol.d.mts +2 -2
- package/dist/pluginProtocol.mjs +1 -2
- package/dist/poPackage.cjs +12 -0
- package/dist/poPackage.d.mts +3 -0
- package/dist/poPackage.mjs +3 -0
- package/dist/profileIdentity.cjs +1 -1
- package/dist/profileIdentity.d.mts +2 -2
- package/dist/profileIdentity.mjs +1 -2
- package/dist/protocol.cjs +3 -3
- package/dist/protocol.d.mts +2 -2
- package/dist/protocol.mjs +1 -2
- package/dist/readiness.cjs +6 -6
- package/dist/readiness.d.mts +2 -2
- package/dist/readiness.mjs +1 -2
- package/dist/remoteApi.cjs.map +1 -1
- package/dist/remoteApi.d.mts +2 -2
- package/dist/remoteApi.mjs.map +1 -1
- package/dist/remoteRuntime.cjs +42 -65
- package/dist/remoteRuntime.cjs.map +1 -1
- package/dist/remoteRuntime.d.mts +3 -2
- package/dist/remoteRuntime.d.mts.map +1 -1
- package/dist/remoteRuntime.mjs +41 -62
- package/dist/remoteRuntime.mjs.map +1 -1
- package/dist/runtimeConfig.cjs +4 -4
- package/dist/runtimeConfig.cjs.map +1 -1
- package/dist/runtimeConfig.d.mts +10 -9
- package/dist/runtimeConfig.d.mts.map +1 -1
- package/dist/runtimeConfig.mjs +4 -4
- package/dist/runtimeConfig.mjs.map +1 -1
- package/dist/runtimeContextApi.cjs +10 -3
- package/dist/runtimeContextApi.cjs.map +1 -1
- package/dist/runtimeContextApi.d.mts +3 -3
- package/dist/runtimeContextApi.d.mts.map +1 -1
- package/dist/runtimeContextApi.mjs +10 -3
- package/dist/runtimeContextApi.mjs.map +1 -1
- package/dist/runtimeCordisHost.cjs +46 -46
- package/dist/runtimeCordisHost.cjs.map +1 -1
- package/dist/runtimeCordisHost.d.mts +29 -28
- package/dist/runtimeCordisHost.d.mts.map +1 -1
- package/dist/runtimeCordisHost.mjs +42 -42
- package/dist/runtimeCordisHost.mjs.map +1 -1
- package/dist/runtimeIdentity.cjs +6 -9
- package/dist/runtimeIdentity.cjs.map +1 -1
- package/dist/runtimeIdentity.d.mts +5 -1
- package/dist/runtimeIdentity.d.mts.map +1 -1
- package/dist/runtimeIdentity.mjs +5 -8
- package/dist/runtimeIdentity.mjs.map +1 -1
- package/dist/runtimeJson.cjs +10 -45
- package/dist/runtimeJson.d.mts +3 -22
- package/dist/runtimeJson.mjs +3 -39
- package/dist/runtimeLogSinkTelemetry.cjs +19 -19
- package/dist/runtimeLogSinkTelemetry.cjs.map +1 -1
- package/dist/runtimeLogSinkTelemetry.d.mts +19 -19
- package/dist/runtimeLogSinkTelemetry.mjs +19 -19
- package/dist/runtimeLogSinkTelemetry.mjs.map +1 -1
- package/dist/runtimePackages.cjs +7 -2
- package/dist/runtimePackages.cjs.map +1 -1
- package/dist/runtimePackages.d.mts +4 -1
- package/dist/runtimePackages.d.mts.map +1 -1
- package/dist/runtimePackages.mjs +7 -2
- package/dist/runtimePackages.mjs.map +1 -1
- package/dist/runtimePiSettings.cjs +40 -263
- package/dist/runtimePiSettings.d.mts +3 -72
- package/dist/runtimePiSettings.mjs +3 -241
- package/dist/runtimeProtocol.cjs +19 -19
- package/dist/runtimeProtocol.cjs.map +1 -1
- package/dist/runtimeProtocol.d.mts +7 -7
- package/dist/runtimeProtocol.d.mts.map +1 -1
- package/dist/runtimeProtocol.mjs +17 -17
- package/dist/runtimeProtocol.mjs.map +1 -1
- package/dist/runtimeTransition.cjs +9 -9
- package/dist/runtimeTransition.cjs.map +1 -1
- package/dist/runtimeTransition.d.mts +10 -10
- package/dist/runtimeTransition.d.mts.map +1 -1
- package/dist/runtimeTransition.mjs +7 -7
- package/dist/runtimeTransition.mjs.map +1 -1
- package/dist/sandboxHarness.mjs +1 -2
- package/dist/server.cjs +3 -7
- package/dist/server.d.mts +6 -6
- package/dist/server.mjs +3 -4
- package/dist/serverPlugin.cjs +39 -0
- package/dist/serverPlugin.d.mts +12 -0
- package/dist/serverPlugin.mjs +11 -0
- package/dist/serverTelemetry.cjs +1 -1
- package/dist/serverTelemetry.cjs.map +1 -1
- package/dist/serverTelemetry.d.mts +2 -2
- package/dist/serverTelemetry.mjs +2 -2
- package/dist/serverTelemetry.mjs.map +1 -1
- package/dist/sessionFilesApi.cjs +41 -37
- package/dist/sessionFilesApi.cjs.map +1 -1
- package/dist/sessionFilesApi.d.mts +6 -3
- package/dist/sessionFilesApi.d.mts.map +1 -1
- package/dist/sessionFilesApi.mjs +41 -36
- package/dist/sessionFilesApi.mjs.map +1 -1
- package/dist/sessionProtocol.cjs +31 -6
- package/dist/sessionProtocol.d.mts +8 -3
- package/dist/sessionProtocol.mjs +8 -2
- package/dist/skills.cjs +5 -5
- package/dist/skills.d.mts +2 -2
- package/dist/skills.mjs +1 -2
- package/dist/sqliteSessionStorage.cjs +28 -50
- package/dist/sqliteSessionStorage.cjs.map +1 -1
- package/dist/sqliteSessionStorage.d.mts +13 -20
- package/dist/sqliteSessionStorage.d.mts.map +1 -1
- package/dist/sqliteSessionStorage.mjs +25 -48
- package/dist/sqliteSessionStorage.mjs.map +1 -1
- package/dist/src/constants/agentSettled.cjs +7 -0
- package/dist/src/constants/agentSettled.cjs.map +1 -0
- package/dist/src/constants/agentSettled.mjs +7 -0
- package/dist/src/constants/agentSettled.mjs.map +1 -0
- package/dist/src/constants/contextApi.cjs +3 -1
- package/dist/src/constants/contextApi.cjs.map +1 -1
- package/dist/src/constants/contextApi.d.mts +2 -1
- package/dist/src/constants/contextApi.d.mts.map +1 -1
- package/dist/src/constants/contextApi.mjs +3 -2
- package/dist/src/constants/contextApi.mjs.map +1 -1
- package/dist/src/constants/voiceTools.cjs +6 -6
- package/dist/src/constants/voiceTools.cjs.map +1 -1
- package/dist/src/constants/voiceTools.d.mts +3 -3
- package/dist/src/constants/voiceTools.mjs +4 -4
- package/dist/src/constants/voiceTools.mjs.map +1 -1
- package/dist/src/extensions/extensionFile.cjs +22 -5
- package/dist/src/extensions/extensionFile.cjs.map +1 -1
- package/dist/src/extensions/extensionFile.d.mts +17 -4
- package/dist/src/extensions/extensionFile.d.mts.map +1 -1
- package/dist/src/extensions/extensionFile.mjs +22 -6
- package/dist/src/extensions/extensionFile.mjs.map +1 -1
- package/dist/src/extensions/serverPlugin.cjs +231 -92
- package/dist/src/extensions/serverPlugin.cjs.map +1 -1
- package/dist/src/extensions/serverPlugin.d.mts +2 -2
- package/dist/src/extensions/serverPlugin.d.mts.map +1 -1
- package/dist/src/extensions/serverPlugin.mjs +232 -93
- package/dist/src/extensions/serverPlugin.mjs.map +1 -1
- package/dist/src/pi/piSessionRuntime.cjs +349 -142
- package/dist/src/pi/piSessionRuntime.cjs.map +1 -1
- package/dist/src/pi/piSessionRuntime.d.mts +18 -17
- package/dist/src/pi/piSessionRuntime.d.mts.map +1 -1
- package/dist/src/pi/piSessionRuntime.mjs +342 -135
- package/dist/src/pi/piSessionRuntime.mjs.map +1 -1
- package/dist/src/schemas/agentModel.cjs +2 -2
- package/dist/src/schemas/agentModel.cjs.map +1 -1
- package/dist/src/schemas/agentModel.d.mts +1 -1
- package/dist/src/schemas/agentModel.mjs +2 -2
- package/dist/src/schemas/agentModel.mjs.map +1 -1
- package/dist/src/schemas/apiContracts.d.mts +2 -2
- package/dist/src/schemas/apiContracts.d.mts.map +1 -1
- package/dist/src/schemas/askUser.cjs +4 -4
- package/dist/src/schemas/askUser.cjs.map +1 -1
- package/dist/src/schemas/askUser.d.mts +4 -4
- package/dist/src/schemas/askUser.d.mts.map +1 -1
- package/dist/src/schemas/askUser.mjs +3 -3
- package/dist/src/schemas/askUser.mjs.map +1 -1
- package/dist/src/schemas/backgroundWork.cjs +10 -10
- package/dist/src/schemas/backgroundWork.cjs.map +1 -1
- package/dist/src/schemas/backgroundWork.d.mts +9 -9
- package/dist/src/schemas/backgroundWork.d.mts.map +1 -1
- package/dist/src/schemas/backgroundWork.mjs +8 -8
- package/dist/src/schemas/backgroundWork.mjs.map +1 -1
- package/dist/src/schemas/childProcess.cjs +5 -5
- package/dist/src/schemas/childProcess.cjs.map +1 -1
- package/dist/src/schemas/childProcess.d.mts +2 -2
- package/dist/src/schemas/childProcess.mjs +5 -5
- package/dist/src/schemas/childProcess.mjs.map +1 -1
- package/dist/src/schemas/contextContributions.cjs +10 -10
- package/dist/src/schemas/contextContributions.cjs.map +1 -1
- package/dist/src/schemas/contextContributions.d.mts +16 -16
- package/dist/src/schemas/contextContributions.d.mts.map +1 -1
- package/dist/src/schemas/contextContributions.mjs +8 -8
- package/dist/src/schemas/contextContributions.mjs.map +1 -1
- package/dist/src/schemas/delegation.cjs +17 -17
- package/dist/src/schemas/delegation.cjs.map +1 -1
- package/dist/src/schemas/delegation.d.mts +16 -16
- package/dist/src/schemas/delegation.d.mts.map +1 -1
- package/dist/src/schemas/delegation.mjs +10 -10
- package/dist/src/schemas/delegation.mjs.map +1 -1
- package/dist/src/schemas/extensionFile.d.mts +23 -19
- package/dist/src/schemas/extensionFile.d.mts.map +1 -1
- package/dist/src/schemas/footer.cjs.map +1 -1
- package/dist/src/schemas/footer.d.mts +5 -5
- package/dist/src/schemas/footer.d.mts.map +1 -1
- package/dist/src/schemas/footer.mjs.map +1 -1
- package/dist/src/schemas/headless.cjs +37 -37
- package/dist/src/schemas/headless.cjs.map +1 -1
- package/dist/src/schemas/headless.d.mts +100 -101
- package/dist/src/schemas/headless.d.mts.map +1 -1
- package/dist/src/schemas/headless.mjs +24 -24
- package/dist/src/schemas/headless.mjs.map +1 -1
- package/dist/src/schemas/help.cjs +60 -60
- package/dist/src/schemas/help.cjs.map +1 -1
- package/dist/src/schemas/help.d.mts +43 -43
- package/dist/src/schemas/help.d.mts.map +1 -1
- package/dist/src/schemas/help.mjs +41 -41
- package/dist/src/schemas/help.mjs.map +1 -1
- package/dist/src/schemas/home.cjs +127 -0
- package/dist/src/schemas/home.cjs.map +1 -0
- package/dist/src/schemas/home.d.mts +63 -0
- package/dist/src/schemas/home.d.mts.map +1 -0
- package/dist/src/schemas/home.mjs +121 -0
- package/dist/src/schemas/home.mjs.map +1 -0
- package/dist/src/schemas/httpApiContracts.cjs +441 -0
- package/dist/src/schemas/httpApiContracts.cjs.map +1 -0
- package/dist/src/schemas/httpApiContracts.d.mts +78 -0
- package/dist/src/schemas/httpApiContracts.d.mts.map +1 -0
- package/dist/src/schemas/httpApiContracts.mjs +434 -0
- package/dist/src/schemas/httpApiContracts.mjs.map +1 -0
- package/dist/src/schemas/hubChannel.cjs +3 -0
- package/dist/src/schemas/hubChannel.cjs.map +1 -1
- package/dist/src/schemas/hubChannel.d.mts +84 -60
- package/dist/src/schemas/hubChannel.d.mts.map +1 -1
- package/dist/src/schemas/hubChannel.mjs +3 -1
- package/dist/src/schemas/hubChannel.mjs.map +1 -1
- package/dist/src/schemas/leader.cjs.map +1 -1
- package/dist/src/schemas/leader.d.mts +3 -3
- package/dist/src/schemas/leader.d.mts.map +1 -1
- package/dist/src/schemas/leader.mjs.map +1 -1
- package/dist/src/schemas/mcpBundle.d.mts +3 -3
- package/dist/src/schemas/mcpFacet.cjs.map +1 -1
- package/dist/src/schemas/mcpFacet.d.mts +22 -22
- package/dist/src/schemas/mcpFacet.d.mts.map +1 -1
- package/dist/src/schemas/mcpFacet.mjs.map +1 -1
- package/dist/src/schemas/mcpProjection.cjs +41 -41
- package/dist/src/schemas/mcpProjection.cjs.map +1 -1
- package/dist/src/schemas/mcpProjection.d.mts +31 -30
- package/dist/src/schemas/mcpProjection.d.mts.map +1 -1
- package/dist/src/schemas/mcpProjection.mjs +29 -29
- package/dist/src/schemas/mcpProjection.mjs.map +1 -1
- package/dist/src/schemas/mcpSession.cjs +23 -23
- package/dist/src/schemas/mcpSession.cjs.map +1 -1
- package/dist/src/schemas/mcpSession.d.mts +12 -12
- package/dist/src/schemas/mcpSession.d.mts.map +1 -1
- package/dist/src/schemas/mcpSession.mjs +18 -18
- package/dist/src/schemas/mcpSession.mjs.map +1 -1
- package/dist/src/schemas/mcpStatus.cjs +5 -5
- package/dist/src/schemas/mcpStatus.cjs.map +1 -1
- package/dist/src/schemas/mcpStatus.d.mts +4 -4
- package/dist/src/schemas/mcpStatus.d.mts.map +1 -1
- package/dist/src/schemas/mcpStatus.mjs +4 -4
- package/dist/src/schemas/mcpStatus.mjs.map +1 -1
- package/dist/src/schemas/mcpToolResolver.cjs +9 -9
- package/dist/src/schemas/mcpToolResolver.cjs.map +1 -1
- package/dist/src/schemas/mcpToolResolver.d.mts +7 -7
- package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -1
- package/dist/src/schemas/mcpToolResolver.mjs +7 -7
- package/dist/src/schemas/mcpToolResolver.mjs.map +1 -1
- package/dist/src/schemas/narration.cjs +9 -9
- package/dist/src/schemas/narration.cjs.map +1 -1
- package/dist/src/schemas/narration.d.mts +5 -5
- package/dist/src/schemas/narration.d.mts.map +1 -1
- package/dist/src/schemas/narration.mjs +7 -7
- package/dist/src/schemas/narration.mjs.map +1 -1
- package/dist/src/schemas/notification.cjs +45 -45
- package/dist/src/schemas/notification.cjs.map +1 -1
- package/dist/src/schemas/notification.d.mts +22 -22
- package/dist/src/schemas/notification.d.mts.map +1 -1
- package/dist/src/schemas/notification.mjs +31 -31
- package/dist/src/schemas/notification.mjs.map +1 -1
- package/dist/src/schemas/packageApi.cjs +28 -28
- package/dist/src/schemas/packageApi.cjs.map +1 -1
- package/dist/src/schemas/packageApi.d.mts +91 -65
- package/dist/src/schemas/packageApi.d.mts.map +1 -1
- package/dist/src/schemas/packageApi.mjs +18 -18
- package/dist/src/schemas/packageApi.mjs.map +1 -1
- package/dist/src/schemas/platform.cjs +34 -0
- package/dist/src/schemas/platform.cjs.map +1 -0
- package/dist/src/schemas/platform.d.mts +75 -0
- package/dist/src/schemas/platform.d.mts.map +1 -0
- package/dist/src/schemas/platform.mjs +27 -0
- package/dist/src/schemas/platform.mjs.map +1 -0
- package/dist/src/schemas/pluginContributions.cjs.map +1 -1
- package/dist/src/schemas/pluginContributions.d.mts +12 -12
- package/dist/src/schemas/pluginContributions.d.mts.map +1 -1
- package/dist/src/schemas/pluginContributions.mjs.map +1 -1
- package/dist/src/schemas/pluginProtocol.cjs +24 -27
- package/dist/src/schemas/pluginProtocol.cjs.map +1 -1
- package/dist/src/schemas/pluginProtocol.d.mts +21 -21
- package/dist/src/schemas/pluginProtocol.d.mts.map +1 -1
- package/dist/src/schemas/pluginProtocol.mjs +18 -20
- package/dist/src/schemas/pluginProtocol.mjs.map +1 -1
- package/dist/src/schemas/profileIdentity.cjs +2 -2
- package/dist/src/schemas/profileIdentity.cjs.map +1 -1
- package/dist/src/schemas/profileIdentity.d.mts +1 -1
- package/dist/src/schemas/profileIdentity.mjs +2 -2
- package/dist/src/schemas/profileIdentity.mjs.map +1 -1
- package/dist/src/schemas/protocolChannelsContract.cjs +27 -0
- package/dist/src/schemas/protocolChannelsContract.cjs.map +1 -0
- package/dist/src/schemas/protocolChannelsContract.d.mts +37 -0
- package/dist/src/schemas/protocolChannelsContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolChannelsContract.mjs +25 -0
- package/dist/src/schemas/protocolChannelsContract.mjs.map +1 -0
- package/dist/src/schemas/protocolContracts.cjs +168 -0
- package/dist/src/schemas/protocolContracts.cjs.map +1 -0
- package/dist/src/schemas/protocolContracts.d.mts +69 -0
- package/dist/src/schemas/protocolContracts.d.mts.map +1 -0
- package/dist/src/schemas/protocolContracts.mjs +164 -0
- package/dist/src/schemas/protocolContracts.mjs.map +1 -0
- package/dist/src/schemas/protocolHubContract.cjs +51 -0
- package/dist/src/schemas/protocolHubContract.cjs.map +1 -0
- package/dist/src/schemas/protocolHubContract.d.mts +218 -0
- package/dist/src/schemas/protocolHubContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolHubContract.mjs +49 -0
- package/dist/src/schemas/protocolHubContract.mjs.map +1 -0
- package/dist/src/schemas/protocolSessionContract.cjs +22 -0
- package/dist/src/schemas/protocolSessionContract.cjs.map +1 -0
- package/dist/src/schemas/protocolSessionContract.d.mts +324 -0
- package/dist/src/schemas/protocolSessionContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolSessionContract.mjs +22 -0
- package/dist/src/schemas/protocolSessionContract.mjs.map +1 -0
- package/dist/src/schemas/protocolThreadContract.cjs +21 -0
- package/dist/src/schemas/protocolThreadContract.cjs.map +1 -0
- package/dist/src/schemas/protocolThreadContract.d.mts +29 -0
- package/dist/src/schemas/protocolThreadContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolThreadContract.mjs +20 -0
- package/dist/src/schemas/protocolThreadContract.mjs.map +1 -0
- package/dist/src/schemas/readiness.cjs +36 -36
- package/dist/src/schemas/readiness.cjs.map +1 -1
- package/dist/src/schemas/readiness.d.mts +37 -37
- package/dist/src/schemas/readiness.d.mts.map +1 -1
- package/dist/src/schemas/readiness.mjs +31 -31
- package/dist/src/schemas/readiness.mjs.map +1 -1
- package/dist/src/schemas/serverBundle.d.mts +5 -5
- package/dist/src/schemas/serverPlugin.cjs +103 -0
- package/dist/src/schemas/serverPlugin.cjs.map +1 -0
- package/dist/src/schemas/serverPlugin.d.mts +176 -0
- package/dist/src/schemas/serverPlugin.d.mts.map +1 -0
- package/dist/src/schemas/serverPlugin.mjs +95 -0
- package/dist/src/schemas/serverPlugin.mjs.map +1 -0
- package/dist/src/schemas/serverScope.cjs +37 -0
- package/dist/src/schemas/serverScope.cjs.map +1 -0
- package/dist/src/schemas/serverScope.d.mts +77 -0
- package/dist/src/schemas/serverScope.d.mts.map +1 -0
- package/dist/src/schemas/serverScope.mjs +33 -0
- package/dist/src/schemas/serverScope.mjs.map +1 -0
- package/dist/src/schemas/sessionApiContracts.cjs +320 -0
- package/dist/src/schemas/sessionApiContracts.cjs.map +1 -0
- package/dist/src/schemas/sessionApiContracts.mjs +318 -0
- package/dist/src/schemas/sessionApiContracts.mjs.map +1 -0
- package/dist/src/schemas/sessionProtocol.cjs +20 -13
- package/dist/src/schemas/sessionProtocol.cjs.map +1 -1
- package/dist/src/schemas/sessionProtocol.d.mts +37 -54
- package/dist/src/schemas/sessionProtocol.d.mts.map +1 -1
- package/dist/src/schemas/sessionProtocol.mjs +17 -8
- package/dist/src/schemas/sessionProtocol.mjs.map +1 -1
- package/dist/src/schemas/skills.cjs +16 -16
- package/dist/src/schemas/skills.cjs.map +1 -1
- package/dist/src/schemas/skills.d.mts +7 -7
- package/dist/src/schemas/skills.d.mts.map +1 -1
- package/dist/src/schemas/skills.mjs +12 -12
- package/dist/src/schemas/skills.mjs.map +1 -1
- package/dist/src/schemas/toolOverrides.cjs +9 -9
- package/dist/src/schemas/toolOverrides.cjs.map +1 -1
- package/dist/src/schemas/toolOverrides.d.mts +8 -8
- package/dist/src/schemas/toolOverrides.d.mts.map +1 -1
- package/dist/src/schemas/toolOverrides.mjs +7 -7
- package/dist/src/schemas/toolOverrides.mjs.map +1 -1
- package/dist/src/schemas/toolSurface.cjs +9 -9
- package/dist/src/schemas/toolSurface.cjs.map +1 -1
- package/dist/src/schemas/toolSurface.d.mts +13 -13
- package/dist/src/schemas/toolSurface.d.mts.map +1 -1
- package/dist/src/schemas/toolSurface.mjs +7 -7
- package/dist/src/schemas/toolSurface.mjs.map +1 -1
- package/dist/src/schemas/uiHub.cjs +9 -9
- package/dist/src/schemas/uiHub.cjs.map +1 -1
- package/dist/src/schemas/uiHub.d.mts +12 -12
- package/dist/src/schemas/uiHub.d.mts.map +1 -1
- package/dist/src/schemas/uiHub.mjs +7 -7
- package/dist/src/schemas/uiHub.mjs.map +1 -1
- package/dist/src/server/directHarnessRuntime.cjs +691 -775
- package/dist/src/server/directHarnessRuntime.cjs.map +1 -1
- package/dist/src/server/directHarnessRuntime.d.mts +5 -1
- package/dist/src/server/directHarnessRuntime.d.mts.map +1 -0
- package/dist/src/server/directHarnessRuntime.mjs +671 -754
- package/dist/src/server/directHarnessRuntime.mjs.map +1 -1
- package/dist/src/server/largeFrameLink.cjs +47 -0
- package/dist/src/server/largeFrameLink.cjs.map +1 -0
- package/dist/src/server/largeFrameLink.mjs +47 -0
- package/dist/src/server/largeFrameLink.mjs.map +1 -0
- package/dist/src/server/liveImport.cjs +1 -1
- package/dist/src/server/liveImport.cjs.map +1 -1
- package/dist/src/server/liveImport.d.mts +1 -1
- package/dist/src/server/liveImport.mjs +1 -1
- package/dist/src/server/liveImport.mjs.map +1 -1
- package/dist/src/server/mcpBundleLoader.cjs.map +1 -1
- package/dist/src/server/mcpBundleLoader.d.mts +6 -6
- package/dist/src/server/mcpBundleLoader.d.mts.map +1 -1
- package/dist/src/server/mcpBundleLoader.mjs.map +1 -1
- package/dist/src/server/serverPackages.cjs +60 -0
- package/dist/src/server/serverPackages.cjs.map +1 -0
- package/dist/src/server/serverPackages.d.mts +44 -0
- package/dist/src/server/serverPackages.d.mts.map +1 -0
- package/dist/src/server/serverPackages.mjs +59 -0
- package/dist/src/server/serverPackages.mjs.map +1 -0
- package/dist/src/server/serverScope.cjs +510 -0
- package/dist/src/server/serverScope.cjs.map +1 -0
- package/dist/src/server/serverScope.d.mts +123 -0
- package/dist/src/server/serverScope.d.mts.map +1 -0
- package/dist/src/server/serverScope.mjs +510 -0
- package/dist/src/server/serverScope.mjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.cjs +3 -3
- package/dist/src/server/sessionMcpHandler.cjs.map +1 -1
- package/dist/src/server/sessionMcpHandler.mjs +4 -4
- package/dist/src/server/sessionMcpHandler.mjs.map +1 -1
- package/dist/src/server/sessionMcpRoutes.cjs +2 -1
- package/dist/src/server/sessionMcpRoutes.cjs.map +1 -1
- package/dist/src/server/sessionMcpRoutes.mjs +2 -1
- package/dist/src/server/sessionMcpRoutes.mjs.map +1 -1
- package/dist/src/server/threadJournals.cjs +38 -107
- package/dist/src/server/threadJournals.cjs.map +1 -1
- package/dist/src/server/threadJournals.mjs +38 -104
- package/dist/src/server/threadJournals.mjs.map +1 -1
- package/dist/src/services/apiSurfaceAssert/index.cjs +1 -1
- package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -1
- package/dist/src/services/apiSurfaceAssert/index.d.mts +6 -6
- package/dist/src/services/apiSurfaceAssert/index.mjs +1 -1
- package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -1
- package/dist/src/services/chatgptAuth/index.cjs +1 -220
- package/dist/src/services/chatgptAuth/index.cjs.map +1 -1
- package/dist/src/services/chatgptAuth/index.d.mts +0 -18
- package/dist/src/services/chatgptAuth/index.d.mts.map +1 -1
- package/dist/src/services/chatgptAuth/index.mjs +1 -217
- package/dist/src/services/chatgptAuth/index.mjs.map +1 -1
- package/dist/src/services/chatgptImages/index.cjs +1 -1
- package/dist/src/services/chatgptImages/index.cjs.map +1 -1
- package/dist/src/services/chatgptImages/index.mjs +1 -1
- package/dist/src/services/chatgptImages/index.mjs.map +1 -1
- package/dist/src/services/chatgptLogin/index.cjs +230 -0
- package/dist/src/services/chatgptLogin/index.cjs.map +1 -0
- package/dist/src/services/chatgptLogin/index.d.mts +21 -0
- package/dist/src/services/chatgptLogin/index.d.mts.map +1 -0
- package/dist/src/services/chatgptLogin/index.mjs +227 -0
- package/dist/src/services/chatgptLogin/index.mjs.map +1 -0
- package/dist/src/services/chatgptWebSearch/index.cjs +1 -1
- package/dist/src/services/chatgptWebSearch/index.cjs.map +1 -1
- package/dist/src/services/chatgptWebSearch/index.mjs +1 -1
- package/dist/src/services/chatgptWebSearch/index.mjs.map +1 -1
- package/dist/src/services/contextContributions/index.cjs +8 -8
- package/dist/src/services/contextContributions/index.cjs.map +1 -1
- package/dist/src/services/contextContributions/index.d.mts +3 -3
- package/dist/src/services/contextContributions/index.d.mts.map +1 -1
- package/dist/src/services/contextContributions/index.mjs +8 -8
- package/dist/src/services/contextContributions/index.mjs.map +1 -1
- package/dist/src/services/devProxyStore/devProxyRecords.cjs +59 -0
- package/dist/src/services/devProxyStore/devProxyRecords.cjs.map +1 -0
- package/dist/src/services/devProxyStore/devProxyRecords.mjs +56 -0
- package/dist/src/services/devProxyStore/devProxyRecords.mjs.map +1 -0
- package/dist/src/services/devProxyStore/index.cjs +7 -101
- package/dist/src/services/devProxyStore/index.cjs.map +1 -1
- package/dist/src/services/devProxyStore/index.mjs +7 -101
- package/dist/src/services/devProxyStore/index.mjs.map +1 -1
- package/dist/src/services/devProxyStore/sync.cjs +66 -0
- package/dist/src/services/devProxyStore/sync.cjs.map +1 -0
- package/dist/src/services/devProxyStore/sync.mjs +63 -0
- package/dist/src/services/devProxyStore/sync.mjs.map +1 -0
- package/dist/src/services/durableNavigation/docs.cjs +15 -0
- package/dist/src/services/durableNavigation/docs.cjs.map +1 -0
- package/dist/src/services/durableNavigation/docs.mjs +16 -0
- package/dist/src/services/durableNavigation/docs.mjs.map +1 -0
- package/dist/src/services/durableNavigation/index.cjs +3 -18
- package/dist/src/services/durableNavigation/index.cjs.map +1 -1
- package/dist/src/services/durableNavigation/index.mjs +2 -17
- package/dist/src/services/durableNavigation/index.mjs.map +1 -1
- package/dist/src/services/durableQueue/docs.cjs +12 -0
- package/dist/src/services/durableQueue/docs.cjs.map +1 -0
- package/dist/src/services/durableQueue/docs.mjs +13 -0
- package/dist/src/services/durableQueue/docs.mjs.map +1 -0
- package/dist/src/services/durableQueue/index.cjs +151 -0
- package/dist/src/services/durableQueue/index.cjs.map +1 -0
- package/dist/src/services/durableQueue/index.mjs +149 -0
- package/dist/src/services/durableQueue/index.mjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/docs.cjs +11 -0
- package/dist/src/services/durableRequestReceipts/docs.cjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/docs.mjs +12 -0
- package/dist/src/services/durableRequestReceipts/docs.mjs.map +1 -0
- package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.cjs +10 -16
- package/dist/src/services/durableRequestReceipts/index.cjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/index.d.mts +12 -0
- package/dist/src/services/durableRequestReceipts/index.d.mts.map +1 -0
- package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.mjs +7 -13
- package/dist/src/services/durableRequestReceipts/index.mjs.map +1 -0
- package/dist/src/services/durableSession/docs.cjs +65 -0
- package/dist/src/services/durableSession/docs.cjs.map +1 -0
- package/dist/src/services/durableSession/docs.d.mts +17 -0
- package/dist/src/services/durableSession/docs.d.mts.map +1 -0
- package/dist/src/services/durableSession/docs.mjs +60 -0
- package/dist/src/services/durableSession/docs.mjs.map +1 -0
- package/dist/src/services/durableSession/index.cjs +21 -0
- package/dist/src/services/durableSession/index.cjs.map +1 -0
- package/dist/src/services/durableSession/index.d.mts +13 -0
- package/dist/src/services/durableSession/index.d.mts.map +1 -0
- package/dist/src/services/durableSession/index.mjs +20 -0
- package/dist/src/services/durableSession/index.mjs.map +1 -0
- package/dist/src/services/durableSubagents/docs.cjs +15 -0
- package/dist/src/services/durableSubagents/docs.cjs.map +1 -0
- package/dist/src/services/durableSubagents/docs.mjs +16 -0
- package/dist/src/services/durableSubagents/docs.mjs.map +1 -0
- package/dist/src/services/durableSubagents/extension.cjs +11 -0
- package/dist/src/services/durableSubagents/extension.cjs.map +1 -0
- package/dist/src/services/durableSubagents/extension.mjs +12 -0
- package/dist/src/services/durableSubagents/extension.mjs.map +1 -0
- package/dist/src/services/durableSubagents/index.cjs +95 -0
- package/dist/src/services/durableSubagents/index.cjs.map +1 -0
- package/dist/src/services/durableSubagents/index.mjs +90 -0
- package/dist/src/services/durableSubagents/index.mjs.map +1 -0
- package/dist/src/services/durableSubagents/tasks.cjs +25 -0
- package/dist/src/services/durableSubagents/tasks.cjs.map +1 -0
- package/dist/src/services/durableSubagents/tasks.mjs +26 -0
- package/dist/src/services/durableSubagents/tasks.mjs.map +1 -0
- package/dist/src/services/headlessClient/index.cjs +20 -13
- package/dist/src/services/headlessClient/index.cjs.map +1 -1
- package/dist/src/services/headlessClient/index.mjs +21 -14
- package/dist/src/services/headlessClient/index.mjs.map +1 -1
- package/dist/src/services/historyOwnership/type.d.mts +15 -0
- package/dist/src/services/historyOwnership/type.d.mts.map +1 -0
- package/dist/src/services/hubChannelHarness/index.cjs +2 -2
- package/dist/src/services/hubChannelHarness/index.cjs.map +1 -1
- package/dist/src/services/hubChannelHarness/index.d.mts +8 -8
- package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -1
- package/dist/src/services/hubChannelHarness/index.mjs +2 -2
- package/dist/src/services/hubChannelHarness/index.mjs.map +1 -1
- package/dist/src/services/json/core.cjs +30 -0
- package/dist/src/services/json/core.cjs.map +1 -0
- package/dist/src/services/json/core.d.mts +21 -0
- package/dist/src/services/json/core.d.mts.map +1 -0
- package/dist/src/services/json/core.mjs +26 -0
- package/dist/src/services/json/core.mjs.map +1 -0
- package/dist/src/services/json/sync.cjs +48 -0
- package/dist/src/services/json/sync.cjs.map +1 -0
- package/dist/src/services/json/sync.d.mts +22 -0
- package/dist/src/services/json/sync.d.mts.map +1 -0
- package/dist/src/services/json/sync.mjs +43 -0
- package/dist/src/services/json/sync.mjs.map +1 -0
- package/dist/src/services/kernel/index.cjs +2 -2
- package/dist/src/services/kernel/index.cjs.map +1 -1
- package/dist/src/services/kernel/index.d.mts +3 -3
- package/dist/src/services/kernel/index.d.mts.map +1 -1
- package/dist/src/services/kernel/index.mjs +2 -2
- package/dist/src/services/kernel/index.mjs.map +1 -1
- package/dist/src/services/nativeChildTools/index.cjs +16 -0
- package/dist/src/services/nativeChildTools/index.cjs.map +1 -0
- package/dist/src/services/nativeChildTools/index.mjs +16 -0
- package/dist/src/services/nativeChildTools/index.mjs.map +1 -0
- package/dist/src/services/nodeHost/index.cjs +30 -0
- package/dist/src/services/nodeHost/index.cjs.map +1 -0
- package/dist/src/services/nodeHost/index.d.mts +16 -0
- package/dist/src/services/nodeHost/index.d.mts.map +1 -0
- package/dist/src/services/nodeHost/index.mjs +27 -0
- package/dist/src/services/nodeHost/index.mjs.map +1 -0
- package/dist/src/services/nodeModelDependencies/index.cjs +89 -0
- package/dist/src/services/nodeModelDependencies/index.cjs.map +1 -0
- package/dist/src/services/nodeModelDependencies/index.mjs +86 -0
- package/dist/src/services/nodeModelDependencies/index.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.cjs +6 -128
- package/dist/src/services/openSessionRegistry/index.cjs.map +1 -1
- package/dist/src/services/openSessionRegistry/index.d.mts +5 -36
- package/dist/src/services/openSessionRegistry/index.mjs +6 -128
- package/dist/src/services/openSessionRegistry/index.mjs.map +1 -1
- package/dist/src/services/openSessionRegistry/openSessionRecords.cjs +87 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts +30 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.mjs +81 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.cjs +71 -0
- package/dist/src/services/openSessionRegistry/sync.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.d.mts +14 -0
- package/dist/src/services/openSessionRegistry/sync.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.mjs +68 -0
- package/dist/src/services/openSessionRegistry/sync.mjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.cjs +1 -1
- package/dist/src/services/packageApiHarness/index.cjs.map +1 -1
- package/dist/src/services/packageApiHarness/index.d.mts +6 -6
- package/dist/src/services/packageApiHarness/index.d.mts.map +1 -1
- package/dist/src/services/packageApiHarness/index.mjs +2 -2
- package/dist/src/services/packageApiHarness/index.mjs.map +1 -1
- package/dist/src/services/piArgs/index.cjs +53 -0
- package/dist/src/services/piArgs/index.cjs.map +1 -0
- package/dist/src/services/piArgs/index.d.mts +6 -0
- package/dist/src/services/piArgs/index.d.mts.map +1 -0
- package/dist/src/services/piArgs/index.mjs +53 -0
- package/dist/src/services/piArgs/index.mjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.cjs +47 -39
- package/dist/src/services/piExtensionHost/index.cjs.map +1 -1
- package/dist/src/services/piExtensionHost/index.d.mts +83 -0
- package/dist/src/services/piExtensionHost/index.d.mts.map +1 -0
- package/dist/src/services/piExtensionHost/index.mjs +47 -38
- package/dist/src/services/piExtensionHost/index.mjs.map +1 -1
- package/dist/src/services/piHelpTools/index.cjs +5 -5
- package/dist/src/services/piHelpTools/index.cjs.map +1 -1
- package/dist/src/services/piHelpTools/index.d.mts.map +1 -1
- package/dist/src/services/piHelpTools/index.mjs +7 -7
- package/dist/src/services/piHelpTools/index.mjs.map +1 -1
- package/dist/src/services/piMessages/index.cjs +106 -0
- package/dist/src/services/piMessages/index.cjs.map +1 -0
- package/dist/src/services/piMessages/index.mjs +105 -0
- package/dist/src/services/piMessages/index.mjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.cjs +4 -4
- package/dist/src/services/piSessionEntries/index.cjs.map +1 -1
- package/dist/src/services/piSessionEntries/index.mjs +3 -3
- package/dist/src/services/piSessionEntries/index.mjs.map +1 -1
- package/dist/src/services/piSettings/core.cjs +308 -0
- package/dist/src/services/piSettings/core.cjs.map +1 -0
- package/dist/src/services/piSettings/core.d.mts +102 -0
- package/dist/src/services/piSettings/core.d.mts.map +1 -0
- package/dist/src/services/piSettings/core.mjs +276 -0
- package/dist/src/services/piSettings/core.mjs.map +1 -0
- package/dist/src/services/piSettings/sync.cjs +119 -0
- package/dist/src/services/piSettings/sync.cjs.map +1 -0
- package/dist/src/services/piSettings/sync.d.mts +44 -0
- package/dist/src/services/piSettings/sync.d.mts.map +1 -0
- package/dist/src/services/piSettings/sync.mjs +110 -0
- package/dist/src/services/piSettings/sync.mjs.map +1 -0
- package/dist/src/services/piSummary/index.cjs +7 -0
- package/dist/src/services/piSummary/index.cjs.map +1 -0
- package/dist/src/services/piSummary/index.mjs +7 -0
- package/dist/src/services/piSummary/index.mjs.map +1 -0
- package/dist/src/services/platformFiles/index.cjs +44 -0
- package/dist/src/services/platformFiles/index.cjs.map +1 -0
- package/dist/src/services/platformFiles/index.d.mts +16 -0
- package/dist/src/services/platformFiles/index.d.mts.map +1 -0
- package/dist/src/services/platformFiles/index.mjs +39 -0
- package/dist/src/services/platformFiles/index.mjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.cjs +19 -13
- package/dist/src/services/pluginLifecycle/index.cjs.map +1 -1
- package/dist/src/services/pluginLifecycle/index.d.mts +2 -0
- package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -1
- package/dist/src/services/pluginLifecycle/index.mjs +19 -14
- package/dist/src/services/pluginLifecycle/index.mjs.map +1 -1
- package/dist/src/services/poPackage/core.cjs +73 -0
- package/dist/src/services/poPackage/core.cjs.map +1 -0
- package/dist/src/services/poPackage/core.d.mts +32 -0
- package/dist/src/services/poPackage/core.d.mts.map +1 -0
- package/dist/src/services/poPackage/core.mjs +66 -0
- package/dist/src/services/poPackage/core.mjs.map +1 -0
- package/dist/src/services/poPackage/sync.cjs +55 -0
- package/dist/src/services/poPackage/sync.cjs.map +1 -0
- package/dist/src/services/poPackage/sync.d.mts +21 -0
- package/dist/src/services/poPackage/sync.d.mts.map +1 -0
- package/dist/src/services/poPackage/sync.mjs +50 -0
- package/dist/src/services/poPackage/sync.mjs.map +1 -0
- package/dist/src/services/providerAuth/index.cjs +11 -7
- package/dist/src/services/providerAuth/index.cjs.map +1 -1
- package/dist/src/services/providerAuth/index.mjs +11 -7
- package/dist/src/services/providerAuth/index.mjs.map +1 -1
- package/dist/src/services/publicFileShares/index.cjs +1 -1
- package/dist/src/services/publicFileShares/index.cjs.map +1 -1
- package/dist/src/services/publicFileShares/index.d.mts +2 -2
- package/dist/src/services/publicFileShares/index.mjs +2 -2
- package/dist/src/services/publicFileShares/index.mjs.map +1 -1
- package/dist/src/services/remoteAccess/index.d.mts +1 -0
- package/dist/src/services/remoteAccess/index.d.mts.map +1 -1
- package/dist/src/services/remoteAccessStore/index.cjs +8 -190
- package/dist/src/services/remoteAccessStore/index.cjs.map +1 -1
- package/dist/src/services/remoteAccessStore/index.d.mts +2 -0
- package/dist/src/services/remoteAccessStore/index.mjs +7 -187
- package/dist/src/services/remoteAccessStore/index.mjs.map +1 -1
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs +98 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs +88 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs.map +1 -0
- package/dist/src/services/remoteAccessStore/sync.cjs +111 -0
- package/dist/src/services/remoteAccessStore/sync.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/sync.mjs +108 -0
- package/dist/src/services/remoteAccessStore/sync.mjs.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.cjs +23 -0
- package/dist/src/services/runtimeIdentity/sync.cjs.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.d.mts +9 -0
- package/dist/src/services/runtimeIdentity/sync.d.mts.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.mjs +20 -0
- package/dist/src/services/runtimeIdentity/sync.mjs.map +1 -0
- package/dist/src/services/serialRunner/index.cjs +25 -0
- package/dist/src/services/serialRunner/index.cjs.map +1 -0
- package/dist/src/services/serialRunner/index.d.mts +10 -0
- package/dist/src/services/serialRunner/index.d.mts.map +1 -0
- package/dist/src/services/serialRunner/index.mjs +25 -0
- package/dist/src/services/serialRunner/index.mjs.map +1 -0
- package/dist/src/services/{serverFacet → serverHost}/index.cjs +5 -5
- package/dist/src/services/serverHost/index.cjs.map +1 -0
- package/dist/src/services/serverHost/index.d.mts +31 -0
- package/dist/src/services/serverHost/index.d.mts.map +1 -0
- package/dist/src/services/{serverFacet → serverHost}/index.mjs +5 -5
- package/dist/src/services/serverHost/index.mjs.map +1 -0
- package/dist/src/services/sessionAttachments/index.cjs +4 -3
- package/dist/src/services/sessionAttachments/index.cjs.map +1 -1
- package/dist/src/services/sessionAttachments/index.d.mts +1 -6
- package/dist/src/services/sessionAttachments/index.d.mts.map +1 -1
- package/dist/src/services/sessionAttachments/index.mjs +3 -2
- package/dist/src/services/sessionAttachments/index.mjs.map +1 -1
- package/dist/src/services/sessionAttachments/type.d.mts +9 -0
- package/dist/src/services/sessionAttachments/type.d.mts.map +1 -0
- package/dist/src/services/sessionFiles/index.cjs +96 -0
- package/dist/src/services/sessionFiles/index.cjs.map +1 -0
- package/dist/src/services/sessionFiles/index.d.mts +33 -0
- package/dist/src/services/sessionFiles/index.d.mts.map +1 -0
- package/dist/src/services/sessionFiles/index.mjs +89 -0
- package/dist/src/services/sessionFiles/index.mjs.map +1 -0
- package/dist/src/services/sessionFiles/sessionDirectory.cjs +66 -0
- package/dist/src/services/sessionFiles/sessionDirectory.cjs.map +1 -0
- package/dist/src/services/sessionFiles/sessionDirectory.mjs +62 -0
- package/dist/src/services/sessionFiles/sessionDirectory.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.cjs +31 -33
- package/dist/src/services/sessionGitStatus/index.cjs.map +1 -1
- package/dist/src/services/sessionGitStatus/index.mjs +31 -33
- package/dist/src/services/sessionGitStatus/index.mjs.map +1 -1
- package/dist/src/services/sessionPresentation/index.cjs +3 -27
- package/dist/src/services/sessionPresentation/index.cjs.map +1 -1
- package/dist/src/services/sessionPresentation/index.mjs +3 -27
- package/dist/src/services/sessionPresentation/index.mjs.map +1 -1
- package/dist/src/services/skillPrompt/index.cjs +11 -0
- package/dist/src/services/skillPrompt/index.cjs.map +1 -0
- package/dist/src/services/skillPrompt/index.mjs +11 -0
- package/dist/src/services/skillPrompt/index.mjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs +44 -30
- package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -1
- package/dist/src/services/sqliteSessionHistory/index.d.mts +7 -4
- package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -1
- package/dist/src/services/sqliteSessionHistory/index.mjs +43 -28
- package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.cjs +21 -45
- package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.d.mts +3 -2
- package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.mjs +16 -38
- package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -1
- package/dist/src/services/testMode/index.cjs +162 -0
- package/dist/src/services/testMode/index.cjs.map +1 -0
- package/dist/src/services/testMode/index.d.mts +17 -0
- package/dist/src/services/testMode/index.d.mts.map +1 -0
- package/dist/src/services/testMode/index.mjs +155 -0
- package/dist/src/services/testMode/index.mjs.map +1 -0
- package/dist/src/services/toolOverrides/index.cjs +6 -6
- package/dist/src/services/toolOverrides/index.cjs.map +1 -1
- package/dist/src/services/toolOverrides/index.d.mts +3 -3
- package/dist/src/services/toolOverrides/index.d.mts.map +1 -1
- package/dist/src/services/toolOverrides/index.mjs +6 -6
- package/dist/src/services/toolOverrides/index.mjs.map +1 -1
- package/dist/src/services/toolPrompt/index.d.mts +17 -0
- package/dist/src/services/toolPrompt/index.d.mts.map +1 -0
- package/dist/src/services/toolSurface/index.cjs +3 -3
- package/dist/src/services/toolSurface/index.cjs.map +1 -1
- package/dist/src/services/toolSurface/index.d.mts +3 -3
- package/dist/src/services/toolSurface/index.d.mts.map +1 -1
- package/dist/src/services/toolSurface/index.mjs +4 -4
- package/dist/src/services/toolSurface/index.mjs.map +1 -1
- package/dist/src/services/traceContext/index.cjs.map +1 -1
- package/dist/src/services/traceContext/index.mjs.map +1 -1
- package/dist/src/services/transcriptPages/index.cjs +159 -33
- package/dist/src/services/transcriptPages/index.cjs.map +1 -1
- package/dist/src/services/transcriptPages/index.mjs +158 -34
- package/dist/src/services/transcriptPages/index.mjs.map +1 -1
- package/dist/src/services/voiceToolsContract/index.cjs +7 -7
- package/dist/src/services/voiceToolsContract/index.cjs.map +1 -1
- package/dist/src/services/voiceToolsContract/index.d.mts +4 -4
- package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -1
- package/dist/src/services/voiceToolsContract/index.mjs +7 -7
- package/dist/src/services/voiceToolsContract/index.mjs.map +1 -1
- package/dist/src/services/workspaceRegistry/index.cjs +9 -179
- package/dist/src/services/workspaceRegistry/index.cjs.map +1 -1
- package/dist/src/services/workspaceRegistry/index.d.mts +5 -47
- package/dist/src/services/workspaceRegistry/index.mjs +7 -176
- package/dist/src/services/workspaceRegistry/index.mjs.map +1 -1
- package/dist/src/services/workspaceRegistry/sync.cjs +148 -0
- package/dist/src/services/workspaceRegistry/sync.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/sync.d.mts +34 -0
- package/dist/src/services/workspaceRegistry/sync.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/sync.mjs +140 -0
- package/dist/src/services/workspaceRegistry/sync.mjs.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.cjs +114 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts +31 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.mjs +101 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.mjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +339 -202
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -1
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +16 -21
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -1
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +329 -191
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -1
- package/dist/src/systems/child/services/childSession/index.cjs +94 -20
- package/dist/src/systems/child/services/childSession/index.cjs.map +1 -1
- package/dist/src/systems/child/services/childSession/index.d.mts +12 -3
- package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -1
- package/dist/src/systems/child/services/childSession/index.mjs +94 -20
- package/dist/src/systems/child/services/childSession/index.mjs.map +1 -1
- package/dist/src/systems/child/types/childSession.cjs +33 -13
- package/dist/src/systems/child/types/childSession.cjs.map +1 -1
- package/dist/src/systems/child/types/childSession.d.mts +143 -80
- package/dist/src/systems/child/types/childSession.d.mts.map +1 -1
- package/dist/src/systems/child/types/childSession.mjs +24 -9
- package/dist/src/systems/child/types/childSession.mjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.cjs +30 -27
- package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.d.mts +22 -22
- package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.mjs +33 -30
- package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs +248 -229
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +4 -5
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs +239 -219
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -1
- package/dist/src/systems/main/types/headlessHost.d.mts +16 -14
- package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -1
- package/dist/src/testing/pi/testHost.cjs +2 -2
- package/dist/src/testing/pi/testHost.cjs.map +1 -1
- package/dist/src/testing/pi/testHost.d.mts +3 -2
- package/dist/src/testing/pi/testHost.mjs +3 -3
- package/dist/src/testing/pi/testHost.mjs.map +1 -1
- package/dist/src/types/config.d.mts +1 -1
- package/dist/src/types/config.d.mts.map +1 -1
- package/dist/src/types/kernel.d.mts +3 -3
- package/dist/src/types/server/directHarnessRuntime.d.mts +54 -25
- package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -1
- package/dist/src/types/server/sessionToolSurface.d.mts +9 -9
- package/dist/src/web/services/apiClient/index.d.mts +1 -0
- package/dist/src/web/services/apiPaths/index.cjs.map +1 -1
- package/dist/src/web/services/apiPaths/index.d.mts +1 -1
- package/dist/src/web/services/apiPaths/index.mjs.map +1 -1
- package/dist/src/web/services/mcpWidget.cjs.map +1 -1
- package/dist/src/web/services/mcpWidget.d.mts +2 -2
- package/dist/src/web/services/mcpWidget.d.mts.map +1 -1
- package/dist/src/web/services/mcpWidget.mjs.map +1 -1
- package/dist/src/web/services/testing/templateRail.cjs +3 -0
- package/dist/src/web/services/testing/templateRail.cjs.map +1 -1
- package/dist/src/web/services/testing/templateRail.mjs +3 -0
- package/dist/src/web/services/testing/templateRail.mjs.map +1 -1
- package/dist/src/web/types/mcpWidget.d.mts +1 -1
- package/dist/src/web/types/nativeTemplate.d.mts +1 -1
- package/dist/src/web/types/nativeTemplate.d.mts.map +1 -1
- package/dist/src/web/types/template.d.mts +8 -0
- package/dist/src/web/types/template.d.mts.map +1 -1
- package/dist/src/web/types/webPlugin.d.mts +17 -5
- package/dist/src/web/types/webPlugin.d.mts.map +1 -1
- package/dist/testMode.cjs +4 -0
- package/dist/testMode.d.mts +2 -0
- package/dist/testMode.mjs +1 -0
- package/dist/testing.cjs +1 -1
- package/dist/testing.d.mts +2 -2
- package/dist/testing.mjs +2 -2
- package/dist/toolInventory.cjs.map +1 -1
- package/dist/toolInventory.mjs.map +1 -1
- package/dist/toolNames.mjs +1 -2
- package/dist/toolOverrides.cjs +4 -4
- package/dist/toolOverrides.d.mts +3 -3
- package/dist/toolOverrides.mjs +3 -3
- package/dist/toolSurface.cjs +4 -4
- package/dist/toolSurface.d.mts +3 -3
- package/dist/toolSurface.mjs +3 -3
- package/dist/transition.cjs +3 -3
- package/dist/transition.d.cjs +3 -3
- package/dist/transition.d.mts +2 -2
- package/dist/transition.mjs +1 -2
- package/dist/transitionClassifier.cjs.map +1 -1
- package/dist/transitionClassifier.d.mts +2 -2
- package/dist/transitionClassifier.d.mts.map +1 -1
- package/dist/transitionClassifier.mjs.map +1 -1
- package/dist/transitionCoordinator.cjs +3 -3
- package/dist/transitionCoordinator.cjs.map +1 -1
- package/dist/transitionCoordinator.d.mts +4 -4
- package/dist/transitionCoordinator.d.mts.map +1 -1
- package/dist/transitionCoordinator.mjs +3 -3
- package/dist/transitionCoordinator.mjs.map +1 -1
- package/dist/typesContextApi.d.mts +2 -1
- package/dist/typesContextApi.d.mts.map +1 -1
- package/dist/uiHub.cjs +3 -3
- package/dist/uiHub.d.mts +2 -2
- package/dist/uiHub.mjs +1 -2
- package/dist/voiceTools.cjs +5 -5
- package/dist/voiceTools.d.mts +3 -3
- package/dist/voiceTools.mjs +3 -3
- package/dist/web.cjs +8 -0
- package/dist/web.d.mts +3 -2
- package/dist/web.mjs +2 -1
- package/dist/webCompositions.cjs.map +1 -1
- package/dist/webCompositions.d.mts +7 -7
- package/dist/webCompositions.d.mts.map +1 -1
- package/dist/webCompositions.mjs.map +1 -1
- package/licenses/Codex-Apache-2.0.txt +201 -0
- package/package.json +58 -53
- package/dist/doomPackage.cjs +0 -61
- package/dist/doomPackage.cjs.map +0 -1
- package/dist/doomPackage.d.mts +0 -17
- package/dist/doomPackage.d.mts.map +0 -1
- package/dist/doomPackage.mjs +0 -54
- package/dist/doomPackage.mjs.map +0 -1
- package/dist/jsonlSessionRepo.cjs +0 -44
- package/dist/jsonlSessionRepo.cjs.map +0 -1
- package/dist/jsonlSessionRepo.d.mts +0 -7
- package/dist/jsonlSessionRepo.d.mts.map +0 -1
- package/dist/jsonlSessionRepo.mjs +0 -42
- package/dist/jsonlSessionRepo.mjs.map +0 -1
- package/dist/runtimeJson.cjs.map +0 -1
- package/dist/runtimeJson.d.mts.map +0 -1
- package/dist/runtimeJson.mjs.map +0 -1
- package/dist/runtimePiSettings.cjs.map +0 -1
- package/dist/runtimePiSettings.d.mts.map +0 -1
- package/dist/runtimePiSettings.mjs.map +0 -1
- package/dist/serverFacet.cjs +0 -34
- package/dist/serverFacet.d.mts +0 -10
- package/dist/serverFacet.mjs +0 -9
- package/dist/src/pi/piWebSocketListener.cjs +0 -115
- package/dist/src/pi/piWebSocketListener.cjs.map +0 -1
- package/dist/src/pi/piWebSocketListener.mjs +0 -115
- package/dist/src/pi/piWebSocketListener.mjs.map +0 -1
- package/dist/src/schemas/serverFacet.cjs +0 -111
- package/dist/src/schemas/serverFacet.cjs.map +0 -1
- package/dist/src/schemas/serverFacet.d.mts +0 -152
- package/dist/src/schemas/serverFacet.d.mts.map +0 -1
- package/dist/src/schemas/serverFacet.mjs +0 -101
- package/dist/src/schemas/serverFacet.mjs.map +0 -1
- package/dist/src/schemas/sessionUpdates.d.mts +0 -34
- package/dist/src/schemas/sessionUpdates.d.mts.map +0 -1
- package/dist/src/server/headlessProtocol.cjs +0 -382
- package/dist/src/server/headlessProtocol.cjs.map +0 -1
- package/dist/src/server/headlessProtocol.mjs +0 -382
- package/dist/src/server/headlessProtocol.mjs.map +0 -1
- package/dist/src/server/nativeChildTranscriptReader.cjs +0 -20
- package/dist/src/server/nativeChildTranscriptReader.cjs.map +0 -1
- package/dist/src/server/nativeChildTranscriptReader.mjs +0 -18
- package/dist/src/server/nativeChildTranscriptReader.mjs.map +0 -1
- package/dist/src/server/serverFacetLoader.cjs +0 -214
- package/dist/src/server/serverFacetLoader.cjs.map +0 -1
- package/dist/src/server/serverFacetLoader.d.mts +0 -72
- package/dist/src/server/serverFacetLoader.d.mts.map +0 -1
- package/dist/src/server/serverFacetLoader.mjs +0 -212
- package/dist/src/server/serverFacetLoader.mjs.map +0 -1
- package/dist/src/services/acpSessionUpdates/index.cjs +0 -129
- package/dist/src/services/acpSessionUpdates/index.cjs.map +0 -1
- package/dist/src/services/acpSessionUpdates/index.mjs +0 -129
- package/dist/src/services/acpSessionUpdates/index.mjs.map +0 -1
- package/dist/src/services/historyImport/index.cjs +0 -8
- package/dist/src/services/historyImport/index.cjs.map +0 -1
- package/dist/src/services/historyImport/index.d.mts +0 -68
- package/dist/src/services/historyImport/index.d.mts.map +0 -1
- package/dist/src/services/historyImport/index.mjs +0 -8
- package/dist/src/services/historyImport/index.mjs.map +0 -1
- package/dist/src/services/openSessionRegistry/index.d.mts.map +0 -1
- package/dist/src/services/requestReceipts/index.cjs.map +0 -1
- package/dist/src/services/requestReceipts/index.d.mts +0 -11
- package/dist/src/services/requestReceipts/index.d.mts.map +0 -1
- package/dist/src/services/requestReceipts/index.mjs.map +0 -1
- package/dist/src/services/rpcTranscript/index.cjs +0 -633
- package/dist/src/services/rpcTranscript/index.cjs.map +0 -1
- package/dist/src/services/rpcTranscript/index.d.mts +0 -50
- package/dist/src/services/rpcTranscript/index.d.mts.map +0 -1
- package/dist/src/services/rpcTranscript/index.mjs +0 -632
- package/dist/src/services/rpcTranscript/index.mjs.map +0 -1
- package/dist/src/services/serverFacet/index.cjs.map +0 -1
- package/dist/src/services/serverFacet/index.d.mts +0 -31
- package/dist/src/services/serverFacet/index.d.mts.map +0 -1
- package/dist/src/services/serverFacet/index.mjs.map +0 -1
- package/dist/src/services/workspaceRegistry/index.d.mts.map +0 -1
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +0 -28
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +0 -1
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +0 -25
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +0 -1
- package/dist/terminalPiChildSessionService.cjs +0 -324
- package/dist/terminalPiChildSessionService.cjs.map +0 -1
- package/dist/terminalPiChildSessionService.d.mts +0 -46
- package/dist/terminalPiChildSessionService.d.mts.map +0 -1
- package/dist/terminalPiChildSessionService.mjs +0 -318
- package/dist/terminalPiChildSessionService.mjs.map +0 -1
- package/dist/v3Export.cjs +0 -10
- package/dist/v3Export.cjs.map +0 -1
- package/dist/v3Export.d.mts +0 -35
- package/dist/v3Export.d.mts.map +0 -1
- package/dist/v3Export.mjs +0 -9
- package/dist/v3Export.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headlessHost.mjs","names":[],"sources":["../../../../../src/systems/main/adapters/headlessHost.ts"],"sourcesContent":["import { Context, Service } from '@deepseek-ai/cordis';\nimport type { TSchema } from 'typebox';\n\nimport {\n DOOM_HEADLESS_HOST_SERVICE,\n DOOM_LOAD_SKILL_TOOL,\n readDoomHeadlessOwner,\n isDoomHeadlessPromptAdmissionError,\n type DoomHeadlessActivity,\n type DoomHeadlessCommand,\n type DoomHeadlessEventName,\n type DoomHeadlessExecutionContext,\n type DoomHeadlessHook,\n type DoomHeadlessHostService,\n isDoomHeadlessToolModelVisible,\n type DoomHeadlessRegistration,\n type DoomHeadlessResource,\n type DoomHeadlessSelection,\n type DoomHeadlessSelectionChange,\n type DoomHeadlessTool,\n type DoomHeadlessCondition,\n type DoomHeadlessToolRestriction,\n} from '../../../exports/headless';\nimport { createDoomKernel } from '../../../exports/kernel';\nimport { readDoomMcpStatus } from '../../../exports/mcpStatus';\nimport type { DoomServerBundleEntry } from '../../../exports/serverFacet';\nimport type { PackageAttribution } from '../../../services/contextProjection';\nimport type {\n ContextConditionalAttribution,\n ContextToolInventory,\n ContextToolSource,\n} from '../../../services/contextProjection';\nimport { formatSkillsForSystemPrompt } from '../../../services/piExtensionHost';\nimport type { CountTokens } from '../../../services/toolInventory';\nimport type {\n HeadlessContextInventory,\n HeadlessHostOptions,\n HeadlessSelectionStatus,\n ResolvedHeadlessResource,\n} from '../types/headlessHost';\n\ntype Owned<T> = { source: string; value: T };\ntype StopActivity = () => void | Promise<void>;\n\nfunction sameStrings(left: readonly string[], right: readonly string[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index]);\n}\n\nfunction sameValues(left: readonly unknown[], right: readonly unknown[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index]);\n}\n\nfunction sameSelection(left: DoomHeadlessSelection, right: DoomHeadlessSelection): boolean {\n return (\n left.majorMode === right.majorMode &&\n left.profile === right.profile &&\n sameStrings(left.activeLayers, right.activeLayers) &&\n sameStrings(left.domains, right.domains) &&\n JSON.stringify(left.state ?? {}) === JSON.stringify(right.state ?? {})\n );\n}\n\n/**\n * Maps one typed headless resource to the exact skill shape installed in AgentHarness.\n *\n * Prefers the resource's own `description` and `path`. The fallbacks below are what\n * every skill used to get, and they are only good enough for explicit invocation,\n * which matches on name: `doom-headless://` is not a path any tool can open, and\n * \"Headless skill from <source>\" gives the model nothing to select on. A skill is\n * only advertised in the prompt once it carries a real path.\n */\nexport function headlessHarnessSkill(resource: ResolvedHeadlessResource) {\n return {\n name: resource.name,\n description: resource.description ?? `Headless skill from ${resource.source}`,\n content: resource.text,\n filePath: resource.path ?? `doom-headless://${resource.source}/${resource.name}`,\n };\n}\n\nfunction escapeXml(value: string): string {\n return value.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"');\n}\n\n/**\n * The load tool's description with the session's skills appended, so the agent sees what it can\n * load where it decides to call the tool. Rebuilt whenever the applied skills change.\n */\nexport function describeLoadSkillTool(base: string, skills: readonly ResolvedHeadlessResource[]): string {\n const listed = skills.filter(\n (skill, index, all) => skill.kind === 'skill' && all.findIndex((entry) => entry.name === skill.name) === index,\n );\n if (listed.length === 0) return base;\n return [\n base,\n '',\n '<available_skills>',\n ...listed.flatMap((skill) => [\n ' <skill>',\n ` <name>${escapeXml(skill.name)}</name>`,\n ` <description>${escapeXml(headlessHarnessSkill(skill).description)}</description>`,\n ' </skill>',\n ]),\n '</available_skills>',\n ].join('\\n');\n}\n\n/** Retains facets and their state; only kernel-computed active contributions change. */\nexport class HeadlessHost extends Service<DoomHeadlessHostService> implements DoomHeadlessHostService {\n private readonly kernel = createDoomKernel();\n private readonly selectionListeners = new Set<(selection: DoomHeadlessSelection) => void | Promise<void>>();\n private restrictions: readonly DoomHeadlessToolRestriction[] = [];\n private restrictionsChanged = false;\n private contributionsChanged = false;\n private readonly options: HeadlessHostOptions;\n private readonly selectionOverrides: Set<string>;\n private applied: DoomHeadlessSelection;\n private requested: DoomHeadlessSelection;\n private applying: DoomHeadlessSelection;\n private refreshing = false;\n private requestedRevision = 0;\n private appliedRevision = 0;\n private recoveryRevision = 0;\n private ready = false;\n private disposed = false;\n private failure: unknown;\n private tail: Promise<void> = Promise.resolve();\n private activeSources = new Set<string>();\n private availableSources = new Set<string>();\n private tools = new Map<string, Owned<DoomHeadlessTool>>();\n private resources: readonly Owned<DoomHeadlessResource>[] = [];\n private resolvedResources: readonly ResolvedHeadlessResource[] = [];\n private commands = new Map<string, Owned<DoomHeadlessCommand>>();\n private hooks: readonly Owned<DoomHeadlessHook>[] = [];\n private readonly activities = new Map<Owned<DoomHeadlessActivity>, StopActivity>();\n\n constructor(context: Context, options: HeadlessHostOptions) {\n super(context, DOOM_HEADLESS_HOST_SERVICE);\n this.options = options;\n this.selectionOverrides = new Set(options.selectionOverrides);\n this.applied = structuredClone(options.selection);\n this.requested = this.applied;\n this.applying = this.applied;\n context.effect(() => () => this.close(), 'headless host lifetime');\n this.kernel.defineSlot<Owned<DoomHeadlessToolRestriction>>('restrictions', (entries) => {\n this.restrictionsChanged = true;\n this.restrictions = entries.map((entry) => entry.value).filter((restriction) => this.matches(restriction.when));\n });\n this.kernel.defineSlot<Owned<DoomHeadlessTool>>('tools', async (entries) => {\n const next = new Map<string, Owned<DoomHeadlessTool>>();\n for (const entry of this.selected(entries)) {\n if (!this.allowsTool(entry.value.name)) continue;\n if (!next.has(entry.value.name)) next.set(entry.value.name, entry);\n }\n const tools = [...next.values()].map((entry): DoomHeadlessTool => ({\n ...entry.value,\n execute: async (id, parameters, signal, onUpdate) => {\n this.assertReady();\n if (this.tools.get(entry.value.name) !== entry || !this.activeSources.has(entry.source)) {\n throw new Error(`Tool '${entry.value.name}' is no longer active`);\n }\n return entry.value.execute(id, parameters, signal, onUpdate, this.context);\n },\n }));\n await this.options.applyTools(tools);\n this.tools = next;\n });\n this.kernel.defineSlot<Owned<DoomHeadlessResource>>('resources', async (entries) => {\n this.resources = this.selected(entries);\n this.resolvedResources = await this.resolveResources(this.applying);\n await this.options.applyResources(this.resolvedResources);\n });\n this.kernel.defineSlot<Owned<DoomHeadlessCommand>>('commands', (entries) => {\n const next = new Map<string, Owned<DoomHeadlessCommand>>();\n for (const entry of this.selected(entries)) if (!next.has(entry.value.name)) next.set(entry.value.name, entry);\n this.commands = next;\n });\n this.kernel.defineSlot<Owned<DoomHeadlessHook>>('hooks', (entries) => {\n this.hooks = this.selected(entries);\n });\n this.kernel.defineSlot<Owned<DoomHeadlessActivity>>('activities', async (entries) => {\n const desired = new Set(this.selected(entries));\n for (const [entry, stop] of [...this.activities].reverse()) {\n if (desired.has(entry)) continue;\n await stop();\n this.activities.delete(entry);\n }\n for (const entry of desired) {\n if (this.activities.has(entry)) continue;\n try {\n const stop = await entry.value.start(this.options.context(this.applying));\n this.activities.set(entry, stop);\n } catch (error) {\n if (this.options.candidates.some((candidate) => candidate.packageName === entry.source && candidate.required))\n throw error;\n this.options.onError?.(error);\n }\n }\n });\n }\n\n get context(): DoomHeadlessExecutionContext {\n return this.options.context(this.applied);\n }\n\n get status(): HeadlessSelectionStatus {\n return {\n requestedRevision: this.requestedRevision,\n appliedRevision: this.appliedRevision,\n ready: this.ready,\n ...(this.failure === undefined\n ? {}\n : {\n error:\n this.failure instanceof Error\n ? this.failure.message\n : typeof this.failure === 'string'\n ? this.failure\n : 'Headless selection failed',\n }),\n };\n }\n\n /**\n * The resources the last applied selection resolved to.\n *\n * `readResources` re-reads them for a live request and refuses while a\n * selection is mid-apply. A reader describing the applied composition wants\n * the same snapshot `getContextInventory` reports against, and wants it at\n * the same moments, so it reads this instead of dispatching.\n */\n get appliedResources(): readonly ResolvedHeadlessResource[] {\n return this.resolvedResources;\n }\n\n get toolSurface(): DoomHeadlessHostService['toolSurface'] {\n return this.options.toolSurface?.();\n }\n\n readSkill(name: string): string | undefined {\n // The last declaration of a name is the one the session uses.\n return this.resolvedResources.findLast((entry) => entry.kind === 'skill' && entry.name === name)?.text;\n }\n\n inspectCapabilities(): ReturnType<DoomHeadlessHostService['inspectCapabilities']> {\n const ready = this.ready && !this.disposed;\n const capabilities: ReturnType<DoomHeadlessHostService['inspectCapabilities']>['capabilities'][number][] = [];\n if (ready) {\n for (const entry of this.kernel.activeValues<Owned<DoomHeadlessTool>>('tools')) {\n const active = this.tools.get(entry.value.name) === entry;\n const discoverable = active && isDoomHeadlessToolModelVisible(entry.value);\n const reason = active\n ? discoverable\n ? undefined\n : 'not-discoverable'\n : !this.matches(entry.value.when)\n ? 'inactive'\n : !this.allowsTool(entry.value.name)\n ? 'restricted'\n : 'shadowed';\n capabilities.push({\n source: entry.source,\n name: entry.value.name,\n kind: 'tool',\n when: structuredClone(entry.value.when),\n active,\n discoverable,\n ...(reason ? { reason } : {}),\n });\n }\n // The session skill surface uses the last resolved declaration for a name.\n const resolved = new Map(\n this.resolvedResources.filter((entry) => entry.kind === 'skill').map((entry) => [entry.name, entry]),\n );\n for (const entry of this.kernel.activeValues<Owned<DoomHeadlessResource>>('resources')) {\n if (entry.value.kind !== 'skill') continue;\n const current = resolved.get(entry.value.name);\n const selected = this.matches(entry.value.when);\n const active =\n selected &&\n current?.source === entry.source &&\n current.path === entry.value.path &&\n current.text.trim().length > 0;\n const discoverable = active && !!current?.path && !!current.description?.trim();\n const reason = !selected\n ? 'inactive'\n : current && current.source !== entry.source\n ? 'shadowed'\n : !active\n ? 'unavailable'\n : !discoverable\n ? 'not-discoverable'\n : undefined;\n capabilities.push({\n source: entry.source,\n name: entry.value.name,\n kind: 'skill',\n when: structuredClone(entry.value.when),\n active,\n discoverable,\n ...(reason ? { reason } : {}),\n });\n }\n }\n return { revision: this.appliedRevision, ready, capabilities };\n }\n /**\n * Every tool name this composition's eligible owners declare, including the\n * ones a condition or a restriction currently gates out.\n *\n * `appliedTools` answers what runs now. A merge that places another surface's\n * tools beside these needs what is spoken for, so a name a facet deliberately\n * withheld is not handed to an unreconciled surface instead. Owner\n * eligibility stays the outer gate: a package the selection excluded declares\n * nothing here.\n */\n get declaredToolNames(): ReadonlySet<string> {\n return new Set(this.kernel.activeValues<Owned<DoomHeadlessTool>>('tools').map((entry) => entry.value.name));\n }\n getContextInventory(\n selection: DoomHeadlessSelection = this.applied,\n countTokens?: CountTokens,\n ): HeadlessContextInventory {\n const currentSources = new Set(\n this.options.candidates\n .filter(\n (candidate) =>\n candidate.scopes.includes('session') &&\n candidate.owners.some((owner) => owner.majorMode === selection.majorMode),\n )\n .map((candidate) => candidate.packageName),\n );\n const conditionAttribution = (when?: DoomHeadlessCondition): ContextConditionalAttribution | undefined =>\n when?.attribution ?? (when?.domain === undefined ? undefined : { kind: 'domain', mode: when.domain });\n const mcpOwners = new Map<string, string>();\n for (const server of readDoomMcpStatus(this.ctx)?.getSnapshot().servers ?? []) {\n for (const name of server.tools) mcpOwners.set(name, server.name);\n }\n const mcpPackages = new Map<string, string>();\n const toolsBySource = new Map<string, ContextToolInventory[]>();\n for (const contribution of this.kernel.contributions<Owned<DoomHeadlessTool>>('tools')) {\n if (!currentSources.has(contribution.source)) continue;\n const tool = contribution.value.value;\n if (!isDoomHeadlessToolModelVisible(tool)) continue;\n const contextAttribution = conditionAttribution(tool.when);\n const entry: ContextToolInventory = {\n name: tool.name,\n // Priced as sent: the load tool carries the skill list in its description.\n description:\n tool.name === DOOM_LOAD_SKILL_TOOL\n ? describeLoadSkillTool(tool.description, this.resolvedResources)\n : tool.description,\n parameters: tool.parameters,\n ...(tool.promptSnippet === undefined ? {} : { promptSnippet: tool.promptSnippet }),\n ...(tool.promptGuidelines === undefined ? {} : { promptGuidelines: tool.promptGuidelines }),\n active: this.tools.get(tool.name) === contribution.value,\n ...(contextAttribution === undefined ? {} : { contextAttribution }),\n };\n const server = mcpOwners.get(tool.name);\n const source = server === undefined ? contribution.source : `mcp:${server}`;\n if (server !== undefined) mcpPackages.set(server, contribution.source);\n const tools = toolsBySource.get(source);\n if (tools) tools.push(entry);\n else toolsBySource.set(source, [entry]);\n }\n\n const sources: ContextToolSource[] = [...toolsBySource].map(([source, tools]) => ({\n key: source,\n label: mcpPackages.has(source.slice(4)) ? `${source.slice(4)} · mcp` : `${source} · extension`,\n kind: mcpPackages.has(source.slice(4)) ? 'mcp' : 'extension',\n packageName: mcpPackages.get(source.slice(4)) ?? source,\n tools,\n }));\n const framingTokens = countTokens === undefined ? 0 : countTokens(formatSkillsForSystemPrompt([]));\n const skills = this.resolvedResources.flatMap((resource, index) => {\n if (resource.kind !== 'skill') return [];\n const skill = headlessHarnessSkill(resource);\n const contextAttribution = conditionAttribution(this.resources[index]?.value.when);\n return [\n {\n name: skill.name,\n description: skill.description,\n group: 'extensions' as const,\n owner: resource.source,\n modelInvocable: true,\n body: skill.content,\n ...(countTokens === undefined\n ? {}\n : { promptTokens: Math.max(0, countTokens(formatSkillsForSystemPrompt([skill])) - framingTokens) }),\n ...(contextAttribution === undefined ? {} : { contextAttribution }),\n },\n ];\n });\n const attribution: Record<string, PackageAttribution> = {};\n for (const candidate of this.options.candidates) {\n const owner =\n candidate.owners.find(\n (entry) =>\n entry.majorMode === selection.majorMode &&\n (entry.layer === 'default' || selection.activeLayers.includes(entry.layer)),\n ) ?? candidate.owners.find((entry) => entry.majorMode === selection.majorMode);\n if (owner && attribution[candidate.packageName] === undefined) {\n attribution[candidate.packageName] = { kind: 'major', mode: selection.majorMode, layer: owner.layer };\n }\n }\n for (const [server, source] of mcpPackages) {\n if (attribution[source]) attribution[server] = attribution[source];\n }\n return { sources, skills, attribution };\n }\n\n setAvailableSources(sources: readonly string[]): void {\n this.availableSources = new Set(sources);\n }\n private matches(when?: DoomHeadlessCondition): boolean {\n return (\n Object.entries(when?.state ?? {}).every(([key, value]) => this.applying.state?.[key]?.includes(value)) &&\n (when?.domain === undefined || this.applying.domains.includes(when.domain))\n );\n }\n private selected<T extends { when?: DoomHeadlessCondition }>(entries: readonly Owned<T>[]): readonly Owned<T>[] {\n return entries.filter(({ value }) => this.matches(value.when));\n }\n\n assertActive(source?: string): void {\n this.assertReady();\n if (source !== undefined && !this.activeSources.has(source))\n throw new Error(`Contribution owner '${source}' is inactive`);\n }\n\n subscribeSelection(listener: (selection: DoomHeadlessSelection) => void | Promise<void>): () => void {\n this.selectionListeners.add(listener);\n return () => {\n this.selectionListeners.delete(listener);\n };\n }\n\n /** Shared by facet reconciliation and the final Pi/facet merge. */\n allowsTool(name: string): boolean {\n const allowed = this.options.allowedTools?.(this.applying);\n return (\n (allowed === undefined || allowed.includes(name)) &&\n this.restrictions.every(\n (restriction) =>\n (restriction.allowedTools === undefined || restriction.allowedTools.includes(name)) &&\n !restriction.excludedTools?.includes(name),\n )\n );\n }\n\n registerToolRestriction(restriction: DoomHeadlessToolRestriction): DoomHeadlessRegistration {\n return this.add('restrictions', restriction);\n }\n\n private eligible(entry: DoomServerBundleEntry, selection: DoomHeadlessSelection): boolean {\n return (\n entry.scopes.includes('session') &&\n entry.owners.some(\n (owner) =>\n owner.majorMode === selection.majorMode &&\n (owner.layer === 'default' || selection.activeLayers.includes(owner.layer)),\n )\n );\n }\n\n changeSelection(change: DoomHeadlessSelectionChange): Promise<void> {\n this.selectionOverrides.add(change.axis);\n if (change.axis === 'majorMode') return this.select({ majorMode: change.majorMode });\n if (change.axis === 'domains') return this.select({ domains: change.domains });\n if (change.axis === 'profile') return this.select({ profile: change.profile });\n return this.select({ state: { ...this.requested.state, [change.key]: [...change.values] } });\n }\n\n private async refreshChangedSelection(\n previous: DoomHeadlessSelection,\n selection: DoomHeadlessSelection,\n previousValues: ReadonlyMap<string, readonly unknown[]>,\n ): Promise<void> {\n const majorChanged =\n previous.majorMode !== selection.majorMode || !sameStrings(previous.activeLayers, selection.activeLayers);\n const domainsChanged = !sameStrings(previous.domains, selection.domains);\n const profileChanged = previous.profile !== selection.profile;\n const stateChanged = JSON.stringify(previous.state ?? {}) !== JSON.stringify(selection.state ?? {});\n if (this.appliedRevision === 0) return;\n\n const refresh = async (slot: string): Promise<void> => {\n const before = previousValues.get(slot) ?? [];\n if (sameValues(before, this.kernel.activeValues(slot))) await this.kernel.refresh(slot);\n };\n if (stateChanged) await refresh('restrictions');\n if (majorChanged || domainsChanged || stateChanged || this.restrictionsChanged) await refresh('tools');\n if (majorChanged || domainsChanged || profileChanged || stateChanged) await refresh('resources');\n if (domainsChanged || stateChanged) {\n await refresh('commands');\n await refresh('hooks');\n await refresh('activities');\n }\n }\n\n /** Refresh inherited defaults only at turn admission, keeping explicit session axes. */\n async inheritSelection(selection: Partial<DoomHeadlessSelection>): Promise<void> {\n const patch: Partial<DoomHeadlessSelection> = {\n ...(!this.selectionOverrides.has('majorMode') && selection.majorMode !== undefined\n ? { majorMode: selection.majorMode }\n : {}),\n ...(!this.selectionOverrides.has('domains') && selection.domains !== undefined\n ? { domains: selection.domains }\n : {}),\n ...(!this.selectionOverrides.has('profile') && Object.hasOwn(selection, 'profile')\n ? { profile: selection.profile }\n : {}),\n };\n if (\n (patch.majorMode === undefined || patch.majorMode === this.requested.majorMode) &&\n (patch.domains === undefined || sameStrings(patch.domains, this.requested.domains)) &&\n (!Object.hasOwn(patch, 'profile') || patch.profile === this.requested.profile)\n )\n return;\n await this.select(patch);\n }\n\n async select(patch: Partial<DoomHeadlessSelection>): Promise<void> {\n if (this.disposed) throw new Error('The headless host is disposed');\n const requested = structuredClone({ ...this.requested, ...patch });\n this.requested = requested;\n const revision = ++this.requestedRevision;\n this.ready = false;\n const apply = async (): Promise<void> => {\n if (this.disposed) throw new Error('The headless host is disposed');\n const selection = structuredClone((await this.options.resolveSelection?.(requested)) ?? requested);\n await this.options.validateSelection?.(selection);\n if (revision === this.requestedRevision) this.requested = selection;\n const eligible = this.options.candidates.filter((entry) => this.eligible(entry, selection));\n const missing = eligible.find((entry) => entry.required && !this.availableSources.has(entry.packageName));\n if (missing) throw new Error(`Required headless package '${missing.packageName}' is unavailable`);\n // The kernel's layer key here is the precomputed package eligibility key.\n // Minor tool restrictions run in the tools sink only after this owner gate.\n this.applying = selection;\n this.refreshing = true;\n let compositionChanged = false;\n try {\n const previousValues = new Map(\n this.kernel.slots.map((slot) => [slot, this.kernel.activeValues(slot)] as const),\n );\n await this.kernel.setActiveLayers(eligible.map((entry) => entry.packageName));\n await this.refreshChangedSelection(this.applied, selection, previousValues);\n compositionChanged =\n this.failure !== undefined ||\n this.appliedRevision === 0 ||\n !sameSelection(this.applied, selection) ||\n this.restrictionsChanged ||\n this.contributionsChanged ||\n !sameValues(previousValues.get('tools') ?? [], this.kernel.activeValues('tools')) ||\n !sameValues(previousValues.get('resources') ?? [], this.kernel.activeValues('resources'));\n this.restrictionsChanged = false;\n this.contributionsChanged = false;\n } finally {\n this.refreshing = false;\n }\n if (this.disposed) throw new Error('The headless host is disposed');\n this.activeSources = new Set(eligible.map((entry) => entry.packageName));\n this.applied = selection;\n this.appliedRevision = revision;\n this.failure = undefined;\n this.ready = revision === this.requestedRevision;\n try {\n for (const listener of this.selectionListeners) await listener(selection);\n } catch (error) {\n if (isDoomHeadlessPromptAdmissionError(error)) this.recoveryRevision = revision;\n throw error;\n }\n if (compositionChanged) await this.options.onApplied?.(selection, revision);\n };\n const result = this.tail.catch(() => undefined).then(apply);\n this.tail = result.catch((error: unknown) => {\n this.failure = error;\n this.ready = false;\n // close() marks the host disposed before draining this tail, so every selection still\n // queued at that point rejects by design. Those rejections are teardown artifacts, not\n // actionable failures, and reporting them surfaces one notice per queued contribution.\n if (!this.disposed) this.options.onError?.(error);\n });\n await result;\n await this.settled();\n if (this.failure !== undefined) throw this.failure;\n this.assertReady();\n }\n\n /** Drain selections, including ones queued by selection listeners. */\n async settled(): Promise<void> {\n let pending: Promise<void>;\n do {\n pending = this.tail;\n await pending;\n } while (pending !== this.tail);\n }\n\n private assertReady(): void {\n if (this.disposed || !this.ready)\n throw new Error('Headless dispatch is blocked until selection is coherently applied');\n }\n\n private add<T>(slot: string, value: T): DoomHeadlessRegistration {\n const owner = readDoomHeadlessOwner(this.ctx);\n if (!owner) throw new Error('A headless contribution must have descriptor-owned package identity');\n this.ready = false;\n this.contributionsChanged = true;\n const registration = this.kernel.contribute(slot, {\n source: owner.packageName,\n layer: owner.packageName,\n value: { source: owner.packageName, value } satisfies Owned<T>,\n });\n let disposed = false;\n const dispose = (): void => {\n if (disposed) return;\n disposed = true;\n this.ready = false;\n this.contributionsChanged = true;\n registration.dispose();\n // Reconciled on the same terms as the registration below: before the first applied\n // selection the caller's own select() computes the whole composition, and the sources\n // that selection gates on are not known yet.\n if (this.appliedRevision > 0 && !this.disposed && !this.refreshing) void this.select({}).catch(() => undefined);\n };\n this.ctx.effect(() => dispose, `headless ${slot} contribution`);\n // Initial registration is reconciled once the caller has installed all facets.\n if (this.appliedRevision > 0 && !this.refreshing) void this.select({}).catch(() => undefined);\n return { dispose };\n }\n\n registerTool<TParameters extends TSchema>(tool: DoomHeadlessTool<TParameters>): DoomHeadlessRegistration {\n return this.add('tools', tool);\n }\n registerResource(resource: DoomHeadlessResource): DoomHeadlessRegistration {\n return this.add('resources', resource);\n }\n registerCommand(command: DoomHeadlessCommand): DoomHeadlessRegistration {\n return this.add('commands', command);\n }\n registerHook(hook: DoomHeadlessHook): DoomHeadlessRegistration {\n return this.add('hooks', hook);\n }\n registerActivity(activity: DoomHeadlessActivity): DoomHeadlessRegistration {\n return this.add('activities', activity);\n }\n\n private canRecoverSelection(): boolean {\n return (\n !this.disposed &&\n !this.ready &&\n !this.refreshing &&\n !this.contributionsChanged &&\n !this.restrictionsChanged &&\n this.recoveryRevision === this.requestedRevision &&\n this.appliedRevision === this.requestedRevision &&\n isDoomHeadlessPromptAdmissionError(this.failure)\n );\n }\n\n listCommands(): Array<Pick<DoomHeadlessCommand, 'name' | 'description'>> {\n const recovering = this.canRecoverSelection();\n if (!recovering) this.assertReady();\n return [...this.commands.values()]\n .filter(\n ({ source, value }) =>\n !recovering ||\n (value.selectionRecovery === true && this.activeSources.has(source) && this.availableSources.has(source)),\n )\n .map(({ value }) => ({ name: value.name, description: value.description }));\n }\n\n async dispatchCommand(name: string, args: string): Promise<void> {\n const command = this.commands.get(name);\n if (!this.canRecoverSelection() || command?.value.selectionRecovery !== true) this.assertReady();\n if (!command || !this.activeSources.has(command.source) || !this.availableSources.has(command.source))\n throw new Error(`Command '${name}' is inactive or unknown`);\n await command.value.execute(args, this.context);\n }\n\n async dispatchHook(\n event: DoomHeadlessEventName,\n payload: Readonly<Record<string, unknown>>,\n signal?: AbortSignal,\n ): Promise<unknown[]> {\n this.assertReady();\n signal?.throwIfAborted();\n const results: unknown[] = [];\n const revision = this.appliedRevision;\n let current = payload;\n for (const hook of this.hooks.filter((entry) => entry.value.event === event)) {\n this.assertReady();\n signal?.throwIfAborted();\n if (!this.hooks.includes(hook)) continue;\n let result: unknown;\n try {\n result = await hook.value.handle(current as never, signal ? { ...this.context, signal } : this.context);\n signal?.throwIfAborted();\n } catch (error) {\n if (isDoomHeadlessPromptAdmissionError(error)) throw error;\n signal?.throwIfAborted();\n this.options.onError?.(error);\n continue;\n }\n if (event === 'session_start') {\n // Startup hooks may register retained contributions. Finish their queued reconciliation\n // before the next hook, without relaxing dispatch guards during the transition.\n await this.tail;\n this.assertReady();\n }\n results.push(result);\n if (result && typeof result === 'object' && !Array.isArray(result)) {\n const patch = result as Record<string, unknown>;\n // Execution hooks compose in registration order, just like the public harness hooks.\n const fields =\n event === 'context'\n ? ['messages', 'systemPrompt']\n : event === 'tool_call'\n ? ['args']\n : event === 'tool_result'\n ? ['content', 'details', 'isError', 'usage']\n : event === 'before_agent_start'\n ? ['systemPrompt']\n : event === 'before_provider_request'\n ? ['payload']\n : [];\n for (const field of fields) {\n if (event === 'before_agent_start' && typeof patch[field] !== 'string') continue;\n if (patch[field] !== undefined) current = { ...current, [field]: patch[field] };\n }\n // Denials and structural decisions use upstream first-result semantics.\n if (event === 'tool_call' && patch.block !== undefined) break;\n if (\n event === 'session_before_compact' &&\n (patch.cancel !== undefined || patch.decline !== undefined || patch.compaction !== undefined)\n )\n break;\n }\n }\n if (event === 'before_agent_start' || event === 'context' || event === 'tool_call') {\n this.assertReady();\n if (revision !== this.appliedRevision) {\n throw new Error(\n event === 'before_agent_start'\n ? 'Selection changed while preparing the system prompt'\n : `Selection changed while dispatching ${event}`,\n );\n }\n }\n return results;\n }\n\n private async resolveResources(selection: DoomHeadlessSelection): Promise<readonly ResolvedHeadlessResource[]> {\n const context = this.options.context(selection);\n const result: ResolvedHeadlessResource[] = [];\n for (const resource of this.resources) {\n let value: string;\n try {\n value = await resource.value.read(context);\n } catch (error) {\n // Report and skip, never rethrow. This runs on every prompt build, and a\n // throw here reaches the systemPrompt callback, sets promptPreparationFailed\n // and denies every model request for the rest of the session. One package\n // missing one shipped file must not take the session down with it.\n this.options.onError?.(\n new Error(`Could not read headless resource '${resource.source}/${resource.value.name}'`, { cause: error }),\n );\n continue;\n }\n result.push({\n source: resource.source,\n name: resource.value.name,\n kind: resource.value.kind,\n ...(resource.value.description === undefined ? {} : { description: resource.value.description }),\n ...(resource.value.path === undefined ? {} : { path: resource.value.path }),\n text: value,\n });\n }\n return result;\n }\n\n async readResources(): Promise<readonly ResolvedHeadlessResource[]> {\n this.assertReady();\n const revision = this.appliedRevision;\n const result = await this.resolveResources(this.applied);\n this.assertReady();\n if (revision !== this.appliedRevision) throw new Error('Selection changed while reading resources');\n return result;\n }\n\n async close(): Promise<void> {\n if (this.disposed) return;\n this.disposed = true;\n this.ready = false;\n this.selectionListeners.clear();\n await this.tail.catch(() => undefined);\n const failures: unknown[] = [];\n for (const stop of [...this.activities.values()].reverse()) {\n try {\n await stop();\n } catch (error) {\n failures.push(error);\n }\n }\n this.activities.clear();\n this.kernel.dispose();\n if (failures.length) throw new AggregateError(failures, 'Headless activities failed to stop');\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"headlessHost.mjs","names":[],"sources":["../../../../../src/systems/main/adapters/headlessHost.ts"],"sourcesContent":["import { Context, Service } from '@deepseek-ai/cordis';\nimport type { TSchema } from 'typebox';\n\nimport {\n PO_HEADLESS_HOST_SERVICE,\n PO_LOAD_SKILL_TOOL,\n readPoHeadlessOwner,\n isPoHeadlessPromptAdmissionError,\n type PoHeadlessActivity,\n type PoHeadlessCommand,\n type PoHeadlessEventName,\n type PoHeadlessExecutionContext,\n type PoHeadlessHook,\n type PoHeadlessHostService,\n isPoHeadlessToolModelVisible,\n type PoHeadlessRegistration,\n type PoHeadlessResource,\n type PoHeadlessSelection,\n type PoHeadlessSelectionChange,\n type PoHeadlessTool,\n type PoHeadlessCondition,\n type PoHeadlessToolRestriction,\n} from '../../../exports/headless';\nimport { createPoKernel } from '../../../exports/kernel';\nimport { readPoMcpStatus } from '../../../exports/mcpStatus';\nimport type { PoServerBundleEntry } from '../../../exports/serverPlugin';\nimport type { PackageAttribution } from '../../../services/contextProjection';\nimport type {\n ContextConditionalAttribution,\n ContextToolInventory,\n ContextToolSource,\n} from '../../../services/contextProjection';\nimport { formatSkillsForSystemPrompt } from '../../../services/skillPrompt';\nimport type { CountTokens } from '../../../services/toolInventory';\nimport type {\n HeadlessContextInventory,\n HeadlessHostOptions,\n HeadlessSelectionStatus,\n ResolvedHeadlessResource,\n} from '../types/headlessHost';\n\ntype Owned<T> = { source: string; value: T };\ntype StopActivity = () => void | Promise<void>;\n\nfunction sameStrings(left: readonly string[], right: readonly string[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index]);\n}\n\nfunction sameValues(left: readonly unknown[], right: readonly unknown[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index]);\n}\n\nfunction sameSelection(left: PoHeadlessSelection, right: PoHeadlessSelection): boolean {\n return (\n left.majorMode === right.majorMode &&\n left.profile === right.profile &&\n sameStrings(left.activeLayers, right.activeLayers) &&\n sameStrings(left.domains, right.domains) &&\n JSON.stringify(left.state ?? {}) === JSON.stringify(right.state ?? {})\n );\n}\n\n/**\n * Maps one typed headless resource to the exact skill shape installed in AgentHarness.\n *\n * Prefers the resource's own `description` and `path`. The fallbacks below are what\n * every skill used to get, and they are only good enough for explicit invocation,\n * which matches on name: `po-headless://` is not a path any tool can open, and\n * \"Headless skill from <source>\" gives the model nothing to select on. A skill is\n * only advertised in the prompt once it carries a real path.\n */\nexport function headlessHarnessSkill(resource: ResolvedHeadlessResource) {\n return {\n name: resource.name,\n description: resource.description ?? `Headless skill from ${resource.source}`,\n content: resource.text,\n filePath: resource.path ?? `po-headless://${resource.source}/${resource.name}`,\n };\n}\n\nfunction escapeXml(value: string): string {\n return value.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"');\n}\n\n/**\n * The load tool's description with the session's skills appended, so the agent sees what it can\n * load where it decides to call the tool. Rebuilt whenever the applied skills change.\n */\nexport function describeLoadSkillTool(base: string, skills: readonly ResolvedHeadlessResource[]): string {\n const listed = skills.filter(\n (skill, index, all) => skill.kind === 'skill' && all.findIndex((entry) => entry.name === skill.name) === index,\n );\n if (listed.length === 0) return base;\n return [\n base,\n '',\n '<available_skills>',\n ...listed.flatMap((skill) => [\n ' <skill>',\n ` <name>${escapeXml(skill.name)}</name>`,\n ` <description>${escapeXml(headlessHarnessSkill(skill).description)}</description>`,\n ' </skill>',\n ]),\n '</available_skills>',\n ].join('\\n');\n}\n\n/** Retains packages and their state; only kernel-computed active contributions change. */\nexport class HeadlessHost extends Service<PoHeadlessHostService> implements PoHeadlessHostService {\n private readonly kernel = createPoKernel();\n private readonly selectionListeners = new Set<(selection: PoHeadlessSelection) => void | Promise<void>>();\n private restrictions: readonly PoHeadlessToolRestriction[] = [];\n private restrictionsChanged = false;\n private contributionsChanged = false;\n private readonly options: HeadlessHostOptions;\n private readonly selectionOverrides: Set<string>;\n private applied: PoHeadlessSelection;\n private requested: PoHeadlessSelection;\n private applying: PoHeadlessSelection;\n private refreshing = false;\n private requestedRevision = 0;\n private appliedRevision = 0;\n private recoveryRevision = 0;\n private ready = false;\n private disposed = false;\n private failure: unknown;\n private tail: Promise<void> = Promise.resolve();\n private activeSources = new Set<string>();\n private availableSources = new Set<string>();\n private tools = new Map<string, Owned<PoHeadlessTool>>();\n private resources: readonly Owned<PoHeadlessResource>[] = [];\n private resolvedResources: readonly ResolvedHeadlessResource[] = [];\n private commands = new Map<string, Owned<PoHeadlessCommand>>();\n private hooks: readonly Owned<PoHeadlessHook>[] = [];\n private readonly activities = new Map<Owned<PoHeadlessActivity>, StopActivity>();\n\n constructor(context: Context, options: HeadlessHostOptions) {\n super(context, PO_HEADLESS_HOST_SERVICE);\n this.options = options;\n this.selectionOverrides = new Set(options.selectionOverrides);\n this.applied = structuredClone(options.selection);\n this.requested = this.applied;\n this.applying = this.applied;\n context.effect(() => () => this.close(), 'headless host lifetime');\n this.kernel.defineSlot<Owned<PoHeadlessToolRestriction>>('restrictions', (entries) => {\n this.restrictionsChanged = true;\n this.restrictions = entries.map((entry) => entry.value).filter((restriction) => this.matches(restriction.when));\n });\n this.kernel.defineSlot<Owned<PoHeadlessTool>>('tools', async (entries) => {\n const next = new Map<string, Owned<PoHeadlessTool>>();\n for (const entry of this.selected(entries)) {\n if (!this.allowsTool(entry.value.name)) continue;\n if (!next.has(entry.value.name)) next.set(entry.value.name, entry);\n }\n const tools = [...next.values()].map((entry): PoHeadlessTool => ({\n ...entry.value,\n execute: async (id, parameters, signal, onUpdate) => {\n this.assertReady();\n if (this.tools.get(entry.value.name) !== entry || !this.activeSources.has(entry.source)) {\n throw new Error(`Tool '${entry.value.name}' is no longer active`);\n }\n return entry.value.execute(id, parameters, signal, onUpdate, this.context);\n },\n }));\n await this.options.applyTools(tools);\n this.tools = next;\n });\n this.kernel.defineSlot<Owned<PoHeadlessResource>>('resources', async (entries) => {\n this.resources = this.selected(entries);\n this.resolvedResources = await this.resolveResources(this.applying);\n await this.options.applyResources(this.resolvedResources);\n });\n this.kernel.defineSlot<Owned<PoHeadlessCommand>>('commands', (entries) => {\n const next = new Map<string, Owned<PoHeadlessCommand>>();\n for (const entry of this.selected(entries)) if (!next.has(entry.value.name)) next.set(entry.value.name, entry);\n this.commands = next;\n });\n this.kernel.defineSlot<Owned<PoHeadlessHook>>('hooks', (entries) => {\n this.hooks = this.selected(entries);\n });\n this.kernel.defineSlot<Owned<PoHeadlessActivity>>('activities', async (entries) => {\n const desired = new Set(this.selected(entries));\n for (const [entry, stop] of [...this.activities].reverse()) {\n if (desired.has(entry)) continue;\n await stop();\n this.activities.delete(entry);\n }\n for (const entry of desired) {\n if (this.activities.has(entry)) continue;\n try {\n const stop = await entry.value.start(this.options.context(this.applying));\n this.activities.set(entry, stop);\n } catch (error) {\n if (this.options.candidates.some((candidate) => candidate.packageName === entry.source && candidate.required))\n throw error;\n this.options.onError?.(error, 'activity');\n }\n }\n });\n }\n\n get context(): PoHeadlessExecutionContext {\n return this.options.context(this.applied);\n }\n\n get status(): HeadlessSelectionStatus {\n return {\n requestedRevision: this.requestedRevision,\n appliedRevision: this.appliedRevision,\n ready: this.ready,\n ...(this.failure === undefined\n ? {}\n : {\n error:\n this.failure instanceof Error\n ? this.failure.message\n : typeof this.failure === 'string'\n ? this.failure\n : 'Headless selection failed',\n }),\n };\n }\n\n /**\n * The resources the last applied selection resolved to.\n *\n * `readResources` re-reads them for a live request and refuses while a\n * selection is mid-apply. A reader describing the applied composition wants\n * the same snapshot `getContextInventory` reports against, and wants it at\n * the same moments, so it reads this instead of dispatching.\n */\n get appliedResources(): readonly ResolvedHeadlessResource[] {\n return this.resolvedResources;\n }\n\n get toolSurface(): PoHeadlessHostService['toolSurface'] {\n return this.options.toolSurface?.();\n }\n\n readSkill(name: string): string | undefined {\n // The last declaration of a name is the one the session uses.\n return this.resolvedResources.findLast((entry) => entry.kind === 'skill' && entry.name === name)?.text;\n }\n\n inspectCapabilities(): ReturnType<PoHeadlessHostService['inspectCapabilities']> {\n const ready = this.ready && !this.disposed;\n const capabilities: ReturnType<PoHeadlessHostService['inspectCapabilities']>['capabilities'][number][] = [];\n if (ready) {\n for (const entry of this.kernel.activeValues<Owned<PoHeadlessTool>>('tools')) {\n const active = this.tools.get(entry.value.name) === entry;\n const discoverable = active && isPoHeadlessToolModelVisible(entry.value);\n const reason = active\n ? discoverable\n ? undefined\n : 'not-discoverable'\n : !this.matches(entry.value.when)\n ? 'inactive'\n : !this.allowsTool(entry.value.name)\n ? 'restricted'\n : 'shadowed';\n capabilities.push({\n source: entry.source,\n name: entry.value.name,\n kind: 'tool',\n when: structuredClone(entry.value.when),\n active,\n discoverable,\n ...(reason ? { reason } : {}),\n });\n }\n // The session skill surface uses the last resolved declaration for a name.\n const resolved = new Map(\n this.resolvedResources.filter((entry) => entry.kind === 'skill').map((entry) => [entry.name, entry]),\n );\n for (const entry of this.kernel.activeValues<Owned<PoHeadlessResource>>('resources')) {\n if (entry.value.kind !== 'skill') continue;\n const current = resolved.get(entry.value.name);\n const selected = this.matches(entry.value.when);\n const active =\n selected &&\n current?.source === entry.source &&\n current.path === entry.value.path &&\n current.text.trim().length > 0;\n const discoverable = active && !!current?.path && !!current.description?.trim();\n const reason = !selected\n ? 'inactive'\n : current && current.source !== entry.source\n ? 'shadowed'\n : !active\n ? 'unavailable'\n : !discoverable\n ? 'not-discoverable'\n : undefined;\n capabilities.push({\n source: entry.source,\n name: entry.value.name,\n kind: 'skill',\n when: structuredClone(entry.value.when),\n active,\n discoverable,\n ...(reason ? { reason } : {}),\n });\n }\n }\n return { revision: this.appliedRevision, ready, capabilities };\n }\n /**\n * Every tool name this composition's eligible owners declare, including the\n * ones a condition or a restriction currently gates out.\n *\n * `appliedTools` answers what runs now. A merge that places another surface's\n * tools beside these needs what is spoken for, so a name a package deliberately\n * withheld is not handed to an unreconciled surface instead. Owner\n * eligibility stays the outer gate: a package the selection excluded declares\n * nothing here.\n */\n get declaredToolNames(): ReadonlySet<string> {\n return new Set(this.kernel.activeValues<Owned<PoHeadlessTool>>('tools').map((entry) => entry.value.name));\n }\n getContextInventory(\n selection: PoHeadlessSelection = this.applied,\n countTokens?: CountTokens,\n ): HeadlessContextInventory {\n const currentSources = new Set(\n this.options.candidates\n .filter(\n (candidate) =>\n candidate.scopes.includes('session') &&\n candidate.owners.some((owner) => owner.majorMode === selection.majorMode),\n )\n .map((candidate) => candidate.packageName),\n );\n const conditionAttribution = (when?: PoHeadlessCondition): ContextConditionalAttribution | undefined =>\n when?.attribution ?? (when?.domain === undefined ? undefined : { kind: 'domain', mode: when.domain });\n const mcpOwners = new Map<string, string>();\n for (const server of readPoMcpStatus(this.ctx)?.getSnapshot().servers ?? []) {\n for (const name of server.tools) mcpOwners.set(name, server.name);\n }\n const mcpPackages = new Map<string, string>();\n const toolsBySource = new Map<string, ContextToolInventory[]>();\n for (const contribution of this.kernel.contributions<Owned<PoHeadlessTool>>('tools')) {\n if (!currentSources.has(contribution.source)) continue;\n const tool = contribution.value.value;\n if (!isPoHeadlessToolModelVisible(tool)) continue;\n const contextAttribution = conditionAttribution(tool.when);\n const entry: ContextToolInventory = {\n name: tool.name,\n // Priced as sent: the load tool carries the skill list in its description.\n description:\n tool.name === PO_LOAD_SKILL_TOOL\n ? describeLoadSkillTool(tool.description, this.resolvedResources)\n : tool.description,\n parameters: tool.parameters,\n ...(tool.promptSnippet === undefined ? {} : { promptSnippet: tool.promptSnippet }),\n ...(tool.promptGuidelines === undefined ? {} : { promptGuidelines: tool.promptGuidelines }),\n active: this.tools.get(tool.name) === contribution.value,\n ...(contextAttribution === undefined ? {} : { contextAttribution }),\n };\n const server = mcpOwners.get(tool.name);\n const source = server === undefined ? contribution.source : `mcp:${server}`;\n if (server !== undefined) mcpPackages.set(server, contribution.source);\n const tools = toolsBySource.get(source);\n if (tools) tools.push(entry);\n else toolsBySource.set(source, [entry]);\n }\n\n const sources: ContextToolSource[] = [...toolsBySource].map(([source, tools]) => ({\n key: source,\n label: mcpPackages.has(source.slice(4)) ? `${source.slice(4)} · mcp` : `${source} · extension`,\n kind: mcpPackages.has(source.slice(4)) ? 'mcp' : 'extension',\n packageName: mcpPackages.get(source.slice(4)) ?? source,\n tools,\n }));\n const framingTokens = countTokens === undefined ? 0 : countTokens(formatSkillsForSystemPrompt([]));\n const skills = this.resolvedResources.flatMap((resource, index) => {\n if (resource.kind !== 'skill') return [];\n const skill = headlessHarnessSkill(resource);\n const contextAttribution = conditionAttribution(this.resources[index]?.value.when);\n return [\n {\n name: skill.name,\n description: skill.description,\n group: 'extensions' as const,\n owner: resource.source,\n modelInvocable: true,\n body: skill.content,\n ...(countTokens === undefined\n ? {}\n : { promptTokens: Math.max(0, countTokens(formatSkillsForSystemPrompt([skill])) - framingTokens) }),\n ...(contextAttribution === undefined ? {} : { contextAttribution }),\n },\n ];\n });\n const attribution: Record<string, PackageAttribution> = {};\n for (const candidate of this.options.candidates) {\n const owner =\n candidate.owners.find(\n (entry) =>\n entry.majorMode === selection.majorMode &&\n (entry.layer === 'default' || selection.activeLayers.includes(entry.layer)),\n ) ?? candidate.owners.find((entry) => entry.majorMode === selection.majorMode);\n if (owner && attribution[candidate.packageName] === undefined) {\n attribution[candidate.packageName] = { kind: 'major', mode: selection.majorMode, layer: owner.layer };\n }\n }\n for (const [server, source] of mcpPackages) {\n if (attribution[source]) attribution[server] = attribution[source];\n }\n return { sources, skills, attribution };\n }\n\n setAvailableSources(sources: readonly string[]): void {\n this.availableSources = new Set(sources);\n }\n private matches(when?: PoHeadlessCondition): boolean {\n return (\n Object.entries(when?.state ?? {}).every(([key, value]) => this.applying.state?.[key]?.includes(value)) &&\n (when?.domain === undefined || this.applying.domains.includes(when.domain))\n );\n }\n private selected<T extends { when?: PoHeadlessCondition }>(entries: readonly Owned<T>[]): readonly Owned<T>[] {\n return entries.filter(({ value }) => this.matches(value.when));\n }\n\n assertActive(source?: string): void {\n this.assertReady();\n if (source !== undefined && !this.activeSources.has(source))\n throw new Error(`Contribution owner '${source}' is inactive`);\n }\n\n subscribeSelection(listener: (selection: PoHeadlessSelection) => void | Promise<void>): () => void {\n this.selectionListeners.add(listener);\n return () => {\n this.selectionListeners.delete(listener);\n };\n }\n\n /** Shared by package reconciliation and the final Pi/package merge. */\n allowsTool(name: string): boolean {\n const allowed = this.options.allowedTools?.(this.applying);\n return (\n (allowed === undefined || allowed.includes(name)) &&\n this.restrictions.every(\n (restriction) =>\n (restriction.allowedTools === undefined || restriction.allowedTools.includes(name)) &&\n !restriction.excludedTools?.includes(name),\n )\n );\n }\n\n registerToolRestriction(restriction: PoHeadlessToolRestriction): PoHeadlessRegistration {\n return this.add('restrictions', restriction);\n }\n\n private eligible(entry: PoServerBundleEntry, selection: PoHeadlessSelection): boolean {\n return (\n entry.scopes.includes('session') &&\n entry.owners.some(\n (owner) =>\n owner.majorMode === selection.majorMode &&\n (owner.layer === 'default' || selection.activeLayers.includes(owner.layer)),\n )\n );\n }\n\n changeSelection(change: PoHeadlessSelectionChange): Promise<void> {\n const apply = (change: PoHeadlessSelectionChange): Promise<void> => {\n this.selectionOverrides.add(change.axis);\n if (change.axis === 'majorMode') return this.select({ majorMode: change.majorMode });\n if (change.axis === 'domains') return this.select({ domains: change.domains });\n if (change.axis === 'profile') return this.select({ profile: change.profile });\n return this.select({ state: { ...this.requested.state, [change.key]: [...change.values] } });\n };\n return this.options.scheduleSelection?.(change, apply) ?? apply(change);\n }\n\n private async refreshChangedSelection(\n previous: PoHeadlessSelection,\n selection: PoHeadlessSelection,\n previousValues: ReadonlyMap<string, readonly unknown[]>,\n ): Promise<void> {\n const majorChanged =\n previous.majorMode !== selection.majorMode || !sameStrings(previous.activeLayers, selection.activeLayers);\n const domainsChanged = !sameStrings(previous.domains, selection.domains);\n const profileChanged = previous.profile !== selection.profile;\n const stateChanged = JSON.stringify(previous.state ?? {}) !== JSON.stringify(selection.state ?? {});\n if (this.appliedRevision === 0) return;\n\n const refresh = async (slot: string): Promise<void> => {\n const before = previousValues.get(slot) ?? [];\n if (sameValues(before, this.kernel.activeValues(slot))) await this.kernel.refresh(slot);\n };\n if (stateChanged) await refresh('restrictions');\n if (majorChanged || domainsChanged || stateChanged || this.restrictionsChanged) await refresh('tools');\n if (majorChanged || domainsChanged || profileChanged || stateChanged) await refresh('resources');\n if (domainsChanged || stateChanged) {\n await refresh('commands');\n await refresh('hooks');\n await refresh('activities');\n }\n }\n\n /** Refresh inherited defaults only at turn admission, keeping explicit session axes. */\n async inheritSelection(selection: Partial<PoHeadlessSelection>): Promise<void> {\n const patch: Partial<PoHeadlessSelection> = {\n ...(!this.selectionOverrides.has('majorMode') && selection.majorMode !== undefined\n ? { majorMode: selection.majorMode }\n : {}),\n ...(!this.selectionOverrides.has('domains') && selection.domains !== undefined\n ? { domains: selection.domains }\n : {}),\n ...(!this.selectionOverrides.has('profile') && Object.hasOwn(selection, 'profile')\n ? { profile: selection.profile }\n : {}),\n };\n if (\n (patch.majorMode === undefined || patch.majorMode === this.requested.majorMode) &&\n (patch.domains === undefined || sameStrings(patch.domains, this.requested.domains)) &&\n (!Object.hasOwn(patch, 'profile') || patch.profile === this.requested.profile)\n )\n return;\n await this.select(patch);\n }\n\n async select(patch: Partial<PoHeadlessSelection>): Promise<void> {\n if (this.disposed) throw new Error('The headless host is disposed');\n const requested = structuredClone({ ...this.requested, ...patch });\n this.requested = requested;\n const revision = ++this.requestedRevision;\n this.ready = false;\n const apply = async (): Promise<void> => {\n if (this.disposed) throw new Error('The headless host is disposed');\n const selection = structuredClone((await this.options.resolveSelection?.(requested)) ?? requested);\n await this.options.validateSelection?.(selection);\n if (revision === this.requestedRevision) this.requested = selection;\n const eligible = this.options.candidates.filter((entry) => this.eligible(entry, selection));\n const missing = eligible.find((entry) => entry.required && !this.availableSources.has(entry.packageName));\n if (missing) throw new Error(`Required headless package '${missing.packageName}' is unavailable`);\n // The kernel's layer key here is the precomputed package eligibility key.\n // Minor tool restrictions run in the tools sink only after this owner gate.\n this.applying = selection;\n this.refreshing = true;\n let compositionChanged = false;\n try {\n const previousValues = new Map(\n this.kernel.slots.map((slot) => [slot, this.kernel.activeValues(slot)] as const),\n );\n await this.kernel.setActiveLayers(eligible.map((entry) => entry.packageName));\n await this.refreshChangedSelection(this.applied, selection, previousValues);\n compositionChanged =\n this.failure !== undefined ||\n this.appliedRevision === 0 ||\n !sameSelection(this.applied, selection) ||\n this.restrictionsChanged ||\n this.contributionsChanged ||\n !sameValues(previousValues.get('tools') ?? [], this.kernel.activeValues('tools')) ||\n !sameValues(previousValues.get('resources') ?? [], this.kernel.activeValues('resources'));\n this.restrictionsChanged = false;\n this.contributionsChanged = false;\n } finally {\n this.refreshing = false;\n }\n if (this.disposed) throw new Error('The headless host is disposed');\n this.activeSources = new Set(eligible.map((entry) => entry.packageName));\n this.applied = selection;\n this.appliedRevision = revision;\n this.failure = undefined;\n this.ready = revision === this.requestedRevision;\n try {\n for (const listener of this.selectionListeners) await listener(selection);\n } catch (error) {\n if (isPoHeadlessPromptAdmissionError(error)) this.recoveryRevision = revision;\n throw error;\n }\n if (compositionChanged) await this.options.onApplied?.(selection, revision);\n };\n const result = this.tail.catch(() => undefined).then(apply);\n this.tail = result.catch((error: unknown) => {\n this.failure = error;\n this.ready = false;\n // close() marks the host disposed before draining this tail, so every selection still\n // queued at that point rejects by design. Those rejections are teardown artifacts, not\n // actionable failures, and reporting them surfaces one notice per queued contribution.\n if (!this.disposed) this.options.onError?.(error, 'apply');\n });\n await result;\n await this.settled();\n if (this.failure !== undefined) throw this.failure;\n this.assertReady();\n }\n\n /** Drain selections, including ones queued by selection listeners. */\n async settled(): Promise<void> {\n let pending: Promise<void>;\n do {\n pending = this.tail;\n await pending;\n } while (pending !== this.tail);\n }\n\n private assertReady(): void {\n if (this.disposed || !this.ready)\n throw new Error('Headless dispatch is blocked until selection is coherently applied');\n }\n\n private add<T>(slot: string, value: T): PoHeadlessRegistration {\n const owner = readPoHeadlessOwner(this.ctx);\n if (!owner) throw new Error('A headless contribution must have descriptor-owned package identity');\n this.ready = false;\n this.contributionsChanged = true;\n const registration = this.kernel.contribute(slot, {\n source: owner.packageName,\n layer: owner.packageName,\n value: { source: owner.packageName, value } satisfies Owned<T>,\n });\n let disposed = false;\n const dispose = (): void => {\n if (disposed) return;\n disposed = true;\n this.ready = false;\n this.contributionsChanged = true;\n registration.dispose();\n // Reconciled on the same terms as the registration below: before the first applied\n // selection the caller's own select() computes the whole composition, and the sources\n // that selection gates on are not known yet.\n if (this.appliedRevision > 0 && !this.disposed && !this.refreshing) void this.select({}).catch(() => undefined);\n };\n this.ctx.effect(() => dispose, `headless ${slot} contribution`);\n // Initial registration is reconciled once the caller has installed all packages.\n if (this.appliedRevision > 0 && !this.refreshing) void this.select({}).catch(() => undefined);\n return { dispose };\n }\n\n registerTool<TParameters extends TSchema>(tool: PoHeadlessTool<TParameters>): PoHeadlessRegistration {\n return this.add('tools', tool);\n }\n registerResource(resource: PoHeadlessResource): PoHeadlessRegistration {\n return this.add('resources', resource);\n }\n registerCommand(command: PoHeadlessCommand): PoHeadlessRegistration {\n return this.add('commands', command);\n }\n registerHook(hook: PoHeadlessHook): PoHeadlessRegistration {\n return this.add('hooks', hook);\n }\n registerActivity(activity: PoHeadlessActivity): PoHeadlessRegistration {\n return this.add('activities', activity);\n }\n\n private canRecoverSelection(): boolean {\n return (\n !this.disposed &&\n !this.ready &&\n !this.refreshing &&\n !this.contributionsChanged &&\n !this.restrictionsChanged &&\n this.recoveryRevision === this.requestedRevision &&\n this.appliedRevision === this.requestedRevision &&\n isPoHeadlessPromptAdmissionError(this.failure)\n );\n }\n\n listCommands(): Array<Pick<PoHeadlessCommand, 'name' | 'description'>> {\n const recovering = this.canRecoverSelection();\n if (!recovering) this.assertReady();\n return [...this.commands.values()]\n .filter(\n ({ source, value }) =>\n !recovering ||\n (value.selectionRecovery === true && this.activeSources.has(source) && this.availableSources.has(source)),\n )\n .map(({ value }) => ({ name: value.name, description: value.description }));\n }\n\n async dispatchCommand(name: string, args: string): Promise<void> {\n const command = this.commands.get(name);\n if (!this.canRecoverSelection() || command?.value.selectionRecovery !== true) this.assertReady();\n if (!command || !this.activeSources.has(command.source) || !this.availableSources.has(command.source))\n throw new Error(`Command '${name}' is inactive or unknown`);\n await command.value.execute(args, this.context);\n }\n\n async dispatchHook(\n event: PoHeadlessEventName,\n payload: Readonly<Record<string, unknown>>,\n signal?: AbortSignal,\n ): Promise<unknown[]> {\n this.assertReady();\n signal?.throwIfAborted();\n const results: unknown[] = [];\n const revision = this.appliedRevision;\n let current = payload;\n for (const hook of this.hooks.filter((entry) => entry.value.event === event)) {\n this.assertReady();\n signal?.throwIfAborted();\n if (!this.hooks.includes(hook)) continue;\n let result: unknown;\n try {\n result = await hook.value.handle(current as never, signal ? { ...this.context, signal } : this.context);\n signal?.throwIfAborted();\n } catch (error) {\n if (isPoHeadlessPromptAdmissionError(error)) throw error;\n signal?.throwIfAborted();\n this.options.onError?.(error, 'hook');\n continue;\n }\n if (event === 'session_start') {\n // Startup hooks may register retained contributions. Finish their queued reconciliation\n // before the next hook, without relaxing dispatch guards during the transition.\n await this.tail;\n this.assertReady();\n }\n results.push(result);\n if (result && typeof result === 'object' && !Array.isArray(result)) {\n const patch = result as Record<string, unknown>;\n // Execution hooks compose in registration order, just like the public harness hooks.\n const fields =\n event === 'context'\n ? ['messages', 'systemPrompt']\n : event === 'tool_call'\n ? ['args']\n : event === 'tool_result'\n ? ['content', 'details', 'isError', 'usage']\n : event === 'before_agent_start'\n ? ['systemPrompt']\n : event === 'before_provider_request'\n ? ['payload']\n : [];\n for (const field of fields) {\n if (event === 'before_agent_start' && typeof patch[field] !== 'string') continue;\n if (patch[field] !== undefined) current = { ...current, [field]: patch[field] };\n }\n // Denials and structural decisions use upstream first-result semantics.\n if (event === 'tool_call' && patch.block !== undefined) break;\n if (\n event === 'session_before_compact' &&\n (patch.cancel !== undefined || patch.decline !== undefined || patch.compaction !== undefined)\n )\n break;\n }\n }\n if (event === 'before_agent_start' || event === 'context' || event === 'tool_call') {\n this.assertReady();\n if (revision !== this.appliedRevision) {\n throw new Error(\n event === 'before_agent_start'\n ? 'Selection changed while preparing the system prompt'\n : `Selection changed while dispatching ${event}`,\n );\n }\n }\n return results;\n }\n\n private async resolveResources(selection: PoHeadlessSelection): Promise<readonly ResolvedHeadlessResource[]> {\n const context = this.options.context(selection);\n const result: ResolvedHeadlessResource[] = [];\n for (const resource of this.resources) {\n let value: string;\n try {\n value = await resource.value.read(context);\n } catch (error) {\n // Report and skip, never rethrow. This runs on every prompt build, and a\n // throw here reaches the systemPrompt callback, sets promptPreparationFailed\n // and denies every model request for the rest of the session. One package\n // missing one shipped file must not take the session down with it.\n this.options.onError?.(\n new Error(`Could not read headless resource '${resource.source}/${resource.value.name}'`, { cause: error }),\n 'resource',\n );\n continue;\n }\n result.push({\n source: resource.source,\n name: resource.value.name,\n kind: resource.value.kind,\n ...(resource.value.description === undefined ? {} : { description: resource.value.description }),\n ...(resource.value.path === undefined ? {} : { path: resource.value.path }),\n text: value,\n });\n }\n return result;\n }\n\n async readResources(): Promise<readonly ResolvedHeadlessResource[]> {\n this.assertReady();\n const revision = this.appliedRevision;\n const result = await this.resolveResources(this.applied);\n this.assertReady();\n if (revision !== this.appliedRevision) throw new Error('Selection changed while reading resources');\n return result;\n }\n\n async close(): Promise<void> {\n if (this.disposed) return;\n this.disposed = true;\n this.ready = false;\n this.selectionListeners.clear();\n await this.tail.catch(() => undefined);\n const failures: unknown[] = [];\n for (const stop of [...this.activities.values()].reverse()) {\n try {\n await stop();\n } catch (error) {\n failures.push(error);\n }\n }\n this.activities.clear();\n this.kernel.dispose();\n if (failures.length) throw new AggregateError(failures, 'Headless activities failed to stop');\n }\n}\n"],"mappings":"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"}
|