openmeld 0.3.237 → 0.3.238

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 (109) hide show
  1. package/dist/{add-me-membership-BEqSnfgo.js → add-me-membership-_7nC0hkr.js} +2 -2
  2. package/dist/{add-me-membership-BEqSnfgo.js.map → add-me-membership-_7nC0hkr.js.map} +1 -1
  3. package/dist/{agents-_Hh6L3Fi.js → agents-kG9UvazC.js} +10 -10
  4. package/dist/{agents-_Hh6L3Fi.js.map → agents-kG9UvazC.js.map} +1 -1
  5. package/dist/{api-client-foundation-ZuYF2Uah.js → api-client-foundation-DIcNjG9w.js} +1 -1
  6. package/dist/{api-client-foundation-CGc8AuMo.js → api-client-foundation-DNbvvZW2.js} +3 -3
  7. package/dist/{api-client-foundation-CGc8AuMo.js.map → api-client-foundation-DNbvvZW2.js.map} +1 -1
  8. package/dist/{auth-session-B3oyTcSI.js → auth-session-BTRu2Kc5.js} +2 -2
  9. package/dist/{auth-session-B3oyTcSI.js.map → auth-session-BTRu2Kc5.js.map} +1 -1
  10. package/dist/auth-session-D2f7Lud02.js +4 -0
  11. package/dist/{channel-BB6aEY--.js → channel-BxlX3o3i.js} +78 -4
  12. package/dist/channel-BxlX3o3i.js.map +1 -0
  13. package/dist/{command-D71NHS4j.js → command-Cyw5Gj59.js} +37 -123
  14. package/dist/command-Cyw5Gj59.js.map +1 -0
  15. package/dist/{computer-connection-DyL3C3HO.js → computer-connection-Sntn_-XO.js} +2 -2
  16. package/dist/{computer-connection-DyL3C3HO.js.map → computer-connection-Sntn_-XO.js.map} +1 -1
  17. package/dist/{computer-connection-review-BXuXP6KH.js → computer-connection-review-DWiapsro.js} +5 -5
  18. package/dist/{computer-connection-review-BXuXP6KH.js.map → computer-connection-review-DWiapsro.js.map} +1 -1
  19. package/dist/{computer-disconnect-BXZKVvxj.js → computer-disconnect-Bxxreumk.js} +8 -8
  20. package/dist/{computer-disconnect-BXZKVvxj.js.map → computer-disconnect-Bxxreumk.js.map} +1 -1
  21. package/dist/{computer-setup-continuation-DOvxRtAh.js → computer-setup-continuation-DkPRFlA1.js} +4 -4
  22. package/dist/{computer-setup-continuation-DOvxRtAh.js.map → computer-setup-continuation-DkPRFlA1.js.map} +1 -1
  23. package/dist/{daemon-device-id-Dwm7CHtX.js → daemon-device-id-D7lbw6c4.js} +226 -42
  24. package/dist/daemon-device-id-D7lbw6c4.js.map +1 -0
  25. package/dist/{daemon-lifecycle-journal-DrDyXoUO.js → daemon-lifecycle-journal-C0P8xFTk.js} +3 -3
  26. package/dist/{daemon-lifecycle-journal-DrDyXoUO.js.map → daemon-lifecycle-journal-C0P8xFTk.js.map} +1 -1
  27. package/dist/{daemon-service-runtime-D-tDDWWf.js → daemon-service-runtime-DhV7AKAv.js} +2 -2
  28. package/dist/{daemon-service-runtime-D-tDDWWf.js.map → daemon-service-runtime-DhV7AKAv.js.map} +1 -1
  29. package/dist/{daemon-service-update-coordinator-ykoOjGCd.js → daemon-service-update-coordinator-BM4ha5Nj.js} +9 -10
  30. package/dist/{daemon-service-update-coordinator-ykoOjGCd.js.map → daemon-service-update-coordinator-BM4ha5Nj.js.map} +1 -1
  31. package/dist/{dispatch-owned-runtime-eRa3wkl9.js → dispatch-owned-runtime-CfPwparq.js} +7 -7
  32. package/dist/{dispatch-owned-runtime-eRa3wkl9.js.map → dispatch-owned-runtime-CfPwparq.js.map} +1 -1
  33. package/dist/dist-Bfz_GJ0l.js +4 -0
  34. package/dist/{dist-DEjtwiDJ.js → dist-s_YTHAIc.js} +307 -16
  35. package/dist/dist-s_YTHAIc.js.map +1 -0
  36. package/dist/{elapsed-time-BnibmBPb.js → dual-view-guide-catalog-DDYa38RT.js} +215 -164
  37. package/dist/dual-view-guide-catalog-DDYa38RT.js.map +1 -0
  38. package/dist/elapsed-time-Ck4GiT9P.js +165 -0
  39. package/dist/elapsed-time-Ck4GiT9P.js.map +1 -0
  40. package/dist/{entry-CVxgr9uQ.js → entry-CTw122mn.js} +7 -8
  41. package/dist/{entry-CVxgr9uQ.js.map → entry-CTw122mn.js.map} +1 -1
  42. package/dist/{installation-inventory-HHLOQ2g7.js → installation-inventory-CSNq9dzc.js} +3 -3
  43. package/dist/{installation-inventory-HHLOQ2g7.js.map → installation-inventory-CSNq9dzc.js.map} +1 -1
  44. package/dist/{installer-Bg4KA0DR.js → installer-B4MjFlzg.js} +2 -2
  45. package/dist/{installer-Bg4KA0DR.js.map → installer-B4MjFlzg.js.map} +1 -1
  46. package/dist/{meta-api-CjvtAPvQ.js → meta-api-tg1rD8mP.js} +117 -6
  47. package/dist/meta-api-tg1rD8mP.js.map +1 -0
  48. package/dist/{openmeld-o_rTSEOO.js → openmeld-MSrVnYw0.js} +128 -88
  49. package/dist/openmeld-MSrVnYw0.js.map +1 -0
  50. package/dist/{openmeld-maintenance-worker-Cwv6_5UL.js → openmeld-maintenance-worker-CQGwuIl9.js} +9 -9
  51. package/dist/{openmeld-maintenance-worker-Cwv6_5UL.js.map → openmeld-maintenance-worker-CQGwuIl9.js.map} +1 -1
  52. package/dist/{openmeld-tools-update-join-IFQf70sm.js → openmeld-tools-update-join-CzBRWKVT.js} +4 -4
  53. package/dist/{openmeld-tools-update-join-IFQf70sm.js.map → openmeld-tools-update-join-CzBRWKVT.js.map} +1 -1
  54. package/dist/openmeld.js +4 -4
  55. package/dist/{prepare-provider-runtime-B_huS5DY.js → prepare-provider-runtime-L7u8iHAb.js} +94 -11
  56. package/dist/{prepare-provider-runtime-B_huS5DY.js.map → prepare-provider-runtime-L7u8iHAb.js.map} +1 -1
  57. package/dist/{prepare-session-executor-WWjgnqsh.js → prepare-session-executor-D8LvC1d8.js} +19 -20
  58. package/dist/{prepare-session-executor-WWjgnqsh.js.map → prepare-session-executor-D8LvC1d8.js.map} +1 -1
  59. package/dist/{presenter-MJ5YgsOT.js → presenter-BcxiQyJg.js} +13 -3
  60. package/dist/presenter-BcxiQyJg.js.map +1 -0
  61. package/dist/{process-channel-C2dB41fO.js → process-channel-QRugdtrY.js} +2 -2
  62. package/dist/{process-channel-C2dB41fO.js.map → process-channel-QRugdtrY.js.map} +1 -1
  63. package/dist/{runtime-DjEQja8c.js → runtime-C2v7iKNY.js} +126 -16
  64. package/dist/runtime-C2v7iKNY.js.map +1 -0
  65. package/dist/{runtime-agent-controller-reporting-submission-CRS5CwMp.js → runtime-agent-controller-reporting-submission-BFXtOHAU.js} +8 -8
  66. package/dist/{runtime-agent-controller-reporting-submission-CRS5CwMp.js.map → runtime-agent-controller-reporting-submission-BFXtOHAU.js.map} +1 -1
  67. package/dist/{runtime-transport-B-GZhwVt.js → runtime-transport-BVCHi4qM.js} +10 -6
  68. package/dist/runtime-transport-BVCHi4qM.js.map +1 -0
  69. package/dist/{service-CleUczqJ.js → service-6waBVmON.js} +43 -20
  70. package/dist/service-6waBVmON.js.map +1 -0
  71. package/dist/{service-account-authorization-s1bXEswT.js → service-account-authorization-C1CdX1P3.js} +2 -2
  72. package/dist/{service-account-authorization-s1bXEswT.js.map → service-account-authorization-C1CdX1P3.js.map} +1 -1
  73. package/dist/{service-account-control-CjZ5uqK4.js → service-account-control-BBY6pX86.js} +8 -9
  74. package/dist/{service-account-control-CjZ5uqK4.js.map → service-account-control-BBY6pX86.js.map} +1 -1
  75. package/dist/{service-control-capabilities-D5izhuhD.js → service-control-capabilities-BP9UE3a7.js} +3 -3
  76. package/dist/{service-control-capabilities-D5izhuhD.js.map → service-control-capabilities-BP9UE3a7.js.map} +1 -1
  77. package/dist/{service-control-capabilities-Bcho1Rwq.js → service-control-capabilities-CQjhvDFx.js} +1 -1
  78. package/dist/{state-CbrhgfNh.js → state-BJJLEoJY.js} +2 -2
  79. package/dist/{state-CbrhgfNh.js.map → state-BJJLEoJY.js.map} +1 -1
  80. package/dist/{updates-api-B7x39-DR.js → updates-api-dsNUTfpa.js} +142 -11
  81. package/dist/updates-api-dsNUTfpa.js.map +1 -0
  82. package/dist/upgrade-CUyMj35o.js +4 -0
  83. package/dist/{upgrade-BQSA2LfT.js → upgrade-DwlRN4_U.js} +9 -9
  84. package/dist/{upgrade-BQSA2LfT.js.map → upgrade-DwlRN4_U.js.map} +1 -1
  85. package/dist/windows/openmeld-windows-process.exe +0 -0
  86. package/package.json +12 -12
  87. package/skills/openmeld-cli/playbooks/space-ops.md +24 -2
  88. package/skills/openmeld-cli/references/commands.md +9 -2
  89. package/dist/auth-session-CoFlCq7_.js +0 -4
  90. package/dist/channel-BB6aEY--.js.map +0 -1
  91. package/dist/command-D71NHS4j.js.map +0 -1
  92. package/dist/context-43g3bIde.js +0 -162
  93. package/dist/context-43g3bIde.js.map +0 -1
  94. package/dist/daemon-device-id-Dwm7CHtX.js.map +0 -1
  95. package/dist/dist-CaCD0K8a.js +0 -216
  96. package/dist/dist-CaCD0K8a.js.map +0 -1
  97. package/dist/dist-DEjtwiDJ.js.map +0 -1
  98. package/dist/dist-DGNsLSYJ.js +0 -4
  99. package/dist/elapsed-time-BnibmBPb.js.map +0 -1
  100. package/dist/io-DT66typ4.js +0 -16
  101. package/dist/io-DT66typ4.js.map +0 -1
  102. package/dist/meta-api-CjvtAPvQ.js.map +0 -1
  103. package/dist/openmeld-o_rTSEOO.js.map +0 -1
  104. package/dist/presenter-MJ5YgsOT.js.map +0 -1
  105. package/dist/runtime-DjEQja8c.js.map +0 -1
  106. package/dist/runtime-transport-B-GZhwVt.js.map +0 -1
  107. package/dist/service-CleUczqJ.js.map +0 -1
  108. package/dist/updates-api-B7x39-DR.js.map +0 -1
  109. package/dist/upgrade-636PQBli.js +0 -4
@@ -1,9 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { a as formatOpenMeldCliTextBlock } from "./cli-entry-command-CR_9QU1i.js";
4
- import { n as outJsonLine, r as outLine, t as errLine } from "./io-DT66typ4.js";
5
4
  import { stripVTControlCharacters } from "node:util";
6
5
  import pc from "picocolors";
6
+ //#region src/ui/io.ts
7
+ function outLine(line) {
8
+ process.stdout.write(`${line}\n`);
9
+ }
10
+ function outJsonLine(value) {
11
+ process.stdout.write(`${JSON.stringify(value)}\n`);
12
+ }
13
+ function errLine(line) {
14
+ process.stderr.write(`${line}\n`);
15
+ }
16
+ //#endregion
7
17
  //#region src/runtime/messages.ts
8
18
  const SENTENCE_END_PATTERN = /[.!?]$/u;
9
19
  const HUMAN_MESSAGES = {
@@ -347,6 +357,6 @@ function createPresenter(context) {
347
357
  return context.resolvedView === "agent" ? createAgentPresenter({ context }) : createHumanPresenter({ context });
348
358
  }
349
359
  //#endregion
350
- export { sanitizeTerminalDisplayText as n, formatMessage as r, createPresenter as t };
360
+ export { outJsonLine as a, errLine as i, sanitizeTerminalDisplayText as n, outLine as o, formatMessage as r, createPresenter as t };
351
361
 
352
- //# sourceMappingURL=presenter-MJ5YgsOT.js.map
362
+ //# sourceMappingURL=presenter-BcxiQyJg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presenter-BcxiQyJg.js","names":[],"sources":["../src/ui/io.ts","../src/runtime/messages.ts","../src/runtime/presenter/agent.ts","../src/ui/terminal-safe-text.ts","../src/runtime/presenter/human.ts","../src/runtime/presenter/index.ts"],"sourcesContent":["export function outLine(line: string) {\n process.stdout.write(`${line}\\n`);\n}\n\nexport function outJsonLine(value: unknown) {\n process.stdout.write(`${JSON.stringify(value)}\\n`);\n}\n\nexport function errLine(line: string) {\n process.stderr.write(`${line}\\n`);\n}\n","import { formatOpenMeldCliTextBlock } from \"./cli-entry-command\";\nimport type { ResolvedCliView } from \"./types\";\n\ntype MessageResolver = (params?: Record<string, unknown>) => string;\n\ntype Catalog = Record<string, MessageResolver>;\n\nconst SENTENCE_END_PATTERN = /[.!?]$/u;\n\n// Keep literal keys for strict MessageKey derivation used by override validation.\nconst HUMAN_MESSAGES = {\n \"whoami.loaded\": (params) =>\n `Profile loaded (profile: ${String(params?.profile ?? \"unknown\")}).`,\n \"space.menu.interactive_required\": () =>\n \"This menu only works in an interactive terminal. Run `openmeld space --help`.\",\n \"space.target.missing\": (params) =>\n `Add a Space ID after \\`openmeld space ${String(params?.command ?? \"join\")}\\`, then try again.`,\n \"space.target.invalid\": (_params) =>\n \"That Space ID isn't valid. Copy the full Space ID, then try again.\",\n \"signal.id.invalid\": (params) =>\n `That ${String(params?.flag ?? \"signal\")} ID is incomplete. Copy the full signal ID from \\`openmeld space history --view agent\\`, then try again.`,\n \"space.create.created\": (params) =>\n `Space created: ${String(params?.spaceId ?? \"unknown\")}`,\n \"space.join.stdin_fallback_watch\": (params) =>\n formatJoinNoStdioMessage(\"human\", params),\n \"space.join.bootstrap_context\": (params) =>\n formatJoinBootstrapContextMessage(\"human\", params),\n \"space.guide.current\": (params) =>\n `Space guide for ${String(params?.spaceId ?? \"unknown\")}:`,\n \"space.guide.empty\": () => \"(empty)\",\n \"space.guide.updated\": (params) =>\n `Space guide updated for ${String(params?.spaceId ?? \"unknown\")}.`,\n \"space.password.updated\": (params) =>\n `Space password updated for ${String(params?.spaceId ?? \"unknown\")}.`,\n \"space.password.cleared\": (params) =>\n `Space password cleared for ${String(params?.spaceId ?? \"unknown\")}.`,\n \"space.password.warning\": () =>\n \"Important: Save this password securely. If lost, it cannot be recovered. Reset is the only option.\",\n \"profile.menu.interactive_required\": () =>\n \"This menu only works in an interactive terminal. Run `openmeld profiles --help`.\",\n \"profile.no_profiles\": () =>\n \"No OpenMeld profiles found. Sign in with `openmeld login` or create one with `openmeld profiles create`.\",\n \"profile.target.missing\": (params) =>\n `Add a profile ID after \\`openmeld profiles ${String(params?.action ?? \"set\")}\\`, then try again.`,\n \"profile.delete.force_required\": () =>\n \"Add `--force` to delete a profile from a non-interactive terminal.\",\n \"profile.current_set\": (params) =>\n `Current profile: ${String(params?.profile ?? \"unknown\")}. New OpenMeld commands will use this profile by default unless you pass \\`--profile\\`.`,\n \"profile.selection.non_persistent\": () =>\n \"Warning: this temporary OpenMeld CLI context only uses the selected profile for this command.\",\n \"profile.deleted\": (params) =>\n `Deleted profile: ${String(params?.profile ?? \"unknown\")}.`,\n \"profile.current_switched\": (params) =>\n `Current profile switched to: ${String(params?.profile ?? \"unknown\")}.`,\n \"profile.no_active\": () => \"No OpenMeld profile is currently selected.\",\n \"profile.update.missing_changes\": () =>\n \"Choose at least one profile setting to update. Run `openmeld profile update --help` to see the options.\",\n \"profile.update.candidates_required\": () =>\n \"Choose a profile first. Available profiles are listed above.\",\n \"routines.error\": (params) =>\n String(params?.message ?? \"Routine action couldn't finish.\"),\n \"doctor.summary.failed\": () => \"OpenMeld diagnostics found issues.\",\n \"send.sent\": () => \"Sent.\",\n \"tail.empty\": () => \"(no signals yet)\",\n \"space.updates.empty\": () => \"(no updates found after this signal)\",\n \"init.profile_initialized\": (params) =>\n `Profile initialized: ${String(params?.profile ?? \"unknown\")}.`,\n \"connect.connecting\": (params) =>\n `Connecting to ${String(params?.wsUrl ?? \"\")}`,\n \"connect.warn.persist_last_seen\": (_params) =>\n \"OpenMeld couldn't save where you left off. Live updates will continue.\",\n \"connect.warn.persist_recent_mentions\": (_params) =>\n \"OpenMeld couldn't save your recent @ mentions. Live updates will continue.\",\n \"connect.warn.cursor_fetch_failed\": (_params) =>\n \"OpenMeld couldn't load where you left off. Live updates will continue.\",\n \"connect.warn.cursor_patch_failed\": (_params) =>\n \"OpenMeld couldn't save your new place. Live updates will continue.\",\n \"connect.warn.catchup_failed\": (_params) =>\n \"OpenMeld couldn't load every recent message. Live updates will continue.\",\n \"connect.warn.catchup_live_buffer_overflow\": (_params) =>\n \"OpenMeld couldn't load every recent message. Live updates will continue, but your place won't be saved in this session.\",\n \"connect.warn.cursor_sync_paused\": () =>\n \"Live updates will continue, but OpenMeld won't save your place in this session.\",\n \"connect.warn.meta_fetch_failed\": (_params) =>\n \"OpenMeld couldn't load this Space's details.\",\n \"connect.warn.members_fetch_failed\": (_params) =>\n \"OpenMeld couldn't load this Space's members.\",\n \"connect.warn.profile_space_history_sync_failed\": (_params) =>\n \"OpenMeld couldn't save this Space to your recent history.\",\n \"connect.closed\": () => \"Connection closed.\",\n \"connect.closed_with_code_reason\": (params) =>\n `The connection closed.${formatHumanHintSentence(params?.hint)}`,\n \"connect.error\": (params) => formatHumanConnectError(params),\n \"connect.error.space_not_found\": (_params) =>\n `OpenMeld couldn't find that Space. Check the Space ID, then try again.`,\n \"connect.closing\": (params) =>\n `Closing the connection (${String(params?.why ?? \"\")})...`,\n \"connect.watch_ready\": () => \"Watching the stream. Press Ctrl+C to quit.\",\n \"connect.connected_no_stdio\": (params) =>\n formatConnectedNoStdioMessage(\"human\", params),\n \"connect.chat_mention_hint\": () =>\n \"Press @ to insert an Agent Wake, Agent Reference, or Human Mention.\",\n \"connect.chat_ready\": () => \"Type your message and press Enter to send.\",\n \"connect.chat_exit_hint\": () => \"Exit with '/quit', ':q', Ctrl+D, or Ctrl+C.\",\n \"connect.chat_prompt_question\": () =>\n \"What would you like to say in this space?\",\n \"connect.connected_stdio\": () =>\n 'Connected in `--stdio` mode. Type a line and press Enter. Use Ctrl+D, Ctrl+C, \"/quit\", or \":q\" to exit.',\n \"connect.reject\": (params) =>\n `Rejected: ${String(params?.reason ?? \"unknown\")}`,\n \"connect.space_guide\": (params) =>\n `Space guide (${String(params?.spaceId ?? \"unknown\")}):`,\n} as const satisfies Catalog;\n\nconst AGENT_MESSAGES = {\n \"whoami.loaded\": (params) =>\n `whoami loaded for profile ${String(params?.profile ?? \"unknown\")}`,\n \"space.menu.interactive_required\": () =>\n \"interactive menu is disabled in agent view; use explicit command arguments\",\n \"space.target.missing\": (params) =>\n `missing required 'space' argument for \\`openmeld space ${String(params?.command ?? \"join\")}\\``,\n \"space.target.invalid\": (params) =>\n `invalid space target: ${String(params?.space ?? \"unknown\")} (must be a 64-character hex ID)`,\n \"signal.id.invalid\": (params) =>\n `invalid ${String(params?.flag ?? \"signal\")} value: ${String(params?.value ?? \"unknown\")} (must be a full 36-character UUID signal ID, not a short prefix; read signalId from \\`openmeld space history --view agent\\`)`,\n \"space.create.created\": (params) =>\n `Space created: ${String(params?.spaceId ?? \"unknown\")}`,\n \"space.join.stdin_fallback_watch\": (params) =>\n formatJoinNoStdioMessage(\"agent\", params),\n \"space.join.bootstrap_context\": (params) =>\n formatJoinBootstrapContextMessage(\"agent\", params),\n \"space.guide.current\": (params) =>\n `space guide for ${String(params?.spaceId ?? \"unknown\")}:`,\n \"space.guide.empty\": () => \"space guide is empty\",\n \"space.guide.updated\": (params) =>\n `space guide updated for ${String(params?.spaceId ?? \"unknown\")}`,\n \"space.password.updated\": (params) =>\n `space password set for ${String(params?.spaceId ?? \"unknown\")}`,\n \"space.password.cleared\": (params) =>\n `space password cleared for ${String(params?.spaceId ?? \"unknown\")}`,\n \"space.password.warning\": () =>\n \"Important: Save this password securely. If lost, it cannot be recovered. Reset is the only option.\",\n \"profile.menu.interactive_required\": () =>\n \"interactive profile menu is disabled in agent view; use `openmeld profiles list`, `set`, `update`, or `delete` with explicit arguments\",\n \"profile.no_profiles\": () =>\n \"no OpenMeld profiles found for this account; run `openmeld login` or `openmeld profiles create`\",\n \"profile.target.missing\": (params) =>\n `missing required 'profile' argument for \\`openmeld profiles ${String(params?.action ?? \"set\")}\\``,\n \"profile.delete.force_required\": () =>\n \"profile delete requires `--force` in non-interactive mode\",\n \"profile.current_set\": (params) =>\n `profile selected: ${String(params?.profile ?? \"unknown\")} (subsequent OpenMeld commands use it by default unless --profile is provided)`,\n \"profile.selection.non_persistent\": () =>\n \"non-persistent OpenMeld CLI context; the selected OpenMeld profile applies only to this process\",\n \"profile.deleted\": (params) =>\n `profile deleted: ${String(params?.profile ?? \"unknown\")}`,\n \"profile.current_switched\": (params) =>\n `selected profile switched to ${String(params?.profile ?? \"unknown\")}`,\n \"profile.no_active\": () => \"no active OpenMeld profile selected\",\n \"profile.update.missing_changes\": () =>\n \"`openmeld profile update` requires at least one update option\",\n \"profile.update.candidates_required\": () =>\n \"profile update requires explicit profile argument; candidates listed above\",\n \"routines.error\": (params) =>\n String(params?.message ?? \"Routine command failed.\"),\n \"doctor.summary.failed\": () => \"diagnostics found issues\",\n \"send.sent\": () => \"signal sent\",\n \"tail.empty\": () => \"no signals found\",\n \"space.updates.empty\": () => \"no updates found after this signal\",\n \"init.profile_initialized\": (params) =>\n `profile initialized: ${String(params?.profile ?? \"unknown\")}`,\n \"connect.connecting\": (params) =>\n `connecting to ${String(params?.wsUrl ?? \"\")}`,\n \"connect.warn.persist_last_seen\": (params) =>\n `warning: couldn't save where you left off in this space: ${String(params?.error ?? \"unknown\")}`,\n \"connect.warn.persist_recent_mentions\": (params) =>\n `warning: couldn't save recent @ targets for this space: ${String(params?.error ?? \"unknown\")}`,\n \"connect.warn.cursor_fetch_failed\": (params) =>\n `warning: couldn't load current place in this space: ${String(params?.error ?? \"unknown\")}`,\n \"connect.warn.cursor_patch_failed\": (params) =>\n `warning: couldn't update current place in this space: ${String(params?.error ?? \"unknown\")}`,\n \"connect.warn.catchup_failed\": (params) =>\n `warning: couldn't catch up to recent messages: ${String(params?.error ?? \"unknown\")}`,\n \"connect.warn.catchup_live_buffer_overflow\": (_params) =>\n \"warning: catch-up could not finish; continuing live updates without saving your place for this session\",\n \"connect.warn.cursor_sync_paused\": () =>\n \"warning: continuing live updates without saving your place for this session\",\n \"connect.warn.meta_fetch_failed\": (params) =>\n `warning: couldn't load space details: ${String(params?.error ?? \"unknown\")}`,\n \"connect.warn.members_fetch_failed\": (params) =>\n `warning: couldn't load space members: ${String(params?.error ?? \"unknown\")}`,\n \"connect.warn.profile_space_history_sync_failed\": (params) =>\n `warning: couldn't update recent space history: ${String(params?.error ?? \"unknown\")}`,\n \"connect.closed\": () => \"connection closed\",\n \"connect.closed_with_code_reason\": (params) =>\n `connection closed code=${String(params?.code ?? \"\")}${formatCodeLabelSuffix(params?.codeLabel)} reason=${String(params?.reason ?? \"\")}${formatHintSuffix(params?.hint)}`,\n \"connect.error\": (params) =>\n `connection error: ${String(params?.error ?? \"unknown\")}${formatHintSuffix(params?.hint)}`,\n \"connect.error.space_not_found\": (params) =>\n `space not found: ${String(params?.space ?? \"unknown\")} (join supports existing spaces only; create first via \\`openmeld space create --name <name> --visibility private\\`)`,\n \"connect.closing\": (params) =>\n `closing connection (${String(params?.why ?? \"\")})`,\n \"connect.watch_ready\": () => \"watch mode active; Ctrl+C to quit\",\n \"connect.connected_no_stdio\": (params) =>\n formatConnectedNoStdioMessage(\"agent\", params),\n \"connect.chat_mention_hint\": () =>\n \"choose a member with @ in the interactive picker, or use space send --wake, --reference, or --mention with a full Profile ID; typed text is literal\",\n \"connect.chat_ready\": () => \"chat mode active; type a line to send\",\n \"connect.chat_exit_hint\": () =>\n \"enter sends; line ending with \\\\ continues draft; exit with /quit, :q, Ctrl+D, or Ctrl+C\",\n \"connect.chat_prompt_question\": () => \"what would you like to say?\",\n \"connect.connected_stdio\": () => \"connected in stdio mode\",\n \"connect.reject\": (params) =>\n `input rejected: ${String(params?.reason ?? \"unknown\")}`,\n \"connect.space_guide\": (params) =>\n `space guide (${String(params?.spaceId ?? \"unknown\")}):`,\n} as const satisfies Record<MessageKey, MessageResolver>;\n\nexport type MessageKey = keyof typeof HUMAN_MESSAGES;\n\nexport function formatMessage(\n view: ResolvedCliView,\n key: MessageKey,\n params?: Record<string, unknown>,\n overrides?: Record<string, string>\n): string {\n const override = overrides?.[key];\n if (typeof override === \"string\" && override.length > 0) {\n return formatOpenMeldCliTextBlock(applyTemplate(override, params));\n }\n\n const catalog = view === \"agent\" ? AGENT_MESSAGES : HUMAN_MESSAGES;\n const resolver = catalog[key];\n if (!resolver) {\n return key;\n }\n return formatOpenMeldCliTextBlock(resolver(params));\n}\n\nfunction applyTemplate(\n template: string,\n params?: Record<string, unknown>\n): string {\n if (!params) {\n return template;\n }\n\n return template.replace(/\\{\\{\\s*([\\w.-]+)\\s*\\}\\}/g, (_all, name) => {\n const value = params[name];\n return value === undefined || value === null ? \"\" : String(value);\n });\n}\n\nfunction formatCodeLabelSuffix(codeLabel: unknown): string {\n if (typeof codeLabel !== \"string\") {\n return \"\";\n }\n const normalized = codeLabel.trim();\n if (normalized.length === 0) {\n return \"\";\n }\n return ` (${normalized})`;\n}\n\nfunction formatJoinNoStdioMessage(\n view: ResolvedCliView,\n params?: Record<string, unknown>\n): string {\n const sendCommandHint = formatSendCommandHint(params);\n if (view === \"agent\") {\n return `stdin unavailable; continuing as a stream-only join (no inline stdin input)${sendCommandHint}`;\n }\n return `stdin is not interactive; continuing as a stream-only join (no inline stdin input)${sendCommandHint}`;\n}\n\nfunction formatConnectedNoStdioMessage(\n view: ResolvedCliView,\n params?: Record<string, unknown>\n): string {\n if (resolveConnectionMode(params) !== \"join\") {\n return view === \"agent\"\n ? \"watch mode active; Ctrl+C to quit\"\n : \"watching stream. Press Ctrl+C to quit.\";\n }\n\n const sendCommand = resolveSendCommand(params);\n if (view === \"agent\") {\n return `joined in stream-only mode; use ${sendCommand} to send messages`;\n }\n return `joined in stream-only mode (no inline stdin input). Use ${sendCommand} to send messages. Press Ctrl+C to quit.`;\n}\n\nfunction formatSendCommandHint(params?: Record<string, unknown>): string {\n if (resolveConnectionMode(params) !== \"join\") {\n return \"\";\n }\n return `; send messages with ${resolveSendCommand(params)}`;\n}\n\nfunction resolveConnectionMode(\n params?: Record<string, unknown>\n): \"join\" | \"watch\" {\n const normalized = String(params?.connectionMode ?? \"\")\n .trim()\n .toLowerCase();\n return normalized === \"join\" ? \"join\" : \"watch\";\n}\n\nfunction resolveSendCommand(params?: Record<string, unknown>): string {\n const explicitCommand = String(params?.sendCommand ?? \"\").trim();\n if (explicitCommand.length > 0) {\n return `\\`${explicitCommand}\\``;\n }\n return \"`openmeld space send --profile <profile-id> <space-id> <text...>`\";\n}\n\nfunction formatJoinBootstrapContextMessage(\n view: ResolvedCliView,\n params?: Record<string, unknown>\n): string {\n const parts: string[] = [];\n const role = normalizeMessageValue(params?.role);\n const mentionAlias = normalizeMessageValue(params?.mentionAlias);\n const roleSource = resolveJoinBootstrapSourceLabel(\n params?.roleSource,\n view === \"human\"\n );\n const mentionAliasSource = resolveJoinBootstrapSourceLabel(\n params?.mentionAliasSource,\n view === \"human\"\n );\n\n if (role) {\n parts.push(`role \"${role}\" (${roleSource})`);\n }\n if (mentionAlias) {\n parts.push(`mention alias @${mentionAlias} (${mentionAliasSource})`);\n }\n\n if (parts.length === 0) {\n return view === \"agent\"\n ? \"join bootstrap context resolved\"\n : \"Join bootstrap context resolved.\";\n }\n\n const prefix =\n view === \"agent\" ? \"join bootstrap context:\" : \"Join context loaded:\";\n return `${prefix} ${parts.join(\"; \")}`;\n}\n\nfunction resolveJoinBootstrapSourceLabel(\n value: unknown,\n humanFriendly: boolean\n): string {\n const normalized = String(value ?? \"\")\n .trim()\n .toLowerCase();\n if (normalized === \"explicit\") {\n return \"explicit\";\n }\n if (normalized === \"cloud\" || normalized === \"local\") {\n return humanFriendly ? \"saved\" : normalized;\n }\n return humanFriendly ? \"unset\" : \"none\";\n}\n\nfunction normalizeMessageValue(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction formatHintSuffix(hint: unknown): string {\n if (typeof hint !== \"string\") {\n return \"\";\n }\n const normalized = hint.trim();\n if (normalized.length === 0) {\n return \"\";\n }\n return ` (hint: ${normalized})`;\n}\n\nfunction formatHumanConnectError(\n params: Record<string, unknown> | undefined\n): string {\n const error = String(params?.error ?? \"\").toLowerCase();\n let summary = \"OpenMeld lost the connection.\";\n if (error.includes(\"last message may not have been confirmed\")) {\n summary = \"OpenMeld lost the connection before confirming your message.\";\n } else if (error.includes(\"couldn't send the message\")) {\n summary = \"OpenMeld couldn't send your message.\";\n }\n return `${summary}${formatHumanHintSentence(params?.hint)}`;\n}\n\nfunction formatHumanHintSentence(hint: unknown): string {\n if (typeof hint !== \"string\") {\n return \"\";\n }\n const normalized = hint.trim();\n if (!normalized) {\n return \"\";\n }\n const sentence = `${normalized.slice(0, 1).toUpperCase()}${normalized.slice(1)}`;\n return ` ${SENTENCE_END_PATTERN.test(sentence) ? sentence : `${sentence}.`}`;\n}\n","import { outJsonLine } from \"../../ui/io\";\nimport { formatMessage, type MessageKey } from \"../messages\";\nimport type {\n Presenter,\n PresenterEventKind,\n PresenterEventOptions,\n PresenterFactoryInput,\n} from \"./types\";\n\nexport function createAgentPresenter(input: PresenterFactoryInput): Presenter {\n const messageOverrides = input.context.viewCustomization?.messages?.agent;\n const envelopeMode =\n input.context.viewCustomization?.render?.agent?.envelopeMode ?? \"verbose\";\n\n return {\n view: \"agent\",\n event: (\n kind: PresenterEventKind,\n key: MessageKey,\n params?: Record<string, unknown>,\n options?: PresenterEventOptions\n ) => {\n const message = formatMessage(\"agent\", key, params, messageOverrides);\n emitEnvelope(envelopeMode, {\n type: kind,\n code: options?.code ?? key,\n message,\n ...(params ? { data: params } : {}),\n });\n },\n line: (inputLine: {\n code: string;\n text: string;\n data?: Record<string, unknown>;\n }) => {\n emitEnvelope(envelopeMode, {\n type: \"line\",\n code: inputLine.code,\n text: inputLine.text,\n ...(inputLine.data ? { data: inputLine.data } : {}),\n });\n },\n data: (inputData: { code: string; payload: unknown }) => {\n emitEnvelope(envelopeMode, {\n type: \"result\",\n code: inputData.code,\n payload: inputData.payload,\n });\n },\n };\n}\n\nfunction emitEnvelope(\n mode: \"verbose\" | \"compact\",\n value: {\n type: string;\n code: string;\n message?: string;\n text?: string;\n data?: Record<string, unknown>;\n payload?: unknown;\n }\n): void {\n if (mode === \"compact\") {\n outJsonLine({\n t: value.type,\n c: value.code,\n ...(value.message ? { m: value.message } : {}),\n ...(value.text ? { x: value.text } : {}),\n ...(value.data ? { d: value.data } : {}),\n ...(value.payload === undefined ? {} : { p: value.payload }),\n });\n return;\n }\n\n outJsonLine(value);\n}\n","import { stripVTControlCharacters } from \"node:util\";\n\nexport type TerminalDisplaySanitizeMode = \"single-line\" | \"multi-line\";\n\n// Terminal display boundary only:\n// - strip executable VT/ANSI control sequences\n// - normalize CR/CRLF to LF before line-mode handling\n// - remove remaining non-printing C0/C1 controls while preserving tab/newline\nconst TAB_CHARACTER_CODE = 0x09;\nconst LINE_FEED_CHARACTER_CODE = 0x0a;\nconst C0_CONTROL_MAX_CODE = 0x1f;\nconst DELETE_CHARACTER_CODE = 0x7f;\nconst C1_CONTROL_MAX_CODE = 0x9f;\n\nexport function sanitizeTerminalDisplayText(\n value: string | number | null | undefined,\n mode: TerminalDisplaySanitizeMode = \"single-line\"\n): string {\n const normalizedValue = String(value ?? \"\");\n if (normalizedValue.length === 0) {\n return \"\";\n }\n\n const withNormalizedNewlines = normalizedValue.replace(/\\r\\n?/g, \"\\n\");\n const withoutTerminalSequences = stripVTControlCharacters(\n withNormalizedNewlines\n );\n const modeAdjusted =\n mode === \"single-line\"\n ? withoutTerminalSequences.replaceAll(\"\\n\", \" \")\n : withoutTerminalSequences;\n\n return removeRemainingTerminalControlCharacters(modeAdjusted);\n}\n\nfunction removeRemainingTerminalControlCharacters(value: string): string {\n let sanitized = \"\";\n for (const char of value) {\n if (isRemainingTerminalControlCharacter(char)) {\n continue;\n }\n sanitized += char;\n }\n return sanitized;\n}\n\nfunction isRemainingTerminalControlCharacter(char: string): boolean {\n const codePoint = char.codePointAt(0);\n if (codePoint === undefined) {\n return false;\n }\n if (\n codePoint === TAB_CHARACTER_CODE ||\n codePoint === LINE_FEED_CHARACTER_CODE\n ) {\n return false;\n }\n if (codePoint <= C0_CONTROL_MAX_CODE) {\n return true;\n }\n return codePoint >= DELETE_CHARACTER_CODE && codePoint <= C1_CONTROL_MAX_CODE;\n}\n","import pc from \"picocolors\";\nimport { errLine, outJsonLine, outLine } from \"../../ui/io\";\nimport { sanitizeTerminalDisplayText } from \"../../ui/terminal-safe-text\";\nimport { formatMessage, type MessageKey } from \"../messages\";\nimport type {\n Presenter,\n PresenterEventKind,\n PresenterFactoryInput,\n} from \"./types\";\n\nexport function createHumanPresenter(input: PresenterFactoryInput): Presenter {\n const messageOverrides = input.context.viewCustomization?.messages?.human;\n const dataMode = input.context.viewCustomization?.render?.human?.dataMode;\n\n return {\n view: \"human\",\n event: (\n kind: PresenterEventKind,\n key: MessageKey,\n params?: Record<string, unknown>\n ) => {\n const message = sanitizeTerminalDisplayText(\n formatMessage(\"human\", key, params, messageOverrides),\n \"single-line\"\n );\n errLine(formatHumanEventForTerminal({ kind, key, message }));\n },\n line: ({ text }: { code: string; text: string }) => {\n outLine(text);\n },\n data: (inputData: { code: string; payload: unknown }) => {\n if (dataMode === \"envelope\") {\n outJsonLine({\n type: \"result\",\n code: inputData.code,\n payload: inputData.payload,\n });\n return;\n }\n outJsonLine(inputData.payload);\n },\n };\n}\n\ntype TerminalEventTone = \"neutral\" | \"warning\" | \"error\";\n\nfunction formatHumanEventForTerminal(input: {\n kind: PresenterEventKind;\n key: MessageKey;\n message: string;\n}): string {\n if (process.stderr.isTTY !== true) {\n return input.message;\n }\n const tone = resolveTerminalEventTone(input);\n if (tone === \"neutral\") {\n return input.message;\n }\n const highlightedMessage = colorizeEventMessage({\n message: input.message,\n tone,\n });\n if (shouldInsertTopSpacing({ key: input.key, tone })) {\n return `\\n${highlightedMessage}`;\n }\n return highlightedMessage;\n}\n\nfunction resolveTerminalEventTone(input: {\n kind: PresenterEventKind;\n key: MessageKey;\n message: string;\n}): TerminalEventTone {\n if (input.kind === \"error\") {\n return \"error\";\n }\n if (input.key.startsWith(\"connect.warn.\")) {\n return \"warning\";\n }\n if (input.key === \"connect.closed_with_code_reason\") {\n return \"warning\";\n }\n const normalized = input.message.trim().toLowerCase();\n if (normalized.startsWith(\"warn:\")) {\n return \"warning\";\n }\n return \"neutral\";\n}\n\nfunction colorizeEventMessage(input: {\n tone: TerminalEventTone;\n message: string;\n}): string {\n if (input.tone === \"error\") {\n return pc.bold(pc.red(input.message));\n }\n return pc.bold(pc.yellow(input.message));\n}\n\nfunction shouldInsertTopSpacing(input: {\n key: MessageKey;\n tone: TerminalEventTone;\n}): boolean {\n if (input.tone === \"error\") {\n return true;\n }\n return input.key === \"connect.closed_with_code_reason\";\n}\n","import type { RuntimeContext } from \"../types\";\nimport { createAgentPresenter } from \"./agent\";\nimport { createHumanPresenter } from \"./human\";\nimport type { Presenter } from \"./types\";\n\nexport function createPresenter(context: RuntimeContext): Presenter {\n return context.resolvedView === \"agent\"\n ? createAgentPresenter({ context })\n : createHumanPresenter({ context });\n}\n\nexport type { Presenter } from \"./types\";\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { t as ExecutionHostError } from "./channel-BB6aEY--.js";
3
+ import { t as ExecutionHostError } from "./channel-BxlX3o3i.js";
4
4
  //#region src/local-service/execution-host/process-channel.ts
5
5
  function childExecutionHostChannel(child) {
6
6
  return {
@@ -61,4 +61,4 @@ function parentExecutionHostChannel() {
61
61
  //#endregion
62
62
  export { parentExecutionHostChannel as n, childExecutionHostChannel as t };
63
63
 
64
- //# sourceMappingURL=process-channel-C2dB41fO.js.map
64
+ //# sourceMappingURL=process-channel-QRugdtrY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process-channel-C2dB41fO.js","names":[],"sources":["../src/local-service/execution-host/process-channel.ts"],"sourcesContent":["import type { ChildProcess } from \"node:child_process\";\nimport type { ExecutionHostChannel } from \"./channel\";\nimport { ExecutionHostError } from \"./channel\";\n\n// Use inherited Node-compatible IPC with JSON serialization. Provider stdout is\n// not a protocol channel; ordinary logs cannot become control messages.\nexport function childExecutionHostChannel(\n child: ChildProcess\n): ExecutionHostChannel {\n return {\n connected: () => child.connected,\n send: (message, completed) => {\n child.send(message, (error) => completed(error ?? null));\n },\n onMessage: (listener) => {\n child.on(\"message\", listener);\n return () => {\n child.off(\"message\", listener);\n };\n },\n onDisconnect: (listener) => {\n let observed = false;\n const finish = (error?: Error) => {\n if (!observed) {\n observed = true;\n listener(error);\n }\n };\n const exited = (code: number | null, signal: NodeJS.Signals | null) => {\n finish(\n new Error(`Host process exited (${signal ?? code ?? \"unknown\"})`)\n );\n };\n child.on(\"disconnect\", finish);\n child.on(\"exit\", exited);\n // Spawn/send failures must not become unhandled EventEmitter errors.\n child.on(\"error\", finish);\n return () => {\n child.off(\"disconnect\", finish);\n child.off(\"exit\", exited);\n child.off(\"error\", finish);\n };\n },\n };\n}\n\nexport function parentExecutionHostChannel(): ExecutionHostChannel {\n const send = process.send?.bind(process);\n if (!(send && process.connected)) {\n throw new ExecutionHostError(\n \"host.inherited_channel_required\",\n \"The execution host requires its supervisor's inherited IPC channel.\"\n );\n }\n return {\n connected: () => process.connected === true,\n send: (message, completed) => {\n send(message, undefined, undefined, (error) => completed(error ?? null));\n },\n onMessage: (listener) => {\n process.on(\"message\", listener);\n return () => {\n process.off(\"message\", listener);\n };\n },\n onDisconnect: (listener) => {\n process.on(\"disconnect\", listener);\n return () => {\n process.off(\"disconnect\", listener);\n };\n },\n };\n}\n"],"mappings":";;;;AAMA,SAAgB,0BACd,OACsB;CACtB,OAAO;EACL,iBAAiB,MAAM;EACvB,OAAO,SAAS,cAAc;GAC5B,MAAM,KAAK,UAAU,UAAU,UAAU,SAAS,IAAI,CAAC;EACzD;EACA,YAAY,aAAa;GACvB,MAAM,GAAG,WAAW,QAAQ;GAC5B,aAAa;IACX,MAAM,IAAI,WAAW,QAAQ;GAC/B;EACF;EACA,eAAe,aAAa;GAC1B,IAAI,WAAW;GACf,MAAM,UAAU,UAAkB;IAChC,IAAI,CAAC,UAAU;KACb,WAAW;KACX,SAAS,KAAK;IAChB;GACF;GACA,MAAM,UAAU,MAAqB,WAAkC;IACrE,uBACE,IAAI,MAAM,wBAAwB,UAAU,QAAQ,UAAU,EAAE,CAClE;GACF;GACA,MAAM,GAAG,cAAc,MAAM;GAC7B,MAAM,GAAG,QAAQ,MAAM;GAEvB,MAAM,GAAG,SAAS,MAAM;GACxB,aAAa;IACX,MAAM,IAAI,cAAc,MAAM;IAC9B,MAAM,IAAI,QAAQ,MAAM;IACxB,MAAM,IAAI,SAAS,MAAM;GAC3B;EACF;CACF;AACF;AAEA,SAAgB,6BAAmD;CACjE,MAAM,OAAO,QAAQ,MAAM,KAAK,OAAO;CACvC,IAAI,EAAE,QAAQ,QAAQ,YACpB,MAAM,IAAI,mBACR,mCACA,qEACF;CAEF,OAAO;EACL,iBAAiB,QAAQ,cAAc;EACvC,OAAO,SAAS,cAAc;GAC5B,KAAK,SAAS,KAAA,GAAW,KAAA,IAAY,UAAU,UAAU,SAAS,IAAI,CAAC;EACzE;EACA,YAAY,aAAa;GACvB,QAAQ,GAAG,WAAW,QAAQ;GAC9B,aAAa;IACX,QAAQ,IAAI,WAAW,QAAQ;GACjC;EACF;EACA,eAAe,aAAa;GAC1B,QAAQ,GAAG,cAAc,QAAQ;GACjC,aAAa;IACX,QAAQ,IAAI,cAAc,QAAQ;GACpC;EACF;CACF;AACF"}
1
+ {"version":3,"file":"process-channel-QRugdtrY.js","names":[],"sources":["../src/local-service/execution-host/process-channel.ts"],"sourcesContent":["import type { ChildProcess } from \"node:child_process\";\nimport type { ExecutionHostChannel } from \"./channel\";\nimport { ExecutionHostError } from \"./channel\";\n\n// Use inherited Node-compatible IPC with JSON serialization. Provider stdout is\n// not a protocol channel; ordinary logs cannot become control messages.\nexport function childExecutionHostChannel(\n child: ChildProcess\n): ExecutionHostChannel {\n return {\n connected: () => child.connected,\n send: (message, completed) => {\n child.send(message, (error) => completed(error ?? null));\n },\n onMessage: (listener) => {\n child.on(\"message\", listener);\n return () => {\n child.off(\"message\", listener);\n };\n },\n onDisconnect: (listener) => {\n let observed = false;\n const finish = (error?: Error) => {\n if (!observed) {\n observed = true;\n listener(error);\n }\n };\n const exited = (code: number | null, signal: NodeJS.Signals | null) => {\n finish(\n new Error(`Host process exited (${signal ?? code ?? \"unknown\"})`)\n );\n };\n child.on(\"disconnect\", finish);\n child.on(\"exit\", exited);\n // Spawn/send failures must not become unhandled EventEmitter errors.\n child.on(\"error\", finish);\n return () => {\n child.off(\"disconnect\", finish);\n child.off(\"exit\", exited);\n child.off(\"error\", finish);\n };\n },\n };\n}\n\nexport function parentExecutionHostChannel(): ExecutionHostChannel {\n const send = process.send?.bind(process);\n if (!(send && process.connected)) {\n throw new ExecutionHostError(\n \"host.inherited_channel_required\",\n \"The execution host requires its supervisor's inherited IPC channel.\"\n );\n }\n return {\n connected: () => process.connected === true,\n send: (message, completed) => {\n send(message, undefined, undefined, (error) => completed(error ?? null));\n },\n onMessage: (listener) => {\n process.on(\"message\", listener);\n return () => {\n process.off(\"message\", listener);\n };\n },\n onDisconnect: (listener) => {\n process.on(\"disconnect\", listener);\n return () => {\n process.off(\"disconnect\", listener);\n };\n },\n };\n}\n"],"mappings":";;;;AAMA,SAAgB,0BACd,OACsB;CACtB,OAAO;EACL,iBAAiB,MAAM;EACvB,OAAO,SAAS,cAAc;GAC5B,MAAM,KAAK,UAAU,UAAU,UAAU,SAAS,IAAI,CAAC;EACzD;EACA,YAAY,aAAa;GACvB,MAAM,GAAG,WAAW,QAAQ;GAC5B,aAAa;IACX,MAAM,IAAI,WAAW,QAAQ;GAC/B;EACF;EACA,eAAe,aAAa;GAC1B,IAAI,WAAW;GACf,MAAM,UAAU,UAAkB;IAChC,IAAI,CAAC,UAAU;KACb,WAAW;KACX,SAAS,KAAK;IAChB;GACF;GACA,MAAM,UAAU,MAAqB,WAAkC;IACrE,uBACE,IAAI,MAAM,wBAAwB,UAAU,QAAQ,UAAU,EAAE,CAClE;GACF;GACA,MAAM,GAAG,cAAc,MAAM;GAC7B,MAAM,GAAG,QAAQ,MAAM;GAEvB,MAAM,GAAG,SAAS,MAAM;GACxB,aAAa;IACX,MAAM,IAAI,cAAc,MAAM;IAC9B,MAAM,IAAI,QAAQ,MAAM;IACxB,MAAM,IAAI,SAAS,MAAM;GAC3B;EACF;CACF;AACF;AAEA,SAAgB,6BAAmD;CACjE,MAAM,OAAO,QAAQ,MAAM,KAAK,OAAO;CACvC,IAAI,EAAE,QAAQ,QAAQ,YACpB,MAAM,IAAI,mBACR,mCACA,qEACF;CAEF,OAAO;EACL,iBAAiB,QAAQ,cAAc;EACvC,OAAO,SAAS,cAAc;GAC5B,KAAK,SAAS,KAAA,GAAW,KAAA,IAAY,UAAU,UAAU,SAAS,IAAI,CAAC;EACzE;EACA,YAAY,aAAa;GACvB,QAAQ,GAAG,WAAW,QAAQ;GAC9B,aAAa;IACX,QAAQ,IAAI,WAAW,QAAQ;GACjC;EACF;EACA,eAAe,aAAa;GAC1B,QAAQ,GAAG,cAAc,QAAQ;GACjC,aAAa;IACX,QAAQ,IAAI,cAAc,QAAQ;GACpC;EACF;CACF;AACF"}
@@ -1,24 +1,24 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { $ as canManageRegistryAgentSkillTargets, $t as mergeOpenClawGatewayVisibility, Bn as resolveConversationExecutionStateByLookupKey, Bt as createMutableRouteCatalogState, E as resolveProfileWorkspaceRuntime, Fn as buildTaskResultEnvelope, Gt as syncRuntimeEventToInflightTaskControlRegistry, Hn as settleInflightTask, In as appendLedgerHistoryEntry, Kn as assertLegacyAgentContextAssociation, Kt as SPACE_ACTION_CONTEXT_GUIDANCE_LINES, L as manageAgentRegistrationInstallation, Ln as commitResolvedAgentContext, Mn as DaemonServiceRunError, Nn as runRuntimeTask, Pn as buildRuntimeWorkspaceFingerprint, Qt as createPendingAgentInteractionRegistry, Rn as loadLedgerState, Sn as forkCodexAppServerThread, Tn as verifyCodexAppServerThread, U as setAgentRegistrationEnabled, Un as upsertConversationExecutionState, Vn as seedLegacyAgentContext, Vt as createRouteCatalogFromMutableState, Wn as withLedgerStateTransaction, Wt as normalizeDispatchThreadAction, Yt as createSerialAgentInteractionCallback, Zt as normalizeDispatchPostMessageAction, _ as loadDaemonRouteCatalog, a as buildOpenClawSpaceSessionKey, an as resolveDispatchContinuityObservation, b as resolveLocalController, bn as resolveCodexTimeoutMs, cn as resolveLatestScopedConversationExecutionState, dn as createLocalAdapterEntries, en as createLocalTaskInterruptSender, ft as listProjectBindings, g as writeDaemonRouteCatalogCache, h as readDaemonRouteCatalogCache, hn as resolveInstalledOpenCodeLaunchCandidates, in as resolveDispatchQueueLogMeta, ir as DEFAULT_TASK_LIFECYCLE_HEARTBEAT_INTERVAL_MS, kt as resolveRegistryRuntimeAdapterContractByAgentControllerRef, mn as forkOpenCodeServerSession, nn as createLocalExecutionSlots, nr as DISPATCH_SPACE_ACTION_DELIVERY_ONLY_ENV, o as normalizeOpenClawSpaceIdPrefix, on as resolveCompatibleAgentContextMatch, qn as buildAgentContextLookupKey, qt as SPACE_ACTION_TARGET_GUIDANCE_LINES, rn as createInflightTaskControlRegistry, rt as resolveBuiltinAgentControllerDefinition, s as slugifyOpenClawNamePart, sn as resolveCompatibleConversationExecutionState, t as prepareProviderRuntime, tt as resolveSkillsAgentRegistry, un as createLocalAdapterContainer, v as buildRuntimeRouteTargets, w as resolveCurrentEffectiveProfileWorkingFolderRuntime, wn as resolveCodexAppServerCompletedTurn, x as resolveLocalRuntimeControllerSupport, xn as resolveInstalledCodexLaunchCandidates, y as readLocalEnabledControllers, z as reconcileNewRunnableBuiltinAgentRegistrations, zn as removeConversationExecutionState } from "./prepare-provider-runtime-B_huS5DY.js";
3
+ import { $ as canManageRegistryAgentSkillTargets, $t as mergeOpenClawGatewayVisibility, Bn as resolveConversationExecutionStateByLookupKey, Bt as createMutableRouteCatalogState, E as resolveProfileWorkspaceRuntime, Fn as buildTaskResultEnvelope, Gt as syncRuntimeEventToInflightTaskControlRegistry, Hn as settleInflightTask, In as appendLedgerHistoryEntry, Kn as assertLegacyAgentContextAssociation, Kt as SPACE_ACTION_CONTEXT_GUIDANCE_LINES, L as manageAgentRegistrationInstallation, Ln as commitResolvedAgentContext, Mn as DaemonServiceRunError, Nn as runRuntimeTask, Pn as buildRuntimeWorkspaceFingerprint, Qt as createPendingAgentInteractionRegistry, Rn as loadLedgerState, Sn as forkCodexAppServerThread, Tn as verifyCodexAppServerThread, U as setAgentRegistrationEnabled, Un as upsertConversationExecutionState, Vn as seedLegacyAgentContext, Vt as createRouteCatalogFromMutableState, Wn as withLedgerStateTransaction, Wt as normalizeDispatchThreadAction, Yt as createSerialAgentInteractionCallback, Zt as normalizeDispatchPostMessageAction, _ as loadDaemonRouteCatalog, a as buildOpenClawSpaceSessionKey, an as resolveDispatchContinuityObservation, b as resolveLocalController, bn as resolveCodexTimeoutMs, cn as resolveLatestScopedConversationExecutionState, dn as createLocalAdapterEntries, en as createLocalTaskInterruptSender, ft as listProjectBindings, g as writeDaemonRouteCatalogCache, h as readDaemonRouteCatalogCache, hn as resolveInstalledOpenCodeLaunchCandidates, in as resolveDispatchQueueLogMeta, ir as DEFAULT_TASK_LIFECYCLE_HEARTBEAT_INTERVAL_MS, kt as resolveRegistryRuntimeAdapterContractByAgentControllerRef, mn as forkOpenCodeServerSession, nn as createLocalExecutionSlots, nr as DISPATCH_SPACE_ACTION_DELIVERY_ONLY_ENV, o as normalizeOpenClawSpaceIdPrefix, on as resolveCompatibleAgentContextMatch, qn as buildAgentContextLookupKey, qt as SPACE_ACTION_TARGET_GUIDANCE_LINES, rn as createInflightTaskControlRegistry, rt as resolveBuiltinAgentControllerDefinition, s as slugifyOpenClawNamePart, sn as resolveCompatibleConversationExecutionState, t as prepareProviderRuntime, tt as resolveSkillsAgentRegistry, un as createLocalAdapterContainer, v as buildRuntimeRouteTargets, w as resolveCurrentEffectiveProfileWorkingFolderRuntime, wn as resolveCodexAppServerCompletedTurn, x as resolveLocalRuntimeControllerSupport, xn as resolveInstalledCodexLaunchCandidates, y as readLocalEnabledControllers, z as reconcileNewRunnableBuiltinAgentRegistrations, zn as removeConversationExecutionState } from "./prepare-provider-runtime-L7u8iHAb.js";
4
4
  import { F as resolveOpenMeldRootDir } from "./paths-De9xdA2h.js";
5
- import { At as buildSpaceAttachmentDownloadPath, Or as SPACE_DISPATCH_TRACE_PROMPT_PREVIEW_MAX_CHARS, Ui as COMPUTER_FILE_ACCESS_OWNER_CANCELLED_REASON_CODE, Xi as toCompatibleSpaceAddressingRequestWireValue, mn as createSpaceApi, rn as createOrganizationSkillsApi } from "./dist-DEjtwiDJ.js";
6
- import { Ar as AGENT_INTERACTION_DEFAULT_TIMEOUT_MS, B as runtimeTransportResumeControllerConversationResultFramePayloadSchema, D as runtimeTransportLocalAgentControlForkSessionFramePayloadSchema, E as runtimeTransportLocalAgentControlCancelFramePayloadSchema, Mr as agentInteractionRequestSchema, O as runtimeTransportLocalAgentControlInterruptFramePayloadSchema, S as runtimeTransportForkAgentSessionResultSchema, U as runtimeTransportSubmitTaskResultRequestSchema, Ur as runtimeCoordinatorExecutionTokenEnvelopeSchema, Wr as runtimeTransportDeliveryExecutionIdentitySchema, Z as openMeldDaemonTaskResultPayloadSchema, _ as runtimeTransportDispatchProgressRequestSchema, b as runtimeTransportDispatchToolActivityRequestSchema, d as runtimeTransportDispatchInteractionRequestSchema, f as runtimeTransportDispatchInteractionResponseFramePayloadSchema, g as runtimeTransportDispatchPreviewRequestSchema, h as runtimeTransportDispatchPreviewEndRequestSchema, ii as localAgentReasoningPreferencesSchema, j as runtimeTransportLocalAgentControlSetEnabledFramePayloadSchema, k as runtimeTransportLocalAgentControlManageInstallationFramePayloadSchema, l as runtimeTransportDeliverDispatchRequestSchema, m as runtimeTransportDispatchLifecycleRequestSchema, ni as LOCAL_AGENT_REASONING_MAX_CHARS, p as runtimeTransportDispatchLifecycleAcknowledgementSchema, sn as spaceWorkSelectionSchema, u as runtimeTransportDispatchInteractionDeliveredRequestSchema, v as runtimeTransportDispatchReasoningRequestSchema, y as runtimeTransportDispatchRuntimeEvidenceRequestSchema, z as runtimeTransportResumeControllerConversationFramePayloadSchema } from "./runtime-transport-B-GZhwVt.js";
5
+ import { Ar as SPACE_DISPATCH_TRACE_PROMPT_PREVIEW_MAX_CHARS, At as buildSpaceAttachmentDownloadPath, Gi as COMPUTER_FILE_ACCESS_OWNER_CANCELLED_REASON_CODE, Qi as toCompatibleSpaceAddressingRequestWireValue, mn as createSpaceApi, rn as createOrganizationSkillsApi } from "./dist-s_YTHAIc.js";
6
+ import { B as runtimeTransportResumeControllerConversationResultFramePayloadSchema, D as runtimeTransportLocalAgentControlForkSessionFramePayloadSchema, E as runtimeTransportLocalAgentControlCancelFramePayloadSchema, Gr as runtimeTransportDeliveryExecutionIdentitySchema, Nr as agentInteractionRequestSchema, O as runtimeTransportLocalAgentControlInterruptFramePayloadSchema, S as runtimeTransportForkAgentSessionResultSchema, U as runtimeTransportSubmitTaskResultRequestSchema, Wr as runtimeCoordinatorExecutionTokenEnvelopeSchema, Z as openMeldDaemonTaskResultPayloadSchema, _ as runtimeTransportDispatchProgressRequestSchema, ai as localAgentReasoningPreferencesSchema, b as runtimeTransportDispatchToolActivityRequestSchema, cn as spaceWorkSelectionSchema, d as runtimeTransportDispatchInteractionRequestSchema, f as runtimeTransportDispatchInteractionResponseFramePayloadSchema, g as runtimeTransportDispatchPreviewRequestSchema, h as runtimeTransportDispatchPreviewEndRequestSchema, j as runtimeTransportLocalAgentControlSetEnabledFramePayloadSchema, jr as AGENT_INTERACTION_DEFAULT_TIMEOUT_MS, k as runtimeTransportLocalAgentControlManageInstallationFramePayloadSchema, l as runtimeTransportDeliverDispatchRequestSchema, m as runtimeTransportDispatchLifecycleRequestSchema, p as runtimeTransportDispatchLifecycleAcknowledgementSchema, ri as LOCAL_AGENT_REASONING_MAX_CHARS, u as runtimeTransportDispatchInteractionDeliveredRequestSchema, v as runtimeTransportDispatchReasoningRequestSchema, y as runtimeTransportDispatchRuntimeEvidenceRequestSchema, z as runtimeTransportResumeControllerConversationFramePayloadSchema } from "./runtime-transport-BVCHi4qM.js";
7
7
  import { D as normalizeOptionalWorkingDirectory, n as OPENMELD_DAEMON_CANCEL_WITHDRAWN_BEFORE_START_REASON_CODE, t as OPENMELD_DAEMON_CANCEL_STOP_REQUESTED_AFTER_START_REASON_CODE } from "./control-plane-QqGL-jtT.js";
8
8
  import { b as normalizeKnownBuiltinAgentControllerId, d as resolveBuiltinAgentControllerConversationKind, l as buildAgentControllerConversationRef } from "./controller-contract-DAOCaefz.js";
9
- import { d as getAuthSessionState } from "./auth-session-B3oyTcSI.js";
10
- import { f as withSkillsInstallLock, h as OFFICIAL_CLI_SKILL_URL, r as ensureLocalSkills, t as resolveSkillInstallStateForTarget } from "./state-CbrhgfNh.js";
11
- import { $ as readComputerFileAccessPolicy, $t as isWakeClosingSystemNoticeType, S as resolveOpenCodeDatabasePath, Ut as createDispatchContinuationSpaceAccessContext, X as emitDaemonDispatchJournalEvent, Xt as getSpaceAccessRequestContext, Yt as getSpaceAccessPassword, at as buildDispatchPromptPlan, b as readOpenCodeSessionRows, c as createDispatchSpaceActionContext, ct as resolveBootstrapSpaceOwnerProfileId, d as readDispatchSpaceActionRecord, dn as DISPATCH_SPACE_ACTION_CLI_FALLBACK_COMMAND, en as listSpaceMemberDirectorySendTargets, et as resolveComputerFileAccessStorePath, f as supersedeDispatchSpaceActionRecordForReconsideration, g as sendDaemonFrame$1, h as parseDaemonFrame, it as buildDispatchCorrelation, l as readDispatchSpaceActionContextForReceiptFromEnv, lt as resolveBootstrapTargetProfileContext, nt as isSameOrDescendantPath, ot as buildDispatchSessionTitle, r as buildDispatchOwnedRuntimeEnv, rt as buildDispatchBootstrapTemplateFacts, s as OPENMELD_SPACE_ACTION_CONTEXT_PATH_ENV, st as parseDispatchTask, ut as resolveDispatchMentionSourceContext, z as consumeArmedAgentControllerInterfaceReprobe, zt as buildSpaceRoundSignalPublication } from "./dispatch-owned-runtime-eRa3wkl9.js";
12
- import { C as createLedgerIo, D as recordOpenMeldCreatedLocalAgentSession, E as discoverLocalAgentSessionProviders, L as defaultManagedIntegrationPaths, N as registerAgentActivityRoute, R as installAgentActivityIntegrations, S as recordRuntimeReportingSuccess, _ as prepareClaudeProjectContainer, a as createDispatchSpaceTools, b as recordRuntimeReportingFailure, g as releaseExecutionContextWorkspace, h as readExecutionContextWorkspace, i as materializeOrganizationSkillRelease, m as prepareExecutionContextWorkspace, n as createSpaceWorkingCopies, p as markExecutionContextWorkspaceInUse, r as downloadWorkingCopyFile, t as fetchSpaceUpdates, v as startDispatchSpaceProgressRelay, w as startLocalAgentActivitySyncLoop, x as recordRuntimeReportingNotApplicable } from "./updates-api-B7x39-DR.js";
13
- import { S as CONTROLLED_SHUTDOWN_RESULT_ACK_TIMEOUT_MS, _ as toErrorMessage$2, n as ensureDaemonRuntimePaths, s as emitRunLine, t as buildLedgerPaths, u as normalizeOptionalText$3, v as warnDaemonEvent } from "./daemon-device-id-Dwm7CHtX.js";
14
- import { _ as resolvePublicAgentFailureReason, n as SPACE_COLLABORATION_CONTEXT_RULE, r as SPACE_PERSONAL_CONTRIBUTION_RULE, v as resolveSpacePublicationRequirement } from "./dist-CaCD0K8a.js";
15
- import { a as serviceExecutionHostCatalogSchema, i as SERVICE_EXECUTION_HOST_PROTOCOL, t as ExecutionHostError } from "./channel-BB6aEY--.js";
9
+ import { d as getAuthSessionState } from "./auth-session-BTRu2Kc5.js";
10
+ import { S as CONTROLLED_SHUTDOWN_RESULT_ACK_TIMEOUT_MS, _ as toErrorMessage$2, n as ensureDaemonRuntimePaths, s as emitRunLine, t as buildLedgerPaths, u as normalizeOptionalText$3, v as warnDaemonEvent, wt as agentExecutionSteerResponseSchema } from "./daemon-device-id-D7lbw6c4.js";
11
+ import { a as serviceExecutionHostCatalogSchema, i as SERVICE_EXECUTION_HOST_PROTOCOL, t as ExecutionHostError } from "./channel-BxlX3o3i.js";
12
+ import { f as withSkillsInstallLock, h as OFFICIAL_CLI_SKILL_URL, r as ensureLocalSkills, t as resolveSkillInstallStateForTarget } from "./state-BJJLEoJY.js";
13
+ import { $ as readComputerFileAccessPolicy, Bt as buildSpaceRoundSignalPublication, S as resolveOpenCodeDatabasePath, Wt as createDispatchContinuationSpaceAccessContext, X as emitDaemonDispatchJournalEvent, Xt as getSpaceAccessPassword, Zt as getSpaceAccessRequestContext, at as buildDispatchPromptPlan, b as readOpenCodeSessionRows, c as createDispatchSpaceActionContext, ct as resolveBootstrapSpaceOwnerProfileId, d as readDispatchSpaceActionRecord, en as isWakeClosingSystemNoticeType, et as resolveComputerFileAccessStorePath, f as supersedeDispatchSpaceActionRecordForReconsideration, fn as DISPATCH_SPACE_ACTION_CLI_FALLBACK_COMMAND, g as sendDaemonFrame$1, h as parseDaemonFrame, it as buildDispatchCorrelation, l as readDispatchSpaceActionContextForReceiptFromEnv, lt as resolveBootstrapTargetProfileContext, nt as isSameOrDescendantPath, ot as buildDispatchSessionTitle, r as buildDispatchOwnedRuntimeEnv, rt as buildDispatchBootstrapTemplateFacts, s as OPENMELD_SPACE_ACTION_CONTEXT_PATH_ENV, st as parseDispatchTask, tn as listSpaceMemberDirectorySendTargets, ut as resolveDispatchMentionSourceContext, z as consumeArmedAgentControllerInterfaceReprobe } from "./dispatch-owned-runtime-CfPwparq.js";
14
+ import { m as createCliSpaceApi, t as fetchSpaceMeta } from "./meta-api-tg1rD8mP.js";
15
+ import { C as recordRuntimeReportingSuccess, D as discoverLocalAgentSessionProviders, O as recordOpenMeldCreatedLocalAgentSession, P as registerAgentActivityRoute, R as defaultManagedIntegrationPaths, S as recordRuntimeReportingNotApplicable, T as startLocalAgentActivitySyncLoop, _ as releaseExecutionContextWorkspace, a as createDispatchSpaceTools, g as readExecutionContextWorkspace, h as prepareExecutionContextWorkspace, i as materializeOrganizationSkillRelease, m as markExecutionContextWorkspaceInUse, n as createSpaceWorkingCopies, r as downloadWorkingCopyFile, t as fetchSpaceUpdates, v as prepareClaudeProjectContainer, w as createLedgerIo, x as recordRuntimeReportingFailure, y as startDispatchSpaceProgressRelay, z as installAgentActivityIntegrations } from "./updates-api-dsNUTfpa.js";
16
+ import { F as SPACE_COLLABORATION_CONTEXT_RULE, I as SPACE_PERSONAL_CONTRIBUTION_RULE, X as resolvePublicAgentFailureReason, Z as resolveSpacePublicationRequirement } from "./dual-view-guide-catalog-DDYa38RT.js";
16
17
  import { a as resolveBaseUrl, f as getConfiguredDaemonDispatchLimits, g as getConfiguredSkillsConfig } from "./base-url-0AoeTi3w.js";
17
- import { t as emitDaemonLifecycleEvent } from "./daemon-lifecycle-journal-DrDyXoUO.js";
18
- import { a as buildOpenMeldProfileIdentityRequestHeadersWithAuth, f as buildOpenMeldRequestContextFromProfileIdentity, n as fetchSpaceRequestWithTimeout, t as createCliApiClientFoundation } from "./api-client-foundation-CGc8AuMo.js";
19
- import { a as submitRuntimeProviderConversationProofs, f as recordRuntimeProviderUsageLimits, i as submitRuntimeAgentControllerReports, l as resolveLocalAgentControllerReportDecision, o as collectLocalAgentControllerInventory, t as notifyRuntimeReportingAttemptObserver, u as probeAgentControllerUsageObservationAuth } from "./runtime-agent-controller-reporting-submission-CRS5CwMp.js";
20
- import { t as installSkillsToTargets } from "./installer-Bg4KA0DR.js";
21
- import { f as createCliSpaceApi, t as fetchSpaceMeta } from "./meta-api-CjvtAPvQ.js";
18
+ import { t as emitDaemonLifecycleEvent } from "./daemon-lifecycle-journal-C0P8xFTk.js";
19
+ import { a as buildOpenMeldProfileIdentityRequestHeadersWithAuth, f as buildOpenMeldRequestContextFromProfileIdentity, n as fetchSpaceRequestWithTimeout, t as createCliApiClientFoundation } from "./api-client-foundation-DNbvvZW2.js";
20
+ import { a as submitRuntimeProviderConversationProofs, f as recordRuntimeProviderUsageLimits, i as submitRuntimeAgentControllerReports, l as resolveLocalAgentControllerReportDecision, o as collectLocalAgentControllerInventory, t as notifyRuntimeReportingAttemptObserver, u as probeAgentControllerUsageObservationAuth } from "./runtime-agent-controller-reporting-submission-BFXtOHAU.js";
21
+ import { t as installSkillsToTargets } from "./installer-B4MjFlzg.js";
22
22
  import { createHash, randomUUID } from "node:crypto";
23
23
  import { homedir } from "node:os";
24
24
  import { basename, dirname, extname, join } from "node:path";
@@ -2638,6 +2638,101 @@ function createExecutionAdmissionConfirmation(socketRef) {
2638
2638
  }
2639
2639
  };
2640
2640
  }
2641
+ //#endregion
2642
+ //#region src/local-service/execution-host/execution-input.ts
2643
+ const MAX_RECEIPTS = 512;
2644
+ const unconfirmed = (inputId, taskId, diagnosticCode) => ({
2645
+ inputId,
2646
+ taskId,
2647
+ status: "unconfirmed",
2648
+ reasonCode: "execution_input.application_unconfirmed",
2649
+ diagnosticCode
2650
+ });
2651
+ async function applyNativeInput(inputId, taskId, invoke) {
2652
+ try {
2653
+ const result = agentExecutionSteerResponseSchema.safeParse(await invoke());
2654
+ if (!result.success || result.data.taskId !== taskId) return unconfirmed(inputId, taskId, "service.execution_input.receipt_mismatch");
2655
+ return {
2656
+ ...result.data,
2657
+ inputId
2658
+ };
2659
+ } catch {
2660
+ return unconfirmed(inputId, taskId, "service.execution_input.transport_error");
2661
+ }
2662
+ }
2663
+ /** Host-incarnation receipts only; Space retains the pending input and uncertainty. */
2664
+ function createServiceExecutionInputReceiver(input) {
2665
+ const receipts = /* @__PURE__ */ new Map();
2666
+ const resolve = (request) => {
2667
+ const record = input.registry.resolveTarget({
2668
+ by: "dispatch",
2669
+ dispatchId: request.dispatchId
2670
+ })?.record;
2671
+ return record?.runtimeCoordinatorExecutionId === request.runtimeCoordinatorExecutionId && record.attemptId === request.attemptId && record.runtimeCoordinatorRunId === request.runtimeCoordinatorRunId && record.targetProfileId === request.targetProfileId ? record : null;
2672
+ };
2673
+ const hasReceiptCapacity = () => {
2674
+ if (receipts.size < MAX_RECEIPTS) return true;
2675
+ for (const [id, receipt] of receipts) if (receipt.result && !resolve(receipt.request)) receipts.delete(id);
2676
+ return receipts.size < MAX_RECEIPTS;
2677
+ };
2678
+ return (command) => {
2679
+ const { request } = command;
2680
+ const existing = receipts.get(request.inputId);
2681
+ if (request.ownerUserId !== input.ownerUserId) return Promise.resolve({
2682
+ inputId: request.inputId,
2683
+ taskId: null,
2684
+ status: "not_applied",
2685
+ reasonCode: "execution_input.target_unavailable"
2686
+ });
2687
+ if (existing) {
2688
+ if (JSON.stringify(existing.request) !== JSON.stringify(request)) return Promise.resolve({
2689
+ inputId: request.inputId,
2690
+ status: "conflict"
2691
+ });
2692
+ return command.operation === "apply" ? existing.promise : Promise.resolve(existing.result ?? unconfirmed(request.inputId, existing.taskId, "service.execution_input.pending"));
2693
+ }
2694
+ if (command.operation === "read") return Promise.resolve({
2695
+ inputId: request.inputId,
2696
+ status: "not_found"
2697
+ });
2698
+ const record = resolve(request);
2699
+ if (!record) return Promise.resolve({
2700
+ inputId: request.inputId,
2701
+ taskId: null,
2702
+ status: "not_applied",
2703
+ reasonCode: "execution_input.target_unavailable"
2704
+ });
2705
+ const adapter = input.adapters.getAdapter(record.adapterId)?.adapter;
2706
+ const steer = adapter?.steer;
2707
+ if (!steer) return Promise.resolve({
2708
+ inputId: request.inputId,
2709
+ taskId: record.taskId,
2710
+ status: "not_applied",
2711
+ reasonCode: "execution_input.unsupported"
2712
+ });
2713
+ if (!hasReceiptCapacity()) return Promise.resolve({
2714
+ inputId: request.inputId,
2715
+ status: "capacity"
2716
+ });
2717
+ const pending = Promise.withResolvers();
2718
+ const receipt = {
2719
+ request: structuredClone(request),
2720
+ taskId: record.taskId,
2721
+ promise: pending.promise,
2722
+ result: null
2723
+ };
2724
+ receipts.set(request.inputId, receipt);
2725
+ applyNativeInput(request.inputId, record.taskId, () => steer.call(adapter, {
2726
+ taskId: record.taskId,
2727
+ inputId: request.inputId,
2728
+ text: request.text
2729
+ })).then((result) => {
2730
+ receipt.result = result;
2731
+ pending.resolve(result);
2732
+ });
2733
+ return pending.promise;
2734
+ };
2735
+ }
2641
2736
  async function resolveDispatchWorkingFolderRuntimeContext(input) {
2642
2737
  const route = input.routeConfig;
2643
2738
  const workingFolderRuntime = route?.workingFolderRuntime;
@@ -4992,6 +5087,8 @@ async function handleDispatchDeliverFrame(input) {
4992
5087
  agentControllerPermissionMode: routeConfig?.agentControllerPermissionMode ?? null,
4993
5088
  dispatchId: parsedTask.dispatchId,
4994
5089
  runtimeCoordinatorExecutionId: parsedTask.runtimeCoordinatorExecutionId,
5090
+ attemptId: parsedTask.attemptId,
5091
+ runtimeCoordinatorRunId: parsedTask.executionTokenEcho.runId,
4995
5092
  targetProfileId: parsedTask.targetProfileId,
4996
5093
  taskId: parsedTask.taskId
4997
5094
  });
@@ -8813,6 +8910,11 @@ function createExecutionHostRuntime(input) {
8813
8910
  let controllerReport = null;
8814
8911
  let reportPolicy = null;
8815
8912
  const activeControls = /* @__PURE__ */ new Set();
8913
+ const executionInput = createServiceExecutionInputReceiver({
8914
+ ownerUserId: identity.ownerUserId,
8915
+ registry: inflightTaskControlRegistry,
8916
+ adapters: localAdapterContainer
8917
+ });
8816
8918
  const envelope = {
8817
8919
  protocol: SERVICE_EXECUTION_HOST_PROTOCOL,
8818
8920
  hostInstanceId: input.hostInstanceId
@@ -9164,6 +9266,14 @@ function createExecutionHostRuntime(input) {
9164
9266
  presenter: input.presenter,
9165
9267
  registry: inflightTaskControlRegistry
9166
9268
  }),
9269
+ executionInput: (payload) => {
9270
+ const receive = () => {
9271
+ assertConnection(payload.connectionGeneration);
9272
+ if (leasesByProfileId.get(payload.request.targetProfileId) !== payload.leaseEpoch || payload.operation === "apply" && (draining || startupReplayPending)) throw new ExecutionHostError("host.execution_input_unavailable", "The current execution route cannot accept this input.");
9273
+ return executionInput(payload);
9274
+ };
9275
+ return payload.operation === "read" ? receive() : trackControl(receive);
9276
+ },
9167
9277
  conversationStatus: resolveLocalConversationExecutionStatus,
9168
9278
  setEnabled: (payload) => trackControl(() => controls.setEnabled(payload)),
9169
9279
  reportControllers: async ({ probePolicy }) => {
@@ -9252,4 +9362,4 @@ function createExecutionHostRuntime(input) {
9252
9362
  //#endregion
9253
9363
  export { createExecutionHostResources, createExecutionHostRuntime };
9254
9364
 
9255
- //# sourceMappingURL=runtime-DjEQja8c.js.map
9365
+ //# sourceMappingURL=runtime-C2v7iKNY.js.map