@agimon-ai/po-core 0.0.0-alpha.2 → 0.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +149 -21
- package/NOTICE +41 -0
- package/dist/agentModel.cjs +1 -1
- package/dist/agentModel.d.mts +2 -2
- package/dist/agentModel.mjs +1 -2
- package/dist/apiContracts.cjs +623 -802
- package/dist/apiContracts.cjs.map +1 -1
- package/dist/apiContracts.d.mts +277 -615
- package/dist/apiContracts.d.mts.map +1 -1
- package/dist/apiContracts.mjs +617 -794
- package/dist/apiContracts.mjs.map +1 -1
- package/dist/askUser.cjs +2 -2
- package/dist/askUser.d.mts +2 -2
- package/dist/askUser.mjs +1 -2
- package/dist/authorTools.mjs +1 -2
- package/dist/backgroundWork.cjs +3 -3
- package/dist/backgroundWork.d.mts +2 -2
- package/dist/backgroundWork.mjs +1 -2
- package/dist/bundleAssetPolicy.mjs +1 -2
- package/dist/chatgptAuth.cjs +3 -2
- package/dist/chatgptAuth.d.mts +3 -2
- package/dist/chatgptAuth.mjs +2 -1
- package/dist/childProcess.cjs +1 -1
- package/dist/childProcess.d.mts +2 -2
- package/dist/childProcess.mjs +1 -2
- package/dist/childSession.cjs +11 -6
- package/dist/childSession.d.mts +3 -3
- package/dist/childSession.mjs +3 -3
- package/dist/cockpitContainer.mjs +1 -2
- package/dist/config.cjs +1 -1
- package/dist/config.d.mts +3 -3
- package/dist/config.mjs +1 -2
- package/dist/contextApi.cjs +1 -0
- package/dist/contextApi.d.mts +2 -2
- package/dist/contextApi.mjs +2 -2
- package/dist/contextContributions.cjs +4 -4
- package/dist/contextContributions.d.mts +3 -3
- package/dist/contextContributions.mjs +3 -3
- package/dist/contextDetailStore.cjs +7 -5
- package/dist/contextDetailStore.cjs.map +1 -1
- package/dist/contextDetailStore.d.mts +2 -1
- package/dist/contextDetailStore.d.mts.map +1 -1
- package/dist/contextDetailStore.mjs +6 -4
- package/dist/contextDetailStore.mjs.map +1 -1
- package/dist/contextProjection.cjs +7 -2
- package/dist/contextProjection.cjs.map +1 -1
- package/dist/contextProjection.d.mts +4 -1
- package/dist/contextProjection.d.mts.map +1 -1
- package/dist/contextProjection.mjs +5 -2
- package/dist/contextProjection.mjs.map +1 -1
- package/dist/cordisHost.cjs +11 -11
- package/dist/cordisHost.d.mts +2 -2
- package/dist/cordisHost.mjs +1 -2
- package/dist/delegation.cjs +8 -8
- package/dist/delegation.d.mts +2 -2
- package/dist/delegation.mjs +1 -2
- package/dist/executionBudget.cjs +4 -3
- package/dist/executionBudget.cjs.map +1 -1
- package/dist/executionBudget.d.mts +2 -2
- package/dist/executionBudget.d.mts.map +1 -1
- package/dist/executionBudget.mjs +4 -3
- package/dist/executionBudget.mjs.map +1 -1
- package/dist/extensionFile.cjs +5 -0
- package/dist/extensionFile.d.mts +4 -2
- package/dist/extensionFile.mjs +4 -2
- package/dist/footer.d.mts +2 -2
- package/dist/footer.mjs +1 -2
- package/dist/headless.cjs +14 -14
- package/dist/headless.d.mts +2 -2
- package/dist/headless.mjs +1 -2
- package/dist/headlessHub.cjs +308 -109
- package/dist/headlessHub.cjs.map +1 -1
- package/dist/headlessHub.d.mts +71 -36
- package/dist/headlessHub.d.mts.map +1 -1
- package/dist/headlessHub.mjs +309 -110
- package/dist/headlessHub.mjs.map +1 -1
- package/dist/headlessProtocol.cjs +327 -0
- package/dist/headlessProtocol.cjs.map +1 -0
- package/dist/headlessProtocol.d.mts +30 -0
- package/dist/headlessProtocol.d.mts.map +1 -0
- package/dist/headlessProtocol.mjs +326 -0
- package/dist/headlessProtocol.mjs.map +1 -0
- package/dist/headlessServer.cjs +166 -151
- package/dist/headlessServer.cjs.map +1 -1
- package/dist/headlessServer.d.mts +13 -5
- package/dist/headlessServer.d.mts.map +1 -1
- package/dist/headlessServer.mjs +166 -151
- package/dist/headlessServer.mjs.map +1 -1
- package/dist/headlessSessionHost.d.mts +58 -21
- package/dist/headlessSessionHost.d.mts.map +1 -1
- package/dist/help.cjs +20 -20
- package/dist/help.d.mts +2 -2
- package/dist/help.mjs +2 -2
- package/dist/history.cjs +16 -20
- package/dist/history.d.mts +9 -7
- package/dist/history.mjs +6 -7
- package/dist/historyOwnership.cjs.map +1 -1
- package/dist/historyOwnership.d.mts +1 -1
- package/dist/historyOwnership.mjs.map +1 -1
- package/dist/hubChannel.cjs +9 -0
- package/dist/hubChannel.d.mts +3 -2
- package/dist/hubChannel.mjs +3 -2
- package/dist/index.cjs +26 -28
- package/dist/index.d.mts +6 -6
- package/dist/index.mjs +6 -6
- package/dist/interop/chord.mjs +1 -0
- package/dist/interop/chordContext.mjs +1 -0
- package/dist/json.cjs +11 -5
- package/dist/json.d.mts +4 -2
- package/dist/json.mjs +4 -2
- package/dist/kernel.cjs +1 -1
- package/dist/kernel.d.mts +3 -3
- package/dist/kernel.mjs +1 -2
- package/dist/leader.d.mts +2 -2
- package/dist/leader.mjs +1 -2
- package/dist/logSinkTelemetry.mjs +1 -2
- package/dist/machineApi.cjs +80 -74
- package/dist/machineApi.cjs.map +1 -1
- package/dist/machineApi.d.mts +5 -2
- package/dist/machineApi.d.mts.map +1 -1
- package/dist/machineApi.mjs +78 -71
- package/dist/machineApi.mjs.map +1 -1
- package/dist/main.cjs +2 -1
- package/dist/main.d.mts +2 -1
- package/dist/main.mjs +2 -1
- package/dist/mcpFacet.d.mts +3 -3
- package/dist/mcpProjection.cjs +13 -13
- package/dist/mcpProjection.d.mts +2 -2
- package/dist/mcpProjection.mjs +1 -2
- package/dist/mcpSchemaCost.cjs +4 -4
- package/dist/mcpSchemaCost.cjs.map +1 -1
- package/dist/mcpSchemaCost.d.mts +2 -2
- package/dist/mcpSchemaCost.mjs +4 -4
- package/dist/mcpSchemaCost.mjs.map +1 -1
- package/dist/mcpSession.cjs +7 -7
- package/dist/mcpSession.d.mts +2 -2
- package/dist/mcpSession.mjs +1 -2
- package/dist/mcpStatus.cjs +2 -2
- package/dist/mcpStatus.d.mts +2 -2
- package/dist/mcpStatus.mjs +1 -2
- package/dist/mcpToolResolver.cjs +3 -3
- package/dist/mcpToolResolver.d.mts +2 -2
- package/dist/mcpToolResolver.mjs +1 -2
- package/dist/mcpWidget.d.mts +2 -2
- package/dist/moduleResolution.cjs +43 -8
- package/dist/moduleResolution.cjs.map +1 -1
- package/dist/moduleResolution.d.mts +10 -1
- package/dist/moduleResolution.d.mts.map +1 -1
- package/dist/moduleResolution.mjs +40 -7
- package/dist/moduleResolution.mjs.map +1 -1
- package/dist/narration.cjs +3 -3
- package/dist/narration.d.mts +2 -2
- package/dist/narration.mjs +1 -2
- package/dist/native.cjs +9 -0
- package/dist/native.d.mts +4 -3
- package/dist/native.mjs +3 -2
- package/dist/nodePlatform.cjs +77 -0
- package/dist/nodePlatform.cjs.map +1 -0
- package/dist/nodePlatform.d.mts +17 -0
- package/dist/nodePlatform.d.mts.map +1 -0
- package/dist/nodePlatform.mjs +72 -0
- package/dist/nodePlatform.mjs.map +1 -0
- package/dist/notification.cjs +15 -15
- package/dist/notification.d.mts +2 -2
- package/dist/notification.mjs +1 -2
- package/dist/packageApi.cjs +11 -11
- package/dist/packageApi.d.mts +2 -2
- package/dist/packageApi.mjs +2 -2
- package/dist/packageApiServer.cjs +45 -27
- package/dist/packageApiServer.cjs.map +1 -1
- package/dist/packageApiServer.d.mts +36 -26
- package/dist/packageApiServer.d.mts.map +1 -1
- package/dist/packageApiServer.mjs +44 -26
- package/dist/packageApiServer.mjs.map +1 -1
- package/dist/piSettings.cjs +41 -20
- package/dist/piSettings.d.mts +4 -2
- package/dist/piSettings.mjs +4 -2
- package/dist/platform.cjs +62 -0
- package/dist/platform.d.mts +10 -0
- package/dist/platform.mjs +10 -0
- package/dist/pluginProtocol.cjs +7 -8
- package/dist/pluginProtocol.d.mts +2 -2
- package/dist/pluginProtocol.mjs +1 -2
- package/dist/poPackage.cjs +12 -0
- package/dist/poPackage.d.mts +3 -0
- package/dist/poPackage.mjs +3 -0
- package/dist/profileIdentity.cjs +1 -1
- package/dist/profileIdentity.d.mts +2 -2
- package/dist/profileIdentity.mjs +1 -2
- package/dist/protocol.cjs +3 -3
- package/dist/protocol.d.mts +2 -2
- package/dist/protocol.mjs +1 -2
- package/dist/readiness.cjs +6 -6
- package/dist/readiness.d.mts +2 -2
- package/dist/readiness.mjs +1 -2
- package/dist/remoteApi.cjs.map +1 -1
- package/dist/remoteApi.d.mts +2 -2
- package/dist/remoteApi.mjs.map +1 -1
- package/dist/remoteRuntime.cjs +42 -65
- package/dist/remoteRuntime.cjs.map +1 -1
- package/dist/remoteRuntime.d.mts +3 -2
- package/dist/remoteRuntime.d.mts.map +1 -1
- package/dist/remoteRuntime.mjs +41 -62
- package/dist/remoteRuntime.mjs.map +1 -1
- package/dist/runtimeConfig.cjs +4 -4
- package/dist/runtimeConfig.cjs.map +1 -1
- package/dist/runtimeConfig.d.mts +10 -9
- package/dist/runtimeConfig.d.mts.map +1 -1
- package/dist/runtimeConfig.mjs +4 -4
- package/dist/runtimeConfig.mjs.map +1 -1
- package/dist/runtimeContextApi.cjs +10 -3
- package/dist/runtimeContextApi.cjs.map +1 -1
- package/dist/runtimeContextApi.d.mts +3 -3
- package/dist/runtimeContextApi.d.mts.map +1 -1
- package/dist/runtimeContextApi.mjs +10 -3
- package/dist/runtimeContextApi.mjs.map +1 -1
- package/dist/runtimeCordisHost.cjs +46 -46
- package/dist/runtimeCordisHost.cjs.map +1 -1
- package/dist/runtimeCordisHost.d.mts +29 -28
- package/dist/runtimeCordisHost.d.mts.map +1 -1
- package/dist/runtimeCordisHost.mjs +42 -42
- package/dist/runtimeCordisHost.mjs.map +1 -1
- package/dist/runtimeIdentity.cjs +6 -9
- package/dist/runtimeIdentity.cjs.map +1 -1
- package/dist/runtimeIdentity.d.mts +5 -1
- package/dist/runtimeIdentity.d.mts.map +1 -1
- package/dist/runtimeIdentity.mjs +5 -8
- package/dist/runtimeIdentity.mjs.map +1 -1
- package/dist/runtimeJson.cjs +10 -45
- package/dist/runtimeJson.d.mts +3 -22
- package/dist/runtimeJson.mjs +3 -39
- package/dist/runtimeLogSinkTelemetry.cjs +19 -19
- package/dist/runtimeLogSinkTelemetry.cjs.map +1 -1
- package/dist/runtimeLogSinkTelemetry.d.mts +19 -19
- package/dist/runtimeLogSinkTelemetry.mjs +19 -19
- package/dist/runtimeLogSinkTelemetry.mjs.map +1 -1
- package/dist/runtimePackages.cjs +7 -2
- package/dist/runtimePackages.cjs.map +1 -1
- package/dist/runtimePackages.d.mts +4 -1
- package/dist/runtimePackages.d.mts.map +1 -1
- package/dist/runtimePackages.mjs +7 -2
- package/dist/runtimePackages.mjs.map +1 -1
- package/dist/runtimePiSettings.cjs +40 -263
- package/dist/runtimePiSettings.d.mts +3 -72
- package/dist/runtimePiSettings.mjs +3 -241
- package/dist/runtimeProtocol.cjs +19 -19
- package/dist/runtimeProtocol.cjs.map +1 -1
- package/dist/runtimeProtocol.d.mts +7 -7
- package/dist/runtimeProtocol.d.mts.map +1 -1
- package/dist/runtimeProtocol.mjs +17 -17
- package/dist/runtimeProtocol.mjs.map +1 -1
- package/dist/runtimeTransition.cjs +9 -9
- package/dist/runtimeTransition.cjs.map +1 -1
- package/dist/runtimeTransition.d.mts +10 -10
- package/dist/runtimeTransition.d.mts.map +1 -1
- package/dist/runtimeTransition.mjs +7 -7
- package/dist/runtimeTransition.mjs.map +1 -1
- package/dist/sandboxHarness.mjs +1 -2
- package/dist/server.cjs +3 -7
- package/dist/server.d.mts +6 -6
- package/dist/server.mjs +3 -4
- package/dist/serverPlugin.cjs +39 -0
- package/dist/serverPlugin.d.mts +12 -0
- package/dist/serverPlugin.mjs +11 -0
- package/dist/serverTelemetry.cjs +1 -1
- package/dist/serverTelemetry.cjs.map +1 -1
- package/dist/serverTelemetry.d.mts +2 -2
- package/dist/serverTelemetry.mjs +2 -2
- package/dist/serverTelemetry.mjs.map +1 -1
- package/dist/sessionFilesApi.cjs +41 -37
- package/dist/sessionFilesApi.cjs.map +1 -1
- package/dist/sessionFilesApi.d.mts +6 -3
- package/dist/sessionFilesApi.d.mts.map +1 -1
- package/dist/sessionFilesApi.mjs +41 -36
- package/dist/sessionFilesApi.mjs.map +1 -1
- package/dist/sessionProtocol.cjs +31 -6
- package/dist/sessionProtocol.d.mts +8 -3
- package/dist/sessionProtocol.mjs +8 -2
- package/dist/skills.cjs +5 -5
- package/dist/skills.d.mts +2 -2
- package/dist/skills.mjs +1 -2
- package/dist/sqliteSessionStorage.cjs +28 -50
- package/dist/sqliteSessionStorage.cjs.map +1 -1
- package/dist/sqliteSessionStorage.d.mts +13 -20
- package/dist/sqliteSessionStorage.d.mts.map +1 -1
- package/dist/sqliteSessionStorage.mjs +25 -48
- package/dist/sqliteSessionStorage.mjs.map +1 -1
- package/dist/src/constants/agentSettled.cjs +7 -0
- package/dist/src/constants/agentSettled.cjs.map +1 -0
- package/dist/src/constants/agentSettled.mjs +7 -0
- package/dist/src/constants/agentSettled.mjs.map +1 -0
- package/dist/src/constants/contextApi.cjs +3 -1
- package/dist/src/constants/contextApi.cjs.map +1 -1
- package/dist/src/constants/contextApi.d.mts +2 -1
- package/dist/src/constants/contextApi.d.mts.map +1 -1
- package/dist/src/constants/contextApi.mjs +3 -2
- package/dist/src/constants/contextApi.mjs.map +1 -1
- package/dist/src/constants/voiceTools.cjs +6 -6
- package/dist/src/constants/voiceTools.cjs.map +1 -1
- package/dist/src/constants/voiceTools.d.mts +3 -3
- package/dist/src/constants/voiceTools.mjs +4 -4
- package/dist/src/constants/voiceTools.mjs.map +1 -1
- package/dist/src/extensions/extensionFile.cjs +22 -5
- package/dist/src/extensions/extensionFile.cjs.map +1 -1
- package/dist/src/extensions/extensionFile.d.mts +17 -4
- package/dist/src/extensions/extensionFile.d.mts.map +1 -1
- package/dist/src/extensions/extensionFile.mjs +22 -6
- package/dist/src/extensions/extensionFile.mjs.map +1 -1
- package/dist/src/extensions/serverPlugin.cjs +231 -92
- package/dist/src/extensions/serverPlugin.cjs.map +1 -1
- package/dist/src/extensions/serverPlugin.d.mts +2 -2
- package/dist/src/extensions/serverPlugin.d.mts.map +1 -1
- package/dist/src/extensions/serverPlugin.mjs +232 -93
- package/dist/src/extensions/serverPlugin.mjs.map +1 -1
- package/dist/src/pi/piSessionRuntime.cjs +349 -142
- package/dist/src/pi/piSessionRuntime.cjs.map +1 -1
- package/dist/src/pi/piSessionRuntime.d.mts +18 -17
- package/dist/src/pi/piSessionRuntime.d.mts.map +1 -1
- package/dist/src/pi/piSessionRuntime.mjs +342 -135
- package/dist/src/pi/piSessionRuntime.mjs.map +1 -1
- package/dist/src/schemas/agentModel.cjs +2 -2
- package/dist/src/schemas/agentModel.cjs.map +1 -1
- package/dist/src/schemas/agentModel.d.mts +1 -1
- package/dist/src/schemas/agentModel.mjs +2 -2
- package/dist/src/schemas/agentModel.mjs.map +1 -1
- package/dist/src/schemas/apiContracts.d.mts +2 -2
- package/dist/src/schemas/apiContracts.d.mts.map +1 -1
- package/dist/src/schemas/askUser.cjs +4 -4
- package/dist/src/schemas/askUser.cjs.map +1 -1
- package/dist/src/schemas/askUser.d.mts +4 -4
- package/dist/src/schemas/askUser.d.mts.map +1 -1
- package/dist/src/schemas/askUser.mjs +3 -3
- package/dist/src/schemas/askUser.mjs.map +1 -1
- package/dist/src/schemas/backgroundWork.cjs +10 -10
- package/dist/src/schemas/backgroundWork.cjs.map +1 -1
- package/dist/src/schemas/backgroundWork.d.mts +9 -9
- package/dist/src/schemas/backgroundWork.d.mts.map +1 -1
- package/dist/src/schemas/backgroundWork.mjs +8 -8
- package/dist/src/schemas/backgroundWork.mjs.map +1 -1
- package/dist/src/schemas/childProcess.cjs +5 -5
- package/dist/src/schemas/childProcess.cjs.map +1 -1
- package/dist/src/schemas/childProcess.d.mts +2 -2
- package/dist/src/schemas/childProcess.mjs +5 -5
- package/dist/src/schemas/childProcess.mjs.map +1 -1
- package/dist/src/schemas/contextContributions.cjs +10 -10
- package/dist/src/schemas/contextContributions.cjs.map +1 -1
- package/dist/src/schemas/contextContributions.d.mts +16 -16
- package/dist/src/schemas/contextContributions.d.mts.map +1 -1
- package/dist/src/schemas/contextContributions.mjs +8 -8
- package/dist/src/schemas/contextContributions.mjs.map +1 -1
- package/dist/src/schemas/delegation.cjs +17 -17
- package/dist/src/schemas/delegation.cjs.map +1 -1
- package/dist/src/schemas/delegation.d.mts +16 -16
- package/dist/src/schemas/delegation.d.mts.map +1 -1
- package/dist/src/schemas/delegation.mjs +10 -10
- package/dist/src/schemas/delegation.mjs.map +1 -1
- package/dist/src/schemas/extensionFile.d.mts +23 -19
- package/dist/src/schemas/extensionFile.d.mts.map +1 -1
- package/dist/src/schemas/footer.cjs.map +1 -1
- package/dist/src/schemas/footer.d.mts +5 -5
- package/dist/src/schemas/footer.d.mts.map +1 -1
- package/dist/src/schemas/footer.mjs.map +1 -1
- package/dist/src/schemas/headless.cjs +37 -37
- package/dist/src/schemas/headless.cjs.map +1 -1
- package/dist/src/schemas/headless.d.mts +100 -101
- package/dist/src/schemas/headless.d.mts.map +1 -1
- package/dist/src/schemas/headless.mjs +24 -24
- package/dist/src/schemas/headless.mjs.map +1 -1
- package/dist/src/schemas/help.cjs +60 -60
- package/dist/src/schemas/help.cjs.map +1 -1
- package/dist/src/schemas/help.d.mts +43 -43
- package/dist/src/schemas/help.d.mts.map +1 -1
- package/dist/src/schemas/help.mjs +41 -41
- package/dist/src/schemas/help.mjs.map +1 -1
- package/dist/src/schemas/home.cjs +127 -0
- package/dist/src/schemas/home.cjs.map +1 -0
- package/dist/src/schemas/home.d.mts +63 -0
- package/dist/src/schemas/home.d.mts.map +1 -0
- package/dist/src/schemas/home.mjs +121 -0
- package/dist/src/schemas/home.mjs.map +1 -0
- package/dist/src/schemas/httpApiContracts.cjs +441 -0
- package/dist/src/schemas/httpApiContracts.cjs.map +1 -0
- package/dist/src/schemas/httpApiContracts.d.mts +78 -0
- package/dist/src/schemas/httpApiContracts.d.mts.map +1 -0
- package/dist/src/schemas/httpApiContracts.mjs +434 -0
- package/dist/src/schemas/httpApiContracts.mjs.map +1 -0
- package/dist/src/schemas/hubChannel.cjs +3 -0
- package/dist/src/schemas/hubChannel.cjs.map +1 -1
- package/dist/src/schemas/hubChannel.d.mts +84 -60
- package/dist/src/schemas/hubChannel.d.mts.map +1 -1
- package/dist/src/schemas/hubChannel.mjs +3 -1
- package/dist/src/schemas/hubChannel.mjs.map +1 -1
- package/dist/src/schemas/leader.cjs.map +1 -1
- package/dist/src/schemas/leader.d.mts +3 -3
- package/dist/src/schemas/leader.d.mts.map +1 -1
- package/dist/src/schemas/leader.mjs.map +1 -1
- package/dist/src/schemas/mcpBundle.d.mts +3 -3
- package/dist/src/schemas/mcpFacet.cjs.map +1 -1
- package/dist/src/schemas/mcpFacet.d.mts +22 -22
- package/dist/src/schemas/mcpFacet.d.mts.map +1 -1
- package/dist/src/schemas/mcpFacet.mjs.map +1 -1
- package/dist/src/schemas/mcpProjection.cjs +41 -41
- package/dist/src/schemas/mcpProjection.cjs.map +1 -1
- package/dist/src/schemas/mcpProjection.d.mts +31 -30
- package/dist/src/schemas/mcpProjection.d.mts.map +1 -1
- package/dist/src/schemas/mcpProjection.mjs +29 -29
- package/dist/src/schemas/mcpProjection.mjs.map +1 -1
- package/dist/src/schemas/mcpSession.cjs +23 -23
- package/dist/src/schemas/mcpSession.cjs.map +1 -1
- package/dist/src/schemas/mcpSession.d.mts +12 -12
- package/dist/src/schemas/mcpSession.d.mts.map +1 -1
- package/dist/src/schemas/mcpSession.mjs +18 -18
- package/dist/src/schemas/mcpSession.mjs.map +1 -1
- package/dist/src/schemas/mcpStatus.cjs +5 -5
- package/dist/src/schemas/mcpStatus.cjs.map +1 -1
- package/dist/src/schemas/mcpStatus.d.mts +4 -4
- package/dist/src/schemas/mcpStatus.d.mts.map +1 -1
- package/dist/src/schemas/mcpStatus.mjs +4 -4
- package/dist/src/schemas/mcpStatus.mjs.map +1 -1
- package/dist/src/schemas/mcpToolResolver.cjs +9 -9
- package/dist/src/schemas/mcpToolResolver.cjs.map +1 -1
- package/dist/src/schemas/mcpToolResolver.d.mts +7 -7
- package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -1
- package/dist/src/schemas/mcpToolResolver.mjs +7 -7
- package/dist/src/schemas/mcpToolResolver.mjs.map +1 -1
- package/dist/src/schemas/narration.cjs +9 -9
- package/dist/src/schemas/narration.cjs.map +1 -1
- package/dist/src/schemas/narration.d.mts +5 -5
- package/dist/src/schemas/narration.d.mts.map +1 -1
- package/dist/src/schemas/narration.mjs +7 -7
- package/dist/src/schemas/narration.mjs.map +1 -1
- package/dist/src/schemas/notification.cjs +45 -45
- package/dist/src/schemas/notification.cjs.map +1 -1
- package/dist/src/schemas/notification.d.mts +22 -22
- package/dist/src/schemas/notification.d.mts.map +1 -1
- package/dist/src/schemas/notification.mjs +31 -31
- package/dist/src/schemas/notification.mjs.map +1 -1
- package/dist/src/schemas/packageApi.cjs +28 -28
- package/dist/src/schemas/packageApi.cjs.map +1 -1
- package/dist/src/schemas/packageApi.d.mts +91 -65
- package/dist/src/schemas/packageApi.d.mts.map +1 -1
- package/dist/src/schemas/packageApi.mjs +18 -18
- package/dist/src/schemas/packageApi.mjs.map +1 -1
- package/dist/src/schemas/platform.cjs +34 -0
- package/dist/src/schemas/platform.cjs.map +1 -0
- package/dist/src/schemas/platform.d.mts +75 -0
- package/dist/src/schemas/platform.d.mts.map +1 -0
- package/dist/src/schemas/platform.mjs +27 -0
- package/dist/src/schemas/platform.mjs.map +1 -0
- package/dist/src/schemas/pluginContributions.cjs.map +1 -1
- package/dist/src/schemas/pluginContributions.d.mts +12 -12
- package/dist/src/schemas/pluginContributions.d.mts.map +1 -1
- package/dist/src/schemas/pluginContributions.mjs.map +1 -1
- package/dist/src/schemas/pluginProtocol.cjs +24 -27
- package/dist/src/schemas/pluginProtocol.cjs.map +1 -1
- package/dist/src/schemas/pluginProtocol.d.mts +21 -21
- package/dist/src/schemas/pluginProtocol.d.mts.map +1 -1
- package/dist/src/schemas/pluginProtocol.mjs +18 -20
- package/dist/src/schemas/pluginProtocol.mjs.map +1 -1
- package/dist/src/schemas/profileIdentity.cjs +2 -2
- package/dist/src/schemas/profileIdentity.cjs.map +1 -1
- package/dist/src/schemas/profileIdentity.d.mts +1 -1
- package/dist/src/schemas/profileIdentity.mjs +2 -2
- package/dist/src/schemas/profileIdentity.mjs.map +1 -1
- package/dist/src/schemas/protocolChannelsContract.cjs +27 -0
- package/dist/src/schemas/protocolChannelsContract.cjs.map +1 -0
- package/dist/src/schemas/protocolChannelsContract.d.mts +37 -0
- package/dist/src/schemas/protocolChannelsContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolChannelsContract.mjs +25 -0
- package/dist/src/schemas/protocolChannelsContract.mjs.map +1 -0
- package/dist/src/schemas/protocolContracts.cjs +168 -0
- package/dist/src/schemas/protocolContracts.cjs.map +1 -0
- package/dist/src/schemas/protocolContracts.d.mts +69 -0
- package/dist/src/schemas/protocolContracts.d.mts.map +1 -0
- package/dist/src/schemas/protocolContracts.mjs +164 -0
- package/dist/src/schemas/protocolContracts.mjs.map +1 -0
- package/dist/src/schemas/protocolHubContract.cjs +51 -0
- package/dist/src/schemas/protocolHubContract.cjs.map +1 -0
- package/dist/src/schemas/protocolHubContract.d.mts +218 -0
- package/dist/src/schemas/protocolHubContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolHubContract.mjs +49 -0
- package/dist/src/schemas/protocolHubContract.mjs.map +1 -0
- package/dist/src/schemas/protocolSessionContract.cjs +22 -0
- package/dist/src/schemas/protocolSessionContract.cjs.map +1 -0
- package/dist/src/schemas/protocolSessionContract.d.mts +324 -0
- package/dist/src/schemas/protocolSessionContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolSessionContract.mjs +22 -0
- package/dist/src/schemas/protocolSessionContract.mjs.map +1 -0
- package/dist/src/schemas/protocolThreadContract.cjs +21 -0
- package/dist/src/schemas/protocolThreadContract.cjs.map +1 -0
- package/dist/src/schemas/protocolThreadContract.d.mts +29 -0
- package/dist/src/schemas/protocolThreadContract.d.mts.map +1 -0
- package/dist/src/schemas/protocolThreadContract.mjs +20 -0
- package/dist/src/schemas/protocolThreadContract.mjs.map +1 -0
- package/dist/src/schemas/readiness.cjs +36 -36
- package/dist/src/schemas/readiness.cjs.map +1 -1
- package/dist/src/schemas/readiness.d.mts +37 -37
- package/dist/src/schemas/readiness.d.mts.map +1 -1
- package/dist/src/schemas/readiness.mjs +31 -31
- package/dist/src/schemas/readiness.mjs.map +1 -1
- package/dist/src/schemas/serverBundle.d.mts +5 -5
- package/dist/src/schemas/serverPlugin.cjs +103 -0
- package/dist/src/schemas/serverPlugin.cjs.map +1 -0
- package/dist/src/schemas/serverPlugin.d.mts +176 -0
- package/dist/src/schemas/serverPlugin.d.mts.map +1 -0
- package/dist/src/schemas/serverPlugin.mjs +95 -0
- package/dist/src/schemas/serverPlugin.mjs.map +1 -0
- package/dist/src/schemas/serverScope.cjs +37 -0
- package/dist/src/schemas/serverScope.cjs.map +1 -0
- package/dist/src/schemas/serverScope.d.mts +77 -0
- package/dist/src/schemas/serverScope.d.mts.map +1 -0
- package/dist/src/schemas/serverScope.mjs +33 -0
- package/dist/src/schemas/serverScope.mjs.map +1 -0
- package/dist/src/schemas/sessionApiContracts.cjs +320 -0
- package/dist/src/schemas/sessionApiContracts.cjs.map +1 -0
- package/dist/src/schemas/sessionApiContracts.mjs +318 -0
- package/dist/src/schemas/sessionApiContracts.mjs.map +1 -0
- package/dist/src/schemas/sessionProtocol.cjs +20 -13
- package/dist/src/schemas/sessionProtocol.cjs.map +1 -1
- package/dist/src/schemas/sessionProtocol.d.mts +37 -54
- package/dist/src/schemas/sessionProtocol.d.mts.map +1 -1
- package/dist/src/schemas/sessionProtocol.mjs +17 -8
- package/dist/src/schemas/sessionProtocol.mjs.map +1 -1
- package/dist/src/schemas/skills.cjs +16 -16
- package/dist/src/schemas/skills.cjs.map +1 -1
- package/dist/src/schemas/skills.d.mts +7 -7
- package/dist/src/schemas/skills.d.mts.map +1 -1
- package/dist/src/schemas/skills.mjs +12 -12
- package/dist/src/schemas/skills.mjs.map +1 -1
- package/dist/src/schemas/toolOverrides.cjs +9 -9
- package/dist/src/schemas/toolOverrides.cjs.map +1 -1
- package/dist/src/schemas/toolOverrides.d.mts +8 -8
- package/dist/src/schemas/toolOverrides.d.mts.map +1 -1
- package/dist/src/schemas/toolOverrides.mjs +7 -7
- package/dist/src/schemas/toolOverrides.mjs.map +1 -1
- package/dist/src/schemas/toolSurface.cjs +9 -9
- package/dist/src/schemas/toolSurface.cjs.map +1 -1
- package/dist/src/schemas/toolSurface.d.mts +13 -13
- package/dist/src/schemas/toolSurface.d.mts.map +1 -1
- package/dist/src/schemas/toolSurface.mjs +7 -7
- package/dist/src/schemas/toolSurface.mjs.map +1 -1
- package/dist/src/schemas/uiHub.cjs +9 -9
- package/dist/src/schemas/uiHub.cjs.map +1 -1
- package/dist/src/schemas/uiHub.d.mts +12 -12
- package/dist/src/schemas/uiHub.d.mts.map +1 -1
- package/dist/src/schemas/uiHub.mjs +7 -7
- package/dist/src/schemas/uiHub.mjs.map +1 -1
- package/dist/src/server/directHarnessRuntime.cjs +691 -775
- package/dist/src/server/directHarnessRuntime.cjs.map +1 -1
- package/dist/src/server/directHarnessRuntime.d.mts +5 -1
- package/dist/src/server/directHarnessRuntime.d.mts.map +1 -0
- package/dist/src/server/directHarnessRuntime.mjs +671 -754
- package/dist/src/server/directHarnessRuntime.mjs.map +1 -1
- package/dist/src/server/largeFrameLink.cjs +47 -0
- package/dist/src/server/largeFrameLink.cjs.map +1 -0
- package/dist/src/server/largeFrameLink.mjs +47 -0
- package/dist/src/server/largeFrameLink.mjs.map +1 -0
- package/dist/src/server/liveImport.cjs +1 -1
- package/dist/src/server/liveImport.cjs.map +1 -1
- package/dist/src/server/liveImport.d.mts +1 -1
- package/dist/src/server/liveImport.mjs +1 -1
- package/dist/src/server/liveImport.mjs.map +1 -1
- package/dist/src/server/mcpBundleLoader.cjs.map +1 -1
- package/dist/src/server/mcpBundleLoader.d.mts +6 -6
- package/dist/src/server/mcpBundleLoader.d.mts.map +1 -1
- package/dist/src/server/mcpBundleLoader.mjs.map +1 -1
- package/dist/src/server/serverPackages.cjs +60 -0
- package/dist/src/server/serverPackages.cjs.map +1 -0
- package/dist/src/server/serverPackages.d.mts +44 -0
- package/dist/src/server/serverPackages.d.mts.map +1 -0
- package/dist/src/server/serverPackages.mjs +59 -0
- package/dist/src/server/serverPackages.mjs.map +1 -0
- package/dist/src/server/serverScope.cjs +510 -0
- package/dist/src/server/serverScope.cjs.map +1 -0
- package/dist/src/server/serverScope.d.mts +123 -0
- package/dist/src/server/serverScope.d.mts.map +1 -0
- package/dist/src/server/serverScope.mjs +510 -0
- package/dist/src/server/serverScope.mjs.map +1 -0
- package/dist/src/server/sessionMcpHandler.cjs +3 -3
- package/dist/src/server/sessionMcpHandler.cjs.map +1 -1
- package/dist/src/server/sessionMcpHandler.mjs +4 -4
- package/dist/src/server/sessionMcpHandler.mjs.map +1 -1
- package/dist/src/server/sessionMcpRoutes.cjs +2 -1
- package/dist/src/server/sessionMcpRoutes.cjs.map +1 -1
- package/dist/src/server/sessionMcpRoutes.mjs +2 -1
- package/dist/src/server/sessionMcpRoutes.mjs.map +1 -1
- package/dist/src/server/threadJournals.cjs +38 -107
- package/dist/src/server/threadJournals.cjs.map +1 -1
- package/dist/src/server/threadJournals.mjs +38 -104
- package/dist/src/server/threadJournals.mjs.map +1 -1
- package/dist/src/services/apiSurfaceAssert/index.cjs +1 -1
- package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -1
- package/dist/src/services/apiSurfaceAssert/index.d.mts +6 -6
- package/dist/src/services/apiSurfaceAssert/index.mjs +1 -1
- package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -1
- package/dist/src/services/chatgptAuth/index.cjs +1 -220
- package/dist/src/services/chatgptAuth/index.cjs.map +1 -1
- package/dist/src/services/chatgptAuth/index.d.mts +0 -18
- package/dist/src/services/chatgptAuth/index.d.mts.map +1 -1
- package/dist/src/services/chatgptAuth/index.mjs +1 -217
- package/dist/src/services/chatgptAuth/index.mjs.map +1 -1
- package/dist/src/services/chatgptImages/index.cjs +1 -1
- package/dist/src/services/chatgptImages/index.cjs.map +1 -1
- package/dist/src/services/chatgptImages/index.mjs +1 -1
- package/dist/src/services/chatgptImages/index.mjs.map +1 -1
- package/dist/src/services/chatgptLogin/index.cjs +230 -0
- package/dist/src/services/chatgptLogin/index.cjs.map +1 -0
- package/dist/src/services/chatgptLogin/index.d.mts +21 -0
- package/dist/src/services/chatgptLogin/index.d.mts.map +1 -0
- package/dist/src/services/chatgptLogin/index.mjs +227 -0
- package/dist/src/services/chatgptLogin/index.mjs.map +1 -0
- package/dist/src/services/chatgptWebSearch/index.cjs +1 -1
- package/dist/src/services/chatgptWebSearch/index.cjs.map +1 -1
- package/dist/src/services/chatgptWebSearch/index.mjs +1 -1
- package/dist/src/services/chatgptWebSearch/index.mjs.map +1 -1
- package/dist/src/services/contextContributions/index.cjs +8 -8
- package/dist/src/services/contextContributions/index.cjs.map +1 -1
- package/dist/src/services/contextContributions/index.d.mts +3 -3
- package/dist/src/services/contextContributions/index.d.mts.map +1 -1
- package/dist/src/services/contextContributions/index.mjs +8 -8
- package/dist/src/services/contextContributions/index.mjs.map +1 -1
- package/dist/src/services/devProxyStore/devProxyRecords.cjs +59 -0
- package/dist/src/services/devProxyStore/devProxyRecords.cjs.map +1 -0
- package/dist/src/services/devProxyStore/devProxyRecords.mjs +56 -0
- package/dist/src/services/devProxyStore/devProxyRecords.mjs.map +1 -0
- package/dist/src/services/devProxyStore/index.cjs +7 -101
- package/dist/src/services/devProxyStore/index.cjs.map +1 -1
- package/dist/src/services/devProxyStore/index.mjs +7 -101
- package/dist/src/services/devProxyStore/index.mjs.map +1 -1
- package/dist/src/services/devProxyStore/sync.cjs +66 -0
- package/dist/src/services/devProxyStore/sync.cjs.map +1 -0
- package/dist/src/services/devProxyStore/sync.mjs +63 -0
- package/dist/src/services/devProxyStore/sync.mjs.map +1 -0
- package/dist/src/services/durableNavigation/docs.cjs +15 -0
- package/dist/src/services/durableNavigation/docs.cjs.map +1 -0
- package/dist/src/services/durableNavigation/docs.mjs +16 -0
- package/dist/src/services/durableNavigation/docs.mjs.map +1 -0
- package/dist/src/services/durableNavigation/index.cjs +3 -18
- package/dist/src/services/durableNavigation/index.cjs.map +1 -1
- package/dist/src/services/durableNavigation/index.mjs +2 -17
- package/dist/src/services/durableNavigation/index.mjs.map +1 -1
- package/dist/src/services/durableQueue/docs.cjs +12 -0
- package/dist/src/services/durableQueue/docs.cjs.map +1 -0
- package/dist/src/services/durableQueue/docs.mjs +13 -0
- package/dist/src/services/durableQueue/docs.mjs.map +1 -0
- package/dist/src/services/durableQueue/index.cjs +151 -0
- package/dist/src/services/durableQueue/index.cjs.map +1 -0
- package/dist/src/services/durableQueue/index.mjs +149 -0
- package/dist/src/services/durableQueue/index.mjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/docs.cjs +11 -0
- package/dist/src/services/durableRequestReceipts/docs.cjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/docs.mjs +12 -0
- package/dist/src/services/durableRequestReceipts/docs.mjs.map +1 -0
- package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.cjs +10 -16
- package/dist/src/services/durableRequestReceipts/index.cjs.map +1 -0
- package/dist/src/services/durableRequestReceipts/index.d.mts +12 -0
- package/dist/src/services/durableRequestReceipts/index.d.mts.map +1 -0
- package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.mjs +7 -13
- package/dist/src/services/durableRequestReceipts/index.mjs.map +1 -0
- package/dist/src/services/durableSession/docs.cjs +65 -0
- package/dist/src/services/durableSession/docs.cjs.map +1 -0
- package/dist/src/services/durableSession/docs.d.mts +17 -0
- package/dist/src/services/durableSession/docs.d.mts.map +1 -0
- package/dist/src/services/durableSession/docs.mjs +60 -0
- package/dist/src/services/durableSession/docs.mjs.map +1 -0
- package/dist/src/services/durableSession/index.cjs +21 -0
- package/dist/src/services/durableSession/index.cjs.map +1 -0
- package/dist/src/services/durableSession/index.d.mts +13 -0
- package/dist/src/services/durableSession/index.d.mts.map +1 -0
- package/dist/src/services/durableSession/index.mjs +20 -0
- package/dist/src/services/durableSession/index.mjs.map +1 -0
- package/dist/src/services/durableSubagents/docs.cjs +15 -0
- package/dist/src/services/durableSubagents/docs.cjs.map +1 -0
- package/dist/src/services/durableSubagents/docs.mjs +16 -0
- package/dist/src/services/durableSubagents/docs.mjs.map +1 -0
- package/dist/src/services/durableSubagents/extension.cjs +11 -0
- package/dist/src/services/durableSubagents/extension.cjs.map +1 -0
- package/dist/src/services/durableSubagents/extension.mjs +12 -0
- package/dist/src/services/durableSubagents/extension.mjs.map +1 -0
- package/dist/src/services/durableSubagents/index.cjs +95 -0
- package/dist/src/services/durableSubagents/index.cjs.map +1 -0
- package/dist/src/services/durableSubagents/index.mjs +90 -0
- package/dist/src/services/durableSubagents/index.mjs.map +1 -0
- package/dist/src/services/durableSubagents/tasks.cjs +25 -0
- package/dist/src/services/durableSubagents/tasks.cjs.map +1 -0
- package/dist/src/services/durableSubagents/tasks.mjs +26 -0
- package/dist/src/services/durableSubagents/tasks.mjs.map +1 -0
- package/dist/src/services/headlessClient/index.cjs +20 -13
- package/dist/src/services/headlessClient/index.cjs.map +1 -1
- package/dist/src/services/headlessClient/index.mjs +21 -14
- package/dist/src/services/headlessClient/index.mjs.map +1 -1
- package/dist/src/services/historyOwnership/type.d.mts +15 -0
- package/dist/src/services/historyOwnership/type.d.mts.map +1 -0
- package/dist/src/services/hubChannelHarness/index.cjs +2 -2
- package/dist/src/services/hubChannelHarness/index.cjs.map +1 -1
- package/dist/src/services/hubChannelHarness/index.d.mts +8 -8
- package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -1
- package/dist/src/services/hubChannelHarness/index.mjs +2 -2
- package/dist/src/services/hubChannelHarness/index.mjs.map +1 -1
- package/dist/src/services/json/core.cjs +30 -0
- package/dist/src/services/json/core.cjs.map +1 -0
- package/dist/src/services/json/core.d.mts +21 -0
- package/dist/src/services/json/core.d.mts.map +1 -0
- package/dist/src/services/json/core.mjs +26 -0
- package/dist/src/services/json/core.mjs.map +1 -0
- package/dist/src/services/json/sync.cjs +48 -0
- package/dist/src/services/json/sync.cjs.map +1 -0
- package/dist/src/services/json/sync.d.mts +22 -0
- package/dist/src/services/json/sync.d.mts.map +1 -0
- package/dist/src/services/json/sync.mjs +43 -0
- package/dist/src/services/json/sync.mjs.map +1 -0
- package/dist/src/services/kernel/index.cjs +2 -2
- package/dist/src/services/kernel/index.cjs.map +1 -1
- package/dist/src/services/kernel/index.d.mts +3 -3
- package/dist/src/services/kernel/index.d.mts.map +1 -1
- package/dist/src/services/kernel/index.mjs +2 -2
- package/dist/src/services/kernel/index.mjs.map +1 -1
- package/dist/src/services/nativeChildTools/index.cjs +16 -0
- package/dist/src/services/nativeChildTools/index.cjs.map +1 -0
- package/dist/src/services/nativeChildTools/index.mjs +16 -0
- package/dist/src/services/nativeChildTools/index.mjs.map +1 -0
- package/dist/src/services/nodeHost/index.cjs +30 -0
- package/dist/src/services/nodeHost/index.cjs.map +1 -0
- package/dist/src/services/nodeHost/index.d.mts +16 -0
- package/dist/src/services/nodeHost/index.d.mts.map +1 -0
- package/dist/src/services/nodeHost/index.mjs +27 -0
- package/dist/src/services/nodeHost/index.mjs.map +1 -0
- package/dist/src/services/nodeModelDependencies/index.cjs +89 -0
- package/dist/src/services/nodeModelDependencies/index.cjs.map +1 -0
- package/dist/src/services/nodeModelDependencies/index.mjs +86 -0
- package/dist/src/services/nodeModelDependencies/index.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/index.cjs +6 -128
- package/dist/src/services/openSessionRegistry/index.cjs.map +1 -1
- package/dist/src/services/openSessionRegistry/index.d.mts +5 -36
- package/dist/src/services/openSessionRegistry/index.mjs +6 -128
- package/dist/src/services/openSessionRegistry/index.mjs.map +1 -1
- package/dist/src/services/openSessionRegistry/openSessionRecords.cjs +87 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts +30 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.mjs +81 -0
- package/dist/src/services/openSessionRegistry/openSessionRecords.mjs.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.cjs +71 -0
- package/dist/src/services/openSessionRegistry/sync.cjs.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.d.mts +14 -0
- package/dist/src/services/openSessionRegistry/sync.d.mts.map +1 -0
- package/dist/src/services/openSessionRegistry/sync.mjs +68 -0
- package/dist/src/services/openSessionRegistry/sync.mjs.map +1 -0
- package/dist/src/services/packageApiHarness/index.cjs +1 -1
- package/dist/src/services/packageApiHarness/index.cjs.map +1 -1
- package/dist/src/services/packageApiHarness/index.d.mts +6 -6
- package/dist/src/services/packageApiHarness/index.d.mts.map +1 -1
- package/dist/src/services/packageApiHarness/index.mjs +2 -2
- package/dist/src/services/packageApiHarness/index.mjs.map +1 -1
- package/dist/src/services/piArgs/index.cjs +53 -0
- package/dist/src/services/piArgs/index.cjs.map +1 -0
- package/dist/src/services/piArgs/index.d.mts +6 -0
- package/dist/src/services/piArgs/index.d.mts.map +1 -0
- package/dist/src/services/piArgs/index.mjs +53 -0
- package/dist/src/services/piArgs/index.mjs.map +1 -0
- package/dist/src/services/piExtensionHost/index.cjs +47 -39
- package/dist/src/services/piExtensionHost/index.cjs.map +1 -1
- package/dist/src/services/piExtensionHost/index.d.mts +83 -0
- package/dist/src/services/piExtensionHost/index.d.mts.map +1 -0
- package/dist/src/services/piExtensionHost/index.mjs +47 -38
- package/dist/src/services/piExtensionHost/index.mjs.map +1 -1
- package/dist/src/services/piHelpTools/index.cjs +5 -5
- package/dist/src/services/piHelpTools/index.cjs.map +1 -1
- package/dist/src/services/piHelpTools/index.d.mts.map +1 -1
- package/dist/src/services/piHelpTools/index.mjs +7 -7
- package/dist/src/services/piHelpTools/index.mjs.map +1 -1
- package/dist/src/services/piMessages/index.cjs +106 -0
- package/dist/src/services/piMessages/index.cjs.map +1 -0
- package/dist/src/services/piMessages/index.mjs +105 -0
- package/dist/src/services/piMessages/index.mjs.map +1 -0
- package/dist/src/services/piSessionEntries/index.cjs +4 -4
- package/dist/src/services/piSessionEntries/index.cjs.map +1 -1
- package/dist/src/services/piSessionEntries/index.mjs +3 -3
- package/dist/src/services/piSessionEntries/index.mjs.map +1 -1
- package/dist/src/services/piSettings/core.cjs +308 -0
- package/dist/src/services/piSettings/core.cjs.map +1 -0
- package/dist/src/services/piSettings/core.d.mts +102 -0
- package/dist/src/services/piSettings/core.d.mts.map +1 -0
- package/dist/src/services/piSettings/core.mjs +276 -0
- package/dist/src/services/piSettings/core.mjs.map +1 -0
- package/dist/src/services/piSettings/sync.cjs +119 -0
- package/dist/src/services/piSettings/sync.cjs.map +1 -0
- package/dist/src/services/piSettings/sync.d.mts +44 -0
- package/dist/src/services/piSettings/sync.d.mts.map +1 -0
- package/dist/src/services/piSettings/sync.mjs +110 -0
- package/dist/src/services/piSettings/sync.mjs.map +1 -0
- package/dist/src/services/piSummary/index.cjs +7 -0
- package/dist/src/services/piSummary/index.cjs.map +1 -0
- package/dist/src/services/piSummary/index.mjs +7 -0
- package/dist/src/services/piSummary/index.mjs.map +1 -0
- package/dist/src/services/platformFiles/index.cjs +44 -0
- package/dist/src/services/platformFiles/index.cjs.map +1 -0
- package/dist/src/services/platformFiles/index.d.mts +16 -0
- package/dist/src/services/platformFiles/index.d.mts.map +1 -0
- package/dist/src/services/platformFiles/index.mjs +39 -0
- package/dist/src/services/platformFiles/index.mjs.map +1 -0
- package/dist/src/services/pluginLifecycle/index.cjs +19 -13
- package/dist/src/services/pluginLifecycle/index.cjs.map +1 -1
- package/dist/src/services/pluginLifecycle/index.d.mts +2 -0
- package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -1
- package/dist/src/services/pluginLifecycle/index.mjs +19 -14
- package/dist/src/services/pluginLifecycle/index.mjs.map +1 -1
- package/dist/src/services/poPackage/core.cjs +73 -0
- package/dist/src/services/poPackage/core.cjs.map +1 -0
- package/dist/src/services/poPackage/core.d.mts +32 -0
- package/dist/src/services/poPackage/core.d.mts.map +1 -0
- package/dist/src/services/poPackage/core.mjs +66 -0
- package/dist/src/services/poPackage/core.mjs.map +1 -0
- package/dist/src/services/poPackage/sync.cjs +55 -0
- package/dist/src/services/poPackage/sync.cjs.map +1 -0
- package/dist/src/services/poPackage/sync.d.mts +21 -0
- package/dist/src/services/poPackage/sync.d.mts.map +1 -0
- package/dist/src/services/poPackage/sync.mjs +50 -0
- package/dist/src/services/poPackage/sync.mjs.map +1 -0
- package/dist/src/services/providerAuth/index.cjs +11 -7
- package/dist/src/services/providerAuth/index.cjs.map +1 -1
- package/dist/src/services/providerAuth/index.mjs +11 -7
- package/dist/src/services/providerAuth/index.mjs.map +1 -1
- package/dist/src/services/publicFileShares/index.cjs +1 -1
- package/dist/src/services/publicFileShares/index.cjs.map +1 -1
- package/dist/src/services/publicFileShares/index.d.mts +2 -2
- package/dist/src/services/publicFileShares/index.mjs +2 -2
- package/dist/src/services/publicFileShares/index.mjs.map +1 -1
- package/dist/src/services/remoteAccess/index.d.mts +1 -0
- package/dist/src/services/remoteAccess/index.d.mts.map +1 -1
- package/dist/src/services/remoteAccessStore/index.cjs +8 -190
- package/dist/src/services/remoteAccessStore/index.cjs.map +1 -1
- package/dist/src/services/remoteAccessStore/index.d.mts +2 -0
- package/dist/src/services/remoteAccessStore/index.mjs +7 -187
- package/dist/src/services/remoteAccessStore/index.mjs.map +1 -1
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs +98 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs +88 -0
- package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs.map +1 -0
- package/dist/src/services/remoteAccessStore/sync.cjs +111 -0
- package/dist/src/services/remoteAccessStore/sync.cjs.map +1 -0
- package/dist/src/services/remoteAccessStore/sync.mjs +108 -0
- package/dist/src/services/remoteAccessStore/sync.mjs.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.cjs +23 -0
- package/dist/src/services/runtimeIdentity/sync.cjs.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.d.mts +9 -0
- package/dist/src/services/runtimeIdentity/sync.d.mts.map +1 -0
- package/dist/src/services/runtimeIdentity/sync.mjs +20 -0
- package/dist/src/services/runtimeIdentity/sync.mjs.map +1 -0
- package/dist/src/services/serialRunner/index.cjs +25 -0
- package/dist/src/services/serialRunner/index.cjs.map +1 -0
- package/dist/src/services/serialRunner/index.d.mts +10 -0
- package/dist/src/services/serialRunner/index.d.mts.map +1 -0
- package/dist/src/services/serialRunner/index.mjs +25 -0
- package/dist/src/services/serialRunner/index.mjs.map +1 -0
- package/dist/src/services/{serverFacet → serverHost}/index.cjs +5 -5
- package/dist/src/services/serverHost/index.cjs.map +1 -0
- package/dist/src/services/serverHost/index.d.mts +31 -0
- package/dist/src/services/serverHost/index.d.mts.map +1 -0
- package/dist/src/services/{serverFacet → serverHost}/index.mjs +5 -5
- package/dist/src/services/serverHost/index.mjs.map +1 -0
- package/dist/src/services/sessionAttachments/index.cjs +4 -3
- package/dist/src/services/sessionAttachments/index.cjs.map +1 -1
- package/dist/src/services/sessionAttachments/index.d.mts +1 -6
- package/dist/src/services/sessionAttachments/index.d.mts.map +1 -1
- package/dist/src/services/sessionAttachments/index.mjs +3 -2
- package/dist/src/services/sessionAttachments/index.mjs.map +1 -1
- package/dist/src/services/sessionAttachments/type.d.mts +9 -0
- package/dist/src/services/sessionAttachments/type.d.mts.map +1 -0
- package/dist/src/services/sessionFiles/index.cjs +96 -0
- package/dist/src/services/sessionFiles/index.cjs.map +1 -0
- package/dist/src/services/sessionFiles/index.d.mts +33 -0
- package/dist/src/services/sessionFiles/index.d.mts.map +1 -0
- package/dist/src/services/sessionFiles/index.mjs +89 -0
- package/dist/src/services/sessionFiles/index.mjs.map +1 -0
- package/dist/src/services/sessionFiles/sessionDirectory.cjs +66 -0
- package/dist/src/services/sessionFiles/sessionDirectory.cjs.map +1 -0
- package/dist/src/services/sessionFiles/sessionDirectory.mjs +62 -0
- package/dist/src/services/sessionFiles/sessionDirectory.mjs.map +1 -0
- package/dist/src/services/sessionGitStatus/index.cjs +31 -33
- package/dist/src/services/sessionGitStatus/index.cjs.map +1 -1
- package/dist/src/services/sessionGitStatus/index.mjs +31 -33
- package/dist/src/services/sessionGitStatus/index.mjs.map +1 -1
- package/dist/src/services/sessionPresentation/index.cjs +3 -27
- package/dist/src/services/sessionPresentation/index.cjs.map +1 -1
- package/dist/src/services/sessionPresentation/index.mjs +3 -27
- package/dist/src/services/sessionPresentation/index.mjs.map +1 -1
- package/dist/src/services/skillPrompt/index.cjs +11 -0
- package/dist/src/services/skillPrompt/index.cjs.map +1 -0
- package/dist/src/services/skillPrompt/index.mjs +11 -0
- package/dist/src/services/skillPrompt/index.mjs.map +1 -0
- package/dist/src/services/sqliteSessionHistory/index.cjs +44 -30
- package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -1
- package/dist/src/services/sqliteSessionHistory/index.d.mts +7 -4
- package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -1
- package/dist/src/services/sqliteSessionHistory/index.mjs +43 -28
- package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.cjs +21 -45
- package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.d.mts +3 -2
- package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -1
- package/dist/src/services/sqliteTranscriptReader/index.mjs +16 -38
- package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -1
- package/dist/src/services/testMode/index.cjs +162 -0
- package/dist/src/services/testMode/index.cjs.map +1 -0
- package/dist/src/services/testMode/index.d.mts +17 -0
- package/dist/src/services/testMode/index.d.mts.map +1 -0
- package/dist/src/services/testMode/index.mjs +155 -0
- package/dist/src/services/testMode/index.mjs.map +1 -0
- package/dist/src/services/toolOverrides/index.cjs +6 -6
- package/dist/src/services/toolOverrides/index.cjs.map +1 -1
- package/dist/src/services/toolOverrides/index.d.mts +3 -3
- package/dist/src/services/toolOverrides/index.d.mts.map +1 -1
- package/dist/src/services/toolOverrides/index.mjs +6 -6
- package/dist/src/services/toolOverrides/index.mjs.map +1 -1
- package/dist/src/services/toolPrompt/index.d.mts +17 -0
- package/dist/src/services/toolPrompt/index.d.mts.map +1 -0
- package/dist/src/services/toolSurface/index.cjs +3 -3
- package/dist/src/services/toolSurface/index.cjs.map +1 -1
- package/dist/src/services/toolSurface/index.d.mts +3 -3
- package/dist/src/services/toolSurface/index.d.mts.map +1 -1
- package/dist/src/services/toolSurface/index.mjs +4 -4
- package/dist/src/services/toolSurface/index.mjs.map +1 -1
- package/dist/src/services/traceContext/index.cjs.map +1 -1
- package/dist/src/services/traceContext/index.mjs.map +1 -1
- package/dist/src/services/transcriptPages/index.cjs +159 -33
- package/dist/src/services/transcriptPages/index.cjs.map +1 -1
- package/dist/src/services/transcriptPages/index.mjs +158 -34
- package/dist/src/services/transcriptPages/index.mjs.map +1 -1
- package/dist/src/services/voiceToolsContract/index.cjs +7 -7
- package/dist/src/services/voiceToolsContract/index.cjs.map +1 -1
- package/dist/src/services/voiceToolsContract/index.d.mts +4 -4
- package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -1
- package/dist/src/services/voiceToolsContract/index.mjs +7 -7
- package/dist/src/services/voiceToolsContract/index.mjs.map +1 -1
- package/dist/src/services/workspaceRegistry/index.cjs +9 -179
- package/dist/src/services/workspaceRegistry/index.cjs.map +1 -1
- package/dist/src/services/workspaceRegistry/index.d.mts +5 -47
- package/dist/src/services/workspaceRegistry/index.mjs +7 -176
- package/dist/src/services/workspaceRegistry/index.mjs.map +1 -1
- package/dist/src/services/workspaceRegistry/sync.cjs +148 -0
- package/dist/src/services/workspaceRegistry/sync.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/sync.d.mts +34 -0
- package/dist/src/services/workspaceRegistry/sync.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/sync.mjs +140 -0
- package/dist/src/services/workspaceRegistry/sync.mjs.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.cjs +114 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.cjs.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts +31 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts.map +1 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.mjs +101 -0
- package/dist/src/services/workspaceRegistry/workspaceRecords.mjs.map +1 -0
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +339 -202
- package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -1
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +16 -21
- package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -1
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +329 -191
- package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -1
- package/dist/src/systems/child/services/childSession/index.cjs +94 -20
- package/dist/src/systems/child/services/childSession/index.cjs.map +1 -1
- package/dist/src/systems/child/services/childSession/index.d.mts +12 -3
- package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -1
- package/dist/src/systems/child/services/childSession/index.mjs +94 -20
- package/dist/src/systems/child/services/childSession/index.mjs.map +1 -1
- package/dist/src/systems/child/types/childSession.cjs +33 -13
- package/dist/src/systems/child/types/childSession.cjs.map +1 -1
- package/dist/src/systems/child/types/childSession.d.mts +143 -80
- package/dist/src/systems/child/types/childSession.d.mts.map +1 -1
- package/dist/src/systems/child/types/childSession.mjs +24 -9
- package/dist/src/systems/child/types/childSession.mjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.cjs +30 -27
- package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.d.mts +22 -22
- package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -1
- package/dist/src/systems/main/adapters/headlessHost.mjs +33 -30
- package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs +248 -229
- package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +4 -5
- package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -1
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs +239 -219
- package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -1
- package/dist/src/systems/main/types/headlessHost.d.mts +16 -14
- package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -1
- package/dist/src/testing/pi/testHost.cjs +2 -2
- package/dist/src/testing/pi/testHost.cjs.map +1 -1
- package/dist/src/testing/pi/testHost.d.mts +3 -2
- package/dist/src/testing/pi/testHost.mjs +3 -3
- package/dist/src/testing/pi/testHost.mjs.map +1 -1
- package/dist/src/types/config.d.mts +1 -1
- package/dist/src/types/config.d.mts.map +1 -1
- package/dist/src/types/kernel.d.mts +3 -3
- package/dist/src/types/server/directHarnessRuntime.d.mts +54 -25
- package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -1
- package/dist/src/types/server/sessionToolSurface.d.mts +9 -9
- package/dist/src/web/services/apiClient/index.d.mts +1 -0
- package/dist/src/web/services/apiPaths/index.cjs.map +1 -1
- package/dist/src/web/services/apiPaths/index.d.mts +1 -1
- package/dist/src/web/services/apiPaths/index.mjs.map +1 -1
- package/dist/src/web/services/mcpWidget.cjs.map +1 -1
- package/dist/src/web/services/mcpWidget.d.mts +2 -2
- package/dist/src/web/services/mcpWidget.d.mts.map +1 -1
- package/dist/src/web/services/mcpWidget.mjs.map +1 -1
- package/dist/src/web/services/testing/templateRail.cjs +3 -0
- package/dist/src/web/services/testing/templateRail.cjs.map +1 -1
- package/dist/src/web/services/testing/templateRail.mjs +3 -0
- package/dist/src/web/services/testing/templateRail.mjs.map +1 -1
- package/dist/src/web/types/mcpWidget.d.mts +1 -1
- package/dist/src/web/types/nativeTemplate.d.mts +1 -1
- package/dist/src/web/types/nativeTemplate.d.mts.map +1 -1
- package/dist/src/web/types/template.d.mts +8 -0
- package/dist/src/web/types/template.d.mts.map +1 -1
- package/dist/src/web/types/webPlugin.d.mts +17 -5
- package/dist/src/web/types/webPlugin.d.mts.map +1 -1
- package/dist/testMode.cjs +4 -0
- package/dist/testMode.d.mts +2 -0
- package/dist/testMode.mjs +1 -0
- package/dist/testing.cjs +1 -1
- package/dist/testing.d.mts +2 -2
- package/dist/testing.mjs +2 -2
- package/dist/toolInventory.cjs.map +1 -1
- package/dist/toolInventory.mjs.map +1 -1
- package/dist/toolNames.mjs +1 -2
- package/dist/toolOverrides.cjs +4 -4
- package/dist/toolOverrides.d.mts +3 -3
- package/dist/toolOverrides.mjs +3 -3
- package/dist/toolSurface.cjs +4 -4
- package/dist/toolSurface.d.mts +3 -3
- package/dist/toolSurface.mjs +3 -3
- package/dist/transition.cjs +3 -3
- package/dist/transition.d.cjs +3 -3
- package/dist/transition.d.mts +2 -2
- package/dist/transition.mjs +1 -2
- package/dist/transitionClassifier.cjs.map +1 -1
- package/dist/transitionClassifier.d.mts +2 -2
- package/dist/transitionClassifier.d.mts.map +1 -1
- package/dist/transitionClassifier.mjs.map +1 -1
- package/dist/transitionCoordinator.cjs +3 -3
- package/dist/transitionCoordinator.cjs.map +1 -1
- package/dist/transitionCoordinator.d.mts +4 -4
- package/dist/transitionCoordinator.d.mts.map +1 -1
- package/dist/transitionCoordinator.mjs +3 -3
- package/dist/transitionCoordinator.mjs.map +1 -1
- package/dist/typesContextApi.d.mts +2 -1
- package/dist/typesContextApi.d.mts.map +1 -1
- package/dist/uiHub.cjs +3 -3
- package/dist/uiHub.d.mts +2 -2
- package/dist/uiHub.mjs +1 -2
- package/dist/voiceTools.cjs +5 -5
- package/dist/voiceTools.d.mts +3 -3
- package/dist/voiceTools.mjs +3 -3
- package/dist/web.cjs +8 -0
- package/dist/web.d.mts +3 -2
- package/dist/web.mjs +2 -1
- package/dist/webCompositions.cjs.map +1 -1
- package/dist/webCompositions.d.mts +7 -7
- package/dist/webCompositions.d.mts.map +1 -1
- package/dist/webCompositions.mjs.map +1 -1
- package/licenses/Codex-Apache-2.0.txt +201 -0
- package/package.json +58 -53
- package/dist/doomPackage.cjs +0 -61
- package/dist/doomPackage.cjs.map +0 -1
- package/dist/doomPackage.d.mts +0 -17
- package/dist/doomPackage.d.mts.map +0 -1
- package/dist/doomPackage.mjs +0 -54
- package/dist/doomPackage.mjs.map +0 -1
- package/dist/jsonlSessionRepo.cjs +0 -44
- package/dist/jsonlSessionRepo.cjs.map +0 -1
- package/dist/jsonlSessionRepo.d.mts +0 -7
- package/dist/jsonlSessionRepo.d.mts.map +0 -1
- package/dist/jsonlSessionRepo.mjs +0 -42
- package/dist/jsonlSessionRepo.mjs.map +0 -1
- package/dist/runtimeJson.cjs.map +0 -1
- package/dist/runtimeJson.d.mts.map +0 -1
- package/dist/runtimeJson.mjs.map +0 -1
- package/dist/runtimePiSettings.cjs.map +0 -1
- package/dist/runtimePiSettings.d.mts.map +0 -1
- package/dist/runtimePiSettings.mjs.map +0 -1
- package/dist/serverFacet.cjs +0 -34
- package/dist/serverFacet.d.mts +0 -10
- package/dist/serverFacet.mjs +0 -9
- package/dist/src/pi/piWebSocketListener.cjs +0 -115
- package/dist/src/pi/piWebSocketListener.cjs.map +0 -1
- package/dist/src/pi/piWebSocketListener.mjs +0 -115
- package/dist/src/pi/piWebSocketListener.mjs.map +0 -1
- package/dist/src/schemas/serverFacet.cjs +0 -111
- package/dist/src/schemas/serverFacet.cjs.map +0 -1
- package/dist/src/schemas/serverFacet.d.mts +0 -152
- package/dist/src/schemas/serverFacet.d.mts.map +0 -1
- package/dist/src/schemas/serverFacet.mjs +0 -101
- package/dist/src/schemas/serverFacet.mjs.map +0 -1
- package/dist/src/schemas/sessionUpdates.d.mts +0 -34
- package/dist/src/schemas/sessionUpdates.d.mts.map +0 -1
- package/dist/src/server/headlessProtocol.cjs +0 -382
- package/dist/src/server/headlessProtocol.cjs.map +0 -1
- package/dist/src/server/headlessProtocol.mjs +0 -382
- package/dist/src/server/headlessProtocol.mjs.map +0 -1
- package/dist/src/server/nativeChildTranscriptReader.cjs +0 -20
- package/dist/src/server/nativeChildTranscriptReader.cjs.map +0 -1
- package/dist/src/server/nativeChildTranscriptReader.mjs +0 -18
- package/dist/src/server/nativeChildTranscriptReader.mjs.map +0 -1
- package/dist/src/server/serverFacetLoader.cjs +0 -214
- package/dist/src/server/serverFacetLoader.cjs.map +0 -1
- package/dist/src/server/serverFacetLoader.d.mts +0 -72
- package/dist/src/server/serverFacetLoader.d.mts.map +0 -1
- package/dist/src/server/serverFacetLoader.mjs +0 -212
- package/dist/src/server/serverFacetLoader.mjs.map +0 -1
- package/dist/src/services/acpSessionUpdates/index.cjs +0 -129
- package/dist/src/services/acpSessionUpdates/index.cjs.map +0 -1
- package/dist/src/services/acpSessionUpdates/index.mjs +0 -129
- package/dist/src/services/acpSessionUpdates/index.mjs.map +0 -1
- package/dist/src/services/historyImport/index.cjs +0 -8
- package/dist/src/services/historyImport/index.cjs.map +0 -1
- package/dist/src/services/historyImport/index.d.mts +0 -68
- package/dist/src/services/historyImport/index.d.mts.map +0 -1
- package/dist/src/services/historyImport/index.mjs +0 -8
- package/dist/src/services/historyImport/index.mjs.map +0 -1
- package/dist/src/services/openSessionRegistry/index.d.mts.map +0 -1
- package/dist/src/services/requestReceipts/index.cjs.map +0 -1
- package/dist/src/services/requestReceipts/index.d.mts +0 -11
- package/dist/src/services/requestReceipts/index.d.mts.map +0 -1
- package/dist/src/services/requestReceipts/index.mjs.map +0 -1
- package/dist/src/services/rpcTranscript/index.cjs +0 -633
- package/dist/src/services/rpcTranscript/index.cjs.map +0 -1
- package/dist/src/services/rpcTranscript/index.d.mts +0 -50
- package/dist/src/services/rpcTranscript/index.d.mts.map +0 -1
- package/dist/src/services/rpcTranscript/index.mjs +0 -632
- package/dist/src/services/rpcTranscript/index.mjs.map +0 -1
- package/dist/src/services/serverFacet/index.cjs.map +0 -1
- package/dist/src/services/serverFacet/index.d.mts +0 -31
- package/dist/src/services/serverFacet/index.d.mts.map +0 -1
- package/dist/src/services/serverFacet/index.mjs.map +0 -1
- package/dist/src/services/workspaceRegistry/index.d.mts.map +0 -1
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +0 -28
- package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +0 -1
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +0 -25
- package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +0 -1
- package/dist/terminalPiChildSessionService.cjs +0 -324
- package/dist/terminalPiChildSessionService.cjs.map +0 -1
- package/dist/terminalPiChildSessionService.d.mts +0 -46
- package/dist/terminalPiChildSessionService.d.mts.map +0 -1
- package/dist/terminalPiChildSessionService.mjs +0 -318
- package/dist/terminalPiChildSessionService.mjs.map +0 -1
- package/dist/v3Export.cjs +0 -10
- package/dist/v3Export.cjs.map +0 -1
- package/dist/v3Export.d.mts +0 -35
- package/dist/v3Export.d.mts.map +0 -1
- package/dist/v3Export.mjs +0 -9
- package/dist/v3Export.mjs.map +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/services/historyOwnership/type.d.ts
|
|
2
|
+
export interface HistoryOwnershipLease {
|
|
3
|
+
assertQuiescent(): void | Promise<void>;
|
|
4
|
+
release(): void | Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The caller must establish ownership and stop all managed writers before this
|
|
8
|
+
* adapter reads or publishes a session. A filesystem lock cannot prove that an
|
|
9
|
+
* unmanaged Pi process has stopped, so the boundary stays explicit.
|
|
10
|
+
*/
|
|
11
|
+
export interface HistoryOwnership {
|
|
12
|
+
acquire(sourcePath: string): HistoryOwnershipLease | Promise<HistoryOwnershipLease>;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
//# sourceMappingURL=type.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.d.mts","names":[],"sources":["../../../../src/services/historyOwnership/type.ts"],"mappings":";iBAAiB;EACf,0BAA0B;EAC1B,kBAAkB;;;;;;;iBAQH;EACf,QAAQ,qBAAqB,wBAAwB,QAAQ"}
|
|
@@ -3,7 +3,7 @@ const DEFAULT_SESSION = {
|
|
|
3
3
|
sessionId: "s1",
|
|
4
4
|
cwd: "/repo"
|
|
5
5
|
};
|
|
6
|
-
function
|
|
6
|
+
function poHubChannelHarness(channel, options = {}) {
|
|
7
7
|
const sessions = [...options.sessions ?? [DEFAULT_SESSION]];
|
|
8
8
|
const published = [];
|
|
9
9
|
const notices = [];
|
|
@@ -45,6 +45,6 @@ function doomHubChannelHarness(channel, options = {}) {
|
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
//#endregion
|
|
48
|
-
exports.
|
|
48
|
+
exports.poHubChannelHarness = poHubChannelHarness;
|
|
49
49
|
|
|
50
50
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/hubChannelHarness/index.ts"],"sourcesContent":["import type {\n
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/hubChannelHarness/index.ts"],"sourcesContent":["import type {\n PoHubChannel,\n PoHubChannelFrame,\n PoHubChannelHost,\n PoHubChannelSource,\n PoHubSessionScope,\n} from '../../schemas/hubChannel';\n\nexport interface PoHubChannelHarness {\n source: PoHubChannelSource;\n readonly published: readonly PoHubChannelFrame[];\n readonly notices: readonly string[];\n snapshot(sessionId?: string): unknown;\n addSession(scope: PoHubSessionScope): void;\n removeSession(sessionId: string): void;\n close(): void;\n}\n\nexport interface PoHubChannelHarnessOptions {\n sessions?: readonly PoHubSessionScope[];\n}\n\nconst DEFAULT_SESSION: PoHubSessionScope = { sessionId: 's1', cwd: '/repo' };\n\nexport function poHubChannelHarness(\n channel: PoHubChannel,\n options: PoHubChannelHarnessOptions = {},\n): PoHubChannelHarness {\n const sessions = [...(options.sessions ?? [DEFAULT_SESSION])];\n const published: PoHubChannelFrame[] = [];\n const notices: string[] = [];\n const host: PoHubChannelHost = {\n sessions: () => sessions,\n directEvents: {\n publish: () => undefined,\n subscribe: () => () => undefined,\n close: () => undefined,\n },\n publish: (sessionId, payload) => {\n published.push({ type: channel.frameType, sessionId, payload });\n },\n requestSessionApi: () =>\n Promise.resolve(Response.json({ error: 'No session API in the channel harness.' }, { status: 501 })),\n onNotice: (message) => notices.push(message),\n };\n const source = channel.start(host);\n\n return {\n source,\n published,\n notices,\n snapshot(sessionId) {\n const scope = sessions.find((candidate) => candidate.sessionId === sessionId) ?? sessions[0] ?? DEFAULT_SESSION;\n return source.payloadFor(scope);\n },\n addSession(scope) {\n sessions.push(scope);\n source.sessionAdded?.(scope);\n },\n removeSession(sessionId) {\n const index = sessions.findIndex((candidate) => candidate.sessionId === sessionId);\n if (index >= 0) sessions.splice(index, 1);\n source.sessionRemoved?.(sessionId);\n },\n close: () => source.close(),\n };\n}\n"],"mappings":";AAsBA,MAAM,kBAAqC;CAAE,WAAW;CAAM,KAAK;AAAQ;AAE3E,SAAgB,oBACd,SACA,UAAsC,CAAC,GAClB;CACrB,MAAM,WAAW,CAAC,GAAI,QAAQ,YAAY,CAAC,eAAe,CAAE;CAC5D,MAAM,YAAiC,CAAC;CACxC,MAAM,UAAoB,CAAC;CAe3B,MAAM,SAAS,QAAQ,MAAM;EAb3B,gBAAgB;EAChB,cAAc;GACZ,eAAe,KAAA;GACf,uBAAuB,KAAA;GACvB,aAAa,KAAA;EACf;EACA,UAAU,WAAW,YAAY;GAC/B,UAAU,KAAK;IAAE,MAAM,QAAQ;IAAW;IAAW;GAAQ,CAAC;EAChE;EACA,yBACE,QAAQ,QAAQ,SAAS,KAAK,EAAE,OAAO,yCAAyC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC;EACrG,WAAW,YAAY,QAAQ,KAAK,OAAO;CAEb,CAAC;CAEjC,OAAO;EACL;EACA;EACA;EACA,SAAS,WAAW;GAClB,MAAM,QAAQ,SAAS,MAAM,cAAc,UAAU,cAAc,SAAS,KAAK,SAAS,MAAM;GAChG,OAAO,OAAO,WAAW,KAAK;EAChC;EACA,WAAW,OAAO;GAChB,SAAS,KAAK,KAAK;GACnB,OAAO,eAAe,KAAK;EAC7B;EACA,cAAc,WAAW;GACvB,MAAM,QAAQ,SAAS,WAAW,cAAc,UAAU,cAAc,SAAS;GACjF,IAAI,SAAS,GAAG,SAAS,OAAO,OAAO,CAAC;GACxC,OAAO,iBAAiB,SAAS;EACnC;EACA,aAAa,OAAO,MAAM;CAC5B;AACF"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PoHubChannel, PoHubChannelFrame, PoHubChannelSource, PoHubSessionScope } from "../../schemas/hubChannel.mjs";
|
|
2
2
|
//#region src/services/hubChannelHarness/index.d.ts
|
|
3
|
-
export interface
|
|
4
|
-
source:
|
|
5
|
-
readonly published: readonly
|
|
3
|
+
export interface PoHubChannelHarness {
|
|
4
|
+
source: PoHubChannelSource;
|
|
5
|
+
readonly published: readonly PoHubChannelFrame[];
|
|
6
6
|
readonly notices: readonly string[];
|
|
7
7
|
snapshot(sessionId?: string): unknown;
|
|
8
|
-
addSession(scope:
|
|
8
|
+
addSession(scope: PoHubSessionScope): void;
|
|
9
9
|
removeSession(sessionId: string): void;
|
|
10
10
|
close(): void;
|
|
11
11
|
}
|
|
12
|
-
export interface
|
|
13
|
-
sessions?: readonly
|
|
12
|
+
export interface PoHubChannelHarnessOptions {
|
|
13
|
+
sessions?: readonly PoHubSessionScope[];
|
|
14
14
|
}
|
|
15
|
-
export declare function
|
|
15
|
+
export declare function poHubChannelHarness(channel: PoHubChannel, options?: PoHubChannelHarnessOptions): PoHubChannelHarness;
|
|
16
16
|
//#endregion
|
|
17
17
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/hubChannelHarness/index.ts"],"mappings":";;iBAQiB;EACf,QAAQ;WACC,oBAAoB;WACpB;EACT,SAAS;EACT,WAAW,OAAO;EAClB,cAAc;EACd;;iBAGe;EACf,oBAAoB;;wBAKN,
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/hubChannelHarness/index.ts"],"mappings":";;iBAQiB;EACf,QAAQ;WACC,oBAAoB;WACpB;EACT,SAAS;EACT,WAAW,OAAO;EAClB,cAAc;EACd;;iBAGe;EACf,oBAAoB;;wBAKN,oBACd,SAAS,cACT,UAAS,6BACR"}
|
|
@@ -3,7 +3,7 @@ const DEFAULT_SESSION = {
|
|
|
3
3
|
sessionId: "s1",
|
|
4
4
|
cwd: "/repo"
|
|
5
5
|
};
|
|
6
|
-
function
|
|
6
|
+
function poHubChannelHarness(channel, options = {}) {
|
|
7
7
|
const sessions = [...options.sessions ?? [DEFAULT_SESSION]];
|
|
8
8
|
const published = [];
|
|
9
9
|
const notices = [];
|
|
@@ -45,6 +45,6 @@ function doomHubChannelHarness(channel, options = {}) {
|
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
//#endregion
|
|
48
|
-
export {
|
|
48
|
+
export { poHubChannelHarness };
|
|
49
49
|
|
|
50
50
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/hubChannelHarness/index.ts"],"sourcesContent":["import type {\n
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/hubChannelHarness/index.ts"],"sourcesContent":["import type {\n PoHubChannel,\n PoHubChannelFrame,\n PoHubChannelHost,\n PoHubChannelSource,\n PoHubSessionScope,\n} from '../../schemas/hubChannel';\n\nexport interface PoHubChannelHarness {\n source: PoHubChannelSource;\n readonly published: readonly PoHubChannelFrame[];\n readonly notices: readonly string[];\n snapshot(sessionId?: string): unknown;\n addSession(scope: PoHubSessionScope): void;\n removeSession(sessionId: string): void;\n close(): void;\n}\n\nexport interface PoHubChannelHarnessOptions {\n sessions?: readonly PoHubSessionScope[];\n}\n\nconst DEFAULT_SESSION: PoHubSessionScope = { sessionId: 's1', cwd: '/repo' };\n\nexport function poHubChannelHarness(\n channel: PoHubChannel,\n options: PoHubChannelHarnessOptions = {},\n): PoHubChannelHarness {\n const sessions = [...(options.sessions ?? [DEFAULT_SESSION])];\n const published: PoHubChannelFrame[] = [];\n const notices: string[] = [];\n const host: PoHubChannelHost = {\n sessions: () => sessions,\n directEvents: {\n publish: () => undefined,\n subscribe: () => () => undefined,\n close: () => undefined,\n },\n publish: (sessionId, payload) => {\n published.push({ type: channel.frameType, sessionId, payload });\n },\n requestSessionApi: () =>\n Promise.resolve(Response.json({ error: 'No session API in the channel harness.' }, { status: 501 })),\n onNotice: (message) => notices.push(message),\n };\n const source = channel.start(host);\n\n return {\n source,\n published,\n notices,\n snapshot(sessionId) {\n const scope = sessions.find((candidate) => candidate.sessionId === sessionId) ?? sessions[0] ?? DEFAULT_SESSION;\n return source.payloadFor(scope);\n },\n addSession(scope) {\n sessions.push(scope);\n source.sessionAdded?.(scope);\n },\n removeSession(sessionId) {\n const index = sessions.findIndex((candidate) => candidate.sessionId === sessionId);\n if (index >= 0) sessions.splice(index, 1);\n source.sessionRemoved?.(sessionId);\n },\n close: () => source.close(),\n };\n}\n"],"mappings":";AAsBA,MAAM,kBAAqC;CAAE,WAAW;CAAM,KAAK;AAAQ;AAE3E,SAAgB,oBACd,SACA,UAAsC,CAAC,GAClB;CACrB,MAAM,WAAW,CAAC,GAAI,QAAQ,YAAY,CAAC,eAAe,CAAE;CAC5D,MAAM,YAAiC,CAAC;CACxC,MAAM,UAAoB,CAAC;CAe3B,MAAM,SAAS,QAAQ,MAAM;EAb3B,gBAAgB;EAChB,cAAc;GACZ,eAAe,KAAA;GACf,uBAAuB,KAAA;GACvB,aAAa,KAAA;EACf;EACA,UAAU,WAAW,YAAY;GAC/B,UAAU,KAAK;IAAE,MAAM,QAAQ;IAAW;IAAW;GAAQ,CAAC;EAChE;EACA,yBACE,QAAQ,QAAQ,SAAS,KAAK,EAAE,OAAO,yCAAyC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC;EACrG,WAAW,YAAY,QAAQ,KAAK,OAAO;CAEb,CAAC;CAEjC,OAAO;EACL;EACA;EACA;EACA,SAAS,WAAW;GAClB,MAAM,QAAQ,SAAS,MAAM,cAAc,UAAU,cAAc,SAAS,KAAK,SAAS,MAAM;GAChG,OAAO,OAAO,WAAW,KAAK;EAChC;EACA,WAAW,OAAO;GAChB,SAAS,KAAK,KAAK;GACnB,OAAO,eAAe,KAAK;EAC7B;EACA,cAAc,WAAW;GACvB,MAAM,QAAQ,SAAS,WAAW,cAAc,UAAU,cAAc,SAAS;GACjF,IAAI,SAAS,GAAG,SAAS,OAAO,OAAO,CAAC;GACxC,OAAO,iBAAiB,SAAS;EACnC;EACA,aAAa,OAAO,MAAM;CAC5B;AACF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const require_index = require("../platformFiles/index.cjs");
|
|
2
|
+
//#region src/services/json/core.ts
|
|
3
|
+
function isRecord(value) {
|
|
4
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5
|
+
}
|
|
6
|
+
/** Parses a JSON object, treating missing or blank content as the fallback. */
|
|
7
|
+
function parseJsonObject(content, fallback = {}) {
|
|
8
|
+
const trimmed = content?.trim();
|
|
9
|
+
return trimmed ? JSON.parse(trimmed) : fallback;
|
|
10
|
+
}
|
|
11
|
+
/** The on-disk form of a JSON state file: two-space indent and a trailing newline. */
|
|
12
|
+
function serializeJson(value) {
|
|
13
|
+
return `${JSON.stringify(value, null, 2)}\n`;
|
|
14
|
+
}
|
|
15
|
+
/** Reads a JSON object, treating a missing or empty file as the fallback. */
|
|
16
|
+
async function readJsonAsync(fs, filePath, context, fallback = {}) {
|
|
17
|
+
return parseJsonObject(await require_index.readTextIfExists(fs, filePath, context), fallback);
|
|
18
|
+
}
|
|
19
|
+
/** Writes a JSON object through a uniquely named temporary file and a rename. */
|
|
20
|
+
async function writeJsonAsync(fs, filePath, value, context) {
|
|
21
|
+
await require_index.writeFileAtomic(fs, filePath, serializeJson(value), context);
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.isRecord = isRecord;
|
|
25
|
+
exports.parseJsonObject = parseJsonObject;
|
|
26
|
+
exports.readJsonAsync = readJsonAsync;
|
|
27
|
+
exports.serializeJson = serializeJson;
|
|
28
|
+
exports.writeJsonAsync = writeJsonAsync;
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=core.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.cjs","names":["readTextIfExists","writeFileAtomicAsync"],"sources":["../../../../src/services/json/core.ts"],"sourcesContent":["import type { Context } from '@earendil-works/chord';\nimport type { FileSystem } from '@earendil-works/pi-durable/env';\n\nimport { readTextIfExists, writeFileAtomic as writeFileAtomicAsync } from '../platformFiles';\n\n/**\n * JSON state helpers for files the harness owns on disk.\n *\n * Compatibility frontends read these files while another repository's harness\n * may be writing them, so writes go through a rename rather than a truncate.\n */\n\nexport type JsonObject = Record<string, unknown>;\n\nexport function isRecord(value: unknown): value is JsonObject {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/** Parses a JSON object, treating missing or blank content as the fallback. */\nexport function parseJsonObject(content: string | undefined, fallback: JsonObject = {}): JsonObject {\n const trimmed = content?.trim();\n return trimmed ? (JSON.parse(trimmed) as JsonObject) : fallback;\n}\n\n/** The on-disk form of a JSON state file: two-space indent and a trailing newline. */\nexport function serializeJson(value: JsonObject): string {\n return `${JSON.stringify(value, null, 2)}\\n`;\n}\n\n/** Reads a JSON object, treating a missing or empty file as the fallback. */\nexport async function readJsonAsync(\n fs: FileSystem,\n filePath: string,\n context: Context,\n fallback: JsonObject = {},\n): Promise<JsonObject> {\n return parseJsonObject(await readTextIfExists(fs, filePath, context), fallback);\n}\n\n/** Writes a JSON object through a uniquely named temporary file and a rename. */\nexport async function writeJsonAsync(\n fs: FileSystem,\n filePath: string,\n value: JsonObject,\n context: Context,\n): Promise<void> {\n await writeFileAtomicAsync(fs, filePath, serializeJson(value), context);\n}\n"],"mappings":";;AAcA,SAAgB,SAAS,OAAqC;CAC5D,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;;AAGA,SAAgB,gBAAgB,SAA6B,WAAuB,CAAC,GAAe;CAClG,MAAM,UAAU,SAAS,KAAK;CAC9B,OAAO,UAAW,KAAK,MAAM,OAAO,IAAmB;AACzD;;AAGA,SAAgB,cAAc,OAA2B;CACvD,OAAO,GAAG,KAAK,UAAU,OAAO,MAAM,CAAC,EAAE;AAC3C;;AAGA,eAAsB,cACpB,IACA,UACA,SACA,WAAuB,CAAC,GACH;CACrB,OAAO,gBAAgB,MAAMA,cAAAA,iBAAiB,IAAI,UAAU,OAAO,GAAG,QAAQ;AAChF;;AAGA,eAAsB,eACpB,IACA,UACA,OACA,SACe;CACf,MAAMC,cAAAA,gBAAqB,IAAI,UAAU,cAAc,KAAK,GAAG,OAAO;AACxE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FileSystem } from "@earendil-works/pi-durable/env";
|
|
2
|
+
import { Context } from "@earendil-works/chord";
|
|
3
|
+
//#region src/services/json/core.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* JSON state helpers for files the harness owns on disk.
|
|
6
|
+
*
|
|
7
|
+
* Compatibility frontends read these files while another repository's harness
|
|
8
|
+
* may be writing them, so writes go through a rename rather than a truncate.
|
|
9
|
+
*/
|
|
10
|
+
export type JsonObject = Record<string, unknown>;
|
|
11
|
+
export declare function isRecord(value: unknown): value is JsonObject;
|
|
12
|
+
/** Parses a JSON object, treating missing or blank content as the fallback. */
|
|
13
|
+
export declare function parseJsonObject(content: string | undefined, fallback?: JsonObject): JsonObject;
|
|
14
|
+
/** The on-disk form of a JSON state file: two-space indent and a trailing newline. */
|
|
15
|
+
export declare function serializeJson(value: JsonObject): string;
|
|
16
|
+
/** Reads a JSON object, treating a missing or empty file as the fallback. */
|
|
17
|
+
export declare function readJsonAsync(fs: FileSystem, filePath: string, context: Context, fallback?: JsonObject): Promise<JsonObject>;
|
|
18
|
+
/** Writes a JSON object through a uniquely named temporary file and a rename. */
|
|
19
|
+
export declare function writeJsonAsync(fs: FileSystem, filePath: string, value: JsonObject, context: Context): Promise<void>;
|
|
20
|
+
//#endregion
|
|
21
|
+
//# sourceMappingURL=core.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.mts","names":[],"sources":["../../../../src/services/json/core.ts"],"mappings":";;;;;;;;;YAYY,aAAa;wBAET,SAAS,iBAAiB,SAAS;;wBAKnC,gBAAgB,6BAA6B,WAAU,aAAkB;;wBAMzE,cAAc,OAAO;;wBAKf,cACpB,IAAI,YACJ,kBACA,SAAS,SACT,WAAU,aACT,QAAQ;;wBAKW,eACpB,IAAI,YACJ,kBACA,OAAO,YACP,SAAS,UACR"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { readTextIfExists, writeFileAtomic } from "../platformFiles/index.mjs";
|
|
2
|
+
//#region src/services/json/core.ts
|
|
3
|
+
function isRecord(value) {
|
|
4
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5
|
+
}
|
|
6
|
+
/** Parses a JSON object, treating missing or blank content as the fallback. */
|
|
7
|
+
function parseJsonObject(content, fallback = {}) {
|
|
8
|
+
const trimmed = content?.trim();
|
|
9
|
+
return trimmed ? JSON.parse(trimmed) : fallback;
|
|
10
|
+
}
|
|
11
|
+
/** The on-disk form of a JSON state file: two-space indent and a trailing newline. */
|
|
12
|
+
function serializeJson(value) {
|
|
13
|
+
return `${JSON.stringify(value, null, 2)}\n`;
|
|
14
|
+
}
|
|
15
|
+
/** Reads a JSON object, treating a missing or empty file as the fallback. */
|
|
16
|
+
async function readJsonAsync(fs, filePath, context, fallback = {}) {
|
|
17
|
+
return parseJsonObject(await readTextIfExists(fs, filePath, context), fallback);
|
|
18
|
+
}
|
|
19
|
+
/** Writes a JSON object through a uniquely named temporary file and a rename. */
|
|
20
|
+
async function writeJsonAsync(fs, filePath, value, context) {
|
|
21
|
+
await writeFileAtomic(fs, filePath, serializeJson(value), context);
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { isRecord, parseJsonObject, readJsonAsync, serializeJson, writeJsonAsync };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=core.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.mjs","names":["writeFileAtomicAsync"],"sources":["../../../../src/services/json/core.ts"],"sourcesContent":["import type { Context } from '@earendil-works/chord';\nimport type { FileSystem } from '@earendil-works/pi-durable/env';\n\nimport { readTextIfExists, writeFileAtomic as writeFileAtomicAsync } from '../platformFiles';\n\n/**\n * JSON state helpers for files the harness owns on disk.\n *\n * Compatibility frontends read these files while another repository's harness\n * may be writing them, so writes go through a rename rather than a truncate.\n */\n\nexport type JsonObject = Record<string, unknown>;\n\nexport function isRecord(value: unknown): value is JsonObject {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/** Parses a JSON object, treating missing or blank content as the fallback. */\nexport function parseJsonObject(content: string | undefined, fallback: JsonObject = {}): JsonObject {\n const trimmed = content?.trim();\n return trimmed ? (JSON.parse(trimmed) as JsonObject) : fallback;\n}\n\n/** The on-disk form of a JSON state file: two-space indent and a trailing newline. */\nexport function serializeJson(value: JsonObject): string {\n return `${JSON.stringify(value, null, 2)}\\n`;\n}\n\n/** Reads a JSON object, treating a missing or empty file as the fallback. */\nexport async function readJsonAsync(\n fs: FileSystem,\n filePath: string,\n context: Context,\n fallback: JsonObject = {},\n): Promise<JsonObject> {\n return parseJsonObject(await readTextIfExists(fs, filePath, context), fallback);\n}\n\n/** Writes a JSON object through a uniquely named temporary file and a rename. */\nexport async function writeJsonAsync(\n fs: FileSystem,\n filePath: string,\n value: JsonObject,\n context: Context,\n): Promise<void> {\n await writeFileAtomicAsync(fs, filePath, serializeJson(value), context);\n}\n"],"mappings":";;AAcA,SAAgB,SAAS,OAAqC;CAC5D,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;;AAGA,SAAgB,gBAAgB,SAA6B,WAAuB,CAAC,GAAe;CAClG,MAAM,UAAU,SAAS,KAAK;CAC9B,OAAO,UAAW,KAAK,MAAM,OAAO,IAAmB;AACzD;;AAGA,SAAgB,cAAc,OAA2B;CACvD,OAAO,GAAG,KAAK,UAAU,OAAO,MAAM,CAAC,EAAE;AAC3C;;AAGA,eAAsB,cACpB,IACA,UACA,SACA,WAAuB,CAAC,GACH;CACrB,OAAO,gBAAgB,MAAM,iBAAiB,IAAI,UAAU,OAAO,GAAG,QAAQ;AAChF;;AAGA,eAAsB,eACpB,IACA,UACA,OACA,SACe;CACf,MAAMA,gBAAqB,IAAI,UAAU,cAAc,KAAK,GAAG,OAAO;AACxE"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_core = require("./core.cjs");
|
|
3
|
+
let node_crypto = require("node:crypto");
|
|
4
|
+
let node_fs = require("node:fs");
|
|
5
|
+
node_fs = require_runtime.__toESM(node_fs, 1);
|
|
6
|
+
let node_path = require("node:path");
|
|
7
|
+
node_path = require_runtime.__toESM(node_path, 1);
|
|
8
|
+
//#region src/services/json/sync.ts
|
|
9
|
+
const ATOMIC_FILE_SUFFIX = ".tmp";
|
|
10
|
+
/**
|
|
11
|
+
* Reads a JSON object, treating a missing or empty file as the fallback.
|
|
12
|
+
*
|
|
13
|
+
* @deprecated Node-only sync shim; use readJsonAsync. Removed in M2.
|
|
14
|
+
*/
|
|
15
|
+
function readJson(filePath, fallback = {}) {
|
|
16
|
+
if (!node_fs.default.existsSync(filePath)) return fallback;
|
|
17
|
+
return require_core.parseJsonObject(node_fs.default.readFileSync(filePath, "utf8"), fallback);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Writes through a uniquely named temporary file in the same directory.
|
|
21
|
+
*
|
|
22
|
+
* The pid and a UUID are both in the name so two harnesses writing the same
|
|
23
|
+
* target cannot collide on the temporary path, and a failed write cleans up
|
|
24
|
+
* after itself rather than leaving the fragment behind.
|
|
25
|
+
*
|
|
26
|
+
* @deprecated Node-only sync shim; use writeFileAtomic from `@agimon-ai/po-core/platform`. Removed in M2.
|
|
27
|
+
*/
|
|
28
|
+
function writeFileAtomic(filePath, content) {
|
|
29
|
+
node_fs.default.mkdirSync(node_path.default.dirname(filePath), { recursive: true });
|
|
30
|
+
const temporaryPath = `${filePath}.${process.pid}.${(0, node_crypto.randomUUID)()}${ATOMIC_FILE_SUFFIX}`;
|
|
31
|
+
try {
|
|
32
|
+
node_fs.default.writeFileSync(temporaryPath, content);
|
|
33
|
+
node_fs.default.renameSync(temporaryPath, filePath);
|
|
34
|
+
} catch (error) {
|
|
35
|
+
node_fs.default.rmSync(temporaryPath, { force: true });
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** @deprecated Node-only sync shim; use writeJsonAsync. Removed in M2. */
|
|
40
|
+
function writeJson(filePath, value) {
|
|
41
|
+
writeFileAtomic(filePath, require_core.serializeJson(value));
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
exports.readJson = readJson;
|
|
45
|
+
exports.writeFileAtomic = writeFileAtomic;
|
|
46
|
+
exports.writeJson = writeJson;
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=sync.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.cjs","names":["fs","parseJsonObject","path","randomUUID","serializeJson"],"sources":["../../../../src/services/json/sync.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { parseJsonObject, serializeJson } from './core';\nimport type { JsonObject } from './core';\n\nconst ATOMIC_FILE_SUFFIX = '.tmp';\n\n/**\n * Reads a JSON object, treating a missing or empty file as the fallback.\n *\n * @deprecated Node-only sync shim; use readJsonAsync. Removed in M2.\n */\nexport function readJson(filePath: string, fallback: JsonObject = {}): JsonObject {\n if (!fs.existsSync(filePath)) return fallback;\n return parseJsonObject(fs.readFileSync(filePath, 'utf8'), fallback);\n}\n\n/**\n * Writes through a uniquely named temporary file in the same directory.\n *\n * The pid and a UUID are both in the name so two harnesses writing the same\n * target cannot collide on the temporary path, and a failed write cleans up\n * after itself rather than leaving the fragment behind.\n *\n * @deprecated Node-only sync shim; use writeFileAtomic from `@agimon-ai/po-core/platform`. Removed in M2.\n */\nexport function writeFileAtomic(filePath: string, content: string): void {\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n const temporaryPath = `${filePath}.${process.pid}.${randomUUID()}${ATOMIC_FILE_SUFFIX}`;\n try {\n fs.writeFileSync(temporaryPath, content);\n fs.renameSync(temporaryPath, filePath);\n } catch (error) {\n fs.rmSync(temporaryPath, { force: true });\n throw error;\n }\n}\n\n/** @deprecated Node-only sync shim; use writeJsonAsync. Removed in M2. */\nexport function writeJson(filePath: string, value: JsonObject): void {\n writeFileAtomic(filePath, serializeJson(value));\n}\n"],"mappings":";;;;;;;;AAOA,MAAM,qBAAqB;;;;;;AAO3B,SAAgB,SAAS,UAAkB,WAAuB,CAAC,GAAe;CAChF,IAAI,CAACA,QAAAA,QAAG,WAAW,QAAQ,GAAG,OAAO;CACrC,OAAOC,aAAAA,gBAAgBD,QAAAA,QAAG,aAAa,UAAU,MAAM,GAAG,QAAQ;AACpE;;;;;;;;;;AAWA,SAAgB,gBAAgB,UAAkB,SAAuB;CACvE,QAAA,QAAG,UAAUE,UAAAA,QAAK,QAAQ,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;CACxD,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,IAAI,IAAA,GAAGC,YAAAA,WAAAA,CAAW,IAAI;CACnE,IAAI;EACF,QAAA,QAAG,cAAc,eAAe,OAAO;EACvC,QAAA,QAAG,WAAW,eAAe,QAAQ;CACvC,SAAS,OAAO;EACd,QAAA,QAAG,OAAO,eAAe,EAAE,OAAO,KAAK,CAAC;EACxC,MAAM;CACR;AACF;;AAGA,SAAgB,UAAU,UAAkB,OAAyB;CACnE,gBAAgB,UAAUC,aAAAA,cAAc,KAAK,CAAC;AAChD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { JsonObject } from "./core.mjs";
|
|
2
|
+
//#region src/services/json/sync.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Reads a JSON object, treating a missing or empty file as the fallback.
|
|
5
|
+
*
|
|
6
|
+
* @deprecated Node-only sync shim; use readJsonAsync. Removed in M2.
|
|
7
|
+
*/
|
|
8
|
+
export declare function readJson(filePath: string, fallback?: JsonObject): JsonObject;
|
|
9
|
+
/**
|
|
10
|
+
* Writes through a uniquely named temporary file in the same directory.
|
|
11
|
+
*
|
|
12
|
+
* The pid and a UUID are both in the name so two harnesses writing the same
|
|
13
|
+
* target cannot collide on the temporary path, and a failed write cleans up
|
|
14
|
+
* after itself rather than leaving the fragment behind.
|
|
15
|
+
*
|
|
16
|
+
* @deprecated Node-only sync shim; use writeFileAtomic from `@agimon-ai/po-core/platform`. Removed in M2.
|
|
17
|
+
*/
|
|
18
|
+
export declare function writeFileAtomic(filePath: string, content: string): void;
|
|
19
|
+
/** @deprecated Node-only sync shim; use writeJsonAsync. Removed in M2. */
|
|
20
|
+
export declare function writeJson(filePath: string, value: JsonObject): void;
|
|
21
|
+
//#endregion
|
|
22
|
+
//# sourceMappingURL=sync.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.mts","names":[],"sources":["../../../../src/services/json/sync.ts"],"mappings":";;;;;;;wBAcgB,SAAS,kBAAkB,WAAU,aAAkB;;;;;;;;;;wBAcvD,gBAAgB,kBAAkB;;wBAalC,UAAU,kBAAkB,OAAO"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { parseJsonObject, serializeJson } from "./core.mjs";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
3
|
+
import fs from "node:fs";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
//#region src/services/json/sync.ts
|
|
6
|
+
const ATOMIC_FILE_SUFFIX = ".tmp";
|
|
7
|
+
/**
|
|
8
|
+
* Reads a JSON object, treating a missing or empty file as the fallback.
|
|
9
|
+
*
|
|
10
|
+
* @deprecated Node-only sync shim; use readJsonAsync. Removed in M2.
|
|
11
|
+
*/
|
|
12
|
+
function readJson(filePath, fallback = {}) {
|
|
13
|
+
if (!fs.existsSync(filePath)) return fallback;
|
|
14
|
+
return parseJsonObject(fs.readFileSync(filePath, "utf8"), fallback);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Writes through a uniquely named temporary file in the same directory.
|
|
18
|
+
*
|
|
19
|
+
* The pid and a UUID are both in the name so two harnesses writing the same
|
|
20
|
+
* target cannot collide on the temporary path, and a failed write cleans up
|
|
21
|
+
* after itself rather than leaving the fragment behind.
|
|
22
|
+
*
|
|
23
|
+
* @deprecated Node-only sync shim; use writeFileAtomic from `@agimon-ai/po-core/platform`. Removed in M2.
|
|
24
|
+
*/
|
|
25
|
+
function writeFileAtomic(filePath, content) {
|
|
26
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
27
|
+
const temporaryPath = `${filePath}.${process.pid}.${randomUUID()}${ATOMIC_FILE_SUFFIX}`;
|
|
28
|
+
try {
|
|
29
|
+
fs.writeFileSync(temporaryPath, content);
|
|
30
|
+
fs.renameSync(temporaryPath, filePath);
|
|
31
|
+
} catch (error) {
|
|
32
|
+
fs.rmSync(temporaryPath, { force: true });
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/** @deprecated Node-only sync shim; use writeJsonAsync. Removed in M2. */
|
|
37
|
+
function writeJson(filePath, value) {
|
|
38
|
+
writeFileAtomic(filePath, serializeJson(value));
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
export { readJson, writeFileAtomic, writeJson };
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=sync.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.mjs","names":[],"sources":["../../../../src/services/json/sync.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { parseJsonObject, serializeJson } from './core';\nimport type { JsonObject } from './core';\n\nconst ATOMIC_FILE_SUFFIX = '.tmp';\n\n/**\n * Reads a JSON object, treating a missing or empty file as the fallback.\n *\n * @deprecated Node-only sync shim; use readJsonAsync. Removed in M2.\n */\nexport function readJson(filePath: string, fallback: JsonObject = {}): JsonObject {\n if (!fs.existsSync(filePath)) return fallback;\n return parseJsonObject(fs.readFileSync(filePath, 'utf8'), fallback);\n}\n\n/**\n * Writes through a uniquely named temporary file in the same directory.\n *\n * The pid and a UUID are both in the name so two harnesses writing the same\n * target cannot collide on the temporary path, and a failed write cleans up\n * after itself rather than leaving the fragment behind.\n *\n * @deprecated Node-only sync shim; use writeFileAtomic from `@agimon-ai/po-core/platform`. Removed in M2.\n */\nexport function writeFileAtomic(filePath: string, content: string): void {\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n const temporaryPath = `${filePath}.${process.pid}.${randomUUID()}${ATOMIC_FILE_SUFFIX}`;\n try {\n fs.writeFileSync(temporaryPath, content);\n fs.renameSync(temporaryPath, filePath);\n } catch (error) {\n fs.rmSync(temporaryPath, { force: true });\n throw error;\n }\n}\n\n/** @deprecated Node-only sync shim; use writeJsonAsync. Removed in M2. */\nexport function writeJson(filePath: string, value: JsonObject): void {\n writeFileAtomic(filePath, serializeJson(value));\n}\n"],"mappings":";;;;;AAOA,MAAM,qBAAqB;;;;;;AAO3B,SAAgB,SAAS,UAAkB,WAAuB,CAAC,GAAe;CAChF,IAAI,CAAC,GAAG,WAAW,QAAQ,GAAG,OAAO;CACrC,OAAO,gBAAgB,GAAG,aAAa,UAAU,MAAM,GAAG,QAAQ;AACpE;;;;;;;;;;AAWA,SAAgB,gBAAgB,UAAkB,SAAuB;CACvE,GAAG,UAAU,KAAK,QAAQ,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;CACxD,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,IAAI,GAAG,WAAW,IAAI;CACnE,IAAI;EACF,GAAG,cAAc,eAAe,OAAO;EACvC,GAAG,WAAW,eAAe,QAAQ;CACvC,SAAS,OAAO;EACd,GAAG,OAAO,eAAe,EAAE,OAAO,KAAK,CAAC;EACxC,MAAM;CACR;AACF;;AAGA,SAAgB,UAAU,UAAkB,OAAyB;CACnE,gBAAgB,UAAU,cAAc,KAAK,CAAC;AAChD"}
|
|
@@ -7,7 +7,7 @@ function sameList(left, right) {
|
|
|
7
7
|
function describe(error) {
|
|
8
8
|
return error instanceof Error ? error.message : String(error);
|
|
9
9
|
}
|
|
10
|
-
function
|
|
10
|
+
function createPoKernel(options = {}) {
|
|
11
11
|
const slots = /* @__PURE__ */ new Map();
|
|
12
12
|
const dirty = /* @__PURE__ */ new Set();
|
|
13
13
|
/** Slots whose values render differently without the list itself changing. */
|
|
@@ -142,6 +142,6 @@ function createDoomKernel(options = {}) {
|
|
|
142
142
|
};
|
|
143
143
|
}
|
|
144
144
|
//#endregion
|
|
145
|
-
exports.
|
|
145
|
+
exports.createPoKernel = createPoKernel;
|
|
146
146
|
|
|
147
147
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/kernel/index.ts"],"sourcesContent":["/**\n * The kernel contribution registry.\n *\n * DESIGN PATTERNS:\n * - Pure function of registered contributions plus the active layer set. Every\n * push recomputes from that state, so there is no incremental bookkeeping to\n * drift out of sync.\n * - Pushes are serialized on one tail. A sink that awaits cannot interleave\n * with the next recompute, which is what keeps a host's whole-list setter\n * from being called out of order.\n * - Registration coalesces into one microtask flush, so composing forty\n * packages at startup costs one push per slot rather than forty.\n *\n * AVOID:\n * - Pushing a slot whose active list is unchanged. Hosts treat a set call as a\n * structural change, and a redundant one is visible to the user.\n * - Throwing out of a push loop early. One broken sink must not stop the rest\n * of the surfaces from reaching the host.\n */\n\nimport type {\n DoomKernel,\n KernelContribution,\n KernelRegistration,\n KernelSlotHandle,\n KernelSlotSink,\n} from '../../types/kernel';\n\ninterface SlotState {\n readonly name: string;\n readonly sink: KernelSlotSink<unknown>;\n readonly entries: Map<number, KernelContribution<unknown>>;\n pushed: readonly unknown[] | undefined;\n disposed: boolean;\n}\n\nconst DISPOSED_MESSAGE = 'The kernel is disposed';\n\nfunction sameList(left: readonly unknown[] | undefined, right: readonly unknown[]): boolean {\n if (left === undefined || left.length !== right.length) return false;\n return left.every((value, index) => value === right[index]);\n}\n\nfunction describe(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport interface CreateDoomKernelOptions {\n /** Layers active at creation, usually `resolveLayers(config, majorMode)`. */\n readonly activeLayers?: readonly string[];\n}\n\nexport function createDoomKernel(options: CreateDoomKernelOptions = {}): DoomKernel {\n const slots = new Map<string, SlotState>();\n const dirty = new Set<string>();\n /** Slots whose values render differently without the list itself changing. */\n const forced = new Set<string>();\n let layers = new Set(options.activeLayers ?? []);\n let sequence = 0;\n let tail: Promise<void> = Promise.resolve();\n let scheduled: Promise<void> | undefined;\n let disposed = false;\n\n const activeOf = (slot: SlotState): readonly unknown[] =>\n [...slot.entries.entries()]\n .sort(([left], [right]) => left - right)\n .filter(([, entry]) => entry.layer === undefined || layers.has(entry.layer))\n .map(([, entry]) => entry.value);\n\n const pushOne = async (slot: SlotState, force: boolean, failures: string[]): Promise<void> => {\n if (slot.disposed) return;\n const active = activeOf(slot);\n if (!force && sameList(slot.pushed, active)) return;\n try {\n await slot.sink(active);\n slot.pushed = active;\n } catch (error) {\n // Cache only an acknowledged application. A sink may be retried with the\n // same active values after it recovers.\n failures.push(`${slot.name}: ${describe(error)}`);\n }\n };\n\n const flush = (): Promise<void> => {\n const run = tail\n .catch(() => undefined)\n .then(async () => {\n if (dirty.size === 0) return;\n const pending = [...dirty];\n const pendingForced = new Set(forced);\n dirty.clear();\n forced.clear();\n const failures: string[] = [];\n for (const name of pending) {\n const slot = slots.get(name);\n if (slot) await pushOne(slot, pendingForced.has(name), failures);\n }\n if (failures.length > 0) throw new Error(`Kernel slots failed to apply: ${failures.join('; ')}`);\n });\n tail = run;\n return run;\n };\n\n const schedule = (): void => {\n if (scheduled) return;\n scheduled = Promise.resolve().then(() => {\n scheduled = undefined;\n // A scheduled flush is fire and forget; `refresh` is how a caller waits.\n return flush().catch(() => undefined);\n });\n };\n\n const markDirty = (name: string): void => {\n dirty.add(name);\n };\n\n const contribute = <TValue>(slot: string, entry: KernelContribution<TValue>): KernelRegistration => {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n const state = slots.get(slot);\n if (!state)\n throw new Error(`Unknown kernel slot: ${slot}. Defined slots: ${[...slots.keys()].join(', ') || 'none'}`);\n const key = sequence++;\n state.entries.set(key, entry as KernelContribution<unknown>);\n markDirty(slot);\n schedule();\n let removed = false;\n return {\n dispose(): void {\n if (removed) return;\n removed = true;\n state.entries.delete(key);\n markDirty(slot);\n schedule();\n },\n };\n };\n\n return {\n get activeLayers(): readonly string[] {\n return [...layers];\n },\n get slots(): readonly string[] {\n return [...slots.keys()];\n },\n defineSlot<TValue>(name: string, sink: KernelSlotSink<TValue>): KernelSlotHandle<TValue> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slots.has(name)) throw new Error(`Kernel slot already defined: ${name}`);\n const state: SlotState = {\n name,\n sink: sink as KernelSlotSink<unknown>,\n entries: new Map(),\n pushed: undefined,\n disposed: false,\n };\n slots.set(name, state);\n let removed = false;\n return {\n name,\n contribute: (entry) => contribute(name, entry),\n dispose(): void {\n if (removed) return;\n removed = true;\n state.disposed = true;\n slots.delete(name);\n dirty.delete(name);\n forced.delete(name);\n },\n };\n },\n contribute,\n async setActiveLayers(next: readonly string[]): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n layers = new Set(next);\n for (const name of slots.keys()) markDirty(name);\n await flush();\n },\n async refresh(slot?: string): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slot === undefined) {\n for (const name of slots.keys()) {\n markDirty(name);\n forced.add(name);\n }\n } else if (slots.has(slot)) {\n markDirty(slot);\n forced.add(slot);\n }\n await flush();\n },\n activeValues<TValue>(slot: string): readonly TValue[] {\n const state = slots.get(slot);\n return state ? (activeOf(state) as readonly TValue[]) : [];\n },\n contributions<TValue>(slot: string): readonly KernelContribution<TValue>[] {\n const state = slots.get(slot);\n return state ? ([...state.entries.values()] as readonly KernelContribution<TValue>[]) : [];\n },\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const state of slots.values()) state.disposed = true;\n slots.clear();\n dirty.clear();\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/kernel/index.ts"],"sourcesContent":["/**\n * The kernel contribution registry.\n *\n * DESIGN PATTERNS:\n * - Pure function of registered contributions plus the active layer set. Every\n * push recomputes from that state, so there is no incremental bookkeeping to\n * drift out of sync.\n * - Pushes are serialized on one tail. A sink that awaits cannot interleave\n * with the next recompute, which is what keeps a host's whole-list setter\n * from being called out of order.\n * - Registration coalesces into one microtask flush, so composing forty\n * packages at startup costs one push per slot rather than forty.\n *\n * AVOID:\n * - Pushing a slot whose active list is unchanged. Hosts treat a set call as a\n * structural change, and a redundant one is visible to the user.\n * - Throwing out of a push loop early. One broken sink must not stop the rest\n * of the surfaces from reaching the host.\n */\n\nimport type {\n PoKernel,\n KernelContribution,\n KernelRegistration,\n KernelSlotHandle,\n KernelSlotSink,\n} from '../../types/kernel';\n\ninterface SlotState {\n readonly name: string;\n readonly sink: KernelSlotSink<unknown>;\n readonly entries: Map<number, KernelContribution<unknown>>;\n pushed: readonly unknown[] | undefined;\n disposed: boolean;\n}\n\nconst DISPOSED_MESSAGE = 'The kernel is disposed';\n\nfunction sameList(left: readonly unknown[] | undefined, right: readonly unknown[]): boolean {\n if (left === undefined || left.length !== right.length) return false;\n return left.every((value, index) => value === right[index]);\n}\n\nfunction describe(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport interface CreatePoKernelOptions {\n /** Layers active at creation, usually `resolveLayers(config, majorMode)`. */\n readonly activeLayers?: readonly string[];\n}\n\nexport function createPoKernel(options: CreatePoKernelOptions = {}): PoKernel {\n const slots = new Map<string, SlotState>();\n const dirty = new Set<string>();\n /** Slots whose values render differently without the list itself changing. */\n const forced = new Set<string>();\n let layers = new Set(options.activeLayers ?? []);\n let sequence = 0;\n let tail: Promise<void> = Promise.resolve();\n let scheduled: Promise<void> | undefined;\n let disposed = false;\n\n const activeOf = (slot: SlotState): readonly unknown[] =>\n [...slot.entries.entries()]\n .sort(([left], [right]) => left - right)\n .filter(([, entry]) => entry.layer === undefined || layers.has(entry.layer))\n .map(([, entry]) => entry.value);\n\n const pushOne = async (slot: SlotState, force: boolean, failures: string[]): Promise<void> => {\n if (slot.disposed) return;\n const active = activeOf(slot);\n if (!force && sameList(slot.pushed, active)) return;\n try {\n await slot.sink(active);\n slot.pushed = active;\n } catch (error) {\n // Cache only an acknowledged application. A sink may be retried with the\n // same active values after it recovers.\n failures.push(`${slot.name}: ${describe(error)}`);\n }\n };\n\n const flush = (): Promise<void> => {\n const run = tail\n .catch(() => undefined)\n .then(async () => {\n if (dirty.size === 0) return;\n const pending = [...dirty];\n const pendingForced = new Set(forced);\n dirty.clear();\n forced.clear();\n const failures: string[] = [];\n for (const name of pending) {\n const slot = slots.get(name);\n if (slot) await pushOne(slot, pendingForced.has(name), failures);\n }\n if (failures.length > 0) throw new Error(`Kernel slots failed to apply: ${failures.join('; ')}`);\n });\n tail = run;\n return run;\n };\n\n const schedule = (): void => {\n if (scheduled) return;\n scheduled = Promise.resolve().then(() => {\n scheduled = undefined;\n // A scheduled flush is fire and forget; `refresh` is how a caller waits.\n return flush().catch(() => undefined);\n });\n };\n\n const markDirty = (name: string): void => {\n dirty.add(name);\n };\n\n const contribute = <TValue>(slot: string, entry: KernelContribution<TValue>): KernelRegistration => {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n const state = slots.get(slot);\n if (!state)\n throw new Error(`Unknown kernel slot: ${slot}. Defined slots: ${[...slots.keys()].join(', ') || 'none'}`);\n const key = sequence++;\n state.entries.set(key, entry as KernelContribution<unknown>);\n markDirty(slot);\n schedule();\n let removed = false;\n return {\n dispose(): void {\n if (removed) return;\n removed = true;\n state.entries.delete(key);\n markDirty(slot);\n schedule();\n },\n };\n };\n\n return {\n get activeLayers(): readonly string[] {\n return [...layers];\n },\n get slots(): readonly string[] {\n return [...slots.keys()];\n },\n defineSlot<TValue>(name: string, sink: KernelSlotSink<TValue>): KernelSlotHandle<TValue> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slots.has(name)) throw new Error(`Kernel slot already defined: ${name}`);\n const state: SlotState = {\n name,\n sink: sink as KernelSlotSink<unknown>,\n entries: new Map(),\n pushed: undefined,\n disposed: false,\n };\n slots.set(name, state);\n let removed = false;\n return {\n name,\n contribute: (entry) => contribute(name, entry),\n dispose(): void {\n if (removed) return;\n removed = true;\n state.disposed = true;\n slots.delete(name);\n dirty.delete(name);\n forced.delete(name);\n },\n };\n },\n contribute,\n async setActiveLayers(next: readonly string[]): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n layers = new Set(next);\n for (const name of slots.keys()) markDirty(name);\n await flush();\n },\n async refresh(slot?: string): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slot === undefined) {\n for (const name of slots.keys()) {\n markDirty(name);\n forced.add(name);\n }\n } else if (slots.has(slot)) {\n markDirty(slot);\n forced.add(slot);\n }\n await flush();\n },\n activeValues<TValue>(slot: string): readonly TValue[] {\n const state = slots.get(slot);\n return state ? (activeOf(state) as readonly TValue[]) : [];\n },\n contributions<TValue>(slot: string): readonly KernelContribution<TValue>[] {\n const state = slots.get(slot);\n return state ? ([...state.entries.values()] as readonly KernelContribution<TValue>[]) : [];\n },\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const state of slots.values()) state.disposed = true;\n slots.clear();\n dirty.clear();\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PoKernel } from "../../types/kernel.mjs";
|
|
2
2
|
//#region src/services/kernel/index.d.ts
|
|
3
|
-
export interface
|
|
3
|
+
export interface CreatePoKernelOptions {
|
|
4
4
|
/** Layers active at creation, usually `resolveLayers(config, majorMode)`. */
|
|
5
5
|
readonly activeLayers?: readonly string[];
|
|
6
6
|
}
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function createPoKernel(options?: CreatePoKernelOptions): PoKernel;
|
|
8
8
|
//#endregion
|
|
9
9
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/kernel/index.ts"],"mappings":";;iBA+CiB;;WAEN;;wBAGK,
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/kernel/index.ts"],"mappings":";;iBA+CiB;;WAEN;;wBAGK,eAAe,UAAS,wBAA6B"}
|
|
@@ -7,7 +7,7 @@ function sameList(left, right) {
|
|
|
7
7
|
function describe(error) {
|
|
8
8
|
return error instanceof Error ? error.message : String(error);
|
|
9
9
|
}
|
|
10
|
-
function
|
|
10
|
+
function createPoKernel(options = {}) {
|
|
11
11
|
const slots = /* @__PURE__ */ new Map();
|
|
12
12
|
const dirty = /* @__PURE__ */ new Set();
|
|
13
13
|
/** Slots whose values render differently without the list itself changing. */
|
|
@@ -142,6 +142,6 @@ function createDoomKernel(options = {}) {
|
|
|
142
142
|
};
|
|
143
143
|
}
|
|
144
144
|
//#endregion
|
|
145
|
-
export {
|
|
145
|
+
export { createPoKernel };
|
|
146
146
|
|
|
147
147
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/kernel/index.ts"],"sourcesContent":["/**\n * The kernel contribution registry.\n *\n * DESIGN PATTERNS:\n * - Pure function of registered contributions plus the active layer set. Every\n * push recomputes from that state, so there is no incremental bookkeeping to\n * drift out of sync.\n * - Pushes are serialized on one tail. A sink that awaits cannot interleave\n * with the next recompute, which is what keeps a host's whole-list setter\n * from being called out of order.\n * - Registration coalesces into one microtask flush, so composing forty\n * packages at startup costs one push per slot rather than forty.\n *\n * AVOID:\n * - Pushing a slot whose active list is unchanged. Hosts treat a set call as a\n * structural change, and a redundant one is visible to the user.\n * - Throwing out of a push loop early. One broken sink must not stop the rest\n * of the surfaces from reaching the host.\n */\n\nimport type {\n DoomKernel,\n KernelContribution,\n KernelRegistration,\n KernelSlotHandle,\n KernelSlotSink,\n} from '../../types/kernel';\n\ninterface SlotState {\n readonly name: string;\n readonly sink: KernelSlotSink<unknown>;\n readonly entries: Map<number, KernelContribution<unknown>>;\n pushed: readonly unknown[] | undefined;\n disposed: boolean;\n}\n\nconst DISPOSED_MESSAGE = 'The kernel is disposed';\n\nfunction sameList(left: readonly unknown[] | undefined, right: readonly unknown[]): boolean {\n if (left === undefined || left.length !== right.length) return false;\n return left.every((value, index) => value === right[index]);\n}\n\nfunction describe(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport interface CreateDoomKernelOptions {\n /** Layers active at creation, usually `resolveLayers(config, majorMode)`. */\n readonly activeLayers?: readonly string[];\n}\n\nexport function createDoomKernel(options: CreateDoomKernelOptions = {}): DoomKernel {\n const slots = new Map<string, SlotState>();\n const dirty = new Set<string>();\n /** Slots whose values render differently without the list itself changing. */\n const forced = new Set<string>();\n let layers = new Set(options.activeLayers ?? []);\n let sequence = 0;\n let tail: Promise<void> = Promise.resolve();\n let scheduled: Promise<void> | undefined;\n let disposed = false;\n\n const activeOf = (slot: SlotState): readonly unknown[] =>\n [...slot.entries.entries()]\n .sort(([left], [right]) => left - right)\n .filter(([, entry]) => entry.layer === undefined || layers.has(entry.layer))\n .map(([, entry]) => entry.value);\n\n const pushOne = async (slot: SlotState, force: boolean, failures: string[]): Promise<void> => {\n if (slot.disposed) return;\n const active = activeOf(slot);\n if (!force && sameList(slot.pushed, active)) return;\n try {\n await slot.sink(active);\n slot.pushed = active;\n } catch (error) {\n // Cache only an acknowledged application. A sink may be retried with the\n // same active values after it recovers.\n failures.push(`${slot.name}: ${describe(error)}`);\n }\n };\n\n const flush = (): Promise<void> => {\n const run = tail\n .catch(() => undefined)\n .then(async () => {\n if (dirty.size === 0) return;\n const pending = [...dirty];\n const pendingForced = new Set(forced);\n dirty.clear();\n forced.clear();\n const failures: string[] = [];\n for (const name of pending) {\n const slot = slots.get(name);\n if (slot) await pushOne(slot, pendingForced.has(name), failures);\n }\n if (failures.length > 0) throw new Error(`Kernel slots failed to apply: ${failures.join('; ')}`);\n });\n tail = run;\n return run;\n };\n\n const schedule = (): void => {\n if (scheduled) return;\n scheduled = Promise.resolve().then(() => {\n scheduled = undefined;\n // A scheduled flush is fire and forget; `refresh` is how a caller waits.\n return flush().catch(() => undefined);\n });\n };\n\n const markDirty = (name: string): void => {\n dirty.add(name);\n };\n\n const contribute = <TValue>(slot: string, entry: KernelContribution<TValue>): KernelRegistration => {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n const state = slots.get(slot);\n if (!state)\n throw new Error(`Unknown kernel slot: ${slot}. Defined slots: ${[...slots.keys()].join(', ') || 'none'}`);\n const key = sequence++;\n state.entries.set(key, entry as KernelContribution<unknown>);\n markDirty(slot);\n schedule();\n let removed = false;\n return {\n dispose(): void {\n if (removed) return;\n removed = true;\n state.entries.delete(key);\n markDirty(slot);\n schedule();\n },\n };\n };\n\n return {\n get activeLayers(): readonly string[] {\n return [...layers];\n },\n get slots(): readonly string[] {\n return [...slots.keys()];\n },\n defineSlot<TValue>(name: string, sink: KernelSlotSink<TValue>): KernelSlotHandle<TValue> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slots.has(name)) throw new Error(`Kernel slot already defined: ${name}`);\n const state: SlotState = {\n name,\n sink: sink as KernelSlotSink<unknown>,\n entries: new Map(),\n pushed: undefined,\n disposed: false,\n };\n slots.set(name, state);\n let removed = false;\n return {\n name,\n contribute: (entry) => contribute(name, entry),\n dispose(): void {\n if (removed) return;\n removed = true;\n state.disposed = true;\n slots.delete(name);\n dirty.delete(name);\n forced.delete(name);\n },\n };\n },\n contribute,\n async setActiveLayers(next: readonly string[]): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n layers = new Set(next);\n for (const name of slots.keys()) markDirty(name);\n await flush();\n },\n async refresh(slot?: string): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slot === undefined) {\n for (const name of slots.keys()) {\n markDirty(name);\n forced.add(name);\n }\n } else if (slots.has(slot)) {\n markDirty(slot);\n forced.add(slot);\n }\n await flush();\n },\n activeValues<TValue>(slot: string): readonly TValue[] {\n const state = slots.get(slot);\n return state ? (activeOf(state) as readonly TValue[]) : [];\n },\n contributions<TValue>(slot: string): readonly KernelContribution<TValue>[] {\n const state = slots.get(slot);\n return state ? ([...state.entries.values()] as readonly KernelContribution<TValue>[]) : [];\n },\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const state of slots.values()) state.disposed = true;\n slots.clear();\n dirty.clear();\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/kernel/index.ts"],"sourcesContent":["/**\n * The kernel contribution registry.\n *\n * DESIGN PATTERNS:\n * - Pure function of registered contributions plus the active layer set. Every\n * push recomputes from that state, so there is no incremental bookkeeping to\n * drift out of sync.\n * - Pushes are serialized on one tail. A sink that awaits cannot interleave\n * with the next recompute, which is what keeps a host's whole-list setter\n * from being called out of order.\n * - Registration coalesces into one microtask flush, so composing forty\n * packages at startup costs one push per slot rather than forty.\n *\n * AVOID:\n * - Pushing a slot whose active list is unchanged. Hosts treat a set call as a\n * structural change, and a redundant one is visible to the user.\n * - Throwing out of a push loop early. One broken sink must not stop the rest\n * of the surfaces from reaching the host.\n */\n\nimport type {\n PoKernel,\n KernelContribution,\n KernelRegistration,\n KernelSlotHandle,\n KernelSlotSink,\n} from '../../types/kernel';\n\ninterface SlotState {\n readonly name: string;\n readonly sink: KernelSlotSink<unknown>;\n readonly entries: Map<number, KernelContribution<unknown>>;\n pushed: readonly unknown[] | undefined;\n disposed: boolean;\n}\n\nconst DISPOSED_MESSAGE = 'The kernel is disposed';\n\nfunction sameList(left: readonly unknown[] | undefined, right: readonly unknown[]): boolean {\n if (left === undefined || left.length !== right.length) return false;\n return left.every((value, index) => value === right[index]);\n}\n\nfunction describe(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport interface CreatePoKernelOptions {\n /** Layers active at creation, usually `resolveLayers(config, majorMode)`. */\n readonly activeLayers?: readonly string[];\n}\n\nexport function createPoKernel(options: CreatePoKernelOptions = {}): PoKernel {\n const slots = new Map<string, SlotState>();\n const dirty = new Set<string>();\n /** Slots whose values render differently without the list itself changing. */\n const forced = new Set<string>();\n let layers = new Set(options.activeLayers ?? []);\n let sequence = 0;\n let tail: Promise<void> = Promise.resolve();\n let scheduled: Promise<void> | undefined;\n let disposed = false;\n\n const activeOf = (slot: SlotState): readonly unknown[] =>\n [...slot.entries.entries()]\n .sort(([left], [right]) => left - right)\n .filter(([, entry]) => entry.layer === undefined || layers.has(entry.layer))\n .map(([, entry]) => entry.value);\n\n const pushOne = async (slot: SlotState, force: boolean, failures: string[]): Promise<void> => {\n if (slot.disposed) return;\n const active = activeOf(slot);\n if (!force && sameList(slot.pushed, active)) return;\n try {\n await slot.sink(active);\n slot.pushed = active;\n } catch (error) {\n // Cache only an acknowledged application. A sink may be retried with the\n // same active values after it recovers.\n failures.push(`${slot.name}: ${describe(error)}`);\n }\n };\n\n const flush = (): Promise<void> => {\n const run = tail\n .catch(() => undefined)\n .then(async () => {\n if (dirty.size === 0) return;\n const pending = [...dirty];\n const pendingForced = new Set(forced);\n dirty.clear();\n forced.clear();\n const failures: string[] = [];\n for (const name of pending) {\n const slot = slots.get(name);\n if (slot) await pushOne(slot, pendingForced.has(name), failures);\n }\n if (failures.length > 0) throw new Error(`Kernel slots failed to apply: ${failures.join('; ')}`);\n });\n tail = run;\n return run;\n };\n\n const schedule = (): void => {\n if (scheduled) return;\n scheduled = Promise.resolve().then(() => {\n scheduled = undefined;\n // A scheduled flush is fire and forget; `refresh` is how a caller waits.\n return flush().catch(() => undefined);\n });\n };\n\n const markDirty = (name: string): void => {\n dirty.add(name);\n };\n\n const contribute = <TValue>(slot: string, entry: KernelContribution<TValue>): KernelRegistration => {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n const state = slots.get(slot);\n if (!state)\n throw new Error(`Unknown kernel slot: ${slot}. Defined slots: ${[...slots.keys()].join(', ') || 'none'}`);\n const key = sequence++;\n state.entries.set(key, entry as KernelContribution<unknown>);\n markDirty(slot);\n schedule();\n let removed = false;\n return {\n dispose(): void {\n if (removed) return;\n removed = true;\n state.entries.delete(key);\n markDirty(slot);\n schedule();\n },\n };\n };\n\n return {\n get activeLayers(): readonly string[] {\n return [...layers];\n },\n get slots(): readonly string[] {\n return [...slots.keys()];\n },\n defineSlot<TValue>(name: string, sink: KernelSlotSink<TValue>): KernelSlotHandle<TValue> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slots.has(name)) throw new Error(`Kernel slot already defined: ${name}`);\n const state: SlotState = {\n name,\n sink: sink as KernelSlotSink<unknown>,\n entries: new Map(),\n pushed: undefined,\n disposed: false,\n };\n slots.set(name, state);\n let removed = false;\n return {\n name,\n contribute: (entry) => contribute(name, entry),\n dispose(): void {\n if (removed) return;\n removed = true;\n state.disposed = true;\n slots.delete(name);\n dirty.delete(name);\n forced.delete(name);\n },\n };\n },\n contribute,\n async setActiveLayers(next: readonly string[]): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n layers = new Set(next);\n for (const name of slots.keys()) markDirty(name);\n await flush();\n },\n async refresh(slot?: string): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slot === undefined) {\n for (const name of slots.keys()) {\n markDirty(name);\n forced.add(name);\n }\n } else if (slots.has(slot)) {\n markDirty(slot);\n forced.add(slot);\n }\n await flush();\n },\n activeValues<TValue>(slot: string): readonly TValue[] {\n const state = slots.get(slot);\n return state ? (activeOf(state) as readonly TValue[]) : [];\n },\n contributions<TValue>(slot: string): readonly KernelContribution<TValue>[] {\n const state = slots.get(slot);\n return state ? ([...state.entries.values()] as readonly KernelContribution<TValue>[]) : [];\n },\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const state of slots.values()) state.disposed = true;\n slots.clear();\n dirty.clear();\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
let _earendil_works_pi_coding_agent = require("@earendil-works/pi-coding-agent");
|
|
2
|
+
//#region src/services/nativeChildTools/index.ts
|
|
3
|
+
/** Pi's built-in coding tools a child session may be granted by name. */
|
|
4
|
+
const NATIVE_TOOL_FACTORIES = {
|
|
5
|
+
read: _earendil_works_pi_coding_agent.createReadTool,
|
|
6
|
+
bash: _earendil_works_pi_coding_agent.createBashTool,
|
|
7
|
+
edit: _earendil_works_pi_coding_agent.createEditTool,
|
|
8
|
+
write: _earendil_works_pi_coding_agent.createWriteTool,
|
|
9
|
+
grep: _earendil_works_pi_coding_agent.createGrepTool,
|
|
10
|
+
find: _earendil_works_pi_coding_agent.createFindTool,
|
|
11
|
+
ls: _earendil_works_pi_coding_agent.createLsTool
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
14
|
+
exports.NATIVE_TOOL_FACTORIES = NATIVE_TOOL_FACTORIES;
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["createReadTool","createBashTool","createEditTool","createWriteTool","createGrepTool","createFindTool","createLsTool"],"sources":["../../../../src/services/nativeChildTools/index.ts"],"sourcesContent":["import {\n createBashTool,\n createEditTool,\n createFindTool,\n createGrepTool,\n createLsTool,\n createReadTool,\n createWriteTool,\n} from '@earendil-works/pi-coding-agent';\n\n/** Pi's built-in coding tools a child session may be granted by name. */\nexport const NATIVE_TOOL_FACTORIES = {\n read: createReadTool,\n bash: createBashTool,\n edit: createEditTool,\n write: createWriteTool,\n grep: createGrepTool,\n find: createFindTool,\n ls: createLsTool,\n};\n"],"mappings":";;;AAWA,MAAa,wBAAwB;CACnC,MAAMA,gCAAAA;CACN,MAAMC,gCAAAA;CACN,MAAMC,gCAAAA;CACN,OAAOC,gCAAAA;CACP,MAAMC,gCAAAA;CACN,MAAMC,gCAAAA;CACN,IAAIC,gCAAAA;AACN"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createBashTool, createEditTool, createFindTool, createGrepTool, createLsTool, createReadTool, createWriteTool } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
//#region src/services/nativeChildTools/index.ts
|
|
3
|
+
/** Pi's built-in coding tools a child session may be granted by name. */
|
|
4
|
+
const NATIVE_TOOL_FACTORIES = {
|
|
5
|
+
read: createReadTool,
|
|
6
|
+
bash: createBashTool,
|
|
7
|
+
edit: createEditTool,
|
|
8
|
+
write: createWriteTool,
|
|
9
|
+
grep: createGrepTool,
|
|
10
|
+
find: createFindTool,
|
|
11
|
+
ls: createLsTool
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
14
|
+
export { NATIVE_TOOL_FACTORIES };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/nativeChildTools/index.ts"],"sourcesContent":["import {\n createBashTool,\n createEditTool,\n createFindTool,\n createGrepTool,\n createLsTool,\n createReadTool,\n createWriteTool,\n} from '@earendil-works/pi-coding-agent';\n\n/** Pi's built-in coding tools a child session may be granted by name. */\nexport const NATIVE_TOOL_FACTORIES = {\n read: createReadTool,\n bash: createBashTool,\n edit: createEditTool,\n write: createWriteTool,\n grep: createGrepTool,\n find: createFindTool,\n ls: createLsTool,\n};\n"],"mappings":";;;AAWA,MAAa,wBAAwB;CACnC,MAAM;CACN,MAAM;CACN,MAAM;CACN,OAAO;CACP,MAAM;CACN,MAAM;CACN,IAAI;AACN"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
let node_os = require("node:os");
|
|
3
|
+
node_os = require_runtime.__toESM(node_os, 1);
|
|
4
|
+
let node_fs_promises = require("node:fs/promises");
|
|
5
|
+
node_fs_promises = require_runtime.__toESM(node_fs_promises, 1);
|
|
6
|
+
//#region src/services/nodeHost/index.ts
|
|
7
|
+
/**
|
|
8
|
+
* Host details that only a Node process has. Portable modules reach them through
|
|
9
|
+
* this seam; the edge build swaps in `index.edge.ts`.
|
|
10
|
+
*/
|
|
11
|
+
const nodeHost = {
|
|
12
|
+
homeDirectory: () => node_os.default.homedir(),
|
|
13
|
+
temporaryDirectory: () => node_os.default.tmpdir(),
|
|
14
|
+
processId: () => process.pid,
|
|
15
|
+
/** POSIX permission bits; the edge has no owner to protect against, so it skips this. */
|
|
16
|
+
setMode: (filePath, mode) => node_fs_promises.default.chmod(filePath, mode),
|
|
17
|
+
/** POSIX permission bits of an existing file, or `undefined` when it is missing. */
|
|
18
|
+
fileMode: async (filePath) => {
|
|
19
|
+
try {
|
|
20
|
+
return (await node_fs_promises.default.stat(filePath)).mode & 4095;
|
|
21
|
+
} catch (error) {
|
|
22
|
+
if (error.code === "ENOENT") return void 0;
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
28
|
+
exports.nodeHost = nodeHost;
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["os","fs"],"sources":["../../../../src/services/nodeHost/index.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport os from 'node:os';\n\n/**\n * Host details that only a Node process has. Portable modules reach them through\n * this seam; the edge build swaps in `index.edge.ts`.\n */\nexport const nodeHost = {\n homeDirectory: (): string => os.homedir(),\n temporaryDirectory: (): string => os.tmpdir(),\n processId: (): number => process.pid,\n /** POSIX permission bits; the edge has no owner to protect against, so it skips this. */\n setMode: (filePath: string, mode: number): Promise<void> => fs.chmod(filePath, mode),\n /** POSIX permission bits of an existing file, or `undefined` when it is missing. */\n fileMode: async (filePath: string): Promise<number | undefined> => {\n try {\n return (await fs.stat(filePath)).mode & 0o7777;\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code === 'ENOENT') return undefined;\n throw error;\n }\n },\n};\n"],"mappings":";;;;;;;;;;AAOA,MAAa,WAAW;CACtB,qBAA6BA,QAAAA,QAAG,QAAQ;CACxC,0BAAkCA,QAAAA,QAAG,OAAO;CAC5C,iBAAyB,QAAQ;;CAEjC,UAAU,UAAkB,SAAgCC,iBAAAA,QAAG,MAAM,UAAU,IAAI;;CAEnF,UAAU,OAAO,aAAkD;EACjE,IAAI;GACF,QAAQ,MAAMA,iBAAAA,QAAG,KAAK,QAAQ,EAAA,CAAG,OAAO;EAC1C,SAAS,OAAO;GACd,IAAK,MAAgC,SAAS,UAAU,OAAO,KAAA;GAC/D,MAAM;EACR;CACF;AACF"}
|