openmeld 0.3.136 → 0.3.137

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 (31) hide show
  1. package/dist/{add-me-membership-BNNtDZYW.js → add-me-membership-CZUHkjnP.js} +2 -2
  2. package/dist/{add-me-membership-BNNtDZYW.js.map → add-me-membership-CZUHkjnP.js.map} +1 -1
  3. package/dist/{api-client-foundation-CabWpjFe.js → api-client-foundation-BPmXnsr9.js} +4 -7
  4. package/dist/api-client-foundation-BPmXnsr9.js.map +1 -0
  5. package/dist/{auth-session-Bj8n8YwV.js → auth-session-B06nfwnD.js} +3 -6
  6. package/dist/auth-session-B06nfwnD.js.map +1 -0
  7. package/dist/{base-url-BtqW4aLS.js → base-url-CY_j4bLH.js} +13 -6
  8. package/dist/base-url-CY_j4bLH.js.map +1 -0
  9. package/dist/{command-BGqFPMwd.js → command-CU_3raCS.js} +309 -157
  10. package/dist/{command-BGqFPMwd.js.map → command-CU_3raCS.js.map} +1 -1
  11. package/dist/{daemon-runtime-lease-D82uDZ5s.js → daemon-runtime-lease-6DIprlJy.js} +2 -2
  12. package/dist/{daemon-runtime-lease-D82uDZ5s.js.map → daemon-runtime-lease-6DIprlJy.js.map} +1 -1
  13. package/dist/{dist-0qM_CVk2.js → dist-NJH-sDDB.js} +150 -35
  14. package/dist/dist-NJH-sDDB.js.map +1 -0
  15. package/dist/openmeld-dev.js +1 -1
  16. package/dist/openmeld.js +408 -222
  17. package/dist/openmeld.js.map +1 -1
  18. package/dist/{runtime-transport-BiQfJGnw.js → runtime-transport-DYzU1lHC.js} +30 -11
  19. package/dist/runtime-transport-DYzU1lHC.js.map +1 -0
  20. package/package.json +2 -2
  21. package/skills/README.md +5 -2
  22. package/skills/openmeld-cli/SKILL.md +109 -1151
  23. package/skills/openmeld-cli/playbooks/space-ops.md +34 -16
  24. package/skills/openmeld-cli/playbooks/space-reads.md +123 -0
  25. package/skills/openmeld-cli/references/commands.md +14 -9
  26. package/skills/openmeld-cli/references/runtime-resolution.md +21 -2
  27. package/dist/api-client-foundation-CabWpjFe.js.map +0 -1
  28. package/dist/auth-session-Bj8n8YwV.js.map +0 -1
  29. package/dist/base-url-BtqW4aLS.js.map +0 -1
  30. package/dist/dist-0qM_CVk2.js.map +0 -1
  31. package/dist/runtime-transport-BiQfJGnw.js.map +0 -1
@@ -5,1199 +5,157 @@ description: Official public OpenMeld Skill for agents using the `openmeld` CLI
5
5
 
6
6
  # OpenMeld CLI Guide
7
7
 
8
- Use this skill when a user asks you to operate OpenMeld from the public `openmeld` CLI.
9
- This is a user-facing Skill. Do not use internal developer commands, local repo
10
- commands, hidden APIs, database edits, or implementation details to prove OpenMeld works.
8
+ Use this Skill when a user asks you to operate OpenMeld through the public
9
+ `openmeld` CLI. This file is a router: start here, then read only the one topic
10
+ file needed for the current task.
11
11
 
12
- ## What OpenMeld Is
12
+ ## Product Mental Model
13
13
 
14
- OpenMeld: a user wakes an Agent Profile in a Space,
15
- the correct local OpenMeld Service carries the local run, and the Space shows a
16
- visible reply or an explicit visible failure.
14
+ OpenMeld: a user wakes an Agent Profile in a Space, the correct local OpenMeld
15
+ Service carries the local run, and the Space shows a visible reply or an
16
+ explicit visible failure.
17
17
 
18
18
  A Space is the shared collaboration surface; an Agent Profile is the AI
19
- teammate identity; OpenMeld Service is the local execution carrier, not the Space
20
- truth, profile identity, Wake availability authority, or final outcome owner.
19
+ teammate identity; OpenMeld Service is the local execution carrier, not the
20
+ Space truth, profile identity, Wake availability authority, or final outcome
21
+ owner.
21
22
 
22
23
  Default Collaboration mode keeps private agent work local. Publish the public
23
24
  outcome through OpenMeld Space Action; raw or transparent context sharing is
24
25
  explicit opt-in.
25
26
 
26
- - A Space is the shared room where people and agents talk.
27
- - A Human Profile is the user's OpenMeld identity.
28
- - An Agent Profile is an AI teammate's OpenMeld identity.
29
- - OpenMeld Service is the local background service that carries Space work to agents
30
- on this computer.
31
- - Connecting local agents during setup means detecting local apps such as Codex,
32
- Claude Code, Cursor, and OpenCode,
33
- preparing them when needed, and reporting their capabilities to OpenMeld.
34
- - Wake is not a separate command. Wake happens when a Space message mentions a
35
- wakeable Agent Profile.
36
- - Wake progress is the live execution view. Stop targets one live Wake and must
37
- be confirmed by OpenMeld before it is treated as stopped.
38
- - Organization collaboration includes reading the member and Agent Profile
39
- directory, managing invite links when authorized, and discovering public
40
- Spaces that the current Human Profile can join.
41
- - A Local Agent can consult the active Organization's Center Agent through the
42
- user's existing Center Agent Chat. This reuses the user's identity,
43
- conversation, permissions, memory, and visible audit trail.
44
- - Humans and Agent Profiles that belong to a Space can use the same Space Files
45
- tree. Files stay owned by that Space; they are not mirrored into Organization
46
- Documents or the Center Agent Computer.
47
- - Trace explains what happened to one Wake or delivery attempt.
27
+ ## Choose One Topic
48
28
 
49
- ## Current Local Session To Space Teammate
50
-
51
- One core OpenMeld path is turning the current local agent session into a wakeable
52
- teammate in a Space. This applies when the user is working in a supported local
53
- agent surface such as Codex Desktop, Codex CLI, Claude Code Desktop, or Claude
54
- Code CLI and asks you to add this session, yourself, or the current agent to a
55
- Space.
56
-
57
- Use the one-command path first:
58
-
59
- ```bash
60
- openmeld space add-me <space-url-or-id> --project-folder "$(pwd)" --view agent
61
- ```
62
-
63
- When OpenMeld can identify the current supported controller conversation, `add-me`
64
- creates or reuses the matching Agent Profile, binds it to that private
65
- controller conversation, records the Project folder for future local work, and
66
- adds the Agent Profile to the Space. The controller conversation is profile
67
- continuity; it is not a Space ID, Space thread, OpenMeld Service Runtime ID, terminal
68
- session ID, or CLI context ID.
69
-
70
- If `add-me` cannot detect a supported current session ID, fail closed and say
71
- what is missing. Do not create a fake wakeable teammate or invent a controller
72
- conversation ID.
73
-
74
- ## First Rule
75
-
76
- Use the setup-owned entry command:
77
-
78
- - The first Web setup command for supported macOS computers downloads the
79
- OpenMeld CLI binary, verifies it, installs it into OpenMeld's managed layout,
80
- and runs setup through that managed binary.
81
- - Windows and explicit `?dist=npm` setup commands still use
82
- `npx -y openmeld@latest`.
83
- - After setup, use the `cliCommandPrefix` or `nextCommands` from the final
84
- `setup.complete` output. That output is the source of truth for the current
85
- lane and distribution. It may be an absolute managed binary path such as
86
- `~/.openmeld/bin/openmeld`.
87
- - If setup reports `openmeld`, prefer `openmeld ...` for normal follow-up commands.
88
- - If setup reports `npx -y openmeld@latest`, keep using that full
89
- prefix because the setup command is on the npm distribution path.
90
- - Do not rewrite `openmeld-dev`, a managed binary path, production `openmeld`,
91
- or `npx -y openmeld@latest` unless the setup output explicitly tells you to.
92
-
93
- Examples below use `openmeld`.
94
-
95
- ## Agent Interface Setup
96
-
97
- Use this path when the user pasted an OpenMeld Agent Interface prompt or pointed you
98
- to the public OpenMeld Skill:
99
-
100
- ```text
101
- https://openmeld.ai/SKILL.md
102
- ```
103
-
104
- The user's prompt owns the private setup command. Run that exact command first.
105
- Do not rewrite its token, one-time token, lane, bootstrap URL, or local-agent
106
- selection. A normal Agent Interface setup command looks like:
107
-
108
- ```bash
109
- curl -fsSL https://openmeld.ai/setup | sh -s -- setup --start-session <opaque-token> --local-agents all --ott <one-time-token> --view agent
110
- ```
111
-
112
- On supported macOS computers, that command downloads the OpenMeld CLI binary
113
- from the OpenMeld manifest, checks its sha256, runs `install-self`, and then runs
114
- setup through the managed binary. Do not replace it with npm unless the command
115
- itself says `?dist=npm` or the setup output tells you to use an npm prefix.
116
-
117
- After setup succeeds, read the final `setup.complete` output. It is the source
118
- of truth for follow-up commands. Use:
119
-
120
- - `cliCommandPrefix`
121
- - `nextCommands`
122
- - `service`
123
- - `localAgents`
124
- - `localComponents`
125
- - `path`
126
-
127
- If setup does not produce `setup.complete`, try the OpenMeld setup recovery path
128
- before stopping. Update OpenMeld to the latest CLI, rerun setup once with a fresh
129
- Agent Interface prompt if one is available, and keep the original error text.
130
- Stop only for expired or invalid setup credentials, an OpenMeld account mismatch, a
131
- required browser login, destructive actions, or the same failure after one
132
- recovery attempt. If the user's prompt includes a Space link or asks you to join
133
- a Space, create a recovery Agent Profile when possible and send a compact
134
- evidence report to the Space even when setup is still blocked.
135
-
136
- If you send a setup recovery report, separate these facts with yes/no answers:
137
- `setup.complete` reached, background OpenMeld Service healthy, foreground service
138
- probe used, Space membership added, and Wake reply proven. Do not call setup
139
- fixed only because a Space member badge says `Available`, because `Available`
140
- means OpenMeld has enough current route evidence to try a Wake. It does not prove
141
- setup completed, the background service is healthy, or the next Wake will
142
- produce a visible reply.
143
-
144
- Then run the equivalent of these commands with the final `cliCommandPrefix`:
145
-
146
- ```bash
147
- <OPENMELD_CLI> whoami --view agent
148
- <OPENMELD_CLI> service status --view agent
149
- ```
150
-
151
- If an older CLI exits successfully but does not print `setup.complete`, use the
152
- fallback prefix from the user's prompt only for those first follow-up checks.
153
- After the checks, give the user a short explanation of what is ready and ask one
154
- simple next-step question.
155
-
156
- Setup completion proves local setup alignment. It does not prove a future Space
157
- Wake. A visible Space reply or explicit visible Space failure is the real Wake
158
- proof.
159
-
160
- ## Install And Start
161
-
162
- Prefer the Web setup command when the user has one. It owns the login token,
163
- setup session, distribution choice, and local-agent selection. On supported
164
- macOS computers, the production Web setup command installs the managed OpenMeld
165
- CLI binary by default.
166
-
167
- If OpenMeld is already installed, upgrade through the current command prefix
168
- from the latest `setup.complete` output:
169
-
170
- ```bash
171
- openmeld upgrade --yes --view agent
172
- ```
173
-
174
- Use npm only for Windows, explicit `?dist=npm`, or manual recovery from an old
175
- npm install:
176
-
177
- ```bash
178
- npm install -g openmeld@latest
179
- ```
180
-
181
- If that command is unavailable because the installed CLI is too old, replace
182
- the global package manually:
183
-
184
- ```bash
185
- npm uninstall -g openmeld
186
- npm install -g openmeld@latest
187
- ```
188
-
189
- After a successful npm recovery, run or rerun setup and use the
190
- `setup.complete.cliCommandPrefix` that setup prints for ordinary OpenMeld
191
- commands.
192
-
193
- Start the normal setup flow for this computer:
194
-
195
- ```bash
196
- openmeld setup
197
- ```
198
-
199
- Setup connects this computer to OpenMeld and reports local agent capabilities. It
200
- does not create a Space, send a Wake, or prove that a future Space Wake will
201
- succeed.
29
+ - Read or diagnose a Space: `playbooks/space-reads.md`
30
+ - Create, join, send, add members, use Files, Wake, Stop, or reply from a Wake:
31
+ `playbooks/space-ops.md`
32
+ - Sign in, install, set up, connect, or recover this computer:
33
+ `playbooks/agent-onboarding.md`
34
+ - Look up exact public command syntax: `references/commands.md`
35
+ - Resolve view, acting Profile, saved state, or a copied Space URL:
36
+ `references/runtime-resolution.md`
202
37
 
203
- Check available commands:
38
+ Do not preload every file. Use `openmeld <command> --help` when only exact flags
39
+ are missing.
204
40
 
205
- ```bash
206
- openmeld --help
207
- openmeld <command> --help
208
- ```
209
-
210
- ## View Modes
211
-
212
- - Use `--view human` for interactive, human-readable terminal flows.
213
- - Use `--view agent` for machine-readable Agent output.
214
- - If identity matters, pass `--profile <profile-id>` explicitly.
215
- - Agent View is not an identity. An OpenMeld Profile is who is speaking in a Space.
216
- Changing `--profile` changes the speaker, not the output format.
217
- - Creating a profile in Agent View does not switch who is speaking. Use the
218
- returned profile ID with `--profile` when that profile should act.
219
- - Use the user's Human Profile when acting for the user, and use an Agent
220
- Profile when a named AI teammate should speak, be added, or be woken.
221
-
222
- Common checks:
223
-
224
- ```bash
225
- openmeld auth status --view agent
226
- openmeld whoami --view agent
227
- openmeld service status --view agent
228
- openmeld profiles list --view agent
229
- ```
230
-
231
- ## Local Agent Session Inventory
232
-
233
- When the user asks which Local Agent Sessions exist in the active Organization,
234
- or needs a stable Session reference for Agent Profile creation, read the Core-owned
235
- Session Inventory instead of scanning provider files yourself:
236
-
237
- ```bash
238
- openmeld activity sessions --view agent
239
- openmeld activity sessions --project <project-slug> --provider codex --view agent
240
- openmeld activity sessions --native-session <provider-native-session-id> --json
241
- ```
242
-
243
- Use `nextCursor` with `--cursor` until it is null when the task requires a
244
- complete inventory. Every row already contains the authorized Owner, Project,
245
- Computer, Local Agent, Native Session ID and title, status, freshness, origin,
246
- `canResume`, `canFork`, and current Agent Profile Binding. Treat those fields as
247
- facts; do not recalculate them from provider files, process presence, timestamps,
248
- or Activity events.
249
-
250
- A visible Native Session ID is a locator, not operation authority. Before any
251
- resume, fork, Agent Profile creation, Binding change, or Space membership change,
252
- use the owning OpenMeld command and let it recheck identity, Organization,
253
- Project, Computer, provider capability, and permission. When `canResume` or
254
- `canFork` is false, do not simulate that capability. When coverage or status is
255
- `unknown`, `stale`, `unsupported`, or `error`, report that state directly.
256
-
257
- Session Inventory is metadata-only. Never read or upload transcripts, prompts,
258
- responses, reasoning, tool inputs or outputs, file contents, diffs, commands,
259
- terminal content, credentials, or local absolute paths to supplement it.
260
-
261
- ## Organization Skills
262
-
263
- Organization Skills are optional methods owned by the active OpenMeld
264
- Organization. Read the catalog, inspect a Skill, then load the exact enabled
265
- release before following it:
266
-
267
- ```bash
268
- openmeld skills list --view agent
269
- openmeld skills show <name-or-id> --view agent
270
- openmeld skills load <name-or-id> --view agent
271
- ```
272
-
273
- Use the returned `skillMarkdownPath` and bounded `resourcePaths`. The cache is
274
- Organization-scoped and read-only; scripts are present without executable
275
- permission. Never copy the loaded Skill into a global agent skills directory.
276
-
277
- ## Sign In
278
-
279
- Human sign-in:
280
-
281
- ```bash
282
- openmeld login --view human
283
- ```
284
-
285
- Automation with a one-time token:
286
-
287
- ```bash
288
- openmeld login --method ott --ott <token> --view agent
289
- ```
290
-
291
- Then verify:
292
-
293
- ```bash
294
- openmeld auth status --view agent
295
- openmeld whoami --view agent
296
- ```
297
-
298
- ## Profiles
299
-
300
- OpenMeld has two user-visible profile kinds:
301
-
302
- - Human Profile: the user's identity. Use it when you are operating OpenMeld on the
303
- user's behalf, such as creating Spaces, joining Spaces, listing history, or
304
- inviting members.
305
- - Agent Profile: an AI teammate identity. Use it when that AI teammate should
306
- speak in a Space. A wakeable Agent Profile must also be connected to a local
307
- agent on this computer.
41
+ ## Common Space Reads
308
42
 
309
- Each account has one default Human Profile, and that same identity is reused
310
- across organizations. Reuse the default Human Profile when acting for the user.
311
- Do not attempt to create another Human Profile unless OpenMeld explicitly
312
- reports that additional Human Profile creation is enabled. Agent Profile
313
- creation remains available.
314
-
315
- Use one acting profile for a Space workflow unless the user explicitly asks you
316
- to act as a different identity.
317
-
318
- Create an Agent Profile:
43
+ Copied OpenMeld Space URLs work directly on the four frequent read commands.
44
+ Keep a URL quoted so shell-sensitive query characters stay literal:
319
45
 
320
46
  ```bash
321
- openmeld profiles create "Codex Agent" --kind agent --view agent
47
+ openmeld space board "<space-url-or-id>" --profile <profile-id> --json
48
+ openmeld space members "<space-url-or-id>" --profile <profile-id> --json
49
+ openmeld space history "<space-url-or-id>" --profile <profile-id> --kind text --brief --limit 20 --view agent
50
+ openmeld space status "<space-url-or-id>" --profile <profile-id> --json
322
51
  ```
323
52
 
324
- Create a new Agent Profile and explicitly bind it to local Codex from the CLI:
53
+ For these reads, explicit `--profile` wins over a URL `profileId`. If no
54
+ explicit Profile is passed, the URL `profileId` is used before the selected
55
+ local Profile. Do not ask an Agent to extract the Space ID manually.
325
56
 
326
- ```bash
327
- openmeld profiles create "Codex Agent" --kind agent --agent-controller builtin:codex --view agent
328
- ```
329
-
330
- Create a new Agent Profile from an existing private local agent conversation:
331
-
332
- ```bash
333
- openmeld profiles create "Codex Agent" --kind agent --agent-controller builtin:codex --agent-controller-conversation-id <current-agent-controller-conversation-id> --view agent
334
- ```
335
-
336
- `--agent-controller-conversation-id` is the private conversation ID for the
337
- Agent Controller behind this Agent Profile. It is profile-scoped continuity, not
338
- a Space ID, Space thread, OpenMeld Service Runtime ID, terminal session ID, or CLI
339
- context ID.
340
-
341
- For Codex, the controller conversation is the Codex thread ID. In Codex command
342
- subprocesses, read both the current thread ID and Project folder when
343
- `CODEX_THREAD_ID` is present:
344
-
345
- ```bash
346
- printf '%s\n' "$CODEX_THREAD_ID"
347
- pwd
348
- ```
57
+ Do not run `openmeld profiles set` for one read. That changes the persistent
58
+ default. If the acting identity is already explicit in `--profile` or the URL,
59
+ use it directly; if it is unknown, run `openmeld profiles list --view agent`
60
+ and rerun the same read with explicit `--profile`.
349
61
 
350
- Use the thread ID with `--agent-controller builtin:codex` and
351
- `--agent-controller-conversation-id`. If `CODEX_THREAD_ID` is empty, do not
352
- invent a value. Codex can resume an explicit thread ID, but the Project folder
353
- still tells OpenMeld where future local work should run; use the current `pwd` unless
354
- the user explicitly wants another Project folder.
62
+ An invalid target must stay a read failure. Correct the URL or ID and retry the
63
+ same command; do not pivot to `space create`, `space join`, or `space watch`.
355
64
 
356
- For Claude Code, the current session ID is available inside Claude Code tool
357
- subprocesses as `CLAUDE_CODE_SESSION_ID`. If you need to bind the current
358
- Claude Code session manually, read both the session ID and Project folder:
359
-
360
- ```bash
361
- printf '%s\n' "$CLAUDE_CODE_SESSION_ID"
362
- pwd
363
- ```
364
-
365
- Use the session ID with `--agent-controller builtin:claude-code` and
366
- `--agent-controller-conversation-id`. Treat the Claude Code session ID and the
367
- original Project folder as one binding fact. Claude Code resumes sessions from
368
- the project directory where the session was created; running the same session
369
- ID from another directory may fail or resume the wrong history. If
370
- `CLAUDE_CODE_SESSION_ID` is empty, do not invent a value.
371
-
372
- For Cursor, bind the Agent Profile to `builtin:cursor`. Cursor runs through the
373
- official `cursor-agent acp` interface. Verify the `cursor-agent` executable
374
- itself is installed and run `cursor-agent login` when needed; Cursor CLI
375
- sign-in is separate from Cursor IDE sign-in.
376
-
377
- OpenMeld creates or loads the private Cursor ACP session for the Agent Profile.
378
- Do not copy a Cursor IDE conversation ID into
379
- `--agent-controller-conversation-id`, and do not claim that `space add-me` can
380
- adopt the current Cursor IDE chat.
381
-
382
- Cursor permission choices use the official
383
- `default|plan|ask|auto-review|run-everything` values. `run-everything` requires
384
- explicit dangerous-mode confirmation. Cursor models use the exact model ID
385
- offered by ACP. Cursor includes reasoning in that exact model ID and exposes no
386
- independent reasoning setting, so do not pass `--reasoning-effort` for Cursor.
387
-
388
- ```bash
389
- cursor-agent login
390
- openmeld profiles create "Implementation Agent" --kind agent --agent-controller builtin:cursor --model 'default[]' --agent-controller-permission-mode default --view agent
391
- ```
392
-
393
- Update an existing Agent Profile's local agent binding:
394
-
395
- ```bash
396
- openmeld profiles update <agent-profile-id> --agent-controller builtin:codex --agent-controller-conversation-id <agent-controller-conversation-id> --view agent
397
- ```
398
-
399
- Show the current binding for one profile:
400
-
401
- ```bash
402
- openmeld profiles show <agent-profile-id> --json
403
- ```
404
-
405
- Use an existing Agent Profile during setup:
406
-
407
- ```bash
408
- openmeld start --view agent --profile-id <agent-profile-id>
409
- ```
410
-
411
- Create or select an Agent Profile through setup:
412
-
413
- ```bash
414
- openmeld start --view agent --kind agent --profile-name "Codex Agent"
415
- ```
416
-
417
- ### Create Or Request An Agent Profile
418
-
419
- `openmeld profiles create` is the one creation entry for your own Agent Profile
420
- and for requesting a teammate-owned Agent Profile. Read the Organization
421
- directory for member user IDs, then read the team-safe Computer projection for
422
- the exact Computer and local-agent controller references available to that owner:
423
-
424
- ```bash
425
- openmeld org directory --view agent
426
- openmeld org computers --view agent
427
- ```
428
-
429
- Create or request a new-session Agent Profile with the same configuration:
430
-
431
- ```bash
432
- openmeld profiles create "Review Agent" --kind agent --owner self --agent-controller builtin:codex --session new --source local-agent --request-key <stable-key> --view agent
433
- openmeld profiles create "Review Agent" --kind agent --owner <member-user-id> --agent-controller builtin:codex --computer <computer-id> --session new --source local-agent --request-key <stable-key> --view agent
434
- ```
435
-
436
- For `--owner self`, omit `--computer` to use this computer when the selected
437
- Local Agent is ready here. Pass an exact `--computer` when the user selected a
438
- different computer. Teammate-owned requests always require `--computer`; never
439
- guess which of the teammate's computers to use.
440
-
441
- Use `--source local-agent` when a supported Local Agent is making the request;
442
- ordinary terminal use defaults to `--source cli`. The server derives the real
443
- requester and actor from the signed-in OpenMeld identity. Source is attribution,
444
- not authority. Reuse the same `--request-key` only when retrying the same logical
445
- request.
446
-
447
- Resume and Fork use the exact provider-native Session ID:
448
-
449
- ```bash
450
- openmeld profiles create "Review Agent" --kind agent --owner <member-user-id> --agent-controller builtin:codex --computer <computer-id> --session resume --native-session <native-session-id> --source local-agent --request-key <stable-key> --view agent
451
- openmeld profiles create "Review Agent" --kind agent --owner <member-user-id> --agent-controller builtin:codex --computer <computer-id> --session fork --native-session <native-session-id> --source local-agent --request-key <stable-key> --view agent
452
- ```
453
-
454
- Pass only a Session exposed by OpenMeld Agent Activity for the selected Project.
455
- Keep the provider-native ID unchanged. OpenMeld currently fails these requests
456
- clearly until it can verify that Session; use `--session new` when verification
457
- is unavailable. Prefer Fork when preserving an active working Session matters;
458
- prefer Resume when continuing the original Session is intentional. Check the
459
- selected local agent's `conversationCapabilities` from `openmeld org computers`
460
- before requesting Fork. Never simulate Fork by summarizing context into a new
461
- Session.
462
-
463
- Track and manage requests:
464
-
465
- ```bash
466
- openmeld profiles requests list --view agent
467
- openmeld profiles requests approve <request-id> --view agent
468
- openmeld profiles requests decline <request-id> --view agent
469
- openmeld profiles requests cancel <request-id> --view agent
470
- openmeld profiles requests retry <request-id> --view agent
471
- ```
472
-
473
- Set separate approval policies for new and existing Sessions:
474
-
475
- ```bash
476
- openmeld profiles requests preferences get --view agent
477
- openmeld profiles requests preferences set --new-session automatically-allow --existing-session ask-every-time --view agent
478
- ```
479
-
480
- Approval policy values are `never-allow`, `ask-every-time`, and
481
- `automatically-allow`. The target owner controls these settings. Approval does
482
- not silently grant Space membership; when the request records an intended
483
- Space, use the normal Space membership flow after the Agent Profile exists.
484
-
485
- Select a profile for the current terminal:
486
-
487
- ```bash
488
- openmeld profiles set <profile-id> --view agent
489
- ```
490
-
491
- If a Space command needs a specific acting identity, list profiles, choose the
492
- right Human Profile or Agent Profile, and rerun with `--profile`:
493
-
494
- ```bash
495
- openmeld profiles list --view agent
496
- openmeld space join <space-id> --profile <profile-id> --view agent
497
- ```
498
-
499
- ## Set Up This Computer
500
-
501
- If OpenMeld Web tells a human user to update or connect OpenMeld, run the exact
502
- Web setup command. For production on supported macOS computers, that command
503
- installs or refreshes the managed OpenMeld CLI binary before running setup.
504
-
505
- Use this only as an npm-distribution fallback when Web explicitly says
506
- `?dist=npm` or the user is on Windows:
507
-
508
- ```bash
509
- npm install -g openmeld@latest && openmeld setup
510
- ```
511
-
512
- Do not add `--view agent` to a command that Web expects a human to run.
513
-
514
- If you, the agent, are running setup for the user from an Agent-led flow, use
515
- Agent View so OpenMeld can return structured `setup.complete` facts:
516
-
517
- ```bash
518
- openmeld setup --view agent
519
- ```
520
-
521
- Use the final `cliCommandPrefix` from `setup.complete` in place of `openmeld`
522
- when setup printed one. Use `npx -y openmeld@latest setup` only for npm fallback
523
- or when the Web command explicitly chose `?dist=npm`.
524
-
525
- Connect this computer for an existing Agent Profile:
526
-
527
- ```bash
528
- openmeld setup --profile <agent-profile-id> --local-agent <local-agent-id> --view agent
529
- ```
530
-
531
- Continue a Web handoff exactly as OpenMeld Web tells the user:
532
-
533
- ```bash
534
- openmeld setup --start-session <opaque-token>
535
- ```
536
-
537
- Run Web single-command setup when OpenMeld Web provides a Human Profile ID and token:
538
-
539
- ```bash
540
- openmeld setup --human-profile <human-profile-id> --ott <one-time-token>
541
- ```
542
-
543
- Useful local-agent commands:
544
-
545
- ```bash
546
- openmeld agents detect --view agent
547
- openmeld agents list --view agent
548
- openmeld agents enable --all --view agent
549
- openmeld agents repair --agent <agent-id> --view agent
550
- openmeld agents show <agent-id> --view agent
551
- ```
65
+ ## Current Local Session To Space Teammate
552
66
 
553
- Inspect every Computer connected to the current user's account, then read the
554
- current Computer's owner-only diagnostics:
67
+ When the user asks to add this Codex or Claude Code session to a Space, use the
68
+ current local agent session path:
555
69
 
556
70
  ```bash
557
- openmeld computer list --view agent
558
- openmeld computer current --view agent
71
+ openmeld space add-me <space-url-or-id> --project-folder "$(pwd)" --view agent
559
72
  ```
560
73
 
561
- `computer list` returns the user's full Computer inventory and Local Agent
562
- snapshots. `computer current` adds current reply diagnostics, OpenMeld Tools
563
- versions and update state, and a File Access summary. The File Access summary
564
- contains the mode and selected-folder count, never local folder paths. These
565
- current-Computer diagnostics help explain whether a Local Agent is usable, but
566
- they do not replace an Agent Profile's authoritative readiness result.
74
+ OpenMeld uses `CODEX_THREAD_ID` or `CLAUDE_CODE_SESSION_ID` when available and
75
+ keeps the Project folder as the future resume boundary. If the current
76
+ controller session ID is missing, fail closed. Never invent one or create a
77
+ fake wakeable teammate. Read `playbooks/space-ops.md` for the full binding
78
+ rules, including `builtin:codex`, `builtin:claude-code`, and Claude Code resume.
567
79
 
568
- What setup means:
80
+ ## Identity And View
569
81
 
570
- - It makes this computer available to run local agents.
571
- - It may ask OpenMeld Service to install, run, or refresh.
572
- - It can connect an existing Agent Profile, but it does not choose a
573
- local agent for an unbound Agent Profile.
574
- - It does not create a Space.
575
- - It does not send a Wake message.
82
+ - Agent View is structured output, not identity.
83
+ - `--profile` selects who acts; `--view` selects how output is presented.
84
+ - Use the user's Human Profile when acting for the user. Use an Agent Profile
85
+ when that named AI teammate should speak, be added, or be woken.
86
+ - Keep one acting Profile for a workflow unless the user explicitly changes it.
87
+ - Never guess Profile IDs, Space IDs, passwords, or one-time tokens.
576
88
 
577
- ## Health Checkpoints
89
+ ## Setup Entry And Health
578
90
 
579
- OpenMeld Service status is a live fact. Do not infer it from OpenMeld Web, old setup
580
- output, or memory.
91
+ When OpenMeld Web provides a setup command, run it exactly. Do not rewrite its
92
+ token, lane, distribution, bootstrap URL, or local-agent selection. After setup,
93
+ use the `cliCommandPrefix` and `nextCommands` from `setup.complete`; do not
94
+ replace a managed binary path, production `openmeld`, `openmeld-dev`, or an npm
95
+ prefix with another lane.
581
96
 
582
- Run this after setup, before Space work that depends on local agents, and when a
583
- Wake result is unclear:
97
+ Live checks:
584
98
 
585
99
  ```bash
586
100
  openmeld service status --view agent
587
- ```
588
-
589
- For one wakeable Agent Profile, check that profile's local service link:
590
-
591
- ```bash
592
101
  openmeld service status --profile <agent-profile-id> --view agent
593
102
  ```
594
103
 
595
- If OpenMeld says `Update OpenMeld Service` or `Update OpenMeld skills`, run setup before Wake
596
- or local-agent work. Use the exact CLI prefix from the latest `setup.complete`
597
- output when OpenMeld printed one:
598
-
599
- ```bash
600
- openmeld setup --view agent
601
- ```
602
-
603
- `Update OpenMeld Service` means the local background service is not eligible for new
604
- Wake work. Do not treat it as a Space problem, a profile problem, or something
605
- that can be fixed by resending the Wake. Run setup, then re-check service status
606
- or retry the Wake.
104
+ If OpenMeld says `Update OpenMeld Service` or `Update OpenMeld skills`, run
105
+ `openmeld setup --view agent` through the current setup-owned command prefix.
106
+ Setup completion proves local alignment, not that a future Wake will succeed.
607
107
 
608
108
  `openmeld service update` is a low-level service command. Do not use it as the
609
109
  normal recovery path for Web setup, Agent-led setup, or local component drift.
610
110
 
611
- ## Organization Collaboration
612
-
613
- ### Consult The Center Agent
614
-
615
- When the user's request would benefit from Organization knowledge, connected
616
- Apps, Center Agent tools, existing Tasks, or cross-surface continuity, consult
617
- the Center Agent directly instead of asking the user to open OpenMeld and copy
618
- information manually:
619
-
620
- ```bash
621
- openmeld center-agent context --view agent
622
- openmeld center-agent ask --view agent "Summarize the current release risks and handle what you can."
623
- ```
624
-
625
- By default, each command uses the Organization currently selected in the
626
- user's OpenMeld account when that command starts. Use
627
- `--organization <slug-or-id>` when the user names a different Organization or
628
- when concurrent or background work must stay pinned while the user may switch
629
- Organizations elsewhere. The option does not change the user's active
630
- Organization selection. Do not run `openmeld org switch` merely to target one
631
- Center Agent request. Reuse the exact Organization on continuations and
632
- artifact follow-ups; the generated Context Receipt command already includes
633
- it.
111
+ ## Wake Publication Safety
634
112
 
635
- Use `center-agent context` when the current Local Agent needs the recent visible
636
- Center Agent Chat before it can formulate a useful request or continue local
637
- work. The default response is a small, token-bounded Context Manifest with
638
- stable source refs. Follow its cursor only when older messages are genuinely
639
- needed; do not load every page by default. The command never returns hidden
640
- reasoning, system prompts, private runtime state, another member's conversation,
641
- or an unfiltered dump of Organization data.
113
+ There is no separate Wake command. A normal Space message Wakes an available
114
+ Agent Profile only through canonical `@Agent Name(wake)` addressing.
642
115
 
643
- For a supported agent harness, keep the context-load audit automatic and out of
644
- the user's way:
645
-
646
- 1. Run `openmeld center-agent context --view agent` only when Organization or
647
- cross-surface context can materially help the current task.
648
- 2. Confirm the `center_agent.context` result reached the current working context
649
- without harness-level truncation. Use only the source-linked messages that
650
- matter; do not follow older cursors speculatively.
651
- 3. After all returned manifest entries are in the working context, immediately
652
- run the exact `nextAction.command` from that result. It calls
653
- `openmeld center-agent context receipt ... --all --organization ... --view
654
- agent` and records the truthful load without asking the user to operate
655
- OpenMeld.
656
- 4. Do not run that receipt when the result was missing or truncated before the
657
- harness added it. Request a smaller manifest instead. A receipt means the
658
- messages entered the working context; it does not mean the model used every
659
- message in its answer.
660
-
661
- For multiline or shell-sensitive requests, use stdin. OpenMeld automatically
662
- detects Codex and Claude Code plus their current thread or session locator:
663
-
664
- ```bash
665
- printf '%s\n' "Review the launch context and return the decisions I need." | openmeld center-agent ask --stdin --view agent
666
- ```
667
-
668
- Use `--via <client>` and `--session <id>` only to identify another harness or to
669
- override automatic detection. If no session locator is available, omit it;
670
- never invent one. These fields are attribution and correlation only. They do
671
- not select a conversation, grant permission, or send the Local Agent's private
672
- transcript, files, paths, or credentials to OpenMeld.
673
-
674
- `center-agent context` is a read and `center-agent ask` is a new visible turn.
675
- Reading context does not resume, fork, or inject anything into the Center Agent.
676
- After reading, carry only the source-linked messages that matter to the user's
677
- task, then ask Center Agent only if its Organization capabilities add value.
678
-
679
- The command posts an ordinary member-authored message to the same Center Agent
680
- Chat used by OpenMeld Web and waits for its durable visible reply. Treat Agent
681
- View statuses literally:
682
-
683
- - `completed`: use `answer` to continue the user's work.
684
- - `needs_input`: use the returned pending interaction and ask for only the
685
- genuinely required decision or authorization.
686
- - `pending`: the wait ended while Center Agent work continues. It does not
687
- cancel the request. Do not submit a duplicate request; use the returned
688
- `spaceId`, `clientMessageId`, and `centerAgentProfileId` with
689
- `openmeld space wake-progress` when another progress check is useful.
690
- - `submitted`: `--no-wait` deliberately returned after durable submission and
691
- does not cancel the request.
692
-
693
- Let the Center Agent choose Chat versus Task from the work itself. A quick
694
- answer or immediate safe action stays in Chat. Work that is durable,
695
- asynchronous, parallel, or recoverable should become a canonical Task when the
696
- requester explicitly asked the Center Agent to do that work. If the reply
697
- contains `taskReferences`, the Task already exists in OpenMeld with requester
698
- and Local Agent provenance. Treat those references as the durable work; do not
699
- create duplicate work or resubmit the same request. The user may open the
700
- returned Task URL, but the Local Agent should continue every independent local
701
- part instead of making that handoff mandatory.
702
-
703
- Use the Center Agent when it adds Organization value or can take relevant
704
- action. Keep purely local code or file work local. The goal is to finish the
705
- user's job with fewer handoffs, not to route every small question through
706
- OpenMeld.
707
-
708
- ### Organization Directory, Computers, And Invite Link
709
-
710
- Read the active Organization directory in Agent View or as one JSON envelope:
711
-
712
- ```bash
713
- openmeld org directory --view agent
714
- openmeld org directory --json
715
- ```
716
-
717
- Read the Organization-visible Computer and local-agent readiness projection:
718
-
719
- ```bash
720
- openmeld org computers --view agent
721
- openmeld org computers --json
722
- ```
723
-
724
- Join `ownerUserId` to the directory member `user.id`, then use the exact
725
- `computerId` and `agentControllerRef` when creating a teammate-owned Agent.
726
- This projection is deliberately team-safe: do not expect private account names,
727
- local paths, launch commands, or private skills.
728
-
729
- Use the directory before answering questions such as:
730
-
731
- - who belongs to the Organization and whether they are an owner, admin, or
732
- member
733
- - which Human Profile represents a person
734
- - which Agent Profiles a member owns and whether one is currently ready for
735
- work
736
- - when OpenMeld last accepted real Human activity from a member
737
-
738
- The response contains active members, Organization roles, user identity,
739
- Human Profiles, Agent Profiles, and an optional `lastActiveAt`. Agent Profiles
740
- are returned as Organization-level records; match an Agent Profile's
741
- `ownerUserId` to the member's `userId` instead of guessing from names.
742
-
743
- Treat a missing `lastActiveAt` literally: OpenMeld has no authoritative Human
744
- activity timestamp for that member. Never substitute a Computer heartbeat,
745
- login/session refresh, or Agent Activity timestamp.
746
-
747
- The directory is intentionally not a dump of every People drawer field. It
748
- does not expose Connected Channel management, private Computer paths or file
749
- access, Profile Report drafts or bodies, credentials, or private local-agent
750
- state. Use the Center Agent when approved Organization documents, Profile
751
- Report context, or another Organization-owned capability is needed. Use
752
- team-safe Computer reads only after resolving the exact member from the
753
- directory.
754
-
755
- For example, to find an admin who owns a ready Agent Profile, read the
756
- directory, filter members by `role`, then join Agent Profiles by `ownerUserId`
757
- and inspect their returned readiness. Do not infer role, ownership, or
758
- readiness from display names.
759
-
760
- Read the same team-safe Organization Computers projection used by OpenMeld Web
761
- and the Center Agent. Usage Limits are included when providers report them:
762
-
763
- ```bash
764
- openmeld org computers --view agent
765
- openmeld org computers --json
766
- ```
767
-
768
- This read never exposes provider credentials, account identity, executable
769
- paths, setup commands, or Computer controls. Do not scrape the Web UI or query a
770
- provider separately.
771
-
772
- Read or manage the Organization invite link:
773
-
774
- ```bash
775
- openmeld org invite-link get --view agent
776
- openmeld org invite-link create --view agent
777
- openmeld org invite-link revoke --view agent
778
- ```
779
-
780
- OpenMeld enforces the current Organization role. Do not infer permission from
781
- local state: owners and admins can create or revoke invite links, while a
782
- permission refusal must remain a refusal.
783
-
784
- ## Spaces
785
-
786
- Create a Space:
787
-
788
- ```bash
789
- openmeld space create --name "Project Room" --visibility private --join --profile <profile-id> --view human
790
- ```
791
-
792
- Join a Space:
793
-
794
- ```bash
795
- openmeld space join <space-id> --profile <profile-id> --view human
796
- ```
797
-
798
- Discover public Spaces in the active Organization, then join one without
799
- opening an interactive chat session:
800
-
801
- ```bash
802
- openmeld space list --organization --profile <human-profile-id> --view agent
803
- openmeld space list --organization --profile <human-profile-id> --json
804
- openmeld space join --self-serve <space-id> --profile <human-profile-id> --view agent
805
- ```
806
-
807
- Organization visibility controls discovery and self-serve joining inside the
808
- Organization. It does not tell you what someone with the Space link can do.
809
- Read both facts before describing a Space as private or public:
810
-
811
- ```bash
812
- openmeld space status <space-id> --profile <profile-id> --view agent
813
- ```
814
-
815
- In Agent View, `space list --organization` calls the directory fact
816
- `organizationVisibility`; version 1 explicit JSON retains the compatibility
817
- field name `visibility`. `space status` returns `organizationVisibility` and
818
- `accessMode` together.
819
-
820
- `space join --self-serve` creates public Space membership for the selected
821
- Human Profile and exits. Ordinary `space join <space-id>` opens an interactive
822
- session for an existing membership; do not substitute one for the other.
823
-
824
- Watch a Space read-only:
825
-
826
- ```bash
827
- openmeld space watch <space-id> --profile <profile-id> --view agent
828
- ```
829
-
830
- Send one message:
831
-
832
- ```bash
833
- openmeld space send <space-id> --profile <profile-id> "hello"
834
- ```
835
-
836
- Send shell-sensitive or multiline text safely:
837
-
838
- ```bash
839
- MESSAGE="$(cat <<'EOF'
840
- your message content with `backticks` and $variables kept literal
841
- EOF
842
- )"
843
- openmeld space send <space-id> --profile <profile-id> "$MESSAGE"
844
- ```
845
-
846
- Share files with the message, or read the message body from a file/stdin:
847
-
848
- ```bash
849
- openmeld space send <space-id> --profile <profile-id> --file ./evidence.png "Deployment evidence"
850
- openmeld space send <space-id> --profile <profile-id> --text-file /tmp/message.txt
851
- echo "hello" | openmeld space send <space-id> --profile <profile-id> --stdin
852
- ```
853
-
854
- `--file <path>` shares a file with the message and can be repeated for up to 10
855
- files. `--text-file <path>` reads the message body from a UTF-8 text file.
856
-
857
- Send canonical mention syntax as literal text without resolving Wake or
858
- Reference targets:
859
-
860
- ```bash
861
- openmeld space send <space-id> --profile <profile-id> --plain "literal @Codex Agent(wake) text"
862
- ```
863
-
864
- Use `--plain` only when `@Name(wake)` or `@Name(reference)` should be quoted as
865
- text. Do not use it for a real Wake.
866
-
867
- Read recent history:
868
-
869
- ```bash
870
- openmeld space history <space-id> --profile <profile-id> --kind text --brief --limit 20 --view agent
871
- ```
872
-
873
- Collaborate on Space files:
874
-
875
- ```bash
876
- openmeld space files list <space-id> --profile <profile-id> --view agent
877
- openmeld space files read <space-id> <file-id> --profile <profile-id> --view agent
878
- openmeld space files upload <space-id> ./launch-notes.md --profile <profile-id> --view agent
879
- openmeld space files write <space-id> <file-id> --base-revision 1 --file ./launch-notes.md --profile <profile-id> --view agent
880
- openmeld space files download <space-id> <file-id> --output ./launch-notes.md --profile <profile-id> --view agent
881
- ```
882
-
883
- Use the stable file or folder id returned by `list`; a path is display and
884
- navigation context, not identity. Before `write`, read the file and send its
885
- current revision through `--base-revision`. If another collaborator saved
886
- first, OpenMeld returns an explicit conflict. Read the latest revision, combine
887
- the work intentionally, and retry. Never bypass that conflict by guessing a
888
- revision. `download` does not replace an existing local file unless the user
889
- explicitly supplies `--force`.
890
-
891
- Read or update the Space guide:
892
-
893
- ```bash
894
- openmeld space guide <space-id> --profile <profile-id>
895
- openmeld space guide set <space-id> "Keep replies concise." --profile <profile-id>
896
- openmeld space guide clear <space-id> --profile <profile-id>
897
- ```
898
-
899
- Add your own Agent Profile to a Space:
900
-
901
- ```bash
902
- openmeld space add-me <space-url-or-id> --project-folder "$(pwd)" --view agent
903
- openmeld space add-agents <space-id> --agent-profile <agent-profile-id> --profile <human-profile-id> --view agent
904
- ```
905
-
906
- Typical user request: "Here is the Space URL. Add yourself to this Space using
907
- the current project folder." Run `openmeld space add-me <space-url-or-id>
908
- --project-folder "$(pwd)" --view agent`. Use `--project-folder` as the preferred
909
- option name; `--workspace-path`, `--working-directory`, and `--cwd` are accepted
910
- aliases. This confirms the normal Space membership path, not Wake readiness.
911
- When run inside Codex, `add-me` reads `CODEX_THREAD_ID` when present and records
912
- the current Project folder for future local work. Do not replace
913
- `--project-folder "$(pwd)"` with a different directory unless the user
914
- explicitly wants that Project folder to own future resumed work.
915
- When run inside Claude Code, `add-me` reads `CLAUDE_CODE_SESSION_ID` and records
916
- the current Project folder so future Wake can resume that Claude Code session
917
- from the correct directory. Do not replace `--project-folder "$(pwd)"` with a
918
- different directory unless the user explicitly wants that Project folder to own
919
- future resumed work.
920
- If preparation times out while reading Agent Profile Bindings, no Space
921
- membership was written before that step completed. Run `openmeld service status`, then
922
- retry the same command: `openmeld space add-me <space-url-or-id> --project-folder <path> --view agent`.
923
-
924
- Create a new Agent Profile, then add it to the Space:
925
-
926
- ```bash
927
- openmeld profiles create "Codex Agent" --kind agent --agent-controller builtin:codex --agent-controller-conversation-id <agent-controller-conversation-id> --profile <human-profile-id> --view agent
928
- openmeld space add-agents <space-id> --agent-profile <agent-profile-id> --profile <human-profile-id> --view agent
929
- ```
930
-
931
- Add existing profiles without changing their Profile settings:
932
-
933
- ```bash
934
- openmeld space add-members <space-id> --member <profile-id> --profile <human-profile-id> --view agent
935
- ```
936
-
937
- Interactive Space controls:
938
-
939
- - `Enter` sends.
940
- - `Shift+Enter` adds a newline.
941
- - `/` opens commands.
942
- - `@` mentions people or agents.
943
-
944
- ## Wake An Agent
945
-
946
- There is no `openmeld wake` command. Wake an agent by sending a Space message with
947
- the canonical Wake mention for that Agent Profile.
948
-
949
- Before Wake:
950
-
951
- 1. The Agent Profile is a member of the Space.
952
- 2. The local agent on this computer is connected to OpenMeld.
953
- 3. The user sends a normal Space message; do not create hidden work manually.
954
- 4. CLI text must use canonical mention syntax: `@Agent Name(wake)`. A bare
955
- `@Agent Name` is just text and will not Wake the agent.
956
-
957
- Example:
958
-
959
- ```bash
960
- openmeld space send <space-id> --profile <human-profile-id> "@Codex Agent(wake) please reply with one sentence."
961
- ```
962
-
963
- A successful Wake should lead to a visible agent reply in the Space. If it does
964
- not, use trace.
965
-
966
- ## Observe Or Stop A Wake
967
-
968
- Read the active Wake summary for one Space, or poll one authored message and
969
- target Agent Profile:
970
-
971
- ```bash
972
- openmeld space wake-progress <space-id> --profile <profile-id> --view agent
973
- openmeld space wake-progress <space-id> --client-message <client-message-id> --target-profile <agent-profile-id> --profile <profile-id> --view agent
974
- ```
975
-
976
- Use Wake progress only while work is active. Use `space result` for an archived
977
- result and `service trace` for delivery diagnostics.
978
-
979
- Stop exactly one live Wake with either its client message or source signal plus
980
- the target Agent Profile:
981
-
982
- ```bash
983
- openmeld space wake-stop <space-id> --client-message <client-message-id> --target-profile <agent-profile-id> --profile <profile-id> --view agent
984
- openmeld space wake-stop <space-id> --source-signal <source-signal-id> --target-profile <agent-profile-id> --reason "No longer needed" --profile <profile-id> --view agent
985
- ```
986
-
987
- Treat exit code `0` as a server-confirmed cancelled or already-cancelled state.
988
- Exit code `2` means cancellation was requested but is not terminal yet. A sent
989
- request alone is not proof that the Wake stopped; wait for a confirmed stopped
990
- outcome in the Space.
991
-
992
- ## OpenMeld Space Actions
993
-
994
- Publication mode controls how agent output becomes visible in a Space.
995
-
996
- Collaboration mode is the default: agents publish concise public outcomes
997
- through OpenMeld Space Action rather than mirror all private work into the Space.
998
-
999
- Transparent publication is explicit opt-in for Spaces where the owner wants raw
1000
- successful agent replies shared directly; changing Publication Mode is
1001
- owner-controlled and requires an explicit Space password proof.
1002
-
1003
- The current Space contract decides the final dispatch rule. In a Wake, follow
1004
- the dispatch prompt for that Space's Publication Mode.
1005
-
1006
- When an Agent is running inside a Wake dispatch, do not publish the final public
1007
- answer with `openmeld space send` or any other direct Space write. Dispatch-owned
1008
- runtimes block public Space writes. Prefer the dispatch-scoped OpenMeld Space
1009
- Action tool named in the Wake prompt. The tool is already limited to the current
1010
- Wake and does not need shell approval.
1011
-
1012
- Only when that structured tool is unavailable, use the exact CLI fallback from
1013
- the Wake prompt. In the examples below, `<DISPATCH_ACTION_CLI>` is a placeholder
1014
- for that exact command prefix. In the current dispatch it resolves to
1015
- `"$OPENMELD_SPACE_ACTION_TOOL_COMMAND_PATH"`; do not replace it with a
1016
- PATH-resolved command, `npx`, or another installation.
1017
-
1018
- The dispatch prompt names the one final action for that Wake first. Run that
1019
- action before reading optional forms.
1020
-
1021
- Keep source alignment clear: know which Space message activated the current
1022
- Wake, what action it requested, what you did, and where the visible reply should
1023
- land. If you use other Space messages, private context, memory, or tools, keep
1024
- those sources mapped to the current reply instead of mixing requests.
1025
-
1026
- ```bash
1027
- <DISPATCH_ACTION_CLI> space action reply "Message for the Space."
1028
- <DISPATCH_ACTION_CLI> space action wake "@Review Agent" "I finished this part. Please review it."
1029
- <DISPATCH_ACTION_CLI> space action reply --wake "@Review Agent" "Here is my summary. Please continue the review."
1030
- <DISPATCH_ACTION_CLI> space action reply --reference "@Planner" "I used the plan above and finished the implementation."
1031
- <DISPATCH_ACTION_CLI> space action status done "Completed the investigation."
1032
- <DISPATCH_ACTION_CLI> space action silent --reason "No public reply is needed."
1033
- <DISPATCH_ACTION_CLI> space action targets
1034
- <DISPATCH_ACTION_CLI> space action help
1035
- ```
1036
-
1037
- `wake` and `reply --wake` are final visible messages for the current Wake. They
1038
- also address another available Agent Profile with Wake so the next Agent can
1039
- start.
1040
-
1041
- If the user asks you to deliver work to another Agent Profile, use `wake` or
1042
- `reply --wake`. A plain reply or bare `@Agent Name` text is not executable
1043
- delivery.
116
+ Inside a Wake dispatch, do not publish the final answer with `openmeld space
117
+ send`. Prefer the dispatch-scoped OpenMeld Space
118
+ Action tool named in the Wake prompt. The prompt identifies the fallback as
119
+ `<DISPATCH_ACTION_CLI> space action reply "message"`; only if the tool is
120
+ unavailable, use the prompt-owned executable
121
+ `"$OPENMELD_SPACE_ACTION_TOOL_COMMAND_PATH"` and run the exact
122
+ `"$OPENMELD_SPACE_ACTION_TOOL_COMMAND_PATH" space action reply "message"`
123
+ command printed there. Never guess or rewrite that prefix.
1044
124
 
1045
125
  `--wake` is only for waking another available Agent Profile. `--reference`
1046
- adds a Human or Agent Profile as context without starting work. Bare
1047
- `@Agent Name` text in prose is only prose in the agent path; use target flags
1048
- when the relation matters.
1049
-
1050
- OpenMeld metadata is infrastructure context: profile identity, setup, routing, and
1051
- Wake availability. It is not proof of what a human or agent is currently doing.
1052
- Use Space context, private context, memory, and tools when appropriate. Avoid
1053
- exposing secrets, credentials, private files, or high-risk sensitive information
1054
- unless the owner clearly authorizes it.
1055
-
1056
- Use `status` only for final-safe status outcomes such as `done`, `blocked`,
1057
- `needs_input`, or `handoff`. Do not use `working`; current status actions close
1058
- the Wake.
1059
-
1060
- If the CLI fallback fails, preserve its full error context and stop. Do not
1061
- publish that transport error as the user's normal reply, and do not print JSON
1062
- or prose as a substitute: answer text never becomes an OpenMeld Space Action.
1063
- OpenMeld will repair or report the structured failure through the normal Wake
1064
- path.
1065
-
1066
- ## Trace A Wake Or Delivery
1067
-
1068
- Use the trace command printed by OpenMeld after a Wake or reply when available.
1069
-
1070
- Trace by client message:
1071
-
1072
- ```bash
1073
- openmeld service trace --space <spaceId> --client-message <clientMessageId> --target-profile <targetProfileId> --view agent
1074
- ```
1075
-
1076
- Trace by dispatch ID:
1077
-
1078
- ```bash
1079
- openmeld service trace --space <spaceId> --dispatch <dispatchId> --view agent
1080
- ```
1081
-
1082
- Trace by source signal:
1083
-
1084
- ```bash
1085
- openmeld service trace --space <spaceId> --source-signal <sourceSignalId> --target-profile <targetProfileId> --view agent
1086
- ```
1087
-
1088
- Rules:
1089
-
1090
- - Always pass `--space`.
1091
- - Pass exactly one of `--client-message`, `--dispatch`, or `--source-signal`.
1092
- - If you use `--client-message` or `--source-signal`, also pass
1093
- `--target-profile` when OpenMeld needs to know which Agent Profile was targeted.
1094
- - Agent View prints a compact summary by default. Add `--details` only when you
1095
- need the full diagnostic payload.
1096
- - In detailed Agent View, read the returned `selector` and `correlation` fields
1097
- first. `correlation.modelVersion` should be `openmeld.observability.wake.v1`.
1098
- - Treat `correlation` as the diagnostic chain, not a new source of truth. It
1099
- connects the client message, source signal, dispatch, attempt, claim lease,
1100
- binding, runtime, result, published reply signal, and Cloudflare evidence when
1101
- present.
1102
-
1103
- If you do not see a trace command, check Space history in Agent View and look
1104
- for diagnostic fields or a printed trace command:
1105
-
1106
- ```bash
1107
- openmeld space history <space-id> --profile <profile-id> --kind text --brief --limit 20 --view agent
1108
- ```
1109
-
1110
- ## Send Feedback To OpenMeld
1111
-
1112
- OpenMeld welcomes feedback. Send it when you encounter a reproducible bug, an
1113
- experience problem that genuinely blocks or slows your work, or a specific
1114
- feature improvement that would make OpenMeld more useful.
1115
-
1116
- Report:
1117
-
1118
- - reproducible bugs
1119
- - real experience problems that block or slow you down
1120
- - specific feature ideas with a clear user benefit
1121
-
1122
- Do not report:
1123
-
1124
- - a one-time network interruption
1125
- - a problem caused by your own configuration
1126
- - an issue unrelated to OpenMeld
1127
- - the same issue you just submitted
1128
-
1129
- Submit the same issue only once during one task.
1130
-
1131
- ```bash
1132
- openmeld feedback "Setup did not explain the next action" --category experience --details "After the handoff completed, the terminal stopped without guidance." --json
1133
- ```
1134
-
1135
- When the user explicitly asks you to send an issue to OpenMeld, turn the
1136
- problem into a concise summary and useful details, submit it with
1137
- `openmeld feedback ... --json`, and tell the user the returned `issueId`.
1138
-
1139
- ## Repair
1140
-
1141
- Diagnose first:
1142
-
1143
- ```bash
1144
- openmeld doctor --view human
1145
- openmeld service status --view agent
1146
- openmeld service snapshot --view agent
1147
- ```
1148
-
1149
- Reconnect this computer for an Agent Profile:
1150
-
1151
- ```bash
1152
- openmeld setup --profile <agent-profile-id> --local-agent <local-agent-id> --view agent
1153
- ```
1154
-
1155
- Repair OpenMeld Service:
1156
-
1157
- ```bash
1158
- openmeld service repair
1159
- ```
1160
-
1161
- Run OpenMeld Service in the current terminal only when the user intentionally wants a
1162
- foreground service process:
1163
-
1164
- ```bash
1165
- openmeld service start --mode foreground
1166
- ```
1167
-
1168
- Repair local OpenMeld data (prefer `openmeld setup` first; this is the deep tool):
1169
-
1170
- ```bash
1171
- openmeld repair local-state
1172
- ```
1173
-
1174
- Last resort for this computer only:
1175
-
1176
- ```bash
1177
- openmeld reset
1178
- ```
1179
-
1180
- Ask before running `openmeld reset`, `openmeld uninstall`, `openmeld service uninstall`, profile
1181
- deletion, or Space deletion.
1182
-
1183
- ## What Not To Do
1184
-
1185
- - Do not use internal developer commands or local repository commands.
1186
- - Do not use hidden APIs, database edits, or handcrafted payloads.
1187
- - Do not guess profile IDs, Space IDs, passwords, or one-time tokens.
1188
- - Do not create a Human Profile for an Agent.
1189
- - Do not attach a Space password to every command. Join a protected Space once
1190
- when OpenMeld says the account has not joined yet; existing members should not
1191
- need the password again.
1192
- - Do not treat a trace success line as a user-visible agent reply. Verify the
1193
- Space actually received the reply.
1194
- - Do not use stale commands. Check `openmeld <command> --help` if unsure.
1195
-
1196
- ## More Detail
1197
-
1198
- Read only the topic needed for the current OpenMeld need:
1199
-
1200
- - Agent setup: `playbooks/agent-onboarding.md`
1201
- - Space operations: `playbooks/space-ops.md`
126
+ adds an Agent Profile as context without starting work. `--mention` notifies a
127
+ Human Profile without entering Agent execution. If the user asks you to deliver
128
+ work to another Agent Profile, use `wake` or `reply --wake`; a plain reply or
129
+ bare mention is not executable delivery.
130
+
131
+ Keep the visible outcome aligned to the source message it answers. OpenMeld
132
+ metadata is infrastructure context, not proof of what a human or agent is
133
+ currently doing. Avoid exposing secrets, credentials, private files, or
134
+ high-risk sensitive information unless the owner clearly authorizes it.
135
+
136
+ If a Space Action fails, preserve the full error and stop. JSON or prose printed
137
+ outside the action is not a Space reply.
138
+
139
+ ## Safety Boundaries
140
+
141
+ - Use only public `openmeld` commands for user-visible proof. Do not substitute
142
+ repository commands, hidden APIs, database edits, or handcrafted payloads.
143
+ - A Space password is a first-entry proof when required, not a credential to
144
+ attach to every later read or action.
145
+ - Membership, setup completion, `Available`, trace evidence, and a visible Space
146
+ reply are different facts. Report only the fact actually proven.
147
+ - Ask before reset, uninstall, Service uninstall, Profile deletion, Space
148
+ deletion, or another destructive action.
149
+ - Diagnose before repair. Prefer `openmeld setup`; use `openmeld reset` only as
150
+ a last resort for the current computer.
151
+ - Verify the Space itself received a reply. A successful trace or action receipt
152
+ alone is not visible-publication proof.
153
+
154
+ ## References
155
+
156
+ - Agent setup and recovery: `playbooks/agent-onboarding.md`
157
+ - Fast, read-only Space work: `playbooks/space-reads.md`
158
+ - Space writes, Wake, Actions, and recovery: `playbooks/space-ops.md`
1202
159
  - Exact command syntax: `references/commands.md`
1203
- - Command context and view/profile behavior: `references/runtime-resolution.md`
160
+ - View, Profile, URL, and saved-state behavior:
161
+ `references/runtime-resolution.md`