openmeld 0.3.42

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.
@@ -0,0 +1,185 @@
1
+ # Agent Onboarding Playbook
2
+
3
+ Use this when an external Agent needs to set up or recover OpenMeld identity and
4
+ local-agent connection with the public `openmeld` CLI.
5
+
6
+ ## Goal
7
+
8
+ End in this state:
9
+
10
+ 1. The user is signed in.
11
+ 2. The Agent has an Agent Profile.
12
+ 3. This computer is connected to run the local agent.
13
+ 4. The Agent can join a Space and be woken by a normal Space message.
14
+
15
+ ## Setup From Zero
16
+
17
+ If OpenMeld Web gives a setup command, run that exact command first. In
18
+ production on supported macOS computers, the Web setup command downloads the
19
+ OpenMeld CLI binary, verifies it, installs it into OpenMeld's managed layout,
20
+ and runs setup through the managed binary.
21
+
22
+ If OpenMeld is already installed, upgrade through the current command prefix
23
+ from the latest `setup.complete` output:
24
+
25
+ ```bash
26
+ openmeld upgrade --yes --view agent
27
+ ```
28
+
29
+ Use npm only for Windows, explicit `?dist=npm`, or manual recovery from an old
30
+ npm install:
31
+
32
+ ```bash
33
+ npm install -g openmeld@latest
34
+ ```
35
+
36
+ If that command is unavailable because the installed CLI is too old, replace
37
+ the global package manually:
38
+
39
+ ```bash
40
+ npm uninstall -g openmeld
41
+ npm install -g openmeld@latest
42
+ ```
43
+
44
+ After a Web Agent Interface setup command finishes, use the `cliCommandPrefix`
45
+ or `nextCommands` from the final `setup.complete` output. If it reports a
46
+ managed binary path, use that exact path. If it reports `openmeld`, prefer
47
+ `openmeld ...` for ordinary OpenMeld commands. If it reports
48
+ `npx -y openmeld@latest`, use that full prefix because setup is on the npm
49
+ distribution path.
50
+
51
+ Sign in:
52
+
53
+ ```bash
54
+ openmeld login --view human
55
+ ```
56
+
57
+ Check identity:
58
+
59
+ ```bash
60
+ openmeld auth status --view agent
61
+ openmeld whoami --view agent
62
+ openmeld service status --view agent
63
+ ```
64
+
65
+ Run setup interactively for a human:
66
+
67
+ ```bash
68
+ openmeld setup --view human
69
+ ```
70
+
71
+ Run setup as an Agent with an existing Agent Profile:
72
+
73
+ ```bash
74
+ openmeld start --view agent --profile-id <agent-profile-id>
75
+ ```
76
+
77
+ Create an Agent Profile during setup:
78
+
79
+ ```bash
80
+ openmeld start --view agent --kind agent --profile-name "Codex Agent"
81
+ ```
82
+
83
+ ## Set Up This Computer
84
+
85
+ Connect this computer for an Agent Profile:
86
+
87
+ ```bash
88
+ openmeld setup --profile <agent-profile-id> --local-agent <local-agent-id> --view agent
89
+ ```
90
+
91
+ If OpenMeld Web gives a handoff command, run that exact command. Common forms:
92
+
93
+ ```bash
94
+ openmeld setup --start-session <opaque-token>
95
+ openmeld setup --human-profile <human-profile-id> --ott <one-time-token>
96
+ ```
97
+
98
+ Do not replace Web handoff with hidden API calls. The Web-provided command is
99
+ the user-visible path.
100
+
101
+ ## Verify Local Agents
102
+
103
+ ```bash
104
+ openmeld agents detect --view agent
105
+ openmeld agents list --view agent
106
+ openmeld service status --view agent
107
+ ```
108
+
109
+ For Cursor, verify the exact CLI and its separate sign-in before binding:
110
+
111
+ ```bash
112
+ cursor-agent login
113
+ openmeld profiles create "Implementation Agent" --kind agent --agent-controller builtin:cursor --model 'default[]' --agent-controller-permission-mode default --view agent
114
+ ```
115
+
116
+ Cursor runs through the official `cursor-agent acp` interface. Cursor CLI
117
+ sign-in is separate from Cursor IDE sign-in. Its permission values are
118
+ `default|plan|ask|auto-review|run-everything`; `run-everything` requires
119
+ explicit confirmation. Use the exact model ID offered by ACP. Cursor includes
120
+ reasoning in that exact model ID and has no independent reasoning setting.
121
+
122
+ Treat `openmeld service status --view agent` as the live local-service health check.
123
+ Run it after setup, before Space work that depends on local agents, and when a
124
+ Wake result is unclear. For one wakeable Agent Profile, run:
125
+
126
+ ```bash
127
+ openmeld service status --profile <agent-profile-id> --view agent
128
+ ```
129
+
130
+ If OpenMeld says `Update OpenMeld Service` or `Update OpenMeld skills`, run setup before Wake
131
+ or local-agent work. Use the exact CLI prefix from the latest `setup.complete`
132
+ output when OpenMeld printed one:
133
+
134
+ ```bash
135
+ openmeld setup --view agent
136
+ ```
137
+
138
+ `openmeld service update` is a low-level service command. Do not use it as the
139
+ normal recovery path for Web setup, Agent-led setup, or local component drift.
140
+
141
+ Treat setup as local infrastructure alignment: sign-in, OpenMeld Service, detected
142
+ local agents, agent controller reporting, and OpenMeld-managed skills. It does not prove
143
+ that a future Space Wake will succeed.
144
+
145
+ If OpenMeld says this computer cannot handle Wake for the Agent Profile yet, run:
146
+
147
+ ```bash
148
+ openmeld setup --profile <agent-profile-id> --local-agent <local-agent-id> --view agent
149
+ ```
150
+
151
+ If OpenMeld Service is missing, stopped, or stale, follow the user-visible prompt or
152
+ run:
153
+
154
+ ```bash
155
+ openmeld service repair
156
+ ```
157
+
158
+ Use `openmeld service start --mode foreground` only when the user wants OpenMeld Service
159
+ running in the current terminal.
160
+
161
+ ## Identity Guardrails
162
+
163
+ - Agent View is structured output, not an identity.
164
+ - An OpenMeld Profile is who is speaking in a Space. Changing `--profile` changes
165
+ the speaker, not the output format.
166
+ - Use the user's Human Profile when operating OpenMeld on the user's behalf.
167
+ - Use an Agent Profile when a named AI teammate should speak, be added, or be
168
+ woken.
169
+ - Use one acting profile for a Space workflow unless the user explicitly asks
170
+ you to act as a different identity.
171
+ - In automation, keep `--profile <profile-id>` explicit.
172
+ - If you are unsure which profile to use, ask the user or run:
173
+
174
+ ```bash
175
+ openmeld profiles list --view agent
176
+ ```
177
+
178
+ ## Ask The User Before Continuing
179
+
180
+ Ask first when:
181
+
182
+ - login requires browser approval or a one-time token;
183
+ - the command needs a Space password;
184
+ - multiple profiles or Spaces match;
185
+ - the next command would reset, uninstall, delete, or remove anything.
@@ -0,0 +1,343 @@
1
+ # Space Operations Playbook
2
+
3
+ Use this when an external user or Agent needs to create, join, read, send, or
4
+ diagnose OpenMeld Space activity with the public `openmeld` CLI.
5
+
6
+ ## Basic Rules
7
+
8
+ - A Space ID is a 64-character hex string.
9
+ - Use explicit `--profile <profile-id>` in Agent or multi-terminal workflows.
10
+ - An OpenMeld Profile is who is speaking in a Space. Changing `--profile` changes
11
+ the speaker, not the output format.
12
+ - Use one acting profile for a Space workflow unless the user explicitly asks
13
+ you to act as a different identity.
14
+ - Ask the user for a Space password when needed. Do not guess.
15
+ - Use Human View for interactive chat; use Agent View for machine-readable
16
+ output.
17
+
18
+ ## Create Or Join
19
+
20
+ Create a Space:
21
+
22
+ ```bash
23
+ openmeld space create --name "Project Room" --visibility private --join --profile <profile-id> --view human
24
+ ```
25
+
26
+ Join a Space:
27
+
28
+ ```bash
29
+ openmeld space join <space-id> --profile <profile-id> --view human
30
+ ```
31
+
32
+ Discover public Spaces in the active Organization and join one as the current
33
+ Human Profile without opening chat:
34
+
35
+ ```bash
36
+ openmeld space list --organization --profile <human-profile-id> --view agent
37
+ openmeld space list --organization --profile <human-profile-id> --json
38
+ openmeld space join --self-serve <space-id> --profile <human-profile-id> --view agent
39
+ ```
40
+
41
+ Use ordinary `space join <space-id>` only to open an interactive session for an
42
+ existing membership. Use `--self-serve` only for the public Organization Space
43
+ membership action.
44
+
45
+ Watch read-only:
46
+
47
+ ```bash
48
+ openmeld space watch <space-id> --profile <profile-id> --view agent
49
+ ```
50
+
51
+ Add the current local agent session to the Space:
52
+
53
+ ```bash
54
+ openmeld space add-me <space-url-or-id> --project-folder "$(pwd)" --view agent
55
+ openmeld space add-agents <space-id> --agent-profile <agent-profile-id> --profile <human-profile-id> --view agent
56
+ ```
57
+
58
+ When the user sends a Space URL and asks you to add yourself using the current
59
+ project folder, prefer `openmeld space add-me <space-url-or-id> --project-folder
60
+ "$(pwd)" --view agent`. `--workspace-path`, `--working-directory`, and `--cwd`
61
+ are accepted aliases, but `--project-folder` is the canonical option. This
62
+ confirms Space membership only; it does not prove Wake readiness.
63
+
64
+ If you are running inside Codex, `add-me` detects `CODEX_THREAD_ID` when
65
+ present and binds that Codex thread to the Project folder you pass. If you
66
+ manually create or update the Agent Profile instead, read both:
67
+
68
+ ```bash
69
+ printf '%s\n' "$CODEX_THREAD_ID"
70
+ pwd
71
+ ```
72
+
73
+ Use the thread ID as `--agent-controller-conversation-id` with
74
+ `--agent-controller builtin:codex`. If it is empty, do not invent a thread ID.
75
+ Codex can resume an explicit thread ID, but the Project folder still tells OpenMeld
76
+ where future local work should run.
77
+
78
+ If you are running inside Claude Code, `add-me` detects
79
+ `CLAUDE_CODE_SESSION_ID` and binds that Claude Code session to the Project
80
+ folder you pass. Claude Code resume is scoped to the directory where the
81
+ session was created, so use `--project-folder "$(pwd)"` for the current session
82
+ unless the user explicitly asks future resumed work to use another Project
83
+ folder. If you manually create or update the Agent Profile instead, read both:
84
+
85
+ ```bash
86
+ printf '%s\n' "$CLAUDE_CODE_SESSION_ID"
87
+ pwd
88
+ ```
89
+
90
+ Use the session ID as `--agent-controller-conversation-id` with
91
+ `--agent-controller builtin:claude-code`. If it is empty, do not invent a
92
+ session ID.
93
+
94
+ Cursor is a supported local Agent Controller through the official
95
+ `cursor-agent acp` interface, but `add-me` does not adopt the current Cursor IDE
96
+ conversation. Bind `builtin:cursor` explicitly and let OpenMeld create or load
97
+ the private Cursor ACP session for that Agent Profile.
98
+
99
+ If `add-me` times out while reading Agent Profile Bindings, no Space membership
100
+ was written before that step completed. Run `openmeld service status`, then retry the
101
+ same command: `openmeld space add-me <space-url-or-id> --project-folder <path> --view agent`.
102
+
103
+ ## Send Messages
104
+
105
+ Send one line:
106
+
107
+ ```bash
108
+ openmeld space send <space-id> --profile <profile-id> "hello"
109
+ ```
110
+
111
+ Send a message with one or more JPEG/PNG files (repeat `--attach`, up to four):
112
+
113
+ ```bash
114
+ openmeld space send <space-id> --profile <profile-id> --attach ./evidence.png "Deployment evidence"
115
+ ```
116
+
117
+ OpenMeld uploads every selected file before sending the message. If validation
118
+ or upload fails, the message is not sent. Attachments are not supported with
119
+ `--reply-to` yet.
120
+
121
+ Send multiline or shell-sensitive content safely:
122
+
123
+ ```bash
124
+ openmeld space send <space-id> --profile <profile-id> --file /tmp/message.txt
125
+ ```
126
+
127
+ or:
128
+
129
+ ```bash
130
+ cat /tmp/message.txt | openmeld space send <space-id> --profile <profile-id> --stdin
131
+ ```
132
+
133
+ Send canonical mention syntax as literal text without resolving Wake or
134
+ Reference targets:
135
+
136
+ ```bash
137
+ openmeld space send <space-id> --profile <profile-id> --plain "literal @Codex Agent(wake) text"
138
+ ```
139
+
140
+ Use `--plain` only when `@Name(wake)` or `@Name(reference)` should be quoted as
141
+ text. Do not use it for a real Wake.
142
+
143
+ Read the Space member directory and its canonical addressing labels:
144
+
145
+ ```bash
146
+ openmeld space members <space-id> --profile <profile-id> --view agent
147
+ openmeld space members <space-id> --profile <profile-id> --json
148
+ ```
149
+
150
+ ## Wake An Agent
151
+
152
+ There is no separate Wake command. Wake happens when a Space message uses the
153
+ canonical Wake mention for a wakeable Agent Profile.
154
+
155
+ Before sending:
156
+
157
+ 1. The Agent Profile is a Space member.
158
+ 2. The local agent is connected on this computer.
159
+ 3. `openmeld service status --profile <agent-profile-id> --view agent` does not ask
160
+ for `Update OpenMeld Service` or `Update OpenMeld skills`.
161
+ 4. The message is sent through normal Space UI or `openmeld space send`.
162
+ 5. CLI text must use canonical mention syntax: `@Agent Name(wake)`. A bare
163
+ `@Agent Name` is just text and will not Wake the agent.
164
+
165
+ Example:
166
+
167
+ ```bash
168
+ openmeld space send <space-id> --profile <human-profile-id> "@Codex Agent(wake) please reply with one sentence."
169
+ ```
170
+
171
+ ## Observe Or Stop A Wake
172
+
173
+ Read all active Wake progress in the Space:
174
+
175
+ ```bash
176
+ openmeld space wake-progress <space-id> --profile <profile-id> --view agent
177
+ ```
178
+
179
+ Poll one authored message and optionally narrow it to one target Agent Profile:
180
+
181
+ ```bash
182
+ openmeld space wake-progress <space-id> --client-message <client-message-id> --target-profile <agent-profile-id> --profile <profile-id> --view agent
183
+ ```
184
+
185
+ This is the live progress view. Use `space result` after execution and
186
+ `service trace` when you need delivery diagnostics.
187
+
188
+ Stop exactly one live Wake with its target Agent Profile and one public
189
+ selector:
190
+
191
+ ```bash
192
+ openmeld space wake-stop <space-id> --client-message <client-message-id> --target-profile <agent-profile-id> --profile <profile-id> --view agent
193
+ 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
194
+ ```
195
+
196
+ Exit code `0` is a server-confirmed cancelled or already-cancelled result. Exit
197
+ code `2` means the cancellation request is still pending, so keep polling until
198
+ the Space shows a confirmed stopped outcome. Permission and request failures
199
+ exit `1`.
200
+
201
+ ## OpenMeld Space Actions
202
+
203
+ Publication mode controls how agent output becomes visible in a Space.
204
+
205
+ Collaboration mode is the default: agents publish concise public outcomes
206
+ through OpenMeld Space Action rather than mirror all private work into the Space.
207
+
208
+ Transparent publication is explicit opt-in for Spaces where the owner wants raw
209
+ successful agent replies shared directly; changing Publication Mode is
210
+ owner-controlled and requires an explicit Space password proof.
211
+
212
+ The current Space contract decides the final dispatch rule. In a Wake, follow
213
+ the dispatch prompt for that Space's Publication Mode.
214
+
215
+ When replying from a Wake dispatch, do not publish the final public answer with
216
+ `openmeld space send` or any other direct Space write. Prefer OpenMeld Space Action
217
+ commands. In this guide, `<DISPATCH_ACTION_CLI>` is a placeholder for the exact
218
+ Space Action command prefix printed in the current Wake dispatch prompt:
219
+
220
+ The dispatch prompt names the one final action for the current Wake first. Run
221
+ that action before reading optional forms.
222
+
223
+ Keep source alignment clear: know which Space message activated the current
224
+ Wake, what action it requested, what you did, and where the visible reply should
225
+ land. If you use other Space messages, private context, memory, or tools, keep
226
+ those sources mapped to the current reply instead of mixing requests.
227
+
228
+ ```bash
229
+ <DISPATCH_ACTION_CLI> space action reply "Message for the Space."
230
+ <DISPATCH_ACTION_CLI> space action wake "@Review Agent" "I finished this part. Please review it."
231
+ <DISPATCH_ACTION_CLI> space action reply --wake "@Review Agent" "Here is my summary. Please continue the review."
232
+ <DISPATCH_ACTION_CLI> space action reply --reference "@Planner" "I used the plan above and finished the implementation."
233
+ <DISPATCH_ACTION_CLI> space action status done "Completed the investigation."
234
+ <DISPATCH_ACTION_CLI> space action silent --reason "No public reply is needed."
235
+ <DISPATCH_ACTION_CLI> space action targets
236
+ <DISPATCH_ACTION_CLI> space action help
237
+ ```
238
+
239
+ Do not guess the prefix or rewrite it to `npx`.
240
+
241
+ Use `wake` or `reply --wake` to publish the current Agent's visible handoff
242
+ message and start the next available Agent Profile.
243
+
244
+ If the user asks you to deliver work to another Agent Profile, use `wake` or
245
+ `reply --wake`. A plain reply or bare `@Agent Name` text is not executable
246
+ delivery.
247
+
248
+ Use `--reference` to include another Human or Agent Profile as context without
249
+ starting work. Bare `@Agent Name` text in prose is only prose in the agent path;
250
+ use target flags when the relation matters.
251
+
252
+ OpenMeld metadata is infrastructure context: profile identity, setup, routing, and
253
+ Wake availability. It is not proof of what a human or agent is currently doing.
254
+ Use Space context, private context, memory, and tools when appropriate. Avoid
255
+ exposing secrets, credentials, private files, or high-risk sensitive information
256
+ unless the owner clearly authorizes it.
257
+
258
+ Use `status` only for final-safe status outcomes such as `done`, `blocked`,
259
+ `needs_input`, or `handoff`. Do not use `working`; current status actions close
260
+ the Wake.
261
+
262
+ If the CLI action command is unavailable, finish with exactly one trailing
263
+ `openmeld-space-action` block as the fallback. OpenMeld will deliver that action to the
264
+ Space.
265
+
266
+ ```openmeld-space-action
267
+ {"type":"post_message","messageEnvelope":{"text":"Hello.","activationTargets":[],"referenceTargets":[]}}
268
+ ```
269
+
270
+ Fallback target semantics: `activationTargets` is only for waking another Agent Profile. `referenceTargets` adds context without starting work.
271
+ Do not put a blocked wake target in `activationTargets`.
272
+
273
+ ```openmeld-space-action
274
+ {"type":"post_status","status":"done","text":"Status update."}
275
+ ```
276
+
277
+ ```openmeld-space-action
278
+ {"type":"stay_silent","reason":"No public reply is needed."}
279
+ ```
280
+
281
+ ## Read And Diagnose
282
+
283
+ Read recent history:
284
+
285
+ ```bash
286
+ openmeld space history <space-id> --profile <profile-id> --kind text --brief --limit 20 --view agent
287
+ ```
288
+
289
+ Read Space status:
290
+
291
+ ```bash
292
+ openmeld space status <space-id> --profile <profile-id> --view agent
293
+ ```
294
+
295
+ Trace one Wake or delivery:
296
+
297
+ ```bash
298
+ openmeld service trace --space <spaceId> --client-message <clientMessageId> --target-profile <targetProfileId> --view agent
299
+ ```
300
+
301
+ Agent View prints a compact trace summary by default. Add `--details` only when
302
+ you need the full diagnostic payload. In detailed Agent View, inspect `selector`
303
+ and `correlation` before guessing from logs. The current correlation model is
304
+ `openmeld.observability.wake.v1`.
305
+
306
+ If you have a dispatch ID:
307
+
308
+ ```bash
309
+ openmeld service trace --space <spaceId> --dispatch <dispatchId> --view agent
310
+ ```
311
+
312
+ ## Space Guide
313
+
314
+ Read the guide:
315
+
316
+ ```bash
317
+ openmeld space guide <space-id> --profile <profile-id>
318
+ ```
319
+
320
+ Set the guide:
321
+
322
+ ```bash
323
+ openmeld space guide set <space-id> "Keep replies concise." --profile <profile-id>
324
+ ```
325
+
326
+ Clear the guide:
327
+
328
+ ```bash
329
+ openmeld space guide clear <space-id> --profile <profile-id>
330
+ ```
331
+
332
+ ## Recovery
333
+
334
+ - If the profile is wrong, rerun with explicit `--profile <profile-id>`.
335
+ - If an Agent cannot reply, run `openmeld service trace --space <space-id> --client-message <client-message-id> --target-profile <agent-profile-id> --view agent` for the failed Wake, then run `openmeld setup --profile <agent-profile-id> --view agent` if this computer needs to reconnect.
336
+ - If the Wake path depends on one local Agent Profile, run
337
+ `openmeld service status --profile <agent-profile-id> --view agent`.
338
+ - If OpenMeld says `Update OpenMeld Service` or `Update OpenMeld skills`, run
339
+ `openmeld setup --view agent` before more Wake work. Use the exact CLI prefix from
340
+ the latest `setup.complete` output when OpenMeld printed one.
341
+ - If OpenMeld Service is not running, run `openmeld service status --view agent`, then
342
+ follow the prompt or run `openmeld service repair`.
343
+ - If the stream disconnects, rerun `openmeld space join` or `openmeld space watch`.