openmeld 0.3.257 → 0.3.259

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.
Files changed (136) hide show
  1. package/dist/{add-me-membership-DGn_ymiU.js → add-me-membership-CQeOTn8Y.js} +2 -2
  2. package/dist/{add-me-membership-DGn_ymiU.js.map → add-me-membership-CQeOTn8Y.js.map} +1 -1
  3. package/dist/{agents-Bys2Xt-r.js → agents-CLlVC_zK.js} +13 -13
  4. package/dist/{agents-Bys2Xt-r.js.map → agents-CLlVC_zK.js.map} +1 -1
  5. package/dist/{api-client-foundation-K-xme5wi.js → api-client-foundation-BDbeHD1i.js} +4 -4
  6. package/dist/{api-client-foundation-K-xme5wi.js.map → api-client-foundation-BDbeHD1i.js.map} +1 -1
  7. package/dist/{api-client-foundation-DS6edHLv.js → api-client-foundation-Dye8bbn0.js} +1 -1
  8. package/dist/auth-session-COkQp4Fr.js +4 -0
  9. package/dist/{auth-session-gCSwPpKk.js → auth-session-mNZMZihh.js} +5 -5
  10. package/dist/{auth-session-gCSwPpKk.js.map → auth-session-mNZMZihh.js.map} +1 -1
  11. package/dist/{auth-url-xkcTUIuG.js → auth-url-D5LMD4E8.js} +2 -2
  12. package/dist/{auth-url-xkcTUIuG.js.map → auth-url-D5LMD4E8.js.map} +1 -1
  13. package/dist/{base-url-B9lLWy47.js → base-url-BMrQwJW4.js} +3 -3
  14. package/dist/{base-url-B9lLWy47.js.map → base-url-BMrQwJW4.js.map} +1 -1
  15. package/dist/{base-url-CBkrCY1z.js → base-url-uwbKIZtP.js} +1 -1
  16. package/dist/{channel-CMKlUru6.js → channel-48XSbUsz.js} +2 -2
  17. package/dist/{channel-CMKlUru6.js.map → channel-48XSbUsz.js.map} +1 -1
  18. package/dist/{cloud-computer-BXXE7ol0.js → cloud-computer-Cymmmv7K.js} +6 -6
  19. package/dist/{cloud-computer-BXXE7ol0.js.map → cloud-computer-Cymmmv7K.js.map} +1 -1
  20. package/dist/{command-ByRe3oUP.js → command-BmbIcCis.js} +26 -19
  21. package/dist/command-BmbIcCis.js.map +1 -0
  22. package/dist/{computer-connection-review-D3UlEzSN.js → computer-connection-review-zgdekYjE.js} +6 -6
  23. package/dist/{computer-connection-review-D3UlEzSN.js.map → computer-connection-review-zgdekYjE.js.map} +1 -1
  24. package/dist/{computer-disconnect-BUWLH7Tp.js → computer-disconnect-Bv4hrAWw.js} +9 -9
  25. package/dist/{computer-disconnect-BUWLH7Tp.js.map → computer-disconnect-Bv4hrAWw.js.map} +1 -1
  26. package/dist/{computer-setup-continuation-CgvCGSQU.js → computer-setup-continuation-3oNkl1o1.js} +3 -3
  27. package/dist/{computer-setup-continuation-CgvCGSQU.js.map → computer-setup-continuation-3oNkl1o1.js.map} +1 -1
  28. package/dist/{context-CtpDI4OE.js → context-BT5P1qqr.js} +7 -7
  29. package/dist/{context-CtpDI4OE.js.map → context-BT5P1qqr.js.map} +1 -1
  30. package/dist/{daemon-device-id-BPwCO8jO.js → daemon-device-id-DrGRbKdb.js} +4 -4
  31. package/dist/{daemon-device-id-BPwCO8jO.js.map → daemon-device-id-DrGRbKdb.js.map} +1 -1
  32. package/dist/{daemon-lifecycle-journal-kn_V27_x.js → daemon-lifecycle-journal-oMoQyKEB.js} +6 -6
  33. package/dist/{daemon-lifecycle-journal-kn_V27_x.js.map → daemon-lifecycle-journal-oMoQyKEB.js.map} +1 -1
  34. package/dist/{daemon-runtime-lease-CI5E1dSx.js → daemon-runtime-lease-CB0ZCPMd.js} +3 -3
  35. package/dist/{daemon-runtime-lease-CI5E1dSx.js.map → daemon-runtime-lease-CB0ZCPMd.js.map} +1 -1
  36. package/dist/{daemon-runtime-lease-BV9B1k3Z.js → daemon-runtime-lease-wo_QM5jn.js} +1 -1
  37. package/dist/{daemon-service-contract-BliSi2Kx.js → daemon-service-contract-Dkgengx4.js} +3 -3
  38. package/dist/{daemon-service-contract-BliSi2Kx.js.map → daemon-service-contract-Dkgengx4.js.map} +1 -1
  39. package/dist/{daemon-service-manager-g6N663Vx.js → daemon-service-manager-BjBYyE6i.js} +5 -5
  40. package/dist/{daemon-service-manager-g6N663Vx.js.map → daemon-service-manager-BjBYyE6i.js.map} +1 -1
  41. package/dist/{daemon-service-manager-BGKwZbgn.js → daemon-service-manager-CblkceR7.js} +1 -1
  42. package/dist/{daemon-service-runtime-DVX0kCDI.js → daemon-service-runtime-BSFTYU0n.js} +14 -14
  43. package/dist/{daemon-service-runtime-DVX0kCDI.js.map → daemon-service-runtime-BSFTYU0n.js.map} +1 -1
  44. package/dist/{daemon-service-update-coordinator-h_n5_IqX.js → daemon-service-update-coordinator-BUAkAxqT.js} +21 -20
  45. package/dist/daemon-service-update-coordinator-BUAkAxqT.js.map +1 -0
  46. package/dist/{daemon-state-BpDMuV9q.js → daemon-state-B8L0_xPT.js} +3 -3
  47. package/dist/{daemon-state-BpDMuV9q.js.map → daemon-state-B8L0_xPT.js.map} +1 -1
  48. package/dist/{dispatch-owned-runtime-BTPAd3rO.js → dispatch-owned-runtime-D5THLVZR.js} +10 -10
  49. package/dist/{dispatch-owned-runtime-BTPAd3rO.js.map → dispatch-owned-runtime-D5THLVZR.js.map} +1 -1
  50. package/dist/{dist-C1X_UGiT.js → dist-BFz8AKxR.js} +1 -1
  51. package/dist/{dist-Nhlf_Xfo.js → dist-BJy9X73H.js} +2 -2
  52. package/dist/{dist-Nhlf_Xfo.js.map → dist-BJy9X73H.js.map} +1 -1
  53. package/dist/dist-Cbw4UtHs.js +4 -0
  54. package/dist/{dist-Bk1WQ99A.js → dist-Dx5paVZY.js} +84 -2
  55. package/dist/dist-Dx5paVZY.js.map +1 -0
  56. package/dist/{dual-view-guide-catalog-DAVm97ep.js → dual-view-guide-catalog-D4rlZXO_.js} +3 -3
  57. package/dist/{dual-view-guide-catalog-DAVm97ep.js.map → dual-view-guide-catalog-D4rlZXO_.js.map} +1 -1
  58. package/dist/{elapsed-time-Bgx9MoTj.js → elapsed-time-pHCf33Jh.js} +4 -4
  59. package/dist/{elapsed-time-Bgx9MoTj.js.map → elapsed-time-pHCf33Jh.js.map} +1 -1
  60. package/dist/{entry-DR_v8WnC.js → entry-V6Tf_wMP.js} +12 -12
  61. package/dist/{entry-DR_v8WnC.js.map → entry-V6Tf_wMP.js.map} +1 -1
  62. package/dist/{installation-inventory-DBeLPoFK.js → installation-inventory-Cr8q27L_.js} +4 -4
  63. package/dist/{installation-inventory-DBeLPoFK.js.map → installation-inventory-Cr8q27L_.js.map} +1 -1
  64. package/dist/{installer-D7jC-kZ8.js → installer-dx-JuhZZ.js} +2 -2
  65. package/dist/{installer-D7jC-kZ8.js.map → installer-dx-JuhZZ.js.map} +1 -1
  66. package/dist/{lock-CQFhdvaP.js → lock-CDdQw0gQ.js} +3 -3
  67. package/dist/{lock-CQFhdvaP.js.map → lock-CDdQw0gQ.js.map} +1 -1
  68. package/dist/{meta-api-DShk3N0P.js → meta-api-CkKS9A5_.js} +7 -7
  69. package/dist/{meta-api-DShk3N0P.js.map → meta-api-CkKS9A5_.js.map} +1 -1
  70. package/dist/{openmeld-BDFzsUJD.js → openmeld-DVXOSt5S.js} +244 -81
  71. package/dist/openmeld-DVXOSt5S.js.map +1 -0
  72. package/dist/{openmeld-dev-environment-CH-yzIwz.js → openmeld-dev-environment-C82HhyXf.js} +3 -3
  73. package/dist/{openmeld-dev-environment-CH-yzIwz.js.map → openmeld-dev-environment-C82HhyXf.js.map} +1 -1
  74. package/dist/openmeld-dev.js +1 -1
  75. package/dist/{openmeld-environment-target-HaW1thp0.js → openmeld-environment-target-BftVniKn.js} +3 -3
  76. package/dist/{openmeld-environment-target-HaW1thp0.js.map → openmeld-environment-target-BftVniKn.js.map} +1 -1
  77. package/dist/{openmeld-maintenance-worker-CW1XvLld.js → openmeld-maintenance-worker-eQqcq1LE.js} +14 -14
  78. package/dist/{openmeld-maintenance-worker-CW1XvLld.js.map → openmeld-maintenance-worker-eQqcq1LE.js.map} +1 -1
  79. package/dist/{openmeld-tools-update-join-BDvMjcgR.js → openmeld-tools-update-join-BKoMvawo.js} +4 -4
  80. package/dist/{openmeld-tools-update-join-BDvMjcgR.js.map → openmeld-tools-update-join-BKoMvawo.js.map} +1 -1
  81. package/dist/{openmeld-tools-update-process-frame-BMkLsP-X.js → openmeld-tools-update-process-frame-Cl_LpsK-.js} +2 -2
  82. package/dist/{openmeld-tools-update-process-frame-BMkLsP-X.js.map → openmeld-tools-update-process-frame-Cl_LpsK-.js.map} +1 -1
  83. package/dist/{openmeld-tools-update-process-frame-ItmBvvWj.js → openmeld-tools-update-process-frame-Ct-7vlfE.js} +1 -1
  84. package/dist/openmeld.js +7 -7
  85. package/dist/{prepare-provider-runtime-DhhvHw2L.js → prepare-provider-runtime-BYKiQArk.js} +202 -48
  86. package/dist/prepare-provider-runtime-BYKiQArk.js.map +1 -0
  87. package/dist/{prepare-session-executor-5Z3oB8-Q.js → prepare-session-executor-_0fWWVwP.js} +25 -25
  88. package/dist/{prepare-session-executor-5Z3oB8-Q.js.map → prepare-session-executor-_0fWWVwP.js.map} +1 -1
  89. package/dist/{process-channel-fA0oIFwo.js → process-channel-BYaPF16N.js} +2 -2
  90. package/dist/{process-channel-fA0oIFwo.js.map → process-channel-BYaPF16N.js.map} +1 -1
  91. package/dist/{process-identity-h1RYDsRm.js → process-identity-DtRa8niy.js} +2 -2
  92. package/dist/{process-identity-h1RYDsRm.js.map → process-identity-DtRa8niy.js.map} +1 -1
  93. package/dist/{runtime-vNZr9nYr.js → runtime-CMSCzSI2.js} +18 -18
  94. package/dist/{runtime-vNZr9nYr.js.map → runtime-CMSCzSI2.js.map} +1 -1
  95. package/dist/{runtime-agent-controller-reporting-submission-pzz0mnop.js → runtime-agent-controller-reporting-submission-NTqBffbr.js} +19 -18
  96. package/dist/runtime-agent-controller-reporting-submission-NTqBffbr.js.map +1 -0
  97. package/dist/{service-Brjwa0y-.js → service-Ciifmu6w.js} +30 -30
  98. package/dist/{service-Brjwa0y-.js.map → service-Ciifmu6w.js.map} +1 -1
  99. package/dist/{service-account-authorization-CVXFWWFz.js → service-account-authorization-CYcUJnZy.js} +5 -5
  100. package/dist/{service-account-authorization-CVXFWWFz.js.map → service-account-authorization-CYcUJnZy.js.map} +1 -1
  101. package/dist/{service-account-control-B83yP5td.js → service-account-control-D6VGaquv.js} +15 -15
  102. package/dist/{service-account-control-B83yP5td.js.map → service-account-control-D6VGaquv.js.map} +1 -1
  103. package/dist/{service-control-capabilities-tPkB_Y2r.js → service-control-capabilities-BFS1cHMi.js} +6 -6
  104. package/dist/{service-control-capabilities-tPkB_Y2r.js.map → service-control-capabilities-BFS1cHMi.js.map} +1 -1
  105. package/dist/{service-control-capabilities-hJsej7r9.js → service-control-capabilities-h014PLa0.js} +1 -1
  106. package/dist/{service-control-carrier-capability-BHDHrAM6.js → service-control-carrier-capability-nAOgdIbf.js} +3 -3
  107. package/dist/{service-control-carrier-capability-BHDHrAM6.js.map → service-control-carrier-capability-nAOgdIbf.js.map} +1 -1
  108. package/dist/{state-BfEuAKey.js → state-Defk8u-_.js} +3 -3
  109. package/dist/{state-BfEuAKey.js.map → state-Defk8u-_.js.map} +1 -1
  110. package/dist/{updates-api-Di3X7kE6.js → updates-api-D2Hox-6r.js} +14 -14
  111. package/dist/{updates-api-Di3X7kE6.js.map → updates-api-D2Hox-6r.js.map} +1 -1
  112. package/dist/{upgrade-CZFBzUVJ.js → upgrade-BYlFNl6H.js} +9 -9
  113. package/dist/{upgrade-CZFBzUVJ.js.map → upgrade-BYlFNl6H.js.map} +1 -1
  114. package/dist/upgrade-FcSJsBzm.js +4 -0
  115. package/dist/windows/openmeld-windows-process.exe +0 -0
  116. package/dist/{windows-managed-install-CjezNYP9.js → windows-managed-install-BDtTogaf.js} +2 -2
  117. package/dist/{windows-managed-install-CjezNYP9.js.map → windows-managed-install-BDtTogaf.js.map} +1 -1
  118. package/dist/{windows-preview-channel-C490Y8Pp.js → windows-preview-channel-TEVn7puE.js} +3 -3
  119. package/dist/{windows-preview-channel-C490Y8Pp.js.map → windows-preview-channel-TEVn7puE.js.map} +1 -1
  120. package/dist/{windows-task-command-kvlBePc4.js → windows-task-command-uUPXFssY.js} +2 -2
  121. package/dist/{windows-task-command-kvlBePc4.js.map → windows-task-command-uUPXFssY.js.map} +1 -1
  122. package/dist/{windows-task-entry-ChkamueB.js → windows-task-entry-1fvdlQ-1.js} +3 -3
  123. package/dist/{windows-task-entry-ChkamueB.js.map → windows-task-entry-1fvdlQ-1.js.map} +1 -1
  124. package/dist/{windows-user-task-WDpgqEc_.js → windows-user-task-CpyMMEiK.js} +1 -1
  125. package/dist/{windows-user-task-DJC_qza0.js → windows-user-task-Dfg4k6bI.js} +6 -6
  126. package/dist/{windows-user-task-DJC_qza0.js.map → windows-user-task-Dfg4k6bI.js.map} +1 -1
  127. package/package.json +9 -9
  128. package/dist/auth-session-D0XyaS3F.js +0 -4
  129. package/dist/command-ByRe3oUP.js.map +0 -1
  130. package/dist/daemon-service-update-coordinator-h_n5_IqX.js.map +0 -1
  131. package/dist/dist-Bk1WQ99A.js.map +0 -1
  132. package/dist/dist-s07-4slK.js +0 -4
  133. package/dist/openmeld-BDFzsUJD.js.map +0 -1
  134. package/dist/prepare-provider-runtime-DhhvHw2L.js.map +0 -1
  135. package/dist/runtime-agent-controller-reporting-submission-pzz0mnop.js.map +0 -1
  136. package/dist/upgrade-C8HTdUrA.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"channel-CMKlUru6.js","names":[],"sources":["../src/local-service/execution-host/channel.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport {\n SERVICE_EXECUTION_HOST_MAX_FRAME_BYTES,\n SERVICE_EXECUTION_HOST_MAX_PENDING_REQUESTS,\n SERVICE_EXECUTION_HOST_PROTOCOL,\n type ServiceExecutionHostArguments,\n type ServiceExecutionHostInput,\n type ServiceExecutionHostMessage,\n type ServiceExecutionHostMethod,\n type ServiceExecutionHostOutput,\n serviceExecutionHostMessageSchema,\n serviceExecutionHostMethods,\n serviceExecutionHostRequestSchema,\n} from \"@openmeld/schemas\";\n\nexport type ExecutionHostChannel = {\n connected(): boolean;\n send(message: object, completed: (error: Error | null) => void): void;\n onMessage(listener: (message: unknown) => void): () => void;\n onDisconnect(listener: (error?: Error) => void): () => void;\n};\n\nexport class ExecutionHostError extends Error {\n readonly code: string;\n\n constructor(code: string, message: string) {\n super(message);\n this.name = \"ExecutionHostError\";\n this.code = code;\n }\n}\n\nconst RESERVED_CONTROL_REQUESTS = 4;\nconst controlMethods = new Set<ServiceExecutionHostMethod>([\n \"health\",\n \"beginDrain\",\n \"detachConnection\",\n \"stop\",\n]);\n\nfunction assertFrameSize(message: unknown): number {\n const serialized = JSON.stringify(message);\n if (serialized === undefined) {\n throw new ExecutionHostError(\n \"host.invalid_frame\",\n \"Host IPC requires JSON.\"\n );\n }\n const size = Buffer.byteLength(serialized);\n if (size > SERVICE_EXECUTION_HOST_MAX_FRAME_BYTES) {\n throw new ExecutionHostError(\n \"host.frame_too_large\",\n \"The local execution message exceeds the IPC limit.\"\n );\n }\n return size;\n}\n\nfunction createSender(channel: ExecutionHostChannel) {\n let queuedBytes = 0;\n return (message: object, completed: (error: Error | null) => void): void => {\n const size = assertFrameSize(message);\n if (!channel.connected()) {\n throw new ExecutionHostError(\n \"host.disconnected\",\n \"The Host IPC channel is closed.\"\n );\n }\n if (queuedBytes + size > SERVICE_EXECUTION_HOST_MAX_FRAME_BYTES * 2) {\n throw new ExecutionHostError(\n \"host.backpressure\",\n \"Host IPC is full; no new message was queued.\"\n );\n }\n queuedBytes += size;\n let settled = false;\n const settle = (error: Error | null) => {\n if (settled) {\n return;\n }\n settled = true;\n queuedBytes -= size;\n completed(error);\n };\n try {\n channel.send(message, settle);\n } catch (error) {\n settle(error instanceof Error ? error : new Error(String(error)));\n }\n };\n}\n\ntype PendingRequest = {\n method: ServiceExecutionHostMethod;\n resolve(value: unknown): void;\n reject(error: Error): void;\n timer: ReturnType<typeof setTimeout> | null;\n};\n\nfunction resolveReply(\n request: PendingRequest,\n message: Extract<ServiceExecutionHostMessage, { type: \"reply\" }>\n): void {\n if (!message.result.ok) {\n request.reject(\n new ExecutionHostError(\n message.result.error.code,\n message.result.error.message\n )\n );\n return;\n }\n const result = serviceExecutionHostMethods[request.method].output.safeParse(\n message.result.payload\n );\n if (!result.success) {\n const error = new ExecutionHostError(\n \"host.invalid_response\",\n `Invalid ${request.method} response from the execution host.`\n );\n request.reject(error);\n throw error;\n }\n request.resolve(result.data);\n}\n\nexport function createExecutionHostClient(input: {\n channel: ExecutionHostChannel;\n hostInstanceId: string;\n onEvent?(\n event: Exclude<ServiceExecutionHostMessage, { type: \"reply\" }>\n ): void;\n onFailure?(error: Error): void;\n}) {\n const pending = new Map<string, PendingRequest>();\n const send = createSender(input.channel);\n let failure: Error | null = null;\n\n const fail = (error: Error) => {\n if (failure) {\n return;\n }\n failure = error;\n for (const request of pending.values()) {\n if (request.timer) {\n clearTimeout(request.timer);\n }\n request.reject(error);\n }\n pending.clear();\n input.onFailure?.(error);\n };\n\n const stopMessages = input.channel.onMessage((raw) => {\n if (failure) {\n return;\n }\n try {\n assertFrameSize(raw);\n const parsed = serviceExecutionHostMessageSchema.safeParse(raw);\n if (\n !parsed.success ||\n parsed.data.hostInstanceId !== input.hostInstanceId\n ) {\n throw new ExecutionHostError(\n \"host.invalid_response\",\n \"Host response does not match this process incarnation.\"\n );\n }\n const message = parsed.data;\n if (message.type !== \"reply\") {\n input.onEvent?.(message);\n return;\n }\n const request = pending.get(message.requestId);\n // A timed-out observer is gone, not the accepted operation. Do not retry it\n // or turn its late result into the outcome of a newer request.\n if (!request) {\n return;\n }\n if (request.method !== message.method) {\n throw new ExecutionHostError(\n \"host.invalid_response\",\n \"Host response method does not match its request.\"\n );\n }\n pending.delete(message.requestId);\n if (request.timer) {\n clearTimeout(request.timer);\n }\n resolveReply(request, message);\n } catch (error) {\n fail(error instanceof Error ? error : new Error(String(error)));\n }\n });\n const stopDisconnect = input.channel.onDisconnect((cause) => {\n fail(\n new ExecutionHostError(\n \"host.disconnected\",\n cause\n ? `The execution host disconnected: ${cause.message}. In-flight outcomes are unconfirmed.`\n : \"The execution host disconnected; in-flight outcomes are unconfirmed.\"\n )\n );\n });\n\n return {\n call<M extends ServiceExecutionHostMethod>(\n method: M,\n value: ServiceExecutionHostInput<M>,\n options: { timeoutMs?: number | null } = {}\n ): Promise<ServiceExecutionHostOutput<M>> {\n if (failure) {\n return Promise.reject(failure);\n }\n const limit =\n SERVICE_EXECUTION_HOST_MAX_PENDING_REQUESTS -\n (controlMethods.has(method) ? 0 : RESERVED_CONTROL_REQUESTS);\n if (pending.size >= limit) {\n return Promise.reject(\n new ExecutionHostError(\n \"host.busy\",\n \"Too many outstanding Host requests; no new request was sent.\"\n )\n );\n }\n const payload =\n serviceExecutionHostMethods[method].input.safeParse(value);\n if (!payload.success) {\n return Promise.reject(\n new ExecutionHostError(\n \"host.invalid_request\",\n `Invalid ${method} request.`\n )\n );\n }\n const requestId = randomUUID();\n const timeoutMs =\n options.timeoutMs === undefined ? 30_000 : options.timeoutMs;\n if (\n timeoutMs !== null &&\n (!Number.isFinite(timeoutMs) || timeoutMs <= 0)\n ) {\n return Promise.reject(\n new ExecutionHostError(\n \"host.invalid_timeout\",\n \"The observer deadline must be positive or absent.\"\n )\n );\n }\n return new Promise<ServiceExecutionHostOutput<M>>((resolve, reject) => {\n const request: PendingRequest = {\n method,\n resolve: (result) => resolve(result as ServiceExecutionHostOutput<M>),\n reject,\n timer: null,\n };\n if (timeoutMs !== null) {\n request.timer = setTimeout(() => {\n pending.delete(requestId);\n reject(\n new ExecutionHostError(\n \"host.observation_timeout\",\n `The ${method} response is unconfirmed. No operation was cancelled or retried.`\n )\n );\n }, timeoutMs);\n request.timer.unref?.();\n }\n pending.set(requestId, request);\n try {\n send(\n {\n protocol: SERVICE_EXECUTION_HOST_PROTOCOL,\n hostInstanceId: input.hostInstanceId,\n requestId,\n method,\n payload: payload.data,\n },\n (error) => {\n if (error) {\n fail(error);\n }\n }\n );\n } catch (error) {\n pending.delete(requestId);\n if (request.timer) {\n clearTimeout(request.timer);\n }\n reject(error);\n }\n });\n },\n pendingCount: () => pending.size,\n dispose(): void {\n stopMessages();\n stopDisconnect();\n fail(\n new ExecutionHostError(\n \"host.observer_closed\",\n \"The Host observer closed; accepted work was not cancelled.\"\n )\n );\n },\n };\n}\n\nexport type ExecutionHostHandlers = {\n [M in ServiceExecutionHostMethod]: (\n input: ServiceExecutionHostArguments<M>\n ) => Promise<ServiceExecutionHostOutput<M>> | ServiceExecutionHostOutput<M>;\n};\n\nexport function serveExecutionHost(input: {\n channel: ExecutionHostChannel;\n hostInstanceId: string;\n handlers: ExecutionHostHandlers;\n onFailure(error: Error): void;\n onDisconnect(): void;\n}) {\n const activeIds = new Set<string>();\n const send = createSender(input.channel);\n let closed = false;\n\n const sendMessage = (message: ServiceExecutionHostMessage) => {\n if (closed) {\n throw new ExecutionHostError(\n \"host.disconnected\",\n \"The connector is no longer observing this Host.\"\n );\n }\n send(message, (error) => {\n if (error) {\n input.onFailure(error);\n }\n });\n };\n\n const stopMessages = input.channel.onMessage((raw) => {\n if (closed) {\n return;\n }\n let request: ReturnType<typeof serviceExecutionHostRequestSchema.parse>;\n try {\n assertFrameSize(raw);\n const parsed = serviceExecutionHostRequestSchema.safeParse(raw);\n if (\n !parsed.success ||\n parsed.data.hostInstanceId !== input.hostInstanceId\n ) {\n throw new ExecutionHostError(\n \"host.invalid_request\",\n \"Host request does not match this process incarnation.\"\n );\n }\n request = parsed.data;\n } catch (error) {\n input.onFailure(\n error instanceof Error ? error : new Error(String(error))\n );\n return;\n }\n\n const respond = (\n result: Extract<ServiceExecutionHostMessage, { type: \"reply\" }>[\"result\"]\n ) => {\n if (!closed) {\n sendMessage({\n protocol: SERVICE_EXECUTION_HOST_PROTOCOL,\n hostInstanceId: input.hostInstanceId,\n type: \"reply\",\n requestId: request.requestId,\n method: request.method,\n result,\n });\n }\n };\n const reject = (error: unknown) => {\n try {\n respond({\n ok: false,\n error: {\n code:\n error instanceof ExecutionHostError\n ? error.code\n : \"host.operation_failed\",\n message:\n (error instanceof Error ? error.message : String(error)).slice(\n 0,\n 4096\n ) || \"Host operation failed.\",\n },\n });\n } catch (sendError) {\n input.onFailure(\n sendError instanceof Error ? sendError : new Error(String(sendError))\n );\n }\n };\n\n const limit =\n SERVICE_EXECUTION_HOST_MAX_PENDING_REQUESTS -\n (controlMethods.has(request.method) ? 0 : RESERVED_CONTROL_REQUESTS);\n if (activeIds.has(request.requestId) || activeIds.size >= limit) {\n reject(\n new ExecutionHostError(\n \"host.busy\",\n \"Host request is duplicate or capacity is exhausted; it was not admitted again.\"\n )\n );\n return;\n }\n const method = serviceExecutionHostMethods[request.method];\n const payload = method.input.safeParse(request.payload);\n if (!payload.success) {\n reject(\n new ExecutionHostError(\n \"host.invalid_request\",\n `Invalid ${request.method} payload.`\n )\n );\n return;\n }\n activeIds.add(request.requestId);\n // This cast connects the fixed schema table to its corresponding handler.\n // Both request and response are runtime-validated, including local callers.\n const handler = input.handlers[request.method] as (\n value: unknown\n ) => unknown;\n Promise.resolve()\n .then(() => handler(payload.data))\n .then((result) => {\n const parsed = method.output.safeParse(result);\n if (!parsed.success) {\n throw new ExecutionHostError(\n \"host.invalid_response\",\n `The ${request.method} owner returned an invalid response.`\n );\n }\n respond({ ok: true, payload: parsed.data });\n })\n .catch(reject)\n .finally(() => activeIds.delete(request.requestId));\n });\n const stopDisconnect = input.channel.onDisconnect(() => {\n if (closed) {\n return;\n }\n closed = true;\n input.onDisconnect();\n });\n return {\n emit(event: Exclude<ServiceExecutionHostMessage, { type: \"reply\" }>): void {\n const parsed = serviceExecutionHostMessageSchema.safeParse(event);\n if (!parsed.success || event.hostInstanceId !== input.hostInstanceId) {\n throw new ExecutionHostError(\n \"host.invalid_event\",\n \"Invalid execution-host event.\"\n );\n }\n sendMessage(parsed.data);\n },\n dispose(): void {\n closed = true;\n stopMessages();\n stopDisconnect();\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"channel-48XSbUsz.js","names":[],"sources":["../src/local-service/execution-host/channel.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport {\n SERVICE_EXECUTION_HOST_MAX_FRAME_BYTES,\n SERVICE_EXECUTION_HOST_MAX_PENDING_REQUESTS,\n SERVICE_EXECUTION_HOST_PROTOCOL,\n type ServiceExecutionHostArguments,\n type ServiceExecutionHostInput,\n type ServiceExecutionHostMessage,\n type ServiceExecutionHostMethod,\n type ServiceExecutionHostOutput,\n serviceExecutionHostMessageSchema,\n serviceExecutionHostMethods,\n serviceExecutionHostRequestSchema,\n} from \"@openmeld/schemas\";\n\nexport type ExecutionHostChannel = {\n connected(): boolean;\n send(message: object, completed: (error: Error | null) => void): void;\n onMessage(listener: (message: unknown) => void): () => void;\n onDisconnect(listener: (error?: Error) => void): () => void;\n};\n\nexport class ExecutionHostError extends Error {\n readonly code: string;\n\n constructor(code: string, message: string) {\n super(message);\n this.name = \"ExecutionHostError\";\n this.code = code;\n }\n}\n\nconst RESERVED_CONTROL_REQUESTS = 4;\nconst controlMethods = new Set<ServiceExecutionHostMethod>([\n \"health\",\n \"beginDrain\",\n \"detachConnection\",\n \"stop\",\n]);\n\nfunction assertFrameSize(message: unknown): number {\n const serialized = JSON.stringify(message);\n if (serialized === undefined) {\n throw new ExecutionHostError(\n \"host.invalid_frame\",\n \"Host IPC requires JSON.\"\n );\n }\n const size = Buffer.byteLength(serialized);\n if (size > SERVICE_EXECUTION_HOST_MAX_FRAME_BYTES) {\n throw new ExecutionHostError(\n \"host.frame_too_large\",\n \"The local execution message exceeds the IPC limit.\"\n );\n }\n return size;\n}\n\nfunction createSender(channel: ExecutionHostChannel) {\n let queuedBytes = 0;\n return (message: object, completed: (error: Error | null) => void): void => {\n const size = assertFrameSize(message);\n if (!channel.connected()) {\n throw new ExecutionHostError(\n \"host.disconnected\",\n \"The Host IPC channel is closed.\"\n );\n }\n if (queuedBytes + size > SERVICE_EXECUTION_HOST_MAX_FRAME_BYTES * 2) {\n throw new ExecutionHostError(\n \"host.backpressure\",\n \"Host IPC is full; no new message was queued.\"\n );\n }\n queuedBytes += size;\n let settled = false;\n const settle = (error: Error | null) => {\n if (settled) {\n return;\n }\n settled = true;\n queuedBytes -= size;\n completed(error);\n };\n try {\n channel.send(message, settle);\n } catch (error) {\n settle(error instanceof Error ? error : new Error(String(error)));\n }\n };\n}\n\ntype PendingRequest = {\n method: ServiceExecutionHostMethod;\n resolve(value: unknown): void;\n reject(error: Error): void;\n timer: ReturnType<typeof setTimeout> | null;\n};\n\nfunction resolveReply(\n request: PendingRequest,\n message: Extract<ServiceExecutionHostMessage, { type: \"reply\" }>\n): void {\n if (!message.result.ok) {\n request.reject(\n new ExecutionHostError(\n message.result.error.code,\n message.result.error.message\n )\n );\n return;\n }\n const result = serviceExecutionHostMethods[request.method].output.safeParse(\n message.result.payload\n );\n if (!result.success) {\n const error = new ExecutionHostError(\n \"host.invalid_response\",\n `Invalid ${request.method} response from the execution host.`\n );\n request.reject(error);\n throw error;\n }\n request.resolve(result.data);\n}\n\nexport function createExecutionHostClient(input: {\n channel: ExecutionHostChannel;\n hostInstanceId: string;\n onEvent?(\n event: Exclude<ServiceExecutionHostMessage, { type: \"reply\" }>\n ): void;\n onFailure?(error: Error): void;\n}) {\n const pending = new Map<string, PendingRequest>();\n const send = createSender(input.channel);\n let failure: Error | null = null;\n\n const fail = (error: Error) => {\n if (failure) {\n return;\n }\n failure = error;\n for (const request of pending.values()) {\n if (request.timer) {\n clearTimeout(request.timer);\n }\n request.reject(error);\n }\n pending.clear();\n input.onFailure?.(error);\n };\n\n const stopMessages = input.channel.onMessage((raw) => {\n if (failure) {\n return;\n }\n try {\n assertFrameSize(raw);\n const parsed = serviceExecutionHostMessageSchema.safeParse(raw);\n if (\n !parsed.success ||\n parsed.data.hostInstanceId !== input.hostInstanceId\n ) {\n throw new ExecutionHostError(\n \"host.invalid_response\",\n \"Host response does not match this process incarnation.\"\n );\n }\n const message = parsed.data;\n if (message.type !== \"reply\") {\n input.onEvent?.(message);\n return;\n }\n const request = pending.get(message.requestId);\n // A timed-out observer is gone, not the accepted operation. Do not retry it\n // or turn its late result into the outcome of a newer request.\n if (!request) {\n return;\n }\n if (request.method !== message.method) {\n throw new ExecutionHostError(\n \"host.invalid_response\",\n \"Host response method does not match its request.\"\n );\n }\n pending.delete(message.requestId);\n if (request.timer) {\n clearTimeout(request.timer);\n }\n resolveReply(request, message);\n } catch (error) {\n fail(error instanceof Error ? error : new Error(String(error)));\n }\n });\n const stopDisconnect = input.channel.onDisconnect((cause) => {\n fail(\n new ExecutionHostError(\n \"host.disconnected\",\n cause\n ? `The execution host disconnected: ${cause.message}. In-flight outcomes are unconfirmed.`\n : \"The execution host disconnected; in-flight outcomes are unconfirmed.\"\n )\n );\n });\n\n return {\n call<M extends ServiceExecutionHostMethod>(\n method: M,\n value: ServiceExecutionHostInput<M>,\n options: { timeoutMs?: number | null } = {}\n ): Promise<ServiceExecutionHostOutput<M>> {\n if (failure) {\n return Promise.reject(failure);\n }\n const limit =\n SERVICE_EXECUTION_HOST_MAX_PENDING_REQUESTS -\n (controlMethods.has(method) ? 0 : RESERVED_CONTROL_REQUESTS);\n if (pending.size >= limit) {\n return Promise.reject(\n new ExecutionHostError(\n \"host.busy\",\n \"Too many outstanding Host requests; no new request was sent.\"\n )\n );\n }\n const payload =\n serviceExecutionHostMethods[method].input.safeParse(value);\n if (!payload.success) {\n return Promise.reject(\n new ExecutionHostError(\n \"host.invalid_request\",\n `Invalid ${method} request.`\n )\n );\n }\n const requestId = randomUUID();\n const timeoutMs =\n options.timeoutMs === undefined ? 30_000 : options.timeoutMs;\n if (\n timeoutMs !== null &&\n (!Number.isFinite(timeoutMs) || timeoutMs <= 0)\n ) {\n return Promise.reject(\n new ExecutionHostError(\n \"host.invalid_timeout\",\n \"The observer deadline must be positive or absent.\"\n )\n );\n }\n return new Promise<ServiceExecutionHostOutput<M>>((resolve, reject) => {\n const request: PendingRequest = {\n method,\n resolve: (result) => resolve(result as ServiceExecutionHostOutput<M>),\n reject,\n timer: null,\n };\n if (timeoutMs !== null) {\n request.timer = setTimeout(() => {\n pending.delete(requestId);\n reject(\n new ExecutionHostError(\n \"host.observation_timeout\",\n `The ${method} response is unconfirmed. No operation was cancelled or retried.`\n )\n );\n }, timeoutMs);\n request.timer.unref?.();\n }\n pending.set(requestId, request);\n try {\n send(\n {\n protocol: SERVICE_EXECUTION_HOST_PROTOCOL,\n hostInstanceId: input.hostInstanceId,\n requestId,\n method,\n payload: payload.data,\n },\n (error) => {\n if (error) {\n fail(error);\n }\n }\n );\n } catch (error) {\n pending.delete(requestId);\n if (request.timer) {\n clearTimeout(request.timer);\n }\n reject(error);\n }\n });\n },\n pendingCount: () => pending.size,\n dispose(): void {\n stopMessages();\n stopDisconnect();\n fail(\n new ExecutionHostError(\n \"host.observer_closed\",\n \"The Host observer closed; accepted work was not cancelled.\"\n )\n );\n },\n };\n}\n\nexport type ExecutionHostHandlers = {\n [M in ServiceExecutionHostMethod]: (\n input: ServiceExecutionHostArguments<M>\n ) => Promise<ServiceExecutionHostOutput<M>> | ServiceExecutionHostOutput<M>;\n};\n\nexport function serveExecutionHost(input: {\n channel: ExecutionHostChannel;\n hostInstanceId: string;\n handlers: ExecutionHostHandlers;\n onFailure(error: Error): void;\n onDisconnect(): void;\n}) {\n const activeIds = new Set<string>();\n const send = createSender(input.channel);\n let closed = false;\n\n const sendMessage = (message: ServiceExecutionHostMessage) => {\n if (closed) {\n throw new ExecutionHostError(\n \"host.disconnected\",\n \"The connector is no longer observing this Host.\"\n );\n }\n send(message, (error) => {\n if (error) {\n input.onFailure(error);\n }\n });\n };\n\n const stopMessages = input.channel.onMessage((raw) => {\n if (closed) {\n return;\n }\n let request: ReturnType<typeof serviceExecutionHostRequestSchema.parse>;\n try {\n assertFrameSize(raw);\n const parsed = serviceExecutionHostRequestSchema.safeParse(raw);\n if (\n !parsed.success ||\n parsed.data.hostInstanceId !== input.hostInstanceId\n ) {\n throw new ExecutionHostError(\n \"host.invalid_request\",\n \"Host request does not match this process incarnation.\"\n );\n }\n request = parsed.data;\n } catch (error) {\n input.onFailure(\n error instanceof Error ? error : new Error(String(error))\n );\n return;\n }\n\n const respond = (\n result: Extract<ServiceExecutionHostMessage, { type: \"reply\" }>[\"result\"]\n ) => {\n if (!closed) {\n sendMessage({\n protocol: SERVICE_EXECUTION_HOST_PROTOCOL,\n hostInstanceId: input.hostInstanceId,\n type: \"reply\",\n requestId: request.requestId,\n method: request.method,\n result,\n });\n }\n };\n const reject = (error: unknown) => {\n try {\n respond({\n ok: false,\n error: {\n code:\n error instanceof ExecutionHostError\n ? error.code\n : \"host.operation_failed\",\n message:\n (error instanceof Error ? error.message : String(error)).slice(\n 0,\n 4096\n ) || \"Host operation failed.\",\n },\n });\n } catch (sendError) {\n input.onFailure(\n sendError instanceof Error ? sendError : new Error(String(sendError))\n );\n }\n };\n\n const limit =\n SERVICE_EXECUTION_HOST_MAX_PENDING_REQUESTS -\n (controlMethods.has(request.method) ? 0 : RESERVED_CONTROL_REQUESTS);\n if (activeIds.has(request.requestId) || activeIds.size >= limit) {\n reject(\n new ExecutionHostError(\n \"host.busy\",\n \"Host request is duplicate or capacity is exhausted; it was not admitted again.\"\n )\n );\n return;\n }\n const method = serviceExecutionHostMethods[request.method];\n const payload = method.input.safeParse(request.payload);\n if (!payload.success) {\n reject(\n new ExecutionHostError(\n \"host.invalid_request\",\n `Invalid ${request.method} payload.`\n )\n );\n return;\n }\n activeIds.add(request.requestId);\n // This cast connects the fixed schema table to its corresponding handler.\n // Both request and response are runtime-validated, including local callers.\n const handler = input.handlers[request.method] as (\n value: unknown\n ) => unknown;\n Promise.resolve()\n .then(() => handler(payload.data))\n .then((result) => {\n const parsed = method.output.safeParse(result);\n if (!parsed.success) {\n throw new ExecutionHostError(\n \"host.invalid_response\",\n `The ${request.method} owner returned an invalid response.`\n );\n }\n respond({ ok: true, payload: parsed.data });\n })\n .catch(reject)\n .finally(() => activeIds.delete(request.requestId));\n });\n const stopDisconnect = input.channel.onDisconnect(() => {\n if (closed) {\n return;\n }\n closed = true;\n input.onDisconnect();\n });\n return {\n emit(event: Exclude<ServiceExecutionHostMessage, { type: \"reply\" }>): void {\n const parsed = serviceExecutionHostMessageSchema.safeParse(event);\n if (!parsed.success || event.hostInstanceId !== input.hostInstanceId) {\n throw new ExecutionHostError(\n \"host.invalid_event\",\n \"Invalid execution-host event.\"\n );\n }\n sendMessage(parsed.data);\n },\n dispose(): void {\n closed = true;\n stopMessages();\n stopDisconnect();\n },\n };\n}\n"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { a as resolveBaseUrl } from "./base-url-B9lLWy47.js";
4
- import { iC as cloudComputerOperationSchema } from "./dist-Bk1WQ99A.js";
5
- import { Gt as createCloudComputerApi } from "./dist-Nhlf_Xfo.js";
6
- import { n as resolveRuntimeContext } from "./context-CtpDI4OE.js";
3
+ import { a as resolveBaseUrl } from "./base-url-BMrQwJW4.js";
4
+ import { aC as cloudComputerOperationSchema } from "./dist-Dx5paVZY.js";
5
+ import { Gt as createCloudComputerApi } from "./dist-BJy9X73H.js";
6
+ import { n as resolveRuntimeContext } from "./context-BT5P1qqr.js";
7
7
  import { t as createPresenter } from "./presenter-DiP7Yh2y.js";
8
- import { t as createCliApiClientFoundation } from "./api-client-foundation-K-xme5wi.js";
8
+ import { t as createCliApiClientFoundation } from "./api-client-foundation-BDbeHD1i.js";
9
9
  //#region src/commands/cloud-computer.ts
10
10
  async function runCloudComputer(input) {
11
11
  const presenter = createPresenter(await resolveRuntimeContext({ view: input.view }));
@@ -19,4 +19,4 @@ async function runCloudComputer(input) {
19
19
  //#endregion
20
20
  export { runCloudComputer };
21
21
 
22
- //# sourceMappingURL=cloud-computer-BXXE7ol0.js.map
22
+ //# sourceMappingURL=cloud-computer-Cymmmv7K.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-computer-BXXE7ol0.js","names":[],"sources":["../src/commands/cloud-computer.ts"],"sourcesContent":["import { createCloudComputerApi } from \"@openmeld/api-client\";\nimport { cloudComputerOperationSchema } from \"@openmeld/schemas\";\nimport { resolveBaseUrl } from \"../config/base-url\";\nimport { resolveRuntimeContext } from \"../runtime/context\";\nimport { createPresenter } from \"../runtime/presenter/index\";\nimport { createCliApiClientFoundation } from \"../space/api-client-foundation\";\n\nexport async function runCloudComputer(input: {\n operation?: string;\n view?: string;\n}) {\n const runtime = await resolveRuntimeContext({ view: input.view });\n const presenter = createPresenter(runtime);\n const api = createCloudComputerApi(\n createCliApiClientFoundation(await resolveBaseUrl())\n );\n const response = input.operation\n ? await api.execute(\n cloudComputerOperationSchema.parse(JSON.parse(input.operation))\n )\n : await api.read();\n presenter.data({ code: \"computer.cloud.completed\", payload: response });\n}\n"],"mappings":";;;;;;;;;AAOA,eAAsB,iBAAiB,OAGpC;CAED,MAAM,YAAY,gBAAgB,MADZ,sBAAsB,EAAE,MAAM,MAAM,KAAK,CAAC,CACvB;CACzC,MAAM,MAAM,uBACV,6BAA6B,MAAM,eAAe,CAAC,CACrD;CACA,MAAM,WAAW,MAAM,YACnB,MAAM,IAAI,QACR,6BAA6B,MAAM,KAAK,MAAM,MAAM,SAAS,CAAC,CAChE,IACA,MAAM,IAAI,KAAK;CACnB,UAAU,KAAK;EAAE,MAAM;EAA4B,SAAS;CAAS,CAAC;AACxE"}
1
+ {"version":3,"file":"cloud-computer-Cymmmv7K.js","names":[],"sources":["../src/commands/cloud-computer.ts"],"sourcesContent":["import { createCloudComputerApi } from \"@openmeld/api-client\";\nimport { cloudComputerOperationSchema } from \"@openmeld/schemas\";\nimport { resolveBaseUrl } from \"../config/base-url\";\nimport { resolveRuntimeContext } from \"../runtime/context\";\nimport { createPresenter } from \"../runtime/presenter/index\";\nimport { createCliApiClientFoundation } from \"../space/api-client-foundation\";\n\nexport async function runCloudComputer(input: {\n operation?: string;\n view?: string;\n}) {\n const runtime = await resolveRuntimeContext({ view: input.view });\n const presenter = createPresenter(runtime);\n const api = createCloudComputerApi(\n createCliApiClientFoundation(await resolveBaseUrl())\n );\n const response = input.operation\n ? await api.execute(\n cloudComputerOperationSchema.parse(JSON.parse(input.operation))\n )\n : await api.read();\n presenter.data({ code: \"computer.cloud.completed\", payload: response });\n}\n"],"mappings":";;;;;;;;;AAOA,eAAsB,iBAAiB,OAGpC;CAED,MAAM,YAAY,gBAAgB,MADZ,sBAAsB,EAAE,MAAM,MAAM,KAAK,CAAC,CACvB;CACzC,MAAM,MAAM,uBACV,6BAA6B,MAAM,eAAe,CAAC,CACrD;CACA,MAAM,WAAW,MAAM,YACnB,MAAM,IAAI,QACR,6BAA6B,MAAM,KAAK,MAAM,MAAM,SAAS,CAAC,CAChE,IACA,MAAM,IAAI,KAAK;CACnB,UAAU,KAAK;EAAE,MAAM;EAA4B,SAAS;CAAS,CAAC;AACxE"}
@@ -1,25 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { Dt as resolveRegistryOriginLaunchCommand, Er as parseAgentControllerRef, Et as listBuiltinAgentsRegistryEntries, I as listAgentTargetStates, Lr as resolveSelectableCandidates, O as syncDeviceRuntimeStateProjection, S as syncProfileWorkspaceState, V as resolveAgentTargetState, W as updateAgentRegistrations, Z as resolveLocalRegistryAgentIdFromAgentControllerRef, j as resolveAgentProfilePrimaryAgentControllerReport, kt as resolveRegistryRuntimeAdapterContractByAgentControllerRef, pr as buildAgentControllerRef, wr as isAgentExecutionReadyOrConnecting, yr as createAuthorityOpenMeldServiceRuntimeId } from "./prepare-provider-runtime-DhhvHw2L.js";
4
- import { B as toSpacePasswordUrl, D as isLoopbackHostname, L as toSpaceLeaveUrl, M as toSpaceCreateUrl, N as toSpaceCursorUrl, O as normalizeBaseUrl, P as toSpaceDeleteUrl, R as toSpaceMembersUrl, V as toSpaceRemoveMembersUrl, W as toSpaceWsUrl, a as resolveBaseUrl, d as createDefaultRuntimeAgentControllerSettings, z as toSpaceMetaUrl } from "./base-url-B9lLWy47.js";
3
+ import { Dt as resolveRegistryOriginLaunchCommand, Er as parseAgentControllerRef, Et as listBuiltinAgentsRegistryEntries, I as listAgentTargetStates, Lr as resolveSelectableCandidates, O as syncDeviceRuntimeStateProjection, Rr as supportsExecutionContextSelection, S as syncProfileWorkspaceState, V as resolveAgentTargetState, W as updateAgentRegistrations, Z as resolveLocalRegistryAgentIdFromAgentControllerRef, j as resolveAgentProfilePrimaryAgentControllerReport, kt as resolveRegistryRuntimeAdapterContractByAgentControllerRef, pr as buildAgentControllerRef, wr as isAgentExecutionReadyOrConnecting, yr as createAuthorityOpenMeldServiceRuntimeId } from "./prepare-provider-runtime-BYKiQArk.js";
4
+ import { B as toSpacePasswordUrl, D as isLoopbackHostname, L as toSpaceLeaveUrl, M as toSpaceCreateUrl, N as toSpaceCursorUrl, O as normalizeBaseUrl, P as toSpaceDeleteUrl, R as toSpaceMembersUrl, V as toSpaceRemoveMembersUrl, W as toSpaceWsUrl, a as resolveBaseUrl, d as createDefaultRuntimeAgentControllerSettings, z as toSpaceMetaUrl } from "./base-url-BMrQwJW4.js";
5
5
  import { P as resolveOpenMeldEnvPreset } from "./paths-De9xdA2h.js";
6
- import { $C as SPACE_MENTION_REJECT_NOTICE_PURPOSE, CI as parseAgentControllerRef$1, ER as normalizeOptionalWorkingDirectory, GP as toLegacySpaceImageGeometryWireValue, KP as toCompatibleSpaceAddressingRequestWireValue, K_ as resolveInitialSpaceAccessMode, QC as SPACE_MEMBER_REMOVE_NOTICE_PURPOSE, ZC as SPACE_MEMBER_JOIN_NOTICE_PURPOSE, bI as canonicalizeBuiltinAgentControllerRef, dn as normalizeSpaceCursorPatch, fp as leaveSpaceResponseSchema, gp as removeSpaceMembersResponseSchema, ik as normalizeSpacePasswordText, mI as resolveBuiltinAgentControllerBrand, mp as postSpaceMembersResponseSchema, no as spaceSendRequestReceiptSchema, qC as CONVERSATION_CONTINUITY_WARNING_PURPOSE, sk as resolveSingleSpaceMentionLabels, vO as clientMessageIdSchema, xI as normalizeBuiltinAgentControllerId, yO as parseOptionalClientMessageId } from "./dist-Bk1WQ99A.js";
7
- import { d as runWithHeldLock, i as isOpenMeldLockError, t as acquireLock, u as resolveOpenMeldOrphanedLockIssue } from "./lock-CQFhdvaP.js";
6
+ import { $C as SPACE_MEMBER_REMOVE_NOTICE_PURPOSE, AR as normalizeOptionalWorkingDirectory, JC as CONVERSATION_CONTINUITY_WARNING_PURPOSE, KP as toLegacySpaceImageGeometryWireValue, QC as SPACE_MEMBER_JOIN_NOTICE_PURPOSE, SI as normalizeBuiltinAgentControllerId, _p as removeSpaceMembersResponseSchema, ak as normalizeSpacePasswordText, bO as parseOptionalClientMessageId, ck as resolveSingleSpaceMentionLabels, ew as SPACE_MENTION_REJECT_NOTICE_PURPOSE, fn as normalizeSpaceCursorPatch, hI as resolveBuiltinAgentControllerBrand, hp as postSpaceMembersResponseSchema, pp as leaveSpaceResponseSchema, qP as toCompatibleSpaceAddressingRequestWireValue, q_ as resolveInitialSpaceAccessMode, ro as spaceSendRequestReceiptSchema, wI as parseAgentControllerRef$1, xI as canonicalizeBuiltinAgentControllerRef, yO as clientMessageIdSchema } from "./dist-Dx5paVZY.js";
7
+ import { d as runWithHeldLock, i as isOpenMeldLockError, t as acquireLock, u as resolveOpenMeldOrphanedLockIssue } from "./lock-CDdQw0gQ.js";
8
8
  import { t as sleep } from "./dist-BLuEEVHh.js";
9
- import { $t as createFetchTransport, Kn as resolveAccountSpaceIndexGatewayHost, Vt as createAgentProfileBindingApi, Yn as toStructuredApiClientFailure, bt as buildProfileSpaceHistoryStatusPath, cr as parseIncoming$1, ir as MAX_TEXT_LENGTH, lr as parseServerErrorFrame$1, n as OpenMeldApiClientInvalidResponseError, on as createOpenMeldApiClient, pn as createProfileSpaceHistoryApi, qn as resolveProfileSpaceHistoryGatewayHost, sn as createOrganizationApi, sr as parseEnvelope$1, t as OpenMeldApiClientHttpError, ur as resolveCustomMentionAliasOverride, xt as buildProfileSpaceHistoryUpsertPath, zt as createAccountSpaceIndexApi } from "./dist-Nhlf_Xfo.js";
10
- import { A as resolveAuthenticationGuidanceFromError, E as buildHumanAuthenticationCard, F as resolveCurrentOpenMeldAccountContext, a as requireOpenMeldProfile, c as createOpenMeldHumanProfile, d as listOpenMeldProfiles, h as assertAdditionalHumanProfileCreationEnabled, k as resolveAuthenticationGuidance, n as resolveRuntimeContext, o as resolveOpenMeldProfileOrNull, s as createOpenMeldAgentProfile, u as getOpenMeldProfileCapabilities } from "./context-CtpDI4OE.js";
9
+ import { $t as createFetchTransport, Kn as resolveAccountSpaceIndexGatewayHost, Vt as createAgentProfileBindingApi, Yn as toStructuredApiClientFailure, bt as buildProfileSpaceHistoryStatusPath, cr as parseIncoming$1, ir as MAX_TEXT_LENGTH, lr as parseServerErrorFrame$1, n as OpenMeldApiClientInvalidResponseError, on as createOpenMeldApiClient, pn as createProfileSpaceHistoryApi, qn as resolveProfileSpaceHistoryGatewayHost, sn as createOrganizationApi, sr as parseEnvelope$1, t as OpenMeldApiClientHttpError, ur as resolveCustomMentionAliasOverride, xt as buildProfileSpaceHistoryUpsertPath, zt as createAccountSpaceIndexApi } from "./dist-BJy9X73H.js";
10
+ import { A as resolveAuthenticationGuidanceFromError, E as buildHumanAuthenticationCard, F as resolveCurrentOpenMeldAccountContext, a as requireOpenMeldProfile, c as createOpenMeldHumanProfile, d as listOpenMeldProfiles, h as assertAdditionalHumanProfileCreationEnabled, k as resolveAuthenticationGuidance, n as resolveRuntimeContext, o as resolveOpenMeldProfileOrNull, s as createOpenMeldAgentProfile, u as getOpenMeldProfileCapabilities } from "./context-BT5P1qqr.js";
11
11
  import { a as formatOpenMeldCliTextBlock, l as resolveUserFacingCliEntryCommand, n as formatOpenMeldCliCommand, o as formatProfileAwareOpenMeldCliCommand, r as formatOpenMeldCliCommands, t as formatInlineOpenMeldCliCommands } from "./cli-entry-command-CR_9QU1i.js";
12
- import { d as getAuthSessionState } from "./auth-session-gCSwPpKk.js";
12
+ import { d as getAuthSessionState } from "./auth-session-mNZMZihh.js";
13
13
  import { a as outJsonLine, i as errLine, n as sanitizeTerminalDisplayText, o as outLine, r as formatMessage, t as createPresenter } from "./presenter-DiP7Yh2y.js";
14
- import { a as buildOpenMeldProfileIdentityRequestHeadersWithAuth, d as buildOpenMeldRequestContextFromProfile, f as buildOpenMeldRequestContextFromProfileIdentity, m as resolveAuthRequestCompatibility, n as fetchSpaceRequestWithTimeout, o as buildOpenMeldProfileRequestHeadersWithAuth, p as deriveAuthBaseUrlFromGatewayUrl, r as resolveSpaceRequestTimeoutMsForDiagnostics, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation } from "./api-client-foundation-K-xme5wi.js";
15
- import { F as formatSpaceMemberCommandRecoveryCopy, H as resolveGatewayChainRetryGuidance, I as resolveReplyReadinessAvailabilityReasonCopy, L as resolveReplyReadinessGuidanceSummaryCopy, M as formatReplyReadinessSummary, O as resolveCurrentReplyReadinessSnapshot, P as REPLY_READINESS_COPY, R as resolveOpenClawDiagnosticsGuidance, U as resolveOpenClawLocalDiagnosticsValue, V as resolveGatewayChainRepairGuidance, W as resolveLocalServiceDemand, b as buildDaemonServiceRepairGuidance, z as classifyGatewayChainFailure } from "./daemon-service-update-coordinator-h_n5_IqX.js";
16
- import { D as createDelayedSpinner, G as ensureCommandAuthenticationOrCancel, N as renderHumanErrorCard, U as connectWebSocket, W as buildCommandAuthenticationPromptMessage, at as promptTextEntry, b as formatServiceRuntimeHeadline, it as buildUnifiedCardFrame, lt as getCurrentCommandCheckState, nt as renderInfoCard, x as resolveServiceParticipationReadiness, y as formatServiceParticipationReadinessLabel } from "./service-Brjwa0y-.js";
17
- import { A as createSpaceUpdatesGuideError, D as createSpaceSubcommandTargetGuideError, Dt as formatAgentOverviewPayload, O as createSpaceTargetGuideError, S as createSpaceResultGuideError, _ as createSpaceProfileRequiredGuideError, at as SPACE_ADD_MEMBERS_PROGRESS_HEARTBEAT_MS, b as createSpaceRemoveMembersCurrentProfileGuideError, c as createSpaceAddMembersCurrentProfileGuideError, d as createSpaceContractSetGuideError, et as ROOT_ENTRY_COMMANDS, f as createSpaceCreateGuideError, ft as formatCliVersionSummary, g as createSpaceMenuGuideError, h as createSpaceLeaveGuideError, i as createProfileCreateGuideError, it as SPACE_ADD_MEMBERS_AGENT_OVERVIEW_STAGES, k as createSpaceUnsupportedProfileKindGuideError, l as createSpaceAddMembersGuideError, m as createSpaceLeaveCreatorGuideError, ot as resolveSpaceAddMembersProgressPhase, p as createSpaceDeleteHumanApprovalGuideError, pt as getCliVersionInfo, rt as validateSpaceMemberSelectionInput, tt as ROOT_ENTRY_START_COMMAND, v as createSpacePublicationSetGuideError, x as createSpaceRemoveMembersGuideError, y as createSpaceRemoveMembersCreatorGuideError } from "./dual-view-guide-catalog-DAVm97ep.js";
18
- import { g as canUseInteractivePrompts } from "./elapsed-time-Bgx9MoTj.js";
19
- import { At as toLocalSpaceStateIntegrityError, Ct as isLocalSpaceStateCorruptResult, Dt as readSpaceLastSeenTs, Et as readSpaceConfig, Ft as writeSpaceRecentMentionProfileIds, Gt as buildSpaceMentionProfileIndex, Ht as buildSignalMessageReadProjection, It as SpaceComposerSubmissionError, Kt as buildSpaceMessageReadRelationSummary, Lt as buildDispatchResultMessageReadProjection, Mt as updateSpaceLastSeenTs, Nt as upsertSpaceConfig, Ot as readSpaceRecentMentionProfileIds, Pt as writeSpaceCacheDeletionNoticeState, Qt as collectResolvedSpaceMentions, Tt as readSpaceCacheDeletionNoticeState, Ut as buildSignalReplyWorkflowProjection, Vt as buildSignalIndex, Wt as buildSpaceMemberAgentPresencePresentation, Zt as closeMentionPickerState, _n as resolveSpaceMemberAgentOwnerWakeDiagnosticsView, bt as projectSpaceProfileCache, cn as isTargetPickerState, dn as listSpaceMentionRelationChoices, fn as listSpaceMentionSuggestions, gn as resolveNextRecentMentionProfileIdsForQueuedText, hn as prepareSpaceFileOnlySubmission, jt as toSpaceConfigListIntegrityError, kt as removeSpaceConfig, mn as prepareSpaceComposerSubmission, nn as enterRelationPickerState, pn as openTargetPickerState, qt as buildSpaceProfileAddPlan, rn as extractMentionAuthoringPrefix, sn as isRelationPickerState, t as assertDispatchOwnedRuntimePublicWriteAllowed, tn as createSpaceTargetCatalog, vn as returnToTargetPickerState, wt as listSpaceConfigs, xt as LocalSpaceStateIntegrityError, yn as updateAuthoredMentionRanges } from "./dispatch-owned-runtime-BTPAd3rO.js";
20
- import { S as buildSpaceWebUrl, T as runDaemonServiceParticipationGate, _ as promptSearchSelect, b as resolveOffsetVisibleWindow, f as runAgentsRepair, g as promptSearchMultiselectWorkbench, h as promptSearchMultiselect, l as runAgentsEnable, m as formatTransportModeDisplay, v as clampNumber$2, x as computeRetryDelayMs, y as resolveAnchoredVisibleWindow } from "./agents-Bys2Xt-r.js";
21
- import { l as resolveLocalAgentControllerReportDecision, n as submitProfileRuntimeAgentControllerReport, o as collectLocalAgentControllerInventory, r as submitRuntimeAgentControllerReport } from "./runtime-agent-controller-reporting-submission-pzz0mnop.js";
22
- import { a as GatewayHttpError, c as toStructuredGatewayFailure, d as resolveSpaceSendText, h as createCliSpaceApi, i as parseSpaceMetaResponse, m as uploadPreparedSpaceFiles, o as readGatewayJsonResponse, p as prepareRequestedSpaceSendFiles, r as parseSpaceMetaPayload, t as fetchSpaceMeta } from "./meta-api-DShk3N0P.js";
14
+ import { a as buildOpenMeldProfileIdentityRequestHeadersWithAuth, d as buildOpenMeldRequestContextFromProfile, f as buildOpenMeldRequestContextFromProfileIdentity, m as resolveAuthRequestCompatibility, n as fetchSpaceRequestWithTimeout, o as buildOpenMeldProfileRequestHeadersWithAuth, p as deriveAuthBaseUrlFromGatewayUrl, r as resolveSpaceRequestTimeoutMsForDiagnostics, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation } from "./api-client-foundation-BDbeHD1i.js";
15
+ import { F as formatSpaceMemberCommandRecoveryCopy, H as resolveGatewayChainRetryGuidance, I as resolveReplyReadinessAvailabilityReasonCopy, L as resolveReplyReadinessGuidanceSummaryCopy, M as formatReplyReadinessSummary, O as resolveCurrentReplyReadinessSnapshot, P as REPLY_READINESS_COPY, R as resolveOpenClawDiagnosticsGuidance, U as resolveOpenClawLocalDiagnosticsValue, V as resolveGatewayChainRepairGuidance, W as resolveLocalServiceDemand, b as buildDaemonServiceRepairGuidance, z as classifyGatewayChainFailure } from "./daemon-service-update-coordinator-BUAkAxqT.js";
16
+ import { D as createDelayedSpinner, G as ensureCommandAuthenticationOrCancel, N as renderHumanErrorCard, U as connectWebSocket, W as buildCommandAuthenticationPromptMessage, at as promptTextEntry, b as formatServiceRuntimeHeadline, it as buildUnifiedCardFrame, lt as getCurrentCommandCheckState, nt as renderInfoCard, x as resolveServiceParticipationReadiness, y as formatServiceParticipationReadinessLabel } from "./service-Ciifmu6w.js";
17
+ import { A as createSpaceUpdatesGuideError, D as createSpaceSubcommandTargetGuideError, Dt as formatAgentOverviewPayload, O as createSpaceTargetGuideError, S as createSpaceResultGuideError, _ as createSpaceProfileRequiredGuideError, at as SPACE_ADD_MEMBERS_PROGRESS_HEARTBEAT_MS, b as createSpaceRemoveMembersCurrentProfileGuideError, c as createSpaceAddMembersCurrentProfileGuideError, d as createSpaceContractSetGuideError, et as ROOT_ENTRY_COMMANDS, f as createSpaceCreateGuideError, ft as formatCliVersionSummary, g as createSpaceMenuGuideError, h as createSpaceLeaveGuideError, i as createProfileCreateGuideError, it as SPACE_ADD_MEMBERS_AGENT_OVERVIEW_STAGES, k as createSpaceUnsupportedProfileKindGuideError, l as createSpaceAddMembersGuideError, m as createSpaceLeaveCreatorGuideError, ot as resolveSpaceAddMembersProgressPhase, p as createSpaceDeleteHumanApprovalGuideError, pt as getCliVersionInfo, rt as validateSpaceMemberSelectionInput, tt as ROOT_ENTRY_START_COMMAND, v as createSpacePublicationSetGuideError, x as createSpaceRemoveMembersGuideError, y as createSpaceRemoveMembersCreatorGuideError } from "./dual-view-guide-catalog-D4rlZXO_.js";
18
+ import { g as canUseInteractivePrompts } from "./elapsed-time-pHCf33Jh.js";
19
+ import { At as toLocalSpaceStateIntegrityError, Ct as isLocalSpaceStateCorruptResult, Dt as readSpaceLastSeenTs, Et as readSpaceConfig, Ft as writeSpaceRecentMentionProfileIds, Gt as buildSpaceMentionProfileIndex, Ht as buildSignalMessageReadProjection, It as SpaceComposerSubmissionError, Kt as buildSpaceMessageReadRelationSummary, Lt as buildDispatchResultMessageReadProjection, Mt as updateSpaceLastSeenTs, Nt as upsertSpaceConfig, Ot as readSpaceRecentMentionProfileIds, Pt as writeSpaceCacheDeletionNoticeState, Qt as collectResolvedSpaceMentions, Tt as readSpaceCacheDeletionNoticeState, Ut as buildSignalReplyWorkflowProjection, Vt as buildSignalIndex, Wt as buildSpaceMemberAgentPresencePresentation, Zt as closeMentionPickerState, _n as resolveSpaceMemberAgentOwnerWakeDiagnosticsView, bt as projectSpaceProfileCache, cn as isTargetPickerState, dn as listSpaceMentionRelationChoices, fn as listSpaceMentionSuggestions, gn as resolveNextRecentMentionProfileIdsForQueuedText, hn as prepareSpaceFileOnlySubmission, jt as toSpaceConfigListIntegrityError, kt as removeSpaceConfig, mn as prepareSpaceComposerSubmission, nn as enterRelationPickerState, pn as openTargetPickerState, qt as buildSpaceProfileAddPlan, rn as extractMentionAuthoringPrefix, sn as isRelationPickerState, t as assertDispatchOwnedRuntimePublicWriteAllowed, tn as createSpaceTargetCatalog, vn as returnToTargetPickerState, wt as listSpaceConfigs, xt as LocalSpaceStateIntegrityError, yn as updateAuthoredMentionRanges } from "./dispatch-owned-runtime-D5THLVZR.js";
20
+ import { S as buildSpaceWebUrl, T as runDaemonServiceParticipationGate, _ as promptSearchSelect, b as resolveOffsetVisibleWindow, f as runAgentsRepair, g as promptSearchMultiselectWorkbench, h as promptSearchMultiselect, l as runAgentsEnable, m as formatTransportModeDisplay, v as clampNumber$2, x as computeRetryDelayMs, y as resolveAnchoredVisibleWindow } from "./agents-CLlVC_zK.js";
21
+ import { l as resolveLocalAgentControllerReportDecision, n as submitProfileRuntimeAgentControllerReport, o as collectLocalAgentControllerInventory, r as submitRuntimeAgentControllerReport } from "./runtime-agent-controller-reporting-submission-NTqBffbr.js";
22
+ import { a as GatewayHttpError, c as toStructuredGatewayFailure, d as resolveSpaceSendText, h as createCliSpaceApi, i as parseSpaceMetaResponse, m as uploadPreparedSpaceFiles, o as readGatewayJsonResponse, p as prepareRequestedSpaceSendFiles, r as parseSpaceMetaPayload, t as fetchSpaceMeta } from "./meta-api-CkKS9A5_.js";
23
23
  import { stripVTControlCharacters } from "node:util";
24
24
  import pc from "picocolors";
25
25
  import { cancel, confirm, isCancel, multiselect, password, select, text } from "@clack/prompts";
@@ -2036,7 +2036,7 @@ const SUMMARY_BY_COMMAND = {
2036
2036
  publication_set: "Use `openmeld space publication set --view agent` with an explicit Space ID, mode, owner profile, and Space password to change how agent output becomes visible.",
2037
2037
  status: "Use `openmeld space status --view agent` with an explicit space ID to read the current space status deterministically.",
2038
2038
  updates: "Use `openmeld space updates --view agent` with an explicit anchor signal to read formal post-anchor updates deterministically as signal envelopes plus `messageReadProjection`.",
2039
- result: "Use `openmeld space result --view agent` with exactly one selector to read an archived dispatch result plus `messageReadProjection`. Use `openmeld service trace --view agent` to diagnose Wake execution and the final visible Space outcome.",
2039
+ result: "Use `openmeld space result --dispatch <id> --view agent` to read an archived result or the exact published reply across local and hosted Agents. `--result-ref` selects an archive only. Use `openmeld service trace --view agent` for execution diagnostics.",
2040
2040
  password: "Use `openmeld space password --view agent` with an explicit space ID and one explicit password action.",
2041
2041
  guide: "Use `openmeld space guide --view agent` to read, `openmeld space guide set --view agent` to update, and `openmeld space guide clear --view agent` to clear the current space guide deterministically.",
2042
2042
  add_members: "Use `openmeld space add-members --profile <profile-id> <space-id> --member <profile-id...> --view agent` with explicit acting profile, Space ID, and member selection.",
@@ -6466,6 +6466,7 @@ function resolveRequestedRecipients(snapshot, requested) {
6466
6466
  });
6467
6467
  prefix += `${text} `;
6468
6468
  resolvedAddressingTargets.push({
6469
+ agentControllerRef: target.agentControllerRef,
6469
6470
  primaryMentionLabel: label,
6470
6471
  profileId,
6471
6472
  relation: request.relation
@@ -19441,6 +19442,11 @@ async function leaveSpace(input) {
19441
19442
  }
19442
19443
  //#endregion
19443
19444
  //#region src/space/send.ts
19445
+ function assertSessionSelectionSupported(selection, targets) {
19446
+ if (!selection) return;
19447
+ const unsupported = targets.find((target) => target.relation === "wake" && !supportsExecutionContextSelection(target.agentControllerRef));
19448
+ if (unsupported) throw new Error(`${unsupported.primaryMentionLabel} does not support session selection. Remove --new-task, --fork-from, --continue-from and task access/workspace options, or choose an Agent that supports them. No message was sent.`);
19449
+ }
19444
19450
  async function runSend(input) {
19445
19451
  assertDispatchOwnedRuntimePublicWriteAllowed({ commandLabel: "openmeld space send" });
19446
19452
  const hasRecipients = [
@@ -19512,6 +19518,7 @@ async function runSend(input) {
19512
19518
  spaceApi,
19513
19519
  text: text.value
19514
19520
  });
19521
+ assertSessionSelectionSupported(input.contextSelection, resolvedAddressingTargets);
19515
19522
  emitSendAddressingSummary({
19516
19523
  outboundMessageEnvelope,
19517
19524
  presenter,
@@ -24622,6 +24629,6 @@ function isHumanInteractiveSpaceRuntime(runtime) {
24622
24629
  return runtime.resolvedView === "human" && canUseInteractivePrompts(runtime);
24623
24630
  }
24624
24631
  //#endregion
24625
- export { assertFullSignalIdArgument as A, resolveAgentProfileSetup as B, buildFormalSignalReadPayload as C, resolveOrganizationVisibilityLabel as D, resolveLinkAccessLabel as E, emitSpaceCliAgentOverview as F, renderOpenMeldHeader as G, colorizeDisplayProfileLabel as H, prepareLocalAgentReadiness as I, createProfileByKind as J, renderOpenMeldLogo as K, buildReplyReadinessGuidance as L, prepareAuthenticatedSpaceCommandContext as M, resolveOpenMeldProfileForSpaceCommand as N, parseEnvelope as O, emitSpaceAgentOverview as P, assessActionParticipationCandidate as Q, resolveHumanControllerDisplayName as R, buildFormalDispatchResultReadPayload as S, formatHumanReadTargetList as T, printOpenMeldBanner as U, colorizeAgentLabel as V, renderOpenMeldBrandBlockLines as W, resolveCreateProfileName as X, resolveCreateProfileKind as Y, ensureAgentProfileRuntimeBinding as Z, emitHumanReadSignalsTextProjection as _, runSpaceDelete as a, loadSpaceSignalIndexOrNull as b, runSpaceLeave as c, runSpaceRemoveMembers as d, runSpaceSend as f, buildHumanReadSignalsTranscriptItems as g, runSpaceWriteWithPasswordRetry as h, runSpaceCreate as i, assertValidSpaceIdTarget as j, isSpaceCommandOutputHandledError as k, runSpaceList as l, runSpaceReadWithPasswordRetry as m, promptAndConfirmSpacePassword as n, runSpaceHistory as o, runSpaceWatch as p, renderOpenMeldTagline as q, runSpaceAddMembers as r, runSpaceJoin as s, buildCreateSpacePasswordPromptConfig as t, runSpacePassword as u, buildIdentityOnlyMembersSnapshotForReadProjection as v, buildHumanReplyContextSummary as w, toSpaceMetaUpsertInput as x, loadSpaceIdentityDirectoryOrNull as y, persistAgentTransportSelection as z };
24632
+ export { assessActionParticipationCandidate as $, isSpaceCommandOutputHandledError as A, persistAgentTransportSelection as B, buildFormalSignalReadPayload as C, resolveLinkAccessLabel as D, formatHumanReadTargetList as E, emitSpaceAgentOverview as F, renderOpenMeldBrandBlockLines as G, colorizeAgentLabel as H, emitSpaceCliAgentOverview as I, renderOpenMeldTagline as J, renderOpenMeldHeader as K, prepareLocalAgentReadiness as L, assertValidSpaceIdTarget as M, prepareAuthenticatedSpaceCommandContext as N, resolveOrganizationVisibilityLabel as O, resolveOpenMeldProfileForSpaceCommand as P, ensureAgentProfileRuntimeBinding as Q, buildReplyReadinessGuidance as R, buildFormalDispatchResultReadPayload as S, buildHumanReplyContextSummary as T, colorizeDisplayProfileLabel as U, resolveAgentProfileSetup as V, printOpenMeldBanner as W, resolveCreateProfileKind as X, createProfileByKind as Y, resolveCreateProfileName as Z, emitHumanReadSignalsTextProjection as _, runSpaceDelete as a, loadSpaceSignalIndexOrNull as b, runSpaceLeave as c, runSpaceRemoveMembers as d, runSpaceSend as f, buildHumanReadSignalsTranscriptItems as g, runSpaceWriteWithPasswordRetry as h, runSpaceCreate as i, assertFullSignalIdArgument as j, parseEnvelope as k, runSpaceList as l, runSpaceReadWithPasswordRetry as m, promptAndConfirmSpacePassword as n, runSpaceHistory as o, runSpaceWatch as p, renderOpenMeldLogo as q, runSpaceAddMembers as r, runSpaceJoin as s, buildCreateSpacePasswordPromptConfig as t, runSpacePassword as u, buildIdentityOnlyMembersSnapshotForReadProjection as v, formatTextEvent as w, toSpaceMetaUpsertInput as x, loadSpaceIdentityDirectoryOrNull as y, resolveHumanControllerDisplayName as z };
24626
24633
 
24627
- //# sourceMappingURL=command-ByRe3oUP.js.map
24634
+ //# sourceMappingURL=command-BmbIcCis.js.map