@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":"moduleResolution.d.mts","names":[],"sources":["../src/services/moduleResolution/index.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"moduleResolution.d.mts","names":[],"sources":["../src/services/moduleResolution/index.ts"],"mappings":";;;;;;;wBA4JgB,aAAa,cAAc;;;;;;wBAY3B,qBAAqB,cAAc;;wBAgBnC,qBAAqB,cAAc;;;;;;;wBAcnC,sBAAsB;EAAsB;EAAc;;;KAgDrE,oBAAoB,SAAS;;wBAGlB,gBAAgB,cAAc,cAAa;;wBAyD3C,eAAe,mBAAmB;;wBAgBlC,uBAAuB,mBAAmB;;;;;;;;;wBAgB1C,uBACd,mBACA,sBACA,cAAa;;;;;wBAkBC,qBACd,mBACA,sBACA,cAAa;;wBA2CC,mBAAmB,mBAAmB,uBAAuB;;;;;;;;;wBAsB7D,iBAAiB,mBAAmB;;;;;;;;;;wBAsBpC,aAAa,mBAAmB;;;;;wBA0BhC,oBAAoB,mBAAmB;;wBAmBvC,WAAW,mBAAmB;;wBAsC9B"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { poRuntimeDirectory } from "./
|
|
1
|
+
import { poRuntimeDirectory } from "./src/services/piSettings/core.mjs";
|
|
2
|
+
import "./runtimePiSettings.mjs";
|
|
3
|
+
import { isCheckoutPoPackage } from "./src/services/testMode/index.mjs";
|
|
2
4
|
import fs from "node:fs";
|
|
3
5
|
import path from "node:path";
|
|
4
6
|
import { fileURLToPath } from "node:url";
|
|
@@ -122,6 +124,24 @@ function packageEntry(name, origin = import.meta.url) {
|
|
|
122
124
|
if (!entry) throw new Error(`Cannot resolve package entry ${name} from ${origin}`);
|
|
123
125
|
return fs.realpathSync(entry);
|
|
124
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* The entry a module running from a Po checkout finds in that checkout's own closure.
|
|
129
|
+
* A checkout package is never an implicit override for a consumer, so callers try
|
|
130
|
+
* the consumer first and use this only as the last resort.
|
|
131
|
+
*/
|
|
132
|
+
function checkoutPackageEntry(name, origin) {
|
|
133
|
+
const from = path.dirname(fileURLToPath(origin));
|
|
134
|
+
if (!runsFromCheckout(from)) return void 0;
|
|
135
|
+
const entry = packageRootEntry(name, from, findInstalledPackage(splitPackageSpecifier(name).name, from));
|
|
136
|
+
return entry === void 0 ? void 0 : fs.realpathSync(entry);
|
|
137
|
+
}
|
|
138
|
+
/** Whether the package that owns this directory is a package of a Po source checkout. */
|
|
139
|
+
function runsFromCheckout(directory) {
|
|
140
|
+
for (let current = directory;; current = path.dirname(current)) {
|
|
141
|
+
if (fs.existsSync(path.join(current, PACKAGE_MANIFEST))) return isCheckoutPoPackage(current);
|
|
142
|
+
if (path.dirname(current) === current) return false;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
125
145
|
/** Same as packageEntry, but returns undefined when the package is absent. */
|
|
126
146
|
function optionalPackageEntry(name, origin = import.meta.url) {
|
|
127
147
|
try {
|
|
@@ -180,6 +200,14 @@ function findInstalledPackage(name, consumerRoot) {
|
|
|
180
200
|
directory = parent;
|
|
181
201
|
}
|
|
182
202
|
}
|
|
203
|
+
/** Checkout package overrides inherited by the web, server and sync children of `po --test`. */
|
|
204
|
+
function testPackageRoot(name, environment = process.env) {
|
|
205
|
+
if (environment.PO_TEST !== "1" || !environment.PO_TEST_PACKAGES) return void 0;
|
|
206
|
+
const packages = JSON.parse(environment.PO_TEST_PACKAGES);
|
|
207
|
+
if (!isRecord(packages)) throw new Error("PO_TEST_PACKAGES must be a package-to-directory map.");
|
|
208
|
+
const root = packages[name];
|
|
209
|
+
return typeof root === "string" ? root : void 0;
|
|
210
|
+
}
|
|
183
211
|
/**
|
|
184
212
|
* Finds a package Po installed into its shared runtime (`<po home>/runtime`),
|
|
185
213
|
* without touching the consumer's own package manifest.
|
|
@@ -212,10 +240,12 @@ function runtimePackageDeclared(name, environment) {
|
|
|
212
240
|
* their state split between them.
|
|
213
241
|
*/
|
|
214
242
|
function findConsumerPackage(name, consumerRoot, environment) {
|
|
243
|
+
const local = testPackageRoot(name, environment);
|
|
244
|
+
if (local !== void 0) return local;
|
|
215
245
|
const installed = findInstalledPackage(name, consumerRoot);
|
|
216
|
-
if (installed) return installed;
|
|
246
|
+
if (installed && (environment.PO_TEST === "1" || !isCheckoutPoPackage(installed))) return installed;
|
|
217
247
|
const runtime = findRuntimePackage(name, environment);
|
|
218
|
-
return runtime && runtimePackageDeclared(name, environment) ? runtime : void 0;
|
|
248
|
+
return runtime && (environment.PO_TEST === "1" || !isCheckoutPoPackage(runtime)) && runtimePackageDeclared(name, environment) ? runtime : void 0;
|
|
219
249
|
}
|
|
220
250
|
/** Resolves every extension declared by a bare package's standard Pi manifest. */
|
|
221
251
|
function packageEntries(specifier, origin = import.meta.url) {
|
|
@@ -241,7 +271,7 @@ function optionalPackageEntries(specifier, origin = import.meta.url) {
|
|
|
241
271
|
* Resolves manifest entries from the consumer repository's dependency tree.
|
|
242
272
|
*
|
|
243
273
|
* The meta-package cannot resolve what the repository declares: under an
|
|
244
|
-
* isolated node_modules layout
|
|
274
|
+
* isolated node_modules layout Po Pi only sees its own dependencies. Walking
|
|
245
275
|
* the consumer's module chain lets its package manifest answer first without
|
|
246
276
|
* accidentally falling through to Po's dependency tree.
|
|
247
277
|
*/
|
|
@@ -262,9 +292,12 @@ function consumerPackageEntries(specifier, consumerRoot, environment = process.e
|
|
|
262
292
|
* `environment` names the Po home whose shared runtime answers after the consumer's own tree.
|
|
263
293
|
*/
|
|
264
294
|
function consumerPackageEntry(specifier, consumerRoot, environment = process.env) {
|
|
265
|
-
|
|
266
|
-
|
|
295
|
+
return packageRootEntry(specifier, consumerRoot, findConsumerPackage(splitPackageSpecifier(specifier).name, consumerRoot, environment));
|
|
296
|
+
}
|
|
297
|
+
/** One export or package-relative path of an already located package. */
|
|
298
|
+
function packageRootEntry(specifier, consumerRoot, packageRoot) {
|
|
267
299
|
if (!packageRoot) return void 0;
|
|
300
|
+
const { subpath } = splitPackageSpecifier(specifier);
|
|
268
301
|
if (subpath === ".") return localEntry(packageRoot, consumerRoot) ?? extensionIndexEntry(packageRoot);
|
|
269
302
|
const manifestPath = path.join(packageRoot, PACKAGE_MANIFEST);
|
|
270
303
|
const directTarget = path.join(packageRoot, subpath);
|
|
@@ -391,6 +424,6 @@ function piCliPath() {
|
|
|
391
424
|
return path.join(path.dirname(packageEntry("@earendil-works/pi-coding-agent")), "cli.js");
|
|
392
425
|
}
|
|
393
426
|
//#endregion
|
|
394
|
-
export { consumerPackageEntries, consumerPackageEntry, localEntries, localEntry, localPackageEntries, localPackageExport, localPackageName, optionalPackageEntries, optionalPackageEntry, packageEntries, packageEntry, piCliPath, splitPackageSpecifier };
|
|
427
|
+
export { checkoutPackageEntry, consumerPackageEntries, consumerPackageEntry, localEntries, localEntry, localPackageEntries, localPackageExport, localPackageName, optionalPackageEntries, optionalPackageEntry, packageEntries, packageEntry, piCliPath, splitPackageSpecifier, testPackageRoot };
|
|
395
428
|
|
|
396
429
|
//# sourceMappingURL=moduleResolution.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moduleResolution.mjs","names":[],"sources":["../src/services/moduleResolution/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport { minimatch } from 'minimatch';\n\nimport { poRuntimeDirectory } from '../piSettings';\n\nconst PACKAGE_MANIFEST = 'package.json';\nconst NODE_MODULES = 'node_modules';\nconst CURRENT_DIRECTORY_PREFIX = './';\nconst MANIFEST_PATTERN_PREFIXES = ['!', '+', '-'] as const;\nconst GLOB_CHARACTERS = /[*?[\\]{}()]/;\nconst EXTENSION_INDEX_NAMES = ['index.ts', 'index.js', 'index.mts', 'index.mjs', 'index.cts', 'index.cjs'] as const;\nconst EXTENSION_FILE_SUFFIXES = new Set(['.ts', '.js', '.mts', '.mjs', '.cts', '.cjs']);\n/** Import-side conditions, in the order Node prefers them for an ESM consumer. */\nconst IMPORT_CONDITIONS = ['import', 'module', 'node', 'default'] as const;\n\ninterface PackageManifest {\n name?: unknown;\n exports?: unknown;\n module?: unknown;\n main?: unknown;\n pi?: unknown;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction readPackageManifest(packageRoot: string): PackageManifest | undefined {\n try {\n const parsed: unknown = JSON.parse(fs.readFileSync(path.join(packageRoot, PACKAGE_MANIFEST), 'utf8'));\n return isRecord(parsed) ? parsed : undefined;\n } catch {\n // An unreadable manifest is equivalent to an absent package declaration;\n // the normal export resolver remains available as the compatibility path.\n return undefined;\n }\n}\n\nfunction manifestDeclaresExtensions(manifest: PackageManifest | undefined): boolean {\n return Boolean(manifest && isRecord(manifest.pi) && Object.hasOwn(manifest.pi, 'extensions'));\n}\n\nfunction isManifestPattern(entry: string): boolean {\n return MANIFEST_PATTERN_PREFIXES.some((prefix) => entry.startsWith(prefix));\n}\n\nfunction normalizedRelativePath(packageRoot: string, target: string): string {\n return path.relative(packageRoot, target).split(path.sep).join('/');\n}\n\nfunction matchesManifestPattern(target: string, pattern: string, packageRoot: string): boolean {\n const normalizedPattern = pattern.replaceAll('\\\\', '/').replace(/^\\.\\//, '');\n const relative = normalizedRelativePath(packageRoot, target);\n return (\n minimatch(relative, normalizedPattern) ||\n minimatch(path.basename(target), normalizedPattern) ||\n minimatch(target.split(path.sep).join('/'), normalizedPattern)\n );\n}\n\nfunction matchesExactManifestPath(target: string, pattern: string, packageRoot: string): boolean {\n const normalizedPattern = pattern.replaceAll('\\\\', '/').replace(/^\\.\\//, '');\n return (\n normalizedRelativePath(packageRoot, target) === normalizedPattern ||\n target.split(path.sep).join('/') === normalizedPattern\n );\n}\n\nfunction extensionIndexEntry(directory: string): string | undefined {\n for (const indexName of EXTENSION_INDEX_NAMES) {\n const candidate = path.join(directory, indexName);\n if (fs.existsSync(candidate)) return candidate;\n }\n return undefined;\n}\n\nfunction extensionFilesAt(target: string): string[] {\n let stats: fs.Stats;\n try {\n stats = fs.statSync(target);\n } catch {\n return [];\n }\n if (stats.isFile()) return [target];\n if (!stats.isDirectory()) return [];\n\n const files: string[] = [];\n for (const entry of fs\n .readdirSync(target, { withFileTypes: true })\n .sort((left, right) => left.name.localeCompare(right.name))) {\n const entryPath = path.join(target, entry.name);\n if ((entry.isFile() || entry.isSymbolicLink()) && EXTENSION_FILE_SUFFIXES.has(path.extname(entry.name))) {\n files.push(entryPath);\n continue;\n }\n if (!entry.isDirectory() && !entry.isSymbolicLink()) continue;\n const indexEntry = extensionIndexEntry(entryPath);\n if (indexEntry) files.push(indexEntry);\n }\n return files;\n}\n\n/** Resolves the standard package.json pi.extensions declaration exactly as a layer contribution. */\nfunction manifestExtensionEntries(\n packageRoot: string,\n manifest: PackageManifest | undefined,\n packageName: string,\n): string[] | undefined {\n if (!manifestDeclaresExtensions(manifest) || !isRecord(manifest?.pi)) return undefined;\n const configured = manifest.pi.extensions;\n if (!Array.isArray(configured) || !configured.every((entry) => typeof entry === 'string')) {\n throw new Error(`${packageName} package.json pi.extensions must be an array of strings.`);\n }\n\n const allPaths: string[] = [];\n for (const configuredEntry of configured.filter((entry) => !isManifestPattern(entry))) {\n const candidates = GLOB_CHARACTERS.test(configuredEntry)\n ? fs.globSync(configuredEntry, { cwd: packageRoot }).sort()\n : [configuredEntry];\n for (const candidate of candidates) {\n for (const target of extensionFilesAt(path.resolve(packageRoot, candidate))) {\n if (!allPaths.includes(target)) allPaths.push(target);\n }\n }\n }\n\n const excluded = configured.filter((entry) => entry.startsWith('!')).map((entry) => entry.slice(1));\n const forceIncluded = configured.filter((entry) => entry.startsWith('+')).map((entry) => entry.slice(1));\n const forceExcluded = configured.filter((entry) => entry.startsWith('-')).map((entry) => entry.slice(1));\n const selected = allPaths.filter(\n (target) => !excluded.some((pattern) => matchesManifestPattern(target, pattern, packageRoot)),\n );\n for (const target of allPaths) {\n if (\n !selected.includes(target) &&\n forceIncluded.some((pattern) => matchesExactManifestPath(target, pattern, packageRoot))\n ) {\n selected.push(target);\n }\n }\n const filtered = selected.filter(\n (target) => !forceExcluded.some((pattern) => matchesExactManifestPath(target, pattern, packageRoot)),\n );\n return filtered.length > 0 ? filtered : undefined;\n}\n\n/**\n * Resolves the on-disk entry point of an installed package.\n *\n * Pi loads extensions by absolute path, so anything contributed as an\n * extension has to be resolved to a file before it can be passed along.\n */\nexport function packageEntry(name: string, origin: string = import.meta.url): string {\n const entry = consumerPackageEntry(name, path.dirname(fileURLToPath(origin)));\n if (!entry) throw new Error(`Cannot resolve package entry ${name} from ${origin}`);\n return fs.realpathSync(entry);\n}\n\n/** Same as packageEntry, but returns undefined when the package is absent. */\nexport function optionalPackageEntry(name: string, origin: string = import.meta.url): string | undefined {\n try {\n return packageEntry(name, origin);\n } catch {\n return undefined;\n }\n}\n\n/**\n * Splits `@scope/name/sub/path` into the package name and its export subpath.\n *\n * A scoped name owns two segments, an unscoped name one. Everything after that\n * is the subpath the package's own `exports` map has to answer for.\n */\nexport function splitPackageSpecifier(specifier: string): { name: string; subpath: string } {\n const segments = specifier.split('/');\n const nameSegments = specifier.startsWith('@') ? 2 : 1;\n const name = segments.slice(0, nameSegments).join('/');\n const rest = segments.slice(nameSegments).join('/');\n return { name, subpath: rest ? `${CURRENT_DIRECTORY_PREFIX}${rest}` : '.' };\n}\n\n/** Picks the import-side target out of one `exports` entry. */\nfunction selectImportTarget(value: unknown): string | undefined {\n if (typeof value === 'string') return value;\n if (Array.isArray(value)) {\n for (const candidate of value) {\n const target = selectImportTarget(candidate);\n if (target) return target;\n }\n return undefined;\n }\n if (typeof value !== 'object' || value === null) return undefined;\n const conditions = value as Record<string, unknown>;\n for (const condition of IMPORT_CONDITIONS) {\n if (condition in conditions) {\n const target = selectImportTarget(conditions[condition]);\n if (target) return target;\n }\n }\n return undefined;\n}\n\n/**\n * Finds an installed package directory by walking the consumer's module chain.\n *\n * Node's own lookup order, so a workspace link in the repository root is found\n * exactly where the repository installed it, and nothing outside that chain can\n * answer for a specifier the repository declared.\n */\nfunction findInstalledPackage(name: string, consumerRoot: string): string | undefined {\n let directory = path.resolve(consumerRoot);\n while (true) {\n const candidate = path.join(directory, NODE_MODULES, name);\n if (fs.existsSync(path.join(candidate, PACKAGE_MANIFEST))) return candidate;\n const parent = path.dirname(directory);\n if (parent === directory) return undefined;\n directory = parent;\n }\n}\n\n/** The environment a lookup runs for; it names the Po home, and so the shared runtime. */\ntype LookupEnvironment = Readonly<Record<string, string | undefined>>;\n\n/**\n * Finds a package Po installed into its shared runtime (`<po home>/runtime`),\n * without touching the consumer's own package manifest.\n */\nfunction findRuntimePackage(name: string, environment: LookupEnvironment): string | undefined {\n const candidate = path.join(poRuntimeDirectory(undefined, environment), NODE_MODULES, name);\n return fs.existsSync(path.join(candidate, PACKAGE_MANIFEST)) ? candidate : undefined;\n}\n\n/**\n * Whether a Po root asked for this package, rather than it arriving\n * transitively. The runtime's manifest is that list, shared by every root; a\n * runtime without one has nothing to check against and every package in it\n * counts.\n */\nfunction runtimePackageDeclared(name: string, environment: LookupEnvironment): boolean {\n const manifestPath = path.join(poRuntimeDirectory(undefined, environment), PACKAGE_MANIFEST);\n if (!fs.existsSync(manifestPath)) return true;\n try {\n const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')) as { dependencies?: Record<string, unknown> };\n return name in (manifest.dependencies ?? {});\n } catch {\n // An unreadable manifest declares nothing, so the runtime answers for nothing.\n return false;\n }\n}\n\n/**\n * The consumer's own dependency tree answers first, then the packages a Po\n * root asked the shared runtime for. A package that merely arrived in the\n * runtime as a dependency of one of those (po-config beneath a layer package,\n * say) is not the answer: declining lets the caller's fallback resolve it from\n * Po's own tree, so one session never loads two copies of a core package with\n * their state split between them.\n */\nfunction findConsumerPackage(name: string, consumerRoot: string, environment: LookupEnvironment): string | undefined {\n const installed = findInstalledPackage(name, consumerRoot);\n if (installed) return installed;\n const runtime = findRuntimePackage(name, environment);\n return runtime && runtimePackageDeclared(name, environment) ? runtime : undefined;\n}\n\n/** Resolves every extension declared by a bare package's standard Pi manifest. */\nexport function packageEntries(specifier: string, origin: string = import.meta.url): string[] {\n const { name, subpath } = splitPackageSpecifier(specifier);\n if (subpath !== '.') return [packageEntry(specifier, origin)];\n\n const packageRoot = findInstalledPackage(name, path.dirname(fileURLToPath(origin)));\n if (!packageRoot) throw new Error(`Cannot resolve package ${name}.`);\n const manifest = readPackageManifest(packageRoot);\n if (!manifestDeclaresExtensions(manifest)) {\n throw new Error(`${name} package.json does not declare pi.extensions.`);\n }\n const manifestEntries = manifestExtensionEntries(packageRoot, manifest, name);\n if (!manifestEntries?.length) throw new Error(`${name} package.json pi.extensions resolves no extension files.`);\n return manifestEntries;\n}\n\n/** Same as packageEntries, but returns undefined when the package is absent. */\nexport function optionalPackageEntries(specifier: string, origin: string = import.meta.url): string[] | undefined {\n try {\n return packageEntries(specifier, origin);\n } catch {\n return undefined;\n }\n}\n\n/**\n * Resolves manifest entries from the consumer repository's dependency tree.\n *\n * The meta-package cannot resolve what the repository declares: under an\n * isolated node_modules layout Doom Pi only sees its own dependencies. Walking\n * the consumer's module chain lets its package manifest answer first without\n * accidentally falling through to Po's dependency tree.\n */\nexport function consumerPackageEntries(\n specifier: string,\n consumerRoot: string,\n environment: LookupEnvironment = process.env,\n): string[] | undefined {\n const { name, subpath } = splitPackageSpecifier(specifier);\n const packageRoot = findConsumerPackage(name, consumerRoot, environment);\n if (!packageRoot) return undefined;\n if (subpath === '.') {\n const manifest = readPackageManifest(packageRoot);\n if (!manifestDeclaresExtensions(manifest)) return [];\n return manifestExtensionEntries(packageRoot, manifest, name) ?? [];\n }\n const entry = consumerPackageEntry(specifier, consumerRoot, environment);\n return entry ? [entry] : [];\n}\n\n/**\n * Resolves one explicit package export or direct package-relative path from the consumer.\n * `environment` names the Po home whose shared runtime answers after the consumer's own tree.\n */\nexport function consumerPackageEntry(\n specifier: string,\n consumerRoot: string,\n environment: LookupEnvironment = process.env,\n): string | undefined {\n const { name, subpath } = splitPackageSpecifier(specifier);\n const packageRoot = findConsumerPackage(name, consumerRoot, environment);\n if (!packageRoot) return undefined;\n\n if (subpath === '.') return localEntry(packageRoot, consumerRoot) ?? extensionIndexEntry(packageRoot);\n\n const manifestPath = path.join(packageRoot, PACKAGE_MANIFEST);\n // A relative subpath that the package does not export is still loadable by\n // path, which is how layers point at a file inside a package (`.../index.ts`).\n const directTarget = path.join(packageRoot, subpath);\n let manifest: { exports?: unknown };\n try {\n manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')) as { exports?: unknown };\n } catch {\n return fs.existsSync(directTarget) ? directTarget : undefined;\n }\n\n const exports = manifest.exports;\n if (exports !== undefined && exports !== null) {\n const entry =\n typeof exports === 'object' && !Array.isArray(exports)\n ? (exports as Record<string, unknown>)[subpath]\n : undefined;\n const target = selectImportTarget(entry);\n if (target) {\n const resolved = path.join(packageRoot, target);\n if (fs.existsSync(resolved)) return resolved;\n }\n }\n\n return fs.existsSync(directTarget) ? directTarget : undefined;\n}\n\n/** Resolves one exports subpath from a path-style package directory. */\nexport function localPackageExport(specifier: string, baseDirectory: string, subpath: string): string | undefined {\n const packageRoot = path.resolve(baseDirectory, specifier);\n const manifest = readPackageManifest(packageRoot);\n const exports = manifest?.exports;\n if (exports === undefined || exports === null) return undefined;\n const target = selectImportTarget(isRecord(exports) ? exports[subpath] : undefined);\n if (!target) return undefined;\n const resolved = path.join(packageRoot, target);\n return fs.existsSync(resolved) ? resolved : undefined;\n}\n\n/** Manifest fields consulted when a local package declares no `exports`. */\nconst MAIN_FIELDS = ['module', 'main'] as const;\n\n/**\n * Returns the canonical name of a path-style package directory.\n *\n * A direct file is intentionally anonymous: treating the repository manifest\n * above it as the file's identity would collapse every local extension in that\n * repository. Only a directory with its own named manifest represents a package\n * that can replace another installed version by logical identity.\n */\nexport function localPackageName(specifier: string, baseDirectory: string): string | undefined {\n const target = path.resolve(baseDirectory, specifier);\n try {\n if (!fs.statSync(target).isDirectory()) return undefined;\n const manifest = JSON.parse(fs.readFileSync(path.join(target, PACKAGE_MANIFEST), 'utf8')) as {\n name?: unknown;\n };\n return typeof manifest.name === 'string' && manifest.name.trim() ? manifest.name.trim() : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Resolves Pi extension entries from a local file, extension directory, or package.\n *\n * A file is taken as the extension entry as written. A package directory uses\n * its native `pi.extensions` declaration or legacy root entry. A plain directory\n * follows Pi's extension discovery convention for scripts and child `index`\n * modules. This lets unpublished extensions live in the repository, or beside\n * the global config in `~/.po`, and still load in deterministic order.\n */\nexport function localEntries(specifier: string, baseDirectory: string): string[] | undefined {\n const target = path.resolve(baseDirectory, specifier);\n let stats: fs.Stats;\n try {\n stats = fs.statSync(target);\n } catch {\n return undefined;\n }\n if (stats.isFile()) return [target];\n if (!stats.isDirectory()) return undefined;\n\n const manifest = readPackageManifest(target);\n const manifestEntries = manifestExtensionEntries(\n target,\n manifest,\n localPackageName(specifier, baseDirectory) ?? target,\n );\n if (manifestEntries !== undefined) return manifestEntries;\n const entry = localEntry(specifier, baseDirectory);\n return entry ? [entry] : extensionFilesAt(target);\n}\n\n/**\n * Resolves a local package selection through its standard Pi manifest.\n * Direct files and extension directories remain valid explicit local paths.\n */\nexport function localPackageEntries(specifier: string, baseDirectory: string): string[] | undefined {\n const target = path.resolve(baseDirectory, specifier);\n let stats: fs.Stats;\n try {\n stats = fs.statSync(target);\n } catch {\n return undefined;\n }\n if (stats.isFile()) return [target];\n if (!stats.isDirectory()) return undefined;\n\n const manifestPath = path.join(target, PACKAGE_MANIFEST);\n if (!fs.existsSync(manifestPath)) return extensionFilesAt(target);\n const manifest = readPackageManifest(target);\n if (!manifestDeclaresExtensions(manifest)) return [];\n return manifestExtensionEntries(target, manifest, localPackageName(specifier, baseDirectory) ?? target) ?? [];\n}\n\n/** Resolves the legacy single entry from a local package's exports, module, or main field. */\nexport function localEntry(specifier: string, baseDirectory: string): string | undefined {\n const target = path.resolve(baseDirectory, specifier);\n let isDirectory: boolean;\n try {\n const stats = fs.statSync(target);\n if (stats.isFile()) return target;\n isDirectory = stats.isDirectory();\n } catch {\n return undefined;\n }\n if (!isDirectory) return undefined;\n\n let manifest: { exports?: unknown; module?: unknown; main?: unknown };\n try {\n manifest = JSON.parse(fs.readFileSync(path.join(target, PACKAGE_MANIFEST), 'utf8')) as typeof manifest;\n } catch {\n return undefined;\n }\n\n const exports = manifest.exports;\n const rootExport =\n typeof exports === 'object' && exports !== null && !Array.isArray(exports)\n ? ((exports as Record<string, unknown>)['.'] ?? exports)\n : exports;\n const candidates = [selectImportTarget(rootExport)];\n for (const field of MAIN_FIELDS) {\n if (typeof manifest[field] === 'string') candidates.push(manifest[field]);\n }\n\n for (const candidate of candidates) {\n if (!candidate) continue;\n const resolved = path.join(target, candidate);\n if (fs.existsSync(resolved)) return resolved;\n }\n return extensionIndexEntry(target);\n}\n\n/** Path to Pi's own CLI, which the launch command spawns. */\nexport function piCliPath(): string {\n return path.join(path.dirname(packageEntry('@earendil-works/pi-coding-agent')), 'cli.js');\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"moduleResolution.mjs","names":[],"sources":["../src/services/moduleResolution/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport { minimatch } from 'minimatch';\n\nimport { poRuntimeDirectory } from '../piSettings';\nimport { isCheckoutPoPackage } from '../testMode';\n\nconst PACKAGE_MANIFEST = 'package.json';\nconst NODE_MODULES = 'node_modules';\nconst CURRENT_DIRECTORY_PREFIX = './';\nconst MANIFEST_PATTERN_PREFIXES = ['!', '+', '-'] as const;\nconst GLOB_CHARACTERS = /[*?[\\]{}()]/;\nconst EXTENSION_INDEX_NAMES = ['index.ts', 'index.js', 'index.mts', 'index.mjs', 'index.cts', 'index.cjs'] as const;\nconst EXTENSION_FILE_SUFFIXES = new Set(['.ts', '.js', '.mts', '.mjs', '.cts', '.cjs']);\n/** Import-side conditions, in the order Node prefers them for an ESM consumer. */\nconst IMPORT_CONDITIONS = ['import', 'module', 'node', 'default'] as const;\n\ninterface PackageManifest {\n name?: unknown;\n exports?: unknown;\n module?: unknown;\n main?: unknown;\n pi?: unknown;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction readPackageManifest(packageRoot: string): PackageManifest | undefined {\n try {\n const parsed: unknown = JSON.parse(fs.readFileSync(path.join(packageRoot, PACKAGE_MANIFEST), 'utf8'));\n return isRecord(parsed) ? parsed : undefined;\n } catch {\n // An unreadable manifest is equivalent to an absent package declaration;\n // the normal export resolver remains available as the compatibility path.\n return undefined;\n }\n}\n\nfunction manifestDeclaresExtensions(manifest: PackageManifest | undefined): boolean {\n return Boolean(manifest && isRecord(manifest.pi) && Object.hasOwn(manifest.pi, 'extensions'));\n}\n\nfunction isManifestPattern(entry: string): boolean {\n return MANIFEST_PATTERN_PREFIXES.some((prefix) => entry.startsWith(prefix));\n}\n\nfunction normalizedRelativePath(packageRoot: string, target: string): string {\n return path.relative(packageRoot, target).split(path.sep).join('/');\n}\n\nfunction matchesManifestPattern(target: string, pattern: string, packageRoot: string): boolean {\n const normalizedPattern = pattern.replaceAll('\\\\', '/').replace(/^\\.\\//, '');\n const relative = normalizedRelativePath(packageRoot, target);\n return (\n minimatch(relative, normalizedPattern) ||\n minimatch(path.basename(target), normalizedPattern) ||\n minimatch(target.split(path.sep).join('/'), normalizedPattern)\n );\n}\n\nfunction matchesExactManifestPath(target: string, pattern: string, packageRoot: string): boolean {\n const normalizedPattern = pattern.replaceAll('\\\\', '/').replace(/^\\.\\//, '');\n return (\n normalizedRelativePath(packageRoot, target) === normalizedPattern ||\n target.split(path.sep).join('/') === normalizedPattern\n );\n}\n\nfunction extensionIndexEntry(directory: string): string | undefined {\n for (const indexName of EXTENSION_INDEX_NAMES) {\n const candidate = path.join(directory, indexName);\n if (fs.existsSync(candidate)) return candidate;\n }\n return undefined;\n}\n\nfunction extensionFilesAt(target: string): string[] {\n let stats: fs.Stats;\n try {\n stats = fs.statSync(target);\n } catch {\n return [];\n }\n if (stats.isFile()) return [target];\n if (!stats.isDirectory()) return [];\n\n const files: string[] = [];\n for (const entry of fs\n .readdirSync(target, { withFileTypes: true })\n .sort((left, right) => left.name.localeCompare(right.name))) {\n const entryPath = path.join(target, entry.name);\n if ((entry.isFile() || entry.isSymbolicLink()) && EXTENSION_FILE_SUFFIXES.has(path.extname(entry.name))) {\n files.push(entryPath);\n continue;\n }\n if (!entry.isDirectory() && !entry.isSymbolicLink()) continue;\n const indexEntry = extensionIndexEntry(entryPath);\n if (indexEntry) files.push(indexEntry);\n }\n return files;\n}\n\n/** Resolves the standard package.json pi.extensions declaration exactly as a layer contribution. */\nfunction manifestExtensionEntries(\n packageRoot: string,\n manifest: PackageManifest | undefined,\n packageName: string,\n): string[] | undefined {\n if (!manifestDeclaresExtensions(manifest) || !isRecord(manifest?.pi)) return undefined;\n const configured = manifest.pi.extensions;\n if (!Array.isArray(configured) || !configured.every((entry) => typeof entry === 'string')) {\n throw new Error(`${packageName} package.json pi.extensions must be an array of strings.`);\n }\n\n const allPaths: string[] = [];\n for (const configuredEntry of configured.filter((entry) => !isManifestPattern(entry))) {\n const candidates = GLOB_CHARACTERS.test(configuredEntry)\n ? fs.globSync(configuredEntry, { cwd: packageRoot }).sort()\n : [configuredEntry];\n for (const candidate of candidates) {\n for (const target of extensionFilesAt(path.resolve(packageRoot, candidate))) {\n if (!allPaths.includes(target)) allPaths.push(target);\n }\n }\n }\n\n const excluded = configured.filter((entry) => entry.startsWith('!')).map((entry) => entry.slice(1));\n const forceIncluded = configured.filter((entry) => entry.startsWith('+')).map((entry) => entry.slice(1));\n const forceExcluded = configured.filter((entry) => entry.startsWith('-')).map((entry) => entry.slice(1));\n const selected = allPaths.filter(\n (target) => !excluded.some((pattern) => matchesManifestPattern(target, pattern, packageRoot)),\n );\n for (const target of allPaths) {\n if (\n !selected.includes(target) &&\n forceIncluded.some((pattern) => matchesExactManifestPath(target, pattern, packageRoot))\n ) {\n selected.push(target);\n }\n }\n const filtered = selected.filter(\n (target) => !forceExcluded.some((pattern) => matchesExactManifestPath(target, pattern, packageRoot)),\n );\n return filtered.length > 0 ? filtered : undefined;\n}\n\n/**\n * Resolves the on-disk entry point of an installed package.\n *\n * Pi loads extensions by absolute path, so anything contributed as an\n * extension has to be resolved to a file before it can be passed along.\n */\nexport function packageEntry(name: string, origin: string = import.meta.url): string {\n const from = path.dirname(fileURLToPath(origin));\n const entry = consumerPackageEntry(name, from);\n if (!entry) throw new Error(`Cannot resolve package entry ${name} from ${origin}`);\n return fs.realpathSync(entry);\n}\n\n/**\n * The entry a module running from a Po checkout finds in that checkout's own closure.\n * A checkout package is never an implicit override for a consumer, so callers try\n * the consumer first and use this only as the last resort.\n */\nexport function checkoutPackageEntry(name: string, origin: string): string | undefined {\n const from = path.dirname(fileURLToPath(origin));\n if (!runsFromCheckout(from)) return undefined;\n const entry = packageRootEntry(name, from, findInstalledPackage(splitPackageSpecifier(name).name, from));\n return entry === undefined ? undefined : fs.realpathSync(entry);\n}\n\n/** Whether the package that owns this directory is a package of a Po source checkout. */\nfunction runsFromCheckout(directory: string): boolean {\n for (let current = directory; ; current = path.dirname(current)) {\n if (fs.existsSync(path.join(current, PACKAGE_MANIFEST))) return isCheckoutPoPackage(current);\n if (path.dirname(current) === current) return false;\n }\n}\n\n/** Same as packageEntry, but returns undefined when the package is absent. */\nexport function optionalPackageEntry(name: string, origin: string = import.meta.url): string | undefined {\n try {\n return packageEntry(name, origin);\n } catch {\n return undefined;\n }\n}\n\n/**\n * Splits `@scope/name/sub/path` into the package name and its export subpath.\n *\n * A scoped name owns two segments, an unscoped name one. Everything after that\n * is the subpath the package's own `exports` map has to answer for.\n */\nexport function splitPackageSpecifier(specifier: string): { name: string; subpath: string } {\n const segments = specifier.split('/');\n const nameSegments = specifier.startsWith('@') ? 2 : 1;\n const name = segments.slice(0, nameSegments).join('/');\n const rest = segments.slice(nameSegments).join('/');\n return { name, subpath: rest ? `${CURRENT_DIRECTORY_PREFIX}${rest}` : '.' };\n}\n\n/** Picks the import-side target out of one `exports` entry. */\nfunction selectImportTarget(value: unknown): string | undefined {\n if (typeof value === 'string') return value;\n if (Array.isArray(value)) {\n for (const candidate of value) {\n const target = selectImportTarget(candidate);\n if (target) return target;\n }\n return undefined;\n }\n if (typeof value !== 'object' || value === null) return undefined;\n const conditions = value as Record<string, unknown>;\n for (const condition of IMPORT_CONDITIONS) {\n if (condition in conditions) {\n const target = selectImportTarget(conditions[condition]);\n if (target) return target;\n }\n }\n return undefined;\n}\n\n/**\n * Finds an installed package directory by walking the consumer's module chain.\n *\n * Node's own lookup order, so a workspace link in the repository root is found\n * exactly where the repository installed it, and nothing outside that chain can\n * answer for a specifier the repository declared.\n */\nfunction findInstalledPackage(name: string, consumerRoot: string): string | undefined {\n let directory = path.resolve(consumerRoot);\n while (true) {\n const candidate = path.join(directory, NODE_MODULES, name);\n if (fs.existsSync(path.join(candidate, PACKAGE_MANIFEST))) return candidate;\n const parent = path.dirname(directory);\n if (parent === directory) return undefined;\n directory = parent;\n }\n}\n\n/** The environment a lookup runs for; it names the Po home, and so the shared runtime. */\ntype LookupEnvironment = Readonly<Record<string, string | undefined>>;\n\n/** Checkout package overrides inherited by the web, server and sync children of `po --test`. */\nexport function testPackageRoot(name: string, environment: LookupEnvironment = process.env): string | undefined {\n if (environment.PO_TEST !== '1' || !environment.PO_TEST_PACKAGES) return undefined;\n const packages: unknown = JSON.parse(environment.PO_TEST_PACKAGES);\n if (!isRecord(packages)) throw new Error('PO_TEST_PACKAGES must be a package-to-directory map.');\n const root = packages[name];\n return typeof root === 'string' ? root : undefined;\n}\n\n/**\n * Finds a package Po installed into its shared runtime (`<po home>/runtime`),\n * without touching the consumer's own package manifest.\n */\nfunction findRuntimePackage(name: string, environment: LookupEnvironment): string | undefined {\n const candidate = path.join(poRuntimeDirectory(undefined, environment), NODE_MODULES, name);\n return fs.existsSync(path.join(candidate, PACKAGE_MANIFEST)) ? candidate : undefined;\n}\n\n/**\n * Whether a Po root asked for this package, rather than it arriving\n * transitively. The runtime's manifest is that list, shared by every root; a\n * runtime without one has nothing to check against and every package in it\n * counts.\n */\nfunction runtimePackageDeclared(name: string, environment: LookupEnvironment): boolean {\n const manifestPath = path.join(poRuntimeDirectory(undefined, environment), PACKAGE_MANIFEST);\n if (!fs.existsSync(manifestPath)) return true;\n try {\n const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')) as { dependencies?: Record<string, unknown> };\n return name in (manifest.dependencies ?? {});\n } catch {\n // An unreadable manifest declares nothing, so the runtime answers for nothing.\n return false;\n }\n}\n\n/**\n * The consumer's own dependency tree answers first, then the packages a Po\n * root asked the shared runtime for. A package that merely arrived in the\n * runtime as a dependency of one of those (po-config beneath a layer package,\n * say) is not the answer: declining lets the caller's fallback resolve it from\n * Po's own tree, so one session never loads two copies of a core package with\n * their state split between them.\n */\nfunction findConsumerPackage(name: string, consumerRoot: string, environment: LookupEnvironment): string | undefined {\n const local = testPackageRoot(name, environment);\n if (local !== undefined) return local;\n const installed = findInstalledPackage(name, consumerRoot);\n if (installed && (environment.PO_TEST === '1' || !isCheckoutPoPackage(installed))) return installed;\n const runtime = findRuntimePackage(name, environment);\n return runtime &&\n (environment.PO_TEST === '1' || !isCheckoutPoPackage(runtime)) &&\n runtimePackageDeclared(name, environment)\n ? runtime\n : undefined;\n}\n\n/** Resolves every extension declared by a bare package's standard Pi manifest. */\nexport function packageEntries(specifier: string, origin: string = import.meta.url): string[] {\n const { name, subpath } = splitPackageSpecifier(specifier);\n if (subpath !== '.') return [packageEntry(specifier, origin)];\n\n const packageRoot = findInstalledPackage(name, path.dirname(fileURLToPath(origin)));\n if (!packageRoot) throw new Error(`Cannot resolve package ${name}.`);\n const manifest = readPackageManifest(packageRoot);\n if (!manifestDeclaresExtensions(manifest)) {\n throw new Error(`${name} package.json does not declare pi.extensions.`);\n }\n const manifestEntries = manifestExtensionEntries(packageRoot, manifest, name);\n if (!manifestEntries?.length) throw new Error(`${name} package.json pi.extensions resolves no extension files.`);\n return manifestEntries;\n}\n\n/** Same as packageEntries, but returns undefined when the package is absent. */\nexport function optionalPackageEntries(specifier: string, origin: string = import.meta.url): string[] | undefined {\n try {\n return packageEntries(specifier, origin);\n } catch {\n return undefined;\n }\n}\n\n/**\n * Resolves manifest entries from the consumer repository's dependency tree.\n *\n * The meta-package cannot resolve what the repository declares: under an\n * isolated node_modules layout Po Pi only sees its own dependencies. Walking\n * the consumer's module chain lets its package manifest answer first without\n * accidentally falling through to Po's dependency tree.\n */\nexport function consumerPackageEntries(\n specifier: string,\n consumerRoot: string,\n environment: LookupEnvironment = process.env,\n): string[] | undefined {\n const { name, subpath } = splitPackageSpecifier(specifier);\n const packageRoot = findConsumerPackage(name, consumerRoot, environment);\n if (!packageRoot) return undefined;\n if (subpath === '.') {\n const manifest = readPackageManifest(packageRoot);\n if (!manifestDeclaresExtensions(manifest)) return [];\n return manifestExtensionEntries(packageRoot, manifest, name) ?? [];\n }\n const entry = consumerPackageEntry(specifier, consumerRoot, environment);\n return entry ? [entry] : [];\n}\n\n/**\n * Resolves one explicit package export or direct package-relative path from the consumer.\n * `environment` names the Po home whose shared runtime answers after the consumer's own tree.\n */\nexport function consumerPackageEntry(\n specifier: string,\n consumerRoot: string,\n environment: LookupEnvironment = process.env,\n): string | undefined {\n const packageRoot = findConsumerPackage(splitPackageSpecifier(specifier).name, consumerRoot, environment);\n return packageRootEntry(specifier, consumerRoot, packageRoot);\n}\n\n/** One export or package-relative path of an already located package. */\nfunction packageRootEntry(\n specifier: string,\n consumerRoot: string,\n packageRoot: string | undefined,\n): string | undefined {\n if (!packageRoot) return undefined;\n const { subpath } = splitPackageSpecifier(specifier);\n if (subpath === '.') return localEntry(packageRoot, consumerRoot) ?? extensionIndexEntry(packageRoot);\n const manifestPath = path.join(packageRoot, PACKAGE_MANIFEST);\n // A relative subpath that the package does not export is still loadable by\n // path, which is how layers point at a file inside a package (`.../index.ts`).\n const directTarget = path.join(packageRoot, subpath);\n let manifest: { exports?: unknown };\n try {\n manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')) as { exports?: unknown };\n } catch {\n return fs.existsSync(directTarget) ? directTarget : undefined;\n }\n\n const exports = manifest.exports;\n if (exports !== undefined && exports !== null) {\n const entry =\n typeof exports === 'object' && !Array.isArray(exports)\n ? (exports as Record<string, unknown>)[subpath]\n : undefined;\n const target = selectImportTarget(entry);\n if (target) {\n const resolved = path.join(packageRoot, target);\n if (fs.existsSync(resolved)) return resolved;\n }\n }\n\n return fs.existsSync(directTarget) ? directTarget : undefined;\n}\n\n/** Resolves one exports subpath from a path-style package directory. */\nexport function localPackageExport(specifier: string, baseDirectory: string, subpath: string): string | undefined {\n const packageRoot = path.resolve(baseDirectory, specifier);\n const manifest = readPackageManifest(packageRoot);\n const exports = manifest?.exports;\n if (exports === undefined || exports === null) return undefined;\n const target = selectImportTarget(isRecord(exports) ? exports[subpath] : undefined);\n if (!target) return undefined;\n const resolved = path.join(packageRoot, target);\n return fs.existsSync(resolved) ? resolved : undefined;\n}\n\n/** Manifest fields consulted when a local package declares no `exports`. */\nconst MAIN_FIELDS = ['module', 'main'] as const;\n\n/**\n * Returns the canonical name of a path-style package directory.\n *\n * A direct file is intentionally anonymous: treating the repository manifest\n * above it as the file's identity would collapse every local extension in that\n * repository. Only a directory with its own named manifest represents a package\n * that can replace another installed version by logical identity.\n */\nexport function localPackageName(specifier: string, baseDirectory: string): string | undefined {\n const target = path.resolve(baseDirectory, specifier);\n try {\n if (!fs.statSync(target).isDirectory()) return undefined;\n const manifest = JSON.parse(fs.readFileSync(path.join(target, PACKAGE_MANIFEST), 'utf8')) as {\n name?: unknown;\n };\n return typeof manifest.name === 'string' && manifest.name.trim() ? manifest.name.trim() : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Resolves Pi extension entries from a local file, extension directory, or package.\n *\n * A file is taken as the extension entry as written. A package directory uses\n * its native `pi.extensions` declaration or legacy root entry. A plain directory\n * follows Pi's extension discovery convention for scripts and child `index`\n * modules. This lets unpublished extensions live in the repository, or beside\n * the global config in `~/.po`, and still load in deterministic order.\n */\nexport function localEntries(specifier: string, baseDirectory: string): string[] | undefined {\n const target = path.resolve(baseDirectory, specifier);\n let stats: fs.Stats;\n try {\n stats = fs.statSync(target);\n } catch {\n return undefined;\n }\n if (stats.isFile()) return [target];\n if (!stats.isDirectory()) return undefined;\n\n const manifest = readPackageManifest(target);\n const manifestEntries = manifestExtensionEntries(\n target,\n manifest,\n localPackageName(specifier, baseDirectory) ?? target,\n );\n if (manifestEntries !== undefined) return manifestEntries;\n const entry = localEntry(specifier, baseDirectory);\n return entry ? [entry] : extensionFilesAt(target);\n}\n\n/**\n * Resolves a local package selection through its standard Pi manifest.\n * Direct files and extension directories remain valid explicit local paths.\n */\nexport function localPackageEntries(specifier: string, baseDirectory: string): string[] | undefined {\n const target = path.resolve(baseDirectory, specifier);\n let stats: fs.Stats;\n try {\n stats = fs.statSync(target);\n } catch {\n return undefined;\n }\n if (stats.isFile()) return [target];\n if (!stats.isDirectory()) return undefined;\n\n const manifestPath = path.join(target, PACKAGE_MANIFEST);\n if (!fs.existsSync(manifestPath)) return extensionFilesAt(target);\n const manifest = readPackageManifest(target);\n if (!manifestDeclaresExtensions(manifest)) return [];\n return manifestExtensionEntries(target, manifest, localPackageName(specifier, baseDirectory) ?? target) ?? [];\n}\n\n/** Resolves the legacy single entry from a local package's exports, module, or main field. */\nexport function localEntry(specifier: string, baseDirectory: string): string | undefined {\n const target = path.resolve(baseDirectory, specifier);\n let isDirectory: boolean;\n try {\n const stats = fs.statSync(target);\n if (stats.isFile()) return target;\n isDirectory = stats.isDirectory();\n } catch {\n return undefined;\n }\n if (!isDirectory) return undefined;\n\n let manifest: { exports?: unknown; module?: unknown; main?: unknown };\n try {\n manifest = JSON.parse(fs.readFileSync(path.join(target, PACKAGE_MANIFEST), 'utf8')) as typeof manifest;\n } catch {\n return undefined;\n }\n\n const exports = manifest.exports;\n const rootExport =\n typeof exports === 'object' && exports !== null && !Array.isArray(exports)\n ? ((exports as Record<string, unknown>)['.'] ?? exports)\n : exports;\n const candidates = [selectImportTarget(rootExport)];\n for (const field of MAIN_FIELDS) {\n if (typeof manifest[field] === 'string') candidates.push(manifest[field]);\n }\n\n for (const candidate of candidates) {\n if (!candidate) continue;\n const resolved = path.join(target, candidate);\n if (fs.existsSync(resolved)) return resolved;\n }\n return extensionIndexEntry(target);\n}\n\n/** Path to Pi's own CLI, which the launch command spawns. */\nexport function piCliPath(): string {\n return path.join(path.dirname(packageEntry('@earendil-works/pi-coding-agent')), 'cli.js');\n}\n"],"mappings":"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"}
|
package/dist/narration.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_narration = require("./src/schemas/narration.cjs");
|
|
3
|
-
exports.DOOM_NARRATION_SERVICE = require_narration.DOOM_NARRATION_SERVICE;
|
|
4
3
|
exports.MAX_NARRATION_TEXT_CHARACTERS = require_narration.MAX_NARRATION_TEXT_CHARACTERS;
|
|
5
4
|
exports.NarrationRequestSchema = require_narration.NarrationRequestSchema;
|
|
5
|
+
exports.PO_NARRATION_SERVICE = require_narration.PO_NARRATION_SERVICE;
|
|
6
6
|
exports.createNarrationRequest = require_narration.createNarrationRequest;
|
|
7
7
|
exports.isNarrationRequest = require_narration.isNarrationRequest;
|
|
8
8
|
exports.normalizeNarrationText = require_narration.normalizeNarrationText;
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
9
|
+
exports.readPoNarrationService = require_narration.readPoNarrationService;
|
|
10
|
+
exports.requirePoNarrationService = require_narration.requirePoNarrationService;
|
package/dist/narration.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { MAX_NARRATION_TEXT_CHARACTERS, NarrationRequest, NarrationRequestSchema, PO_NARRATION_SERVICE, PoNarrationService, createNarrationRequest, isNarrationRequest, normalizeNarrationText, readPoNarrationService, requirePoNarrationService } from "./src/schemas/narration.mjs";
|
|
2
|
+
export { MAX_NARRATION_TEXT_CHARACTERS, type NarrationRequest, NarrationRequestSchema, PO_NARRATION_SERVICE, type PoNarrationService, createNarrationRequest, isNarrationRequest, normalizeNarrationText, readPoNarrationService, requirePoNarrationService };
|
package/dist/narration.mjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { DOOM_NARRATION_SERVICE, MAX_NARRATION_TEXT_CHARACTERS, NarrationRequestSchema, createNarrationRequest, isNarrationRequest, normalizeNarrationText, readDoomNarrationService, requireDoomNarrationService };
|
|
1
|
+
export { MAX_NARRATION_TEXT_CHARACTERS, NarrationRequestSchema, PO_NARRATION_SERVICE, createNarrationRequest, isNarrationRequest, normalizeNarrationText, readPoNarrationService, requirePoNarrationService } from "./src/schemas/narration.mjs";
|
package/dist/native.cjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_home = require("./src/schemas/home.cjs");
|
|
2
3
|
const require_webPlugin = require("./src/extensions/webPlugin.cjs");
|
|
3
4
|
const require_globalStore = require("./src/web/models/globalStore.cjs");
|
|
4
5
|
const require_sessionStore = require("./src/web/models/sessionStore.cjs");
|
|
@@ -9,6 +10,9 @@ const require_index$2 = require("./src/web/services/apiRoutes/index.cjs");
|
|
|
9
10
|
const require_index$3 = require("./src/web/services/nativeApiTransport/index.cjs");
|
|
10
11
|
const require_template = require("./src/web/schemas/template.cjs");
|
|
11
12
|
const require_nativeHost = require("./src/constants/nativeHost.cjs");
|
|
13
|
+
exports.HOME_ENTITY_LIMIT = require_home.HOME_ENTITY_LIMIT;
|
|
14
|
+
exports.HOME_KINDS = require_home.HOME_KINDS;
|
|
15
|
+
exports.HOME_PAGE_LIMIT = require_home.HOME_PAGE_LIMIT;
|
|
12
16
|
exports.NATIVE_HOST_MODULES = require_nativeHost.NATIVE_HOST_MODULES;
|
|
13
17
|
exports.NATIVE_HOST_MODULE_IDS = require_nativeHost.NATIVE_HOST_MODULE_IDS;
|
|
14
18
|
exports.NATIVE_UNISTYLES_COMPONENTS = require_nativeHost.NATIVE_UNISTYLES_COMPONENTS;
|
|
@@ -18,6 +22,7 @@ exports.createApiClient = require_index$1.createApiClient;
|
|
|
18
22
|
exports.defineActivityGroup = require_webPlugin.defineActivityGroup;
|
|
19
23
|
exports.defineApiRoutes = require_index$1.defineApiRoutes;
|
|
20
24
|
exports.defineChannelFile = require_webPlugin.defineChannelFile;
|
|
25
|
+
exports.defineDockFace = require_webPlugin.defineDockFace;
|
|
21
26
|
exports.defineFileLinks = require_webPlugin.defineFileLinks;
|
|
22
27
|
exports.defineFill = require_webPlugin.defineFill;
|
|
23
28
|
exports.defineGlobalStore = require_globalStore.defineGlobalStore;
|
|
@@ -34,6 +39,10 @@ exports.defineUserMessageAction = require_webPlugin.defineUserMessageAction;
|
|
|
34
39
|
exports.defineWebLifecycle = require_webPlugin.defineWebLifecycle;
|
|
35
40
|
exports.defineWorkspaceStore = require_workspaceStore.defineWorkspaceStore;
|
|
36
41
|
exports.nativeApiTransport = require_index$3.nativeApiTransport;
|
|
42
|
+
exports.parseHomeContribution = require_home.parseHomeContribution;
|
|
43
|
+
exports.parseHomeEntity = require_home.parseHomeEntity;
|
|
44
|
+
exports.parseHomeProjection = require_home.parseHomeProjection;
|
|
45
|
+
exports.parseHomeSnapshot = require_home.parseHomeSnapshot;
|
|
37
46
|
exports.parseNativeTemplate = require_template.parseNativeTemplate;
|
|
38
47
|
exports.sessionApiAddress = require_index$2.sessionApiAddress;
|
|
39
48
|
exports.sessionApiPath = require_index$2.sessionApiPath;
|
package/dist/native.d.mts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HOME_ENTITY_LIMIT, HOME_KINDS, HOME_PAGE_LIMIT, HomeContribution, HomeCoverage, HomeEntity, HomeItem, HomeKind, HomeProjection, HomeRequest, HomeSnapshot, HomeSourceStatus, parseHomeContribution, parseHomeEntity, parseHomeProjection, parseHomeSnapshot } from "./src/schemas/home.mjs";
|
|
2
|
+
import { WebTemplateRailActions, WebTemplateRailDirectoryListing, WebTemplateRailPendingSetup, WebTemplateRailSession, WebTemplateRailWorkspace } from "./src/web/types/template.mjs";
|
|
2
3
|
import { NativeTemplateContribution, NativeTemplateScreens, NativeTemplateSessionsActions, NativeTemplateSessionsProps } from "./src/web/types/nativeTemplate.mjs";
|
|
3
4
|
import { ActivityGroupContribution, GlobalStore, SelectionAxisContribution, SessionChannelContribution, SessionFrameSender, SessionRecords, SessionStore, SessionStoreChannel, SettingsSectionContribution, SlotDeclaration, SlotFillContribution, TabContribution, ToolMessageRenderProps, ToolPromptRenderProps, ToolRendererContribution, ToolResultView, UserMessageActionContribution, UserMessageActionRunContext, WebPluginContributions, WebPluginDefinition, WebPluginRuntime, WebPluginSessionContext, WebPluginSlotProps, WorkspaceRecords, WorkspaceStore } from "./src/web/types/webPlugin.mjs";
|
|
4
5
|
import { ActivityGroupFile, ChannelFile, FillFile, NativeTemplateFile, SelectionAxisFile, SettingsSectionFile, SlotFile, TabFile, ToolRendererFile, UserMessageActionFile } from "./src/web/types/extensionFile.mjs";
|
|
5
|
-
import { defineActivityGroup, defineChannelFile, defineFileLinks, defineFill, defineNativeTemplate, defineSelectionAxis, defineSessionChannel, defineSettingsSection, defineSlotFile, defineTab, defineToolRenderer, defineUserMessageAction, defineWebLifecycle, defineWebPlugin } from "./src/extensions/webPlugin.mjs";
|
|
6
|
+
import { defineActivityGroup, defineChannelFile, defineDockFace, defineFileLinks, defineFill, defineNativeTemplate, defineSelectionAxis, defineSessionChannel, defineSettingsSection, defineSlotFile, defineTab, defineToolRenderer, defineUserMessageAction, defineWebLifecycle, defineWebPlugin } from "./src/extensions/webPlugin.mjs";
|
|
6
7
|
import { defineGlobalStore } from "./src/web/models/globalStore.mjs";
|
|
7
8
|
import { defineSessionStore } from "./src/web/models/sessionStore.mjs";
|
|
8
9
|
import { defineWorkspaceStore } from "./src/web/models/workspaceStore.mjs";
|
|
@@ -12,4 +13,4 @@ import { sessionApiAddress, sessionApiPath } from "./src/web/services/apiRoutes/
|
|
|
12
13
|
import { nativeApiTransport } from "./src/web/services/nativeApiTransport/index.mjs";
|
|
13
14
|
import { parseNativeTemplate } from "./src/web/schemas/template.mjs";
|
|
14
15
|
import { NATIVE_HOST_MODULES, NATIVE_HOST_MODULE_IDS, NATIVE_UNISTYLES_COMPONENTS, NATIVE_UNISTYLES_COMPONENT_PREFIX } from "./src/constants/nativeHost.mjs";
|
|
15
|
-
export { type ActivityGroupContribution, type ActivityGroupFile, type ApiCallInit, type ApiResult, type ApiRoutes, type ApiTransport, type ChannelFile, type FillFile, type GlobalStore, NATIVE_HOST_MODULES, NATIVE_HOST_MODULE_IDS, NATIVE_UNISTYLES_COMPONENTS, NATIVE_UNISTYLES_COMPONENT_PREFIX, type NativeTemplateContribution, type NativeTemplateFile, type NativeTemplateScreens, type NativeTemplateSessionsActions, type NativeTemplateSessionsProps, type SelectionAxisContribution, type SelectionAxisFile, type SessionChannelContribution, type SessionFrameSender, type SessionRecords, type SessionStore, type SessionStoreChannel, type SettingsSectionContribution, type SettingsSectionFile, type SlotDeclaration, type SlotFile, type SlotFillContribution, type TabContribution, type TabFile, type ToolMessageRenderProps, type ToolPromptRenderProps, type ToolRendererContribution, type ToolRendererFile, type ToolResultView, type UserMessageActionContribution, type UserMessageActionFile, type UserMessageActionRunContext, type WebPluginContributions, type WebPluginDefinition, type WebPluginRuntime, type WebPluginSessionContext, type WebPluginSlotProps, type WebTemplateRailActions, type WebTemplateRailPendingSetup, type WebTemplateRailSession, type WebTemplateRailWorkspace, type WorkspaceRecords, type WorkspaceStore, apiResponse, createApiClient, defineActivityGroup, defineApiRoutes, defineChannelFile, defineFileLinks, defineFill, defineGlobalStore, defineWebPlugin as defineNativePlugin, defineNativeTemplate, defineSelectionAxis, defineSessionChannel, defineSessionStore, defineSettingsSection, defineSlotFile, defineTab, defineToolRenderer, defineUserMessageAction, defineWebLifecycle, defineWorkspaceStore, nativeApiTransport, parseNativeTemplate, sessionApiAddress, sessionApiPath, toolResultText, toolResultTextLines };
|
|
16
|
+
export { type ActivityGroupContribution, type ActivityGroupFile, type ApiCallInit, type ApiResult, type ApiRoutes, type ApiTransport, type ChannelFile, type FillFile, type GlobalStore, HOME_ENTITY_LIMIT, HOME_KINDS, HOME_PAGE_LIMIT, HomeContribution, HomeCoverage, HomeEntity, HomeItem, HomeKind, HomeProjection, HomeRequest, HomeSnapshot, HomeSourceStatus, NATIVE_HOST_MODULES, NATIVE_HOST_MODULE_IDS, NATIVE_UNISTYLES_COMPONENTS, NATIVE_UNISTYLES_COMPONENT_PREFIX, type NativeTemplateContribution, type NativeTemplateFile, type NativeTemplateScreens, type NativeTemplateSessionsActions, type NativeTemplateSessionsProps, type SelectionAxisContribution, type SelectionAxisFile, type SessionChannelContribution, type SessionFrameSender, type SessionRecords, type SessionStore, type SessionStoreChannel, type SettingsSectionContribution, type SettingsSectionFile, type SlotDeclaration, type SlotFile, type SlotFillContribution, type TabContribution, type TabFile, type ToolMessageRenderProps, type ToolPromptRenderProps, type ToolRendererContribution, type ToolRendererFile, type ToolResultView, type UserMessageActionContribution, type UserMessageActionFile, type UserMessageActionRunContext, type WebPluginContributions, type WebPluginDefinition, type WebPluginRuntime, type WebPluginSessionContext, type WebPluginSlotProps, type WebTemplateRailActions, type WebTemplateRailDirectoryListing, type WebTemplateRailPendingSetup, type WebTemplateRailSession, type WebTemplateRailWorkspace, type WorkspaceRecords, type WorkspaceStore, apiResponse, createApiClient, defineActivityGroup, defineApiRoutes, defineChannelFile, defineDockFace, defineFileLinks, defineFill, defineGlobalStore, defineWebPlugin as defineNativePlugin, defineNativeTemplate, defineSelectionAxis, defineSessionChannel, defineSessionStore, defineSettingsSection, defineSlotFile, defineTab, defineToolRenderer, defineUserMessageAction, defineWebLifecycle, defineWorkspaceStore, nativeApiTransport, parseHomeContribution, parseHomeEntity, parseHomeProjection, parseHomeSnapshot, parseNativeTemplate, sessionApiAddress, sessionApiPath, toolResultText, toolResultTextLines };
|
package/dist/native.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HOME_ENTITY_LIMIT, HOME_KINDS, HOME_PAGE_LIMIT, parseHomeContribution, parseHomeEntity, parseHomeProjection, parseHomeSnapshot } from "./src/schemas/home.mjs";
|
|
2
|
+
import { defineActivityGroup, defineChannelFile, defineDockFace, defineFileLinks, defineFill, defineNativeTemplate, defineSelectionAxis, defineSessionChannel, defineSettingsSection, defineSlotFile, defineTab, defineToolRenderer, defineUserMessageAction, defineWebLifecycle, defineWebPlugin } from "./src/extensions/webPlugin.mjs";
|
|
2
3
|
import { defineGlobalStore } from "./src/web/models/globalStore.mjs";
|
|
3
4
|
import { defineSessionStore } from "./src/web/models/sessionStore.mjs";
|
|
4
5
|
import { defineWorkspaceStore } from "./src/web/models/workspaceStore.mjs";
|
|
@@ -8,4 +9,4 @@ import { sessionApiAddress, sessionApiPath } from "./src/web/services/apiRoutes/
|
|
|
8
9
|
import { nativeApiTransport } from "./src/web/services/nativeApiTransport/index.mjs";
|
|
9
10
|
import { parseNativeTemplate } from "./src/web/schemas/template.mjs";
|
|
10
11
|
import { NATIVE_HOST_MODULES, NATIVE_HOST_MODULE_IDS, NATIVE_UNISTYLES_COMPONENTS, NATIVE_UNISTYLES_COMPONENT_PREFIX } from "./src/constants/nativeHost.mjs";
|
|
11
|
-
export { NATIVE_HOST_MODULES, NATIVE_HOST_MODULE_IDS, NATIVE_UNISTYLES_COMPONENTS, NATIVE_UNISTYLES_COMPONENT_PREFIX, apiResponse, createApiClient, defineActivityGroup, defineApiRoutes, defineChannelFile, defineFileLinks, defineFill, defineGlobalStore, defineWebPlugin as defineNativePlugin, defineNativeTemplate, defineSelectionAxis, defineSessionChannel, defineSessionStore, defineSettingsSection, defineSlotFile, defineTab, defineToolRenderer, defineUserMessageAction, defineWebLifecycle, defineWorkspaceStore, nativeApiTransport, parseNativeTemplate, sessionApiAddress, sessionApiPath, toolResultText, toolResultTextLines };
|
|
12
|
+
export { HOME_ENTITY_LIMIT, HOME_KINDS, HOME_PAGE_LIMIT, NATIVE_HOST_MODULES, NATIVE_HOST_MODULE_IDS, NATIVE_UNISTYLES_COMPONENTS, NATIVE_UNISTYLES_COMPONENT_PREFIX, apiResponse, createApiClient, defineActivityGroup, defineApiRoutes, defineChannelFile, defineDockFace, defineFileLinks, defineFill, defineGlobalStore, defineWebPlugin as defineNativePlugin, defineNativeTemplate, defineSelectionAxis, defineSessionChannel, defineSessionStore, defineSettingsSection, defineSlotFile, defineTab, defineToolRenderer, defineUserMessageAction, defineWebLifecycle, defineWorkspaceStore, nativeApiTransport, parseHomeContribution, parseHomeEntity, parseHomeProjection, parseHomeSnapshot, parseNativeTemplate, sessionApiAddress, sessionApiPath, toolResultText, toolResultTextLines };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_historyOwnership = require("./historyOwnership.cjs");
|
|
4
|
+
const require_index = require("./src/services/durableSession/index.cjs");
|
|
5
|
+
const require_sqliteSessionStorage = require("./sqliteSessionStorage.cjs");
|
|
6
|
+
let node_os = require("node:os");
|
|
7
|
+
node_os = require_runtime.__toESM(node_os, 1);
|
|
8
|
+
let node_path = require("node:path");
|
|
9
|
+
node_path = require_runtime.__toESM(node_path, 1);
|
|
10
|
+
let node_fs_promises = require("node:fs/promises");
|
|
11
|
+
node_fs_promises = require_runtime.__toESM(node_fs_promises, 1);
|
|
12
|
+
let _earendil_works_pi_durable_storage_sqlite_node = require("@earendil-works/pi-durable/storage/sqlite/node");
|
|
13
|
+
let _earendil_works_pi_durable_env_node = require("@earendil-works/pi-durable/env/node");
|
|
14
|
+
//#region src/services/nodePlatform/index.ts
|
|
15
|
+
/** One lock-owned durable-v1 SQLite file per agent session. */
|
|
16
|
+
function createNodeSessions(options) {
|
|
17
|
+
let historyOwnership = options.historyOwnership;
|
|
18
|
+
const root = () => {
|
|
19
|
+
if (options.sessionsRoot === void 0) throw new Error("This Node platform was given no sessions root.");
|
|
20
|
+
return options.sessionsRoot;
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
abiVersion: 1,
|
|
24
|
+
async open(request, context) {
|
|
25
|
+
historyOwnership ??= require_historyOwnership.createHistoryOwnership({ sourceFormat: "sqlite" });
|
|
26
|
+
const opened = await require_sqliteSessionStorage.openSqliteSessionStorage({
|
|
27
|
+
...request,
|
|
28
|
+
sessionsRoot: root(),
|
|
29
|
+
historyOwnership
|
|
30
|
+
}, context);
|
|
31
|
+
return {
|
|
32
|
+
storage: opened.storage,
|
|
33
|
+
assertWritable: () => opened.historyLease.assertQuiescent(),
|
|
34
|
+
async release(releaseContext) {
|
|
35
|
+
await opened.session.close(releaseContext);
|
|
36
|
+
await opened.historyLease.release();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
openReadOnly: async (sessionId) => require_sqliteSessionStorage.openReadOnlyDurableStorage(require_sqliteSessionStorage.sqliteSessionFile(root(), sessionId)),
|
|
41
|
+
async list() {
|
|
42
|
+
const directory = node_path.default.join(root(), require_index.DURABLE_DIRECTORY);
|
|
43
|
+
const files = await node_fs_promises.default.readdir(directory).catch((error) => {
|
|
44
|
+
if (error.code === "ENOENT") return [];
|
|
45
|
+
throw error;
|
|
46
|
+
});
|
|
47
|
+
const stored = [];
|
|
48
|
+
for (const file of files) {
|
|
49
|
+
if (!/^[a-zA-Z0-9_-]+\.sqlite$/u.test(file)) continue;
|
|
50
|
+
const { mtimeMs } = await node_fs_promises.default.stat(node_path.default.join(directory, file));
|
|
51
|
+
stored.push({
|
|
52
|
+
sessionId: node_path.default.basename(file, ".sqlite"),
|
|
53
|
+
updatedAt: mtimeMs
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return stored;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** The Node host: local files and shell, `node:sqlite` files, and lock-owned durable-v1 sessions. */
|
|
61
|
+
function createNodePlatform(options = {}) {
|
|
62
|
+
return {
|
|
63
|
+
abiVersion: 1,
|
|
64
|
+
homeDirectory: options.homeDirectory ?? node_os.default.homedir(),
|
|
65
|
+
temporaryDirectory: process.platform === "darwin" || process.platform === "linux" ? options.temporaryDirectory ?? node_os.default.tmpdir() : void 0,
|
|
66
|
+
env: (cwd) => new _earendil_works_pi_durable_env_node.NodeExecutionEnv({ cwd }),
|
|
67
|
+
sqlite: {
|
|
68
|
+
abiVersion: 1,
|
|
69
|
+
open: (file) => (0, _earendil_works_pi_durable_storage_sqlite_node.openNodeSqliteDatabase)(file)
|
|
70
|
+
},
|
|
71
|
+
sessions: createNodeSessions(options)
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
exports.createNodePlatform = createNodePlatform;
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=nodePlatform.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodePlatform.cjs","names":["createHistoryOwnership","openSqliteSessionStorage","openReadOnlyDurableStorage","sqliteSessionFile","path","DURABLE_DIRECTORY","fs","os","NodeExecutionEnv","openNodeSqliteDatabase"],"sources":["../src/services/nodePlatform/index.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport os from 'node:os';\nimport path from 'node:path';\n\nimport { NodeExecutionEnv } from '@earendil-works/pi-durable/env/node';\nimport { openNodeSqliteDatabase } from '@earendil-works/pi-durable/storage/sqlite/node';\n\nimport type { PoPlatform, PoSessionStorageService, PoStoredSession } from '../../schemas/platform';\nimport { DURABLE_DIRECTORY } from '../durableSession';\nimport { createHistoryOwnership } from '../historyOwnership';\nimport type { HistoryOwnership } from '../historyOwnership/type';\nimport { openReadOnlyDurableStorage, openSqliteSessionStorage, sqliteSessionFile } from '../sqliteSessionStorage';\n\nexport interface NodePlatformOptions {\n /** Defaults to the user's home directory. */\n readonly homeDirectory?: string;\n /** Host-admitted override; defaults to this Node host's OS temporary directory. */\n readonly temporaryDirectory?: string;\n /** Where the launching entry keeps agent sessions. Without it `sessions` refuses every call. */\n readonly sessionsRoot?: string;\n /** Shared ownership for every session this platform opens; created on first open when absent. */\n readonly historyOwnership?: HistoryOwnership;\n}\n\n/** One lock-owned durable-v1 SQLite file per agent session. */\nfunction createNodeSessions(options: NodePlatformOptions): PoSessionStorageService {\n let historyOwnership = options.historyOwnership;\n const root = () => {\n if (options.sessionsRoot === undefined) throw new Error('This Node platform was given no sessions root.');\n return options.sessionsRoot;\n };\n return {\n abiVersion: 1,\n async open(request, context) {\n historyOwnership ??= createHistoryOwnership({ sourceFormat: 'sqlite' });\n const opened = await openSqliteSessionStorage({ ...request, sessionsRoot: root(), historyOwnership }, context);\n return {\n storage: opened.storage,\n assertWritable: () => opened.historyLease.assertQuiescent(),\n async release(releaseContext) {\n // The lease outlives a failed close so no second writer opens a file still being written.\n await opened.session.close(releaseContext);\n await opened.historyLease.release();\n },\n };\n },\n openReadOnly: async (sessionId) => openReadOnlyDurableStorage(sqliteSessionFile(root(), sessionId)),\n async list() {\n const directory = path.join(root(), DURABLE_DIRECTORY);\n const files = await fs.readdir(directory).catch((error: NodeJS.ErrnoException) => {\n if (error.code === 'ENOENT') return [];\n throw error;\n });\n const stored: PoStoredSession[] = [];\n for (const file of files) {\n if (!/^[a-zA-Z0-9_-]+\\.sqlite$/u.test(file)) continue;\n const { mtimeMs } = await fs.stat(path.join(directory, file));\n stored.push({ sessionId: path.basename(file, '.sqlite'), updatedAt: mtimeMs });\n }\n return stored;\n },\n };\n}\n\n/** The Node host: local files and shell, `node:sqlite` files, and lock-owned durable-v1 sessions. */\nexport function createNodePlatform(options: NodePlatformOptions = {}): PoPlatform {\n return {\n abiVersion: 1,\n homeDirectory: options.homeDirectory ?? os.homedir(),\n // Secure session-file protection and viewing currently require POSIX ownership semantics.\n temporaryDirectory:\n process.platform === 'darwin' || process.platform === 'linux'\n ? (options.temporaryDirectory ?? os.tmpdir())\n : undefined,\n env: (cwd) => new NodeExecutionEnv({ cwd }),\n sqlite: { abiVersion: 1, open: (file) => openNodeSqliteDatabase(file) },\n sessions: createNodeSessions(options),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;AAyBA,SAAS,mBAAmB,SAAuD;CACjF,IAAI,mBAAmB,QAAQ;CAC/B,MAAM,aAAa;EACjB,IAAI,QAAQ,iBAAiB,KAAA,GAAW,MAAM,IAAI,MAAM,gDAAgD;EACxG,OAAO,QAAQ;CACjB;CACA,OAAO;EACL,YAAY;EACZ,MAAM,KAAK,SAAS,SAAS;GAC3B,qBAAqBA,yBAAAA,uBAAuB,EAAE,cAAc,SAAS,CAAC;GACtE,MAAM,SAAS,MAAMC,6BAAAA,yBAAyB;IAAE,GAAG;IAAS,cAAc,KAAK;IAAG;GAAiB,GAAG,OAAO;GAC7G,OAAO;IACL,SAAS,OAAO;IAChB,sBAAsB,OAAO,aAAa,gBAAgB;IAC1D,MAAM,QAAQ,gBAAgB;KAE5B,MAAM,OAAO,QAAQ,MAAM,cAAc;KACzC,MAAM,OAAO,aAAa,QAAQ;IACpC;GACF;EACF;EACA,cAAc,OAAO,cAAcC,6BAAAA,2BAA2BC,6BAAAA,kBAAkB,KAAK,GAAG,SAAS,CAAC;EAClG,MAAM,OAAO;GACX,MAAM,YAAYC,UAAAA,QAAK,KAAK,KAAK,GAAGC,cAAAA,iBAAiB;GACrD,MAAM,QAAQ,MAAMC,iBAAAA,QAAG,QAAQ,SAAS,CAAC,CAAC,OAAO,UAAiC;IAChF,IAAI,MAAM,SAAS,UAAU,OAAO,CAAC;IACrC,MAAM;GACR,CAAC;GACD,MAAM,SAA4B,CAAC;GACnC,KAAK,MAAM,QAAQ,OAAO;IACxB,IAAI,CAAC,4BAA4B,KAAK,IAAI,GAAG;IAC7C,MAAM,EAAE,YAAY,MAAMA,iBAAAA,QAAG,KAAKF,UAAAA,QAAK,KAAK,WAAW,IAAI,CAAC;IAC5D,OAAO,KAAK;KAAE,WAAWA,UAAAA,QAAK,SAAS,MAAM,SAAS;KAAG,WAAW;IAAQ,CAAC;GAC/E;GACA,OAAO;EACT;CACF;AACF;;AAGA,SAAgB,mBAAmB,UAA+B,CAAC,GAAe;CAChF,OAAO;EACL,YAAY;EACZ,eAAe,QAAQ,iBAAiBG,QAAAA,QAAG,QAAQ;EAEnD,oBACE,QAAQ,aAAa,YAAY,QAAQ,aAAa,UACjD,QAAQ,sBAAsBA,QAAAA,QAAG,OAAO,IACzC,KAAA;EACN,MAAM,QAAQ,IAAIC,oCAAAA,iBAAiB,EAAE,IAAI,CAAC;EAC1C,QAAQ;GAAE,YAAY;GAAG,OAAO,UAAA,GAASC,+CAAAA,uBAAAA,CAAuB,IAAI;EAAE;EACtE,UAAU,mBAAmB,OAAO;CACtC;AACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PoPlatform } from "./src/schemas/platform.mjs";
|
|
2
|
+
import { HistoryOwnership } from "./src/services/historyOwnership/type.mjs";
|
|
3
|
+
//#region src/services/nodePlatform/index.d.ts
|
|
4
|
+
export interface NodePlatformOptions {
|
|
5
|
+
/** Defaults to the user's home directory. */
|
|
6
|
+
readonly homeDirectory?: string;
|
|
7
|
+
/** Host-admitted override; defaults to this Node host's OS temporary directory. */
|
|
8
|
+
readonly temporaryDirectory?: string;
|
|
9
|
+
/** Where the launching entry keeps agent sessions. Without it `sessions` refuses every call. */
|
|
10
|
+
readonly sessionsRoot?: string;
|
|
11
|
+
/** Shared ownership for every session this platform opens; created on first open when absent. */
|
|
12
|
+
readonly historyOwnership?: HistoryOwnership;
|
|
13
|
+
}
|
|
14
|
+
/** The Node host: local files and shell, `node:sqlite` files, and lock-owned durable-v1 sessions. */
|
|
15
|
+
export declare function createNodePlatform(options?: NodePlatformOptions): PoPlatform;
|
|
16
|
+
//#endregion
|
|
17
|
+
//# sourceMappingURL=nodePlatform.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodePlatform.d.mts","names":[],"sources":["../src/services/nodePlatform/index.ts"],"mappings":";;;iBAaiB;;WAEN;;WAEA;;WAEA;;WAEA,mBAAmB;;;wBA4Cd,mBAAmB,UAAS,sBAA2B"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { createHistoryOwnership } from "./historyOwnership.mjs";
|
|
2
|
+
import { DURABLE_DIRECTORY } from "./src/services/durableSession/index.mjs";
|
|
3
|
+
import { openReadOnlyDurableStorage, openSqliteSessionStorage, sqliteSessionFile } from "./sqliteSessionStorage.mjs";
|
|
4
|
+
import os from "node:os";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import fs from "node:fs/promises";
|
|
7
|
+
import { openNodeSqliteDatabase } from "@earendil-works/pi-durable/storage/sqlite/node";
|
|
8
|
+
import { NodeExecutionEnv } from "@earendil-works/pi-durable/env/node";
|
|
9
|
+
//#region src/services/nodePlatform/index.ts
|
|
10
|
+
/** One lock-owned durable-v1 SQLite file per agent session. */
|
|
11
|
+
function createNodeSessions(options) {
|
|
12
|
+
let historyOwnership = options.historyOwnership;
|
|
13
|
+
const root = () => {
|
|
14
|
+
if (options.sessionsRoot === void 0) throw new Error("This Node platform was given no sessions root.");
|
|
15
|
+
return options.sessionsRoot;
|
|
16
|
+
};
|
|
17
|
+
return {
|
|
18
|
+
abiVersion: 1,
|
|
19
|
+
async open(request, context) {
|
|
20
|
+
historyOwnership ??= createHistoryOwnership({ sourceFormat: "sqlite" });
|
|
21
|
+
const opened = await openSqliteSessionStorage({
|
|
22
|
+
...request,
|
|
23
|
+
sessionsRoot: root(),
|
|
24
|
+
historyOwnership
|
|
25
|
+
}, context);
|
|
26
|
+
return {
|
|
27
|
+
storage: opened.storage,
|
|
28
|
+
assertWritable: () => opened.historyLease.assertQuiescent(),
|
|
29
|
+
async release(releaseContext) {
|
|
30
|
+
await opened.session.close(releaseContext);
|
|
31
|
+
await opened.historyLease.release();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
openReadOnly: async (sessionId) => openReadOnlyDurableStorage(sqliteSessionFile(root(), sessionId)),
|
|
36
|
+
async list() {
|
|
37
|
+
const directory = path.join(root(), DURABLE_DIRECTORY);
|
|
38
|
+
const files = await fs.readdir(directory).catch((error) => {
|
|
39
|
+
if (error.code === "ENOENT") return [];
|
|
40
|
+
throw error;
|
|
41
|
+
});
|
|
42
|
+
const stored = [];
|
|
43
|
+
for (const file of files) {
|
|
44
|
+
if (!/^[a-zA-Z0-9_-]+\.sqlite$/u.test(file)) continue;
|
|
45
|
+
const { mtimeMs } = await fs.stat(path.join(directory, file));
|
|
46
|
+
stored.push({
|
|
47
|
+
sessionId: path.basename(file, ".sqlite"),
|
|
48
|
+
updatedAt: mtimeMs
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return stored;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** The Node host: local files and shell, `node:sqlite` files, and lock-owned durable-v1 sessions. */
|
|
56
|
+
function createNodePlatform(options = {}) {
|
|
57
|
+
return {
|
|
58
|
+
abiVersion: 1,
|
|
59
|
+
homeDirectory: options.homeDirectory ?? os.homedir(),
|
|
60
|
+
temporaryDirectory: process.platform === "darwin" || process.platform === "linux" ? options.temporaryDirectory ?? os.tmpdir() : void 0,
|
|
61
|
+
env: (cwd) => new NodeExecutionEnv({ cwd }),
|
|
62
|
+
sqlite: {
|
|
63
|
+
abiVersion: 1,
|
|
64
|
+
open: (file) => openNodeSqliteDatabase(file)
|
|
65
|
+
},
|
|
66
|
+
sessions: createNodeSessions(options)
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//#endregion
|
|
70
|
+
export { createNodePlatform };
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=nodePlatform.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodePlatform.mjs","names":[],"sources":["../src/services/nodePlatform/index.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport os from 'node:os';\nimport path from 'node:path';\n\nimport { NodeExecutionEnv } from '@earendil-works/pi-durable/env/node';\nimport { openNodeSqliteDatabase } from '@earendil-works/pi-durable/storage/sqlite/node';\n\nimport type { PoPlatform, PoSessionStorageService, PoStoredSession } from '../../schemas/platform';\nimport { DURABLE_DIRECTORY } from '../durableSession';\nimport { createHistoryOwnership } from '../historyOwnership';\nimport type { HistoryOwnership } from '../historyOwnership/type';\nimport { openReadOnlyDurableStorage, openSqliteSessionStorage, sqliteSessionFile } from '../sqliteSessionStorage';\n\nexport interface NodePlatformOptions {\n /** Defaults to the user's home directory. */\n readonly homeDirectory?: string;\n /** Host-admitted override; defaults to this Node host's OS temporary directory. */\n readonly temporaryDirectory?: string;\n /** Where the launching entry keeps agent sessions. Without it `sessions` refuses every call. */\n readonly sessionsRoot?: string;\n /** Shared ownership for every session this platform opens; created on first open when absent. */\n readonly historyOwnership?: HistoryOwnership;\n}\n\n/** One lock-owned durable-v1 SQLite file per agent session. */\nfunction createNodeSessions(options: NodePlatformOptions): PoSessionStorageService {\n let historyOwnership = options.historyOwnership;\n const root = () => {\n if (options.sessionsRoot === undefined) throw new Error('This Node platform was given no sessions root.');\n return options.sessionsRoot;\n };\n return {\n abiVersion: 1,\n async open(request, context) {\n historyOwnership ??= createHistoryOwnership({ sourceFormat: 'sqlite' });\n const opened = await openSqliteSessionStorage({ ...request, sessionsRoot: root(), historyOwnership }, context);\n return {\n storage: opened.storage,\n assertWritable: () => opened.historyLease.assertQuiescent(),\n async release(releaseContext) {\n // The lease outlives a failed close so no second writer opens a file still being written.\n await opened.session.close(releaseContext);\n await opened.historyLease.release();\n },\n };\n },\n openReadOnly: async (sessionId) => openReadOnlyDurableStorage(sqliteSessionFile(root(), sessionId)),\n async list() {\n const directory = path.join(root(), DURABLE_DIRECTORY);\n const files = await fs.readdir(directory).catch((error: NodeJS.ErrnoException) => {\n if (error.code === 'ENOENT') return [];\n throw error;\n });\n const stored: PoStoredSession[] = [];\n for (const file of files) {\n if (!/^[a-zA-Z0-9_-]+\\.sqlite$/u.test(file)) continue;\n const { mtimeMs } = await fs.stat(path.join(directory, file));\n stored.push({ sessionId: path.basename(file, '.sqlite'), updatedAt: mtimeMs });\n }\n return stored;\n },\n };\n}\n\n/** The Node host: local files and shell, `node:sqlite` files, and lock-owned durable-v1 sessions. */\nexport function createNodePlatform(options: NodePlatformOptions = {}): PoPlatform {\n return {\n abiVersion: 1,\n homeDirectory: options.homeDirectory ?? os.homedir(),\n // Secure session-file protection and viewing currently require POSIX ownership semantics.\n temporaryDirectory:\n process.platform === 'darwin' || process.platform === 'linux'\n ? (options.temporaryDirectory ?? os.tmpdir())\n : undefined,\n env: (cwd) => new NodeExecutionEnv({ cwd }),\n sqlite: { abiVersion: 1, open: (file) => openNodeSqliteDatabase(file) },\n sessions: createNodeSessions(options),\n };\n}\n"],"mappings":";;;;;;;;;;AAyBA,SAAS,mBAAmB,SAAuD;CACjF,IAAI,mBAAmB,QAAQ;CAC/B,MAAM,aAAa;EACjB,IAAI,QAAQ,iBAAiB,KAAA,GAAW,MAAM,IAAI,MAAM,gDAAgD;EACxG,OAAO,QAAQ;CACjB;CACA,OAAO;EACL,YAAY;EACZ,MAAM,KAAK,SAAS,SAAS;GAC3B,qBAAqB,uBAAuB,EAAE,cAAc,SAAS,CAAC;GACtE,MAAM,SAAS,MAAM,yBAAyB;IAAE,GAAG;IAAS,cAAc,KAAK;IAAG;GAAiB,GAAG,OAAO;GAC7G,OAAO;IACL,SAAS,OAAO;IAChB,sBAAsB,OAAO,aAAa,gBAAgB;IAC1D,MAAM,QAAQ,gBAAgB;KAE5B,MAAM,OAAO,QAAQ,MAAM,cAAc;KACzC,MAAM,OAAO,aAAa,QAAQ;IACpC;GACF;EACF;EACA,cAAc,OAAO,cAAc,2BAA2B,kBAAkB,KAAK,GAAG,SAAS,CAAC;EAClG,MAAM,OAAO;GACX,MAAM,YAAY,KAAK,KAAK,KAAK,GAAG,iBAAiB;GACrD,MAAM,QAAQ,MAAM,GAAG,QAAQ,SAAS,CAAC,CAAC,OAAO,UAAiC;IAChF,IAAI,MAAM,SAAS,UAAU,OAAO,CAAC;IACrC,MAAM;GACR,CAAC;GACD,MAAM,SAA4B,CAAC;GACnC,KAAK,MAAM,QAAQ,OAAO;IACxB,IAAI,CAAC,4BAA4B,KAAK,IAAI,GAAG;IAC7C,MAAM,EAAE,YAAY,MAAM,GAAG,KAAK,KAAK,KAAK,WAAW,IAAI,CAAC;IAC5D,OAAO,KAAK;KAAE,WAAW,KAAK,SAAS,MAAM,SAAS;KAAG,WAAW;IAAQ,CAAC;GAC/E;GACA,OAAO;EACT;CACF;AACF;;AAGA,SAAgB,mBAAmB,UAA+B,CAAC,GAAe;CAChF,OAAO;EACL,YAAY;EACZ,eAAe,QAAQ,iBAAiB,GAAG,QAAQ;EAEnD,oBACE,QAAQ,aAAa,YAAY,QAAQ,aAAa,UACjD,QAAQ,sBAAsB,GAAG,OAAO,IACzC,KAAA;EACN,MAAM,QAAQ,IAAI,iBAAiB,EAAE,IAAI,CAAC;EAC1C,QAAQ;GAAE,YAAY;GAAG,OAAO,SAAS,uBAAuB,IAAI;EAAE;EACtE,UAAU,mBAAmB,OAAO;CACtC;AACF"}
|
package/dist/notification.cjs
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_notification = require("./src/schemas/notification.cjs");
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
14
|
-
exports.
|
|
15
|
-
exports.
|
|
16
|
-
exports.
|
|
17
|
-
exports.
|
|
3
|
+
exports.MAX_PO_NOTIFICATION_BODY_CHARACTERS = require_notification.MAX_PO_NOTIFICATION_BODY_CHARACTERS;
|
|
4
|
+
exports.MAX_PO_NOTIFICATION_SUBTITLE_CHARACTERS = require_notification.MAX_PO_NOTIFICATION_SUBTITLE_CHARACTERS;
|
|
5
|
+
exports.MAX_PO_NOTIFICATION_TITLE_CHARACTERS = require_notification.MAX_PO_NOTIFICATION_TITLE_CHARACTERS;
|
|
6
|
+
exports.PO_NOTIFICATION_ENTRY_TYPE = require_notification.PO_NOTIFICATION_ENTRY_TYPE;
|
|
7
|
+
exports.PO_NOTIFICATION_ENTRY_VERSION = require_notification.PO_NOTIFICATION_ENTRY_VERSION;
|
|
8
|
+
exports.PO_NOTIFICATION_SERVICE = require_notification.PO_NOTIFICATION_SERVICE;
|
|
9
|
+
exports.PoNotificationEntryDataSchema = require_notification.PoNotificationEntryDataSchema;
|
|
10
|
+
exports.PoNotificationLevelSchema = require_notification.PoNotificationLevelSchema;
|
|
11
|
+
exports.PoNotificationRequestSchema = require_notification.PoNotificationRequestSchema;
|
|
12
|
+
exports.createPoNotificationEntryData = require_notification.createPoNotificationEntryData;
|
|
13
|
+
exports.isPoNotificationEntryData = require_notification.isPoNotificationEntryData;
|
|
14
|
+
exports.isPoNotificationRequest = require_notification.isPoNotificationRequest;
|
|
15
|
+
exports.normalizePoNotificationRequest = require_notification.normalizePoNotificationRequest;
|
|
16
|
+
exports.readPoNotificationService = require_notification.readPoNotificationService;
|
|
17
|
+
exports.requirePoNotificationService = require_notification.requirePoNotificationService;
|
package/dist/notification.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { MAX_PO_NOTIFICATION_BODY_CHARACTERS, MAX_PO_NOTIFICATION_SUBTITLE_CHARACTERS, MAX_PO_NOTIFICATION_TITLE_CHARACTERS, PO_NOTIFICATION_ENTRY_TYPE, PO_NOTIFICATION_ENTRY_VERSION, PO_NOTIFICATION_SERVICE, PoNotificationEntryData, PoNotificationEntryDataSchema, PoNotificationLevel, PoNotificationLevelSchema, PoNotificationRequest, PoNotificationRequestSchema, PoNotificationService, createPoNotificationEntryData, isPoNotificationEntryData, isPoNotificationRequest, normalizePoNotificationRequest, readPoNotificationService, requirePoNotificationService } from "./src/schemas/notification.mjs";
|
|
2
|
+
export { MAX_PO_NOTIFICATION_BODY_CHARACTERS, MAX_PO_NOTIFICATION_SUBTITLE_CHARACTERS, MAX_PO_NOTIFICATION_TITLE_CHARACTERS, PO_NOTIFICATION_ENTRY_TYPE, PO_NOTIFICATION_ENTRY_VERSION, PO_NOTIFICATION_SERVICE, type PoNotificationEntryData, PoNotificationEntryDataSchema, type PoNotificationLevel, PoNotificationLevelSchema, type PoNotificationRequest, PoNotificationRequestSchema, type PoNotificationService, createPoNotificationEntryData, isPoNotificationEntryData, isPoNotificationRequest, normalizePoNotificationRequest, readPoNotificationService, requirePoNotificationService };
|