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.
- package/dist/{add-me-membership-BEqSnfgo.js → add-me-membership-_7nC0hkr.js} +2 -2
- package/dist/{add-me-membership-BEqSnfgo.js.map → add-me-membership-_7nC0hkr.js.map} +1 -1
- package/dist/{agents-_Hh6L3Fi.js → agents-kG9UvazC.js} +10 -10
- package/dist/{agents-_Hh6L3Fi.js.map → agents-kG9UvazC.js.map} +1 -1
- package/dist/{api-client-foundation-ZuYF2Uah.js → api-client-foundation-DIcNjG9w.js} +1 -1
- package/dist/{api-client-foundation-CGc8AuMo.js → api-client-foundation-DNbvvZW2.js} +3 -3
- package/dist/{api-client-foundation-CGc8AuMo.js.map → api-client-foundation-DNbvvZW2.js.map} +1 -1
- package/dist/{auth-session-B3oyTcSI.js → auth-session-BTRu2Kc5.js} +2 -2
- package/dist/{auth-session-B3oyTcSI.js.map → auth-session-BTRu2Kc5.js.map} +1 -1
- package/dist/auth-session-D2f7Lud02.js +4 -0
- package/dist/{channel-BB6aEY--.js → channel-BxlX3o3i.js} +78 -4
- package/dist/channel-BxlX3o3i.js.map +1 -0
- package/dist/{command-D71NHS4j.js → command-Cyw5Gj59.js} +37 -123
- package/dist/command-Cyw5Gj59.js.map +1 -0
- package/dist/{computer-connection-DyL3C3HO.js → computer-connection-Sntn_-XO.js} +2 -2
- package/dist/{computer-connection-DyL3C3HO.js.map → computer-connection-Sntn_-XO.js.map} +1 -1
- package/dist/{computer-connection-review-BXuXP6KH.js → computer-connection-review-DWiapsro.js} +5 -5
- package/dist/{computer-connection-review-BXuXP6KH.js.map → computer-connection-review-DWiapsro.js.map} +1 -1
- package/dist/{computer-disconnect-BXZKVvxj.js → computer-disconnect-Bxxreumk.js} +8 -8
- package/dist/{computer-disconnect-BXZKVvxj.js.map → computer-disconnect-Bxxreumk.js.map} +1 -1
- package/dist/{computer-setup-continuation-DOvxRtAh.js → computer-setup-continuation-DkPRFlA1.js} +4 -4
- package/dist/{computer-setup-continuation-DOvxRtAh.js.map → computer-setup-continuation-DkPRFlA1.js.map} +1 -1
- package/dist/{daemon-device-id-Dwm7CHtX.js → daemon-device-id-D7lbw6c4.js} +226 -42
- package/dist/daemon-device-id-D7lbw6c4.js.map +1 -0
- package/dist/{daemon-lifecycle-journal-DrDyXoUO.js → daemon-lifecycle-journal-C0P8xFTk.js} +3 -3
- package/dist/{daemon-lifecycle-journal-DrDyXoUO.js.map → daemon-lifecycle-journal-C0P8xFTk.js.map} +1 -1
- package/dist/{daemon-service-runtime-D-tDDWWf.js → daemon-service-runtime-DhV7AKAv.js} +2 -2
- package/dist/{daemon-service-runtime-D-tDDWWf.js.map → daemon-service-runtime-DhV7AKAv.js.map} +1 -1
- package/dist/{daemon-service-update-coordinator-ykoOjGCd.js → daemon-service-update-coordinator-BM4ha5Nj.js} +9 -10
- package/dist/{daemon-service-update-coordinator-ykoOjGCd.js.map → daemon-service-update-coordinator-BM4ha5Nj.js.map} +1 -1
- package/dist/{dispatch-owned-runtime-eRa3wkl9.js → dispatch-owned-runtime-CfPwparq.js} +7 -7
- package/dist/{dispatch-owned-runtime-eRa3wkl9.js.map → dispatch-owned-runtime-CfPwparq.js.map} +1 -1
- package/dist/dist-Bfz_GJ0l.js +4 -0
- package/dist/{dist-DEjtwiDJ.js → dist-s_YTHAIc.js} +307 -16
- package/dist/dist-s_YTHAIc.js.map +1 -0
- package/dist/{elapsed-time-BnibmBPb.js → dual-view-guide-catalog-DDYa38RT.js} +215 -164
- package/dist/dual-view-guide-catalog-DDYa38RT.js.map +1 -0
- package/dist/elapsed-time-Ck4GiT9P.js +165 -0
- package/dist/elapsed-time-Ck4GiT9P.js.map +1 -0
- package/dist/{entry-CVxgr9uQ.js → entry-CTw122mn.js} +7 -8
- package/dist/{entry-CVxgr9uQ.js.map → entry-CTw122mn.js.map} +1 -1
- package/dist/{installation-inventory-HHLOQ2g7.js → installation-inventory-CSNq9dzc.js} +3 -3
- package/dist/{installation-inventory-HHLOQ2g7.js.map → installation-inventory-CSNq9dzc.js.map} +1 -1
- package/dist/{installer-Bg4KA0DR.js → installer-B4MjFlzg.js} +2 -2
- package/dist/{installer-Bg4KA0DR.js.map → installer-B4MjFlzg.js.map} +1 -1
- package/dist/{meta-api-CjvtAPvQ.js → meta-api-tg1rD8mP.js} +117 -6
- package/dist/meta-api-tg1rD8mP.js.map +1 -0
- package/dist/{openmeld-o_rTSEOO.js → openmeld-MSrVnYw0.js} +128 -88
- package/dist/openmeld-MSrVnYw0.js.map +1 -0
- package/dist/{openmeld-maintenance-worker-Cwv6_5UL.js → openmeld-maintenance-worker-CQGwuIl9.js} +9 -9
- package/dist/{openmeld-maintenance-worker-Cwv6_5UL.js.map → openmeld-maintenance-worker-CQGwuIl9.js.map} +1 -1
- package/dist/{openmeld-tools-update-join-IFQf70sm.js → openmeld-tools-update-join-CzBRWKVT.js} +4 -4
- package/dist/{openmeld-tools-update-join-IFQf70sm.js.map → openmeld-tools-update-join-CzBRWKVT.js.map} +1 -1
- package/dist/openmeld.js +4 -4
- package/dist/{prepare-provider-runtime-B_huS5DY.js → prepare-provider-runtime-L7u8iHAb.js} +94 -11
- package/dist/{prepare-provider-runtime-B_huS5DY.js.map → prepare-provider-runtime-L7u8iHAb.js.map} +1 -1
- package/dist/{prepare-session-executor-WWjgnqsh.js → prepare-session-executor-D8LvC1d8.js} +19 -20
- package/dist/{prepare-session-executor-WWjgnqsh.js.map → prepare-session-executor-D8LvC1d8.js.map} +1 -1
- package/dist/{presenter-MJ5YgsOT.js → presenter-BcxiQyJg.js} +13 -3
- package/dist/presenter-BcxiQyJg.js.map +1 -0
- package/dist/{process-channel-C2dB41fO.js → process-channel-QRugdtrY.js} +2 -2
- package/dist/{process-channel-C2dB41fO.js.map → process-channel-QRugdtrY.js.map} +1 -1
- package/dist/{runtime-DjEQja8c.js → runtime-C2v7iKNY.js} +126 -16
- package/dist/runtime-C2v7iKNY.js.map +1 -0
- package/dist/{runtime-agent-controller-reporting-submission-CRS5CwMp.js → runtime-agent-controller-reporting-submission-BFXtOHAU.js} +8 -8
- package/dist/{runtime-agent-controller-reporting-submission-CRS5CwMp.js.map → runtime-agent-controller-reporting-submission-BFXtOHAU.js.map} +1 -1
- package/dist/{runtime-transport-B-GZhwVt.js → runtime-transport-BVCHi4qM.js} +10 -6
- package/dist/runtime-transport-BVCHi4qM.js.map +1 -0
- package/dist/{service-CleUczqJ.js → service-6waBVmON.js} +43 -20
- package/dist/service-6waBVmON.js.map +1 -0
- package/dist/{service-account-authorization-s1bXEswT.js → service-account-authorization-C1CdX1P3.js} +2 -2
- package/dist/{service-account-authorization-s1bXEswT.js.map → service-account-authorization-C1CdX1P3.js.map} +1 -1
- package/dist/{service-account-control-CjZ5uqK4.js → service-account-control-BBY6pX86.js} +8 -9
- package/dist/{service-account-control-CjZ5uqK4.js.map → service-account-control-BBY6pX86.js.map} +1 -1
- package/dist/{service-control-capabilities-D5izhuhD.js → service-control-capabilities-BP9UE3a7.js} +3 -3
- package/dist/{service-control-capabilities-D5izhuhD.js.map → service-control-capabilities-BP9UE3a7.js.map} +1 -1
- package/dist/{service-control-capabilities-Bcho1Rwq.js → service-control-capabilities-CQjhvDFx.js} +1 -1
- package/dist/{state-CbrhgfNh.js → state-BJJLEoJY.js} +2 -2
- package/dist/{state-CbrhgfNh.js.map → state-BJJLEoJY.js.map} +1 -1
- package/dist/{updates-api-B7x39-DR.js → updates-api-dsNUTfpa.js} +142 -11
- package/dist/updates-api-dsNUTfpa.js.map +1 -0
- package/dist/upgrade-CUyMj35o.js +4 -0
- package/dist/{upgrade-BQSA2LfT.js → upgrade-DwlRN4_U.js} +9 -9
- package/dist/{upgrade-BQSA2LfT.js.map → upgrade-DwlRN4_U.js.map} +1 -1
- package/dist/windows/openmeld-windows-process.exe +0 -0
- package/package.json +12 -12
- package/skills/openmeld-cli/playbooks/space-ops.md +24 -2
- package/skills/openmeld-cli/references/commands.md +9 -2
- package/dist/auth-session-CoFlCq7_.js +0 -4
- package/dist/channel-BB6aEY--.js.map +0 -1
- package/dist/command-D71NHS4j.js.map +0 -1
- package/dist/context-43g3bIde.js +0 -162
- package/dist/context-43g3bIde.js.map +0 -1
- package/dist/daemon-device-id-Dwm7CHtX.js.map +0 -1
- package/dist/dist-CaCD0K8a.js +0 -216
- package/dist/dist-CaCD0K8a.js.map +0 -1
- package/dist/dist-DEjtwiDJ.js.map +0 -1
- package/dist/dist-DGNsLSYJ.js +0 -4
- package/dist/elapsed-time-BnibmBPb.js.map +0 -1
- package/dist/io-DT66typ4.js +0 -16
- package/dist/io-DT66typ4.js.map +0 -1
- package/dist/meta-api-CjvtAPvQ.js.map +0 -1
- package/dist/openmeld-o_rTSEOO.js.map +0 -1
- package/dist/presenter-MJ5YgsOT.js.map +0 -1
- package/dist/runtime-DjEQja8c.js.map +0 -1
- package/dist/runtime-transport-B-GZhwVt.js.map +0 -1
- package/dist/service-CleUczqJ.js.map +0 -1
- package/dist/updates-api-B7x39-DR.js.map +0 -1
- package/dist/upgrade-636PQBli.js +0 -4
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"presenter-MJ5YgsOT.js","names":[],"sources":["../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":["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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"}
|