@cello-protocol/cli 0.0.233 → 0.0.234
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/package.json +4 -4
- package/dist/arg-parse.d.ts +0 -19
- package/dist/arg-parse.d.ts.map +0 -1
- package/dist/arg-parse.js +0 -29
- package/dist/arg-parse.js.map +0 -1
- package/dist/bin/cello.d.ts +0 -15
- package/dist/bin/cello.d.ts.map +0 -1
- package/dist/bin/cello.js.map +0 -1
- package/dist/cli-args.d.ts +0 -62
- package/dist/cli-args.d.ts.map +0 -1
- package/dist/cli-args.js +0 -119
- package/dist/cli-args.js.map +0 -1
- package/dist/commands.d.ts +0 -139
- package/dist/commands.d.ts.map +0 -1
- package/dist/commands.js +0 -1005
- package/dist/commands.js.map +0 -1
- package/dist/hermes/assets.d.ts +0 -35
- package/dist/hermes/assets.d.ts.map +0 -1
- package/dist/hermes/assets.js +0 -1396
- package/dist/hermes/assets.js.map +0 -1
- package/dist/hermes/install-hermes.d.ts +0 -44
- package/dist/hermes/install-hermes.d.ts.map +0 -1
- package/dist/hermes/install-hermes.js +0 -172
- package/dist/hermes/install-hermes.js.map +0 -1
- package/dist/json-out.d.ts +0 -41
- package/dist/json-out.d.ts.map +0 -1
- package/dist/json-out.js +0 -59
- package/dist/json-out.js.map +0 -1
- package/dist/parity-commands.d.ts +0 -358
- package/dist/parity-commands.d.ts.map +0 -1
- package/dist/parity-commands.js +0 -720
- package/dist/parity-commands.js.map +0 -1
- package/dist/registry.d.ts +0 -111
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -1552
- package/dist/registry.js.map +0 -1
- package/dist/screener-commands.d.ts +0 -57
- package/dist/screener-commands.d.ts.map +0 -1
- package/dist/screener-commands.js +0 -229
- package/dist/screener-commands.js.map +0 -1
|
@@ -1,358 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DOD-CLI-PARITY-1 Phases 1-2 — every daemon capability that was MCP-only, reachable from `cello`.
|
|
3
|
-
*
|
|
4
|
-
* Bash is the universal agent adapter: with these commands any bash-capable agent (not just Claude
|
|
5
|
-
* Code or Hermes) operates a CELLO node — connect, send, receive, seal — with no MCP dependency.
|
|
6
|
-
*
|
|
7
|
-
* Each command is a THIN PASS-THROUGH: parse args → call the SAME daemon IPC handler the
|
|
8
|
-
* corresponding cello_* MCP tool calls → emit the response under the §3 contract (json-out.ts).
|
|
9
|
-
* No daemon changes, no second IPC client, no logic that the daemon owns (validation, tier bounds,
|
|
10
|
-
* agent_id resolution) is duplicated here — the CLI surfaces the daemon's verdict, verbatim.
|
|
11
|
-
*
|
|
12
|
-
* ── The per-invocation current-agent problem (why `use-agent` persists) ──────────────────────
|
|
13
|
-
* The daemon's "current agent" is PER-CONNECTION state. The MCP shim holds one long-lived socket,
|
|
14
|
-
* so `cello_use_agent` sticks for the whole session. The CLI is the opposite: a fresh process and a
|
|
15
|
-
* fresh connection per invocation, torn down microseconds later. A naive `cello use-agent alice`
|
|
16
|
-
* pass-through would therefore set state on a dying socket and report ok:true while changing NOTHING
|
|
17
|
-
* for the next command — a fabricated success of exactly the kind §3 forbids.
|
|
18
|
-
*
|
|
19
|
-
* So the selection is DURABLE: `use-agent` calls the real handler (which validates the agent and
|
|
20
|
-
* auto-starts it — AUTOSTART-1) and, only if the daemon says ok, persists the name. Every
|
|
21
|
-
* agent-scoped command then REPLAYS `cello_use_agent` on its new connection before dispatching.
|
|
22
|
-
* That is not a parallel path — it is the same replay the MCP proxy performs after a reconnect
|
|
23
|
-
* (ipc-proxy.ts invariant 1), reusing the existing handler.
|
|
24
|
-
*
|
|
25
|
-
* Agent resolution, in order: explicit `--agent` > the persisted selection > (omitted, so the
|
|
26
|
-
* daemon applies its own sole-online-agent fallback, and stays ambiguous → no_current_agent when
|
|
27
|
-
* two or more are online). If a replay FAILS, the command STOPS and surfaces that error — it never
|
|
28
|
-
* shrugs and lets the daemon's fallback quietly run the work as a different agent.
|
|
29
|
-
*/
|
|
30
|
-
import { type EmittedOutput, type EmitOptions } from "./json-out.js";
|
|
31
|
-
export type CliOutput = EmittedOutput;
|
|
32
|
-
/** Options every parity command accepts. */
|
|
33
|
-
export interface ParityOptions extends EmitOptions {
|
|
34
|
-
/** `--agent <name>` — overrides the persisted selection for this invocation only. */
|
|
35
|
-
agent?: string;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* The persisted agent selection, or undefined if none was ever made.
|
|
39
|
-
*
|
|
40
|
-
* ENOENT — never selected — is the ONLY swallowed error. A blanket catch here would let
|
|
41
|
-
* an unreadable file (EACCES, EISDIR, a corrupt mount) read as "no selection", after which the
|
|
42
|
-
* daemon's sole-online fallback would quietly run the command as whatever agent happens to be up:
|
|
43
|
-
* the operator's selection silently replaced by a different identity, exit 0. Anything that is not
|
|
44
|
-
* "the file isn't there" is a real failure and is thrown.
|
|
45
|
-
*/
|
|
46
|
-
export declare function readCurrentAgent(celloDir: string): Promise<string | undefined>;
|
|
47
|
-
/**
|
|
48
|
-
* CLI command name → the daemon IPC method it calls. The ONE place a CLI command's daemon IPC
|
|
49
|
-
* method is named.
|
|
50
|
-
*
|
|
51
|
-
* The registry's `ipcMethod` field is set FROM this map, and every function below dispatches FROM
|
|
52
|
-
* this map — so the field that DoD §9's parity test audits is, by construction, the literal that is
|
|
53
|
-
* actually sent. Two independent strings would let the registry say `cello_contact_set_moniker`
|
|
54
|
-
* while the code calls `cello_contact_set_away`, and the audit — which only reads the metadata —
|
|
55
|
-
* would happily pass. A comment-in-a-field is not a guarantee; this is.
|
|
56
|
-
*
|
|
57
|
-
* The KEYS are the CLI/MCP capability names (DOD-ONBOARD-HELP-1 §2b: one vocabulary). The VALUES
|
|
58
|
-
* are the daemon's IPC WIRE names, which deliberately do NOT move — the shim maps tool
|
|
59
|
-
* `cello_agents` onto the existing `cello_list_agents` method. Renaming the wire would break a new
|
|
60
|
-
* daemon talking to an OLD connect shim; connect has no daemon dependency, so nothing pins the two
|
|
61
|
-
* together. That asymmetry is the whole reason this table exists rather than a string concat.
|
|
62
|
-
*/
|
|
63
|
-
export declare const IPC_METHODS: {
|
|
64
|
-
readonly agents: "cello_list_agents";
|
|
65
|
-
readonly "start-agent": "cello_start_agent";
|
|
66
|
-
readonly "set-agent-offline": "cello_set_agent_offline";
|
|
67
|
-
readonly "use-agent": "cello_use_agent";
|
|
68
|
-
readonly "stop-using-agent": "cello_stop_using_agent";
|
|
69
|
-
readonly inbox: "cello_check_notifications";
|
|
70
|
-
readonly sessions: "cello_list_sessions";
|
|
71
|
-
readonly transcript: "cello_get_transcript";
|
|
72
|
-
readonly quarantined: "cello_get_quarantined";
|
|
73
|
-
readonly "sealed-receipt": "cello_get_sealed_receipt";
|
|
74
|
-
readonly "initiate-session": "cello_initiate_session";
|
|
75
|
-
readonly send: "cello_send";
|
|
76
|
-
readonly receive: "cello_receive";
|
|
77
|
-
readonly "close-session": "cello_close_session";
|
|
78
|
-
readonly "await-session": "cello_await_session";
|
|
79
|
-
readonly "name-session": "cello_name_session";
|
|
80
|
-
readonly dismiss: "cello_dismiss";
|
|
81
|
-
readonly contacts: "cello_contact_list";
|
|
82
|
-
readonly "contact-add": "cello_contact_add";
|
|
83
|
-
readonly "contact-remove": "cello_contact_remove";
|
|
84
|
-
readonly "contact-set-tier": "cello_contact_set_tier";
|
|
85
|
-
readonly "contact-set-away": "cello_contact_set_away";
|
|
86
|
-
readonly "contact-set-moniker": "cello_contact_set_moniker";
|
|
87
|
-
readonly "contact-set-signal": "cello_contact_set_signal";
|
|
88
|
-
readonly "settings-get": "cello_settings_get";
|
|
89
|
-
readonly "settings-set": "cello_settings_set";
|
|
90
|
-
readonly "moniker-set": "cello_set_moniker";
|
|
91
|
-
readonly "doc-propose": "cello_doc_propose";
|
|
92
|
-
readonly "doc-invite": "cello_doc_invite";
|
|
93
|
-
readonly "doc-remove": "cello_doc_remove";
|
|
94
|
-
readonly "doc-inbox": "cello_doc_inbox";
|
|
95
|
-
readonly "doc-accept": "cello_doc_accept";
|
|
96
|
-
readonly "doc-refuse": "cello_doc_refuse";
|
|
97
|
-
readonly "doc-list": "cello_doc_list";
|
|
98
|
-
readonly "doc-read": "cello_doc_read";
|
|
99
|
-
readonly "doc-diff": "cello_doc_diff";
|
|
100
|
-
readonly "doc-watch": "cello_doc_watch";
|
|
101
|
-
readonly "doc-write": "cello_doc_write";
|
|
102
|
-
readonly "doc-publish": "cello_doc_publish";
|
|
103
|
-
readonly "doc-close": "cello_doc_close";
|
|
104
|
-
readonly "doc-kill": "cello_doc_kill";
|
|
105
|
-
readonly "attestation-consent-list": "cello_attestation_consent_list";
|
|
106
|
-
readonly "attestation-consent-accept": "cello_attestation_consent_accept";
|
|
107
|
-
readonly "attestation-consent-refuse": "cello_attestation_consent_refuse";
|
|
108
|
-
};
|
|
109
|
-
/** `cello agents` → cello_list_agents. Daemon-wide, not agent-scoped. */
|
|
110
|
-
export declare function listAgents(celloDir: string, opts: ParityOptions): Promise<CliOutput>;
|
|
111
|
-
/** `cello start-agent <name>` → cello_start_agent. Brings an agent online WITHOUT claiming current. */
|
|
112
|
-
export declare function startAgent(celloDir: string, name: string, opts: ParityOptions): Promise<CliOutput>;
|
|
113
|
-
/**
|
|
114
|
-
* `cello set-agent-offline <name>` → cello_set_agent_offline. (Was `set-agent-offline`, renamed because
|
|
115
|
-
* "stop" read as the opposite of `use-agent` when it is the opposite of `start-agent` — see the
|
|
116
|
-
* handler comment in agent-handlers.ts.)
|
|
117
|
-
*
|
|
118
|
-
* Also CLEARS the persisted selection when it names this agent (review F1). The daemon clears an
|
|
119
|
-
* offline agent from every connection's current-agent state; the CLI's durable mirror of that state
|
|
120
|
-
* must follow, or the next command would try to act as an agent the operator just took offline.
|
|
121
|
-
*/
|
|
122
|
-
export declare function setAgentOffline(celloDir: string, name: string, opts: ParityOptions): Promise<CliOutput>;
|
|
123
|
-
/**
|
|
124
|
-
* `cello stop-using-agent` — forget the CLI's persisted selection.
|
|
125
|
-
*
|
|
126
|
-
* IT DOES NOT RELEASE A LIVE MCP SESSION, AND MUST NOT CLAIM TO. Attendance is PER-CONNECTION. The
|
|
127
|
-
* MCP shim holds one long-lived socket, which is what `isAttended()` sees; every CLI invocation is a
|
|
128
|
-
* fresh ephemeral connection that starts with `currentAgent: null` and dies microseconds later. So
|
|
129
|
-
* calling the daemon handler from here would always take its idempotent branch and answer "this
|
|
130
|
-
* connection was not attending any agent" — true of the socket, and worthless to the operator, whose
|
|
131
|
-
* agent is attended somewhere else entirely.
|
|
132
|
-
*
|
|
133
|
-
* That is exactly the gesture to expect: attended in Claude Code, step over to a terminal, run
|
|
134
|
-
* `cello stop-using-agent`. Passing the daemon's reply through would print "nothing to release",
|
|
135
|
-
* exit 0, delete the persisted selection, and leave the agent attended with its away message still
|
|
136
|
-
* suppressed — a success message for the opposite of what happened, which is the same class of
|
|
137
|
-
* defect as the name that started all this (review finding 2).
|
|
138
|
-
*
|
|
139
|
-
* So the CLI reports ITS OWN effect and names the half it cannot reach. The daemon call is skipped
|
|
140
|
-
* rather than made-and-ignored: an IPC round-trip whose answer we would discard is not honesty, it
|
|
141
|
-
* is theatre.
|
|
142
|
-
*/
|
|
143
|
-
export declare function stopUsingAgent(celloDir: string, opts: ParityOptions): Promise<CliOutput>;
|
|
144
|
-
/**
|
|
145
|
-
* `cello use-agent <name>` → cello_use_agent, and — only if the daemon accepts it — persists the
|
|
146
|
-
* selection so it survives this process. The handler auto-starts the agent if offline (AUTOSTART-1).
|
|
147
|
-
* A rejected selection is NEVER written: a later command must not silently act as an agent the
|
|
148
|
-
* daemon refused.
|
|
149
|
-
*/
|
|
150
|
-
export declare function useAgent(celloDir: string, name: string, opts: ParityOptions): Promise<CliOutput>;
|
|
151
|
-
/** `cello inbox [--scope current|all]` → cello_check_notifications (the push-loss reconciler). */
|
|
152
|
-
export declare function inbox(celloDir: string, opts: ParityOptions & {
|
|
153
|
-
scope?: "current" | "all";
|
|
154
|
-
}): Promise<CliOutput>;
|
|
155
|
-
/**
|
|
156
|
-
* `cello sessions` → cello_list_sessions: THIS agent's sessions, matching the MCP tool exactly.
|
|
157
|
-
*
|
|
158
|
-
* DOD-CLI-SESSIONS-SCOPE-1. It used to call the daemon-wide `list_sessions` instead, whose comment
|
|
159
|
-
* explained why — "for the `cello sessions` CLI which has no current agent". That was true when it
|
|
160
|
-
* was written and stopped being true when `use-agent` became durable: the CLI has a persisted
|
|
161
|
-
* selection now, and every other agent-scoped command replays it. The effect of the stale premise
|
|
162
|
-
* was that `cello sessions` answered for ALL agents while `cello_sessions` answered for one, so the
|
|
163
|
-
* two surfaces reported different open-session sets for the same selection — and a multi-agent
|
|
164
|
-
* operator read another agent's rows as their own.
|
|
165
|
-
*
|
|
166
|
-
* The daemon-wide view is still reachable, as `--all-agents`, because it is genuinely useful for
|
|
167
|
-
* "what is open anywhere on this machine". It is opt-in: a listing that silently answers for a
|
|
168
|
-
* principal you did not ask about is the bug, not the feature.
|
|
169
|
-
*/
|
|
170
|
-
export declare function listSessions(celloDir: string, opts: ParityOptions & {
|
|
171
|
-
filter?: string;
|
|
172
|
-
limit?: number;
|
|
173
|
-
}): Promise<CliOutput>;
|
|
174
|
-
/** `cello transcript <session-id>` → cello_get_transcript (durable, survives a daemon restart). */
|
|
175
|
-
export declare function transcript(celloDir: string, sessionId: string, opts: ParityOptions): Promise<CliOutput>;
|
|
176
|
-
/**
|
|
177
|
-
* `cello quarantined <session-id> [sequence]` → cello_get_quarantined — a message CELLO REFUSED.
|
|
178
|
-
*
|
|
179
|
-
* DOD-M15-REFUSEDEVIDENCE-1. With no sequence it lists what is retained (metadata only); with one
|
|
180
|
-
* it returns that message's original text wrapped in a warning, as the LAST field of the response.
|
|
181
|
-
* The CLI exists alongside the MCP tool for the same reason the MCP tool exists at all: an operator
|
|
182
|
-
* who cannot reach it here will get their agent to go looking, and find it unframed.
|
|
183
|
-
*/
|
|
184
|
-
export declare function quarantined(celloDir: string, sessionId: string, sequence: number | string | undefined, opts: ParityOptions): Promise<CliOutput>;
|
|
185
|
-
/**
|
|
186
|
-
* `cello sealed-receipt <session-id>` → cello_get_sealed_receipt: the notarized SEAL receipt, the
|
|
187
|
-
* artifact the whole close ceremony exists to produce and the one an arbitrator reads.
|
|
188
|
-
*
|
|
189
|
-
* NOT necessarily bilateral — this said "bilateral" and that was wrong. `seal-escalation.ts:219`
|
|
190
|
-
* returns `seal_type: "unilateral"` when the counterparty never comes back, and that is exactly the
|
|
191
|
-
* receipt someone is holding when something went wrong. The response here carries no `seal_type`
|
|
192
|
-
* either (`session-read-handlers.ts`), so a reader distinguishes the two only via
|
|
193
|
-
* `legibility.participants[].attestation_mode === "absent"` — see `DOD-M15-UNILATERAL-1`.
|
|
194
|
-
*
|
|
195
|
-
* NOT the same handler as `cello relay-receipts <name>`, which calls cello_get_relay_receipts
|
|
196
|
-
* (per-message relay delivery proofs). The two are routinely conflated; they are different
|
|
197
|
-
* artifacts and must keep distinct names.
|
|
198
|
-
*/
|
|
199
|
-
export declare function sealedReceipt(celloDir: string, sessionId: string, opts: ParityOptions): Promise<CliOutput>;
|
|
200
|
-
/** `cello contact <pubkey> add` → cello_contact_add. */
|
|
201
|
-
export declare function contactAdd(celloDir: string, pubkey: string, opts: ParityOptions): Promise<CliOutput>;
|
|
202
|
-
/** `cello contact remove <pubkey>` → cello_contact_remove. */
|
|
203
|
-
export declare function contactRemove(celloDir: string, pubkey: string, opts: ParityOptions): Promise<CliOutput>;
|
|
204
|
-
/** `cello contacts` → cello_contact_list. */
|
|
205
|
-
export declare function contactList(celloDir: string, opts: ParityOptions): Promise<CliOutput>;
|
|
206
|
-
/** `cello contact set-tier <pubkey> <tier>` → cello_contact_set_tier. */
|
|
207
|
-
export declare function contactSetTier(celloDir: string, pubkey: string, tier: number, opts: ParityOptions): Promise<CliOutput>;
|
|
208
|
-
/** `cello contact set-away <pubkey> <message>` → cello_contact_set_away (empty message clears it). */
|
|
209
|
-
export declare function contactSetAway(celloDir: string, pubkey: string, message: string | null, opts: ParityOptions): Promise<CliOutput>;
|
|
210
|
-
/** `cello contact set-moniker <pubkey> <moniker>` → cello_contact_set_moniker (per-CONTACT pet name). */
|
|
211
|
-
export declare function contactSetMoniker(celloDir: string, pubkey: string, moniker: string | null, opts: ParityOptions): Promise<CliOutput>;
|
|
212
|
-
/** `cello settings get [key]` → cello_settings_get. Omitted key returns the whole set. */
|
|
213
|
-
export declare function settingsGet(celloDir: string, key: string | undefined, opts: ParityOptions): Promise<CliOutput>;
|
|
214
|
-
/** `cello settings set <key> <value>` → cello_settings_set. The DAEMON validates the key and, for
|
|
215
|
-
* bound keys, that the value is a finite positive integer; the CLI surfaces its verdict verbatim. */
|
|
216
|
-
export declare function settingsSet(celloDir: string, key: string, value: string | null, opts: ParityOptions): Promise<CliOutput>;
|
|
217
|
-
/** `cello config list` → every guard with its value AND its governance (version, direction, confirmed). */
|
|
218
|
-
export declare function gatewayConfigList(celloDir: string, opts: ParityOptions): Promise<CliOutput>;
|
|
219
|
-
/** `cello config get <key>` → one guard, plus whether its version chain still verifies. */
|
|
220
|
-
export declare function gatewayConfigGet(celloDir: string, key: string, opts: ParityOptions): Promise<CliOutput>;
|
|
221
|
-
/**
|
|
222
|
-
* `cello config set <key> <value>` — and THE human confirmation the whole D-4 decision rests on.
|
|
223
|
-
*
|
|
224
|
-
* Two phases, and the first one is not a dry run: the daemon attempts the change unconfirmed. If it
|
|
225
|
-
* TIGHTENS, it is already applied and we print the result. If it LOOSENS, the store refuses it (no
|
|
226
|
-
* row written) and answers `needs_confirmation` — only then do we prompt, and only then do we
|
|
227
|
-
* re-send with `confirmed: true`.
|
|
228
|
-
*
|
|
229
|
-
* There is deliberately NO `--yes` flag (M9B-D16). A flag that lets a script confirm a loosening is
|
|
230
|
-
* the environment-variable bypass with a friendlier name, and removing that bypass is the sibling
|
|
231
|
-
* decision (D-5). If stdin is not a TTY there is no human here, so the answer is no.
|
|
232
|
-
*/
|
|
233
|
-
export declare function gatewayConfigSet(celloDir: string, key: string, value: string, opts: ParityOptions, prompt?: (question: string) => Promise<ConfirmAnswer>): Promise<CliOutput>;
|
|
234
|
-
/** What a confirmation attempt actually resolved to. `no_tty` is NOT `no` — see F3 above. */
|
|
235
|
-
export type ConfirmAnswer = "yes" | "no" | "no_tty";
|
|
236
|
-
/**
|
|
237
|
-
* `cello policy log` → cello_policy_log (DOD-M9B-AUDIT-1, policy D-11).
|
|
238
|
-
*
|
|
239
|
-
* Ships with the enforcement flip by decision: it is the answer to "did this new error come from
|
|
240
|
-
* the security layer or from my own change?" — a lookup instead of a guess.
|
|
241
|
-
*/
|
|
242
|
-
export declare function policyLog(celloDir: string, opts: ParityOptions & {
|
|
243
|
-
limit?: number;
|
|
244
|
-
sinceMs?: number;
|
|
245
|
-
}): Promise<CliOutput>;
|
|
246
|
-
/** `cello moniker set <name>` / `cello moniker clear` → cello_set_moniker. Null clears the override.
|
|
247
|
-
* This is the agent's OWN outbound name — not `contact set-moniker`, which names a COUNTERPARTY. */
|
|
248
|
-
export declare function monikerSet(celloDir: string, moniker: string | null, opts: ParityOptions): Promise<CliOutput>;
|
|
249
|
-
/** `cello initiate-session <target-pubkey>` → cello_initiate_session. Prints the session_id. */
|
|
250
|
-
export declare function initiate(celloDir: string, targetPubkey: string, opts: ParityOptions & {
|
|
251
|
-
include?: string[];
|
|
252
|
-
exclude?: string[];
|
|
253
|
-
}): Promise<CliOutput>;
|
|
254
|
-
/**
|
|
255
|
-
* `cello send <session-id> <message>` → cello_send.
|
|
256
|
-
*
|
|
257
|
-
* Honors read-before-write exactly as the MCP tool does: if the daemon returns session_not_current
|
|
258
|
-
* (with its cursor), that verdict is surfaced VERBATIM and the command exits non-zero. It is never
|
|
259
|
-
* auto-fixed by silently reading the transcript first — the operator/agent must catch up explicitly,
|
|
260
|
-
* because a send that "worked" after a hidden read is a send whose ordering guarantees are a fiction.
|
|
261
|
-
*/
|
|
262
|
-
export declare function send(celloDir: string, sessionId: string, content: string, opts: ParityOptions & {
|
|
263
|
-
governanceDecisions?: Record<string, string>;
|
|
264
|
-
signal?: "over" | "standby" | "wrap";
|
|
265
|
-
estMinutes?: number;
|
|
266
|
-
}): Promise<CliOutput>;
|
|
267
|
-
/**
|
|
268
|
-
* `cello receive <session-id> [--timeout-ms N]` → cello_receive. Every unread message at once;
|
|
269
|
-
* waits up to timeout_ms only when nothing is unread.
|
|
270
|
-
*/
|
|
271
|
-
export declare function receive(celloDir: string, sessionId: string, opts: ParityOptions & {
|
|
272
|
-
timeoutMs?: number;
|
|
273
|
-
}): Promise<CliOutput>;
|
|
274
|
-
/**
|
|
275
|
-
* `cello close-session <session-id> [--force]` → cello_close_session. Triggers the seal ceremony —
|
|
276
|
-
* bilateral when the counterparty co-signs, unilateral when they never return
|
|
277
|
-
* (`seal-escalation.ts:219`). This said "the bilateral seal ceremony", which named the good case as
|
|
278
|
-
* the only case. --force is passed ONLY when asked for (mirroring the shim), since it forfeits the
|
|
279
|
-
* seal outright.
|
|
280
|
-
*/
|
|
281
|
-
export declare function closeSession(celloDir: string, sessionId: string, opts: ParityOptions & {
|
|
282
|
-
force?: boolean;
|
|
283
|
-
sessionName?: string;
|
|
284
|
-
}): Promise<CliOutput>;
|
|
285
|
-
/**
|
|
286
|
-
* `cello name-session <session-id> <name...>` (or --clear) → cello_name_session.
|
|
287
|
-
*
|
|
288
|
-
* DOD-SESSION-NAME-1 (AC-A15). The name is taken from the remaining positionals and joined, so
|
|
289
|
-
* multi-word names work without quoting: `cello name-session ab12… the deploy postmortem`.
|
|
290
|
-
* `--clear` sends null, which is how you un-name a session.
|
|
291
|
-
*/
|
|
292
|
-
export declare function nameSession(celloDir: string, sessionId: string, sessionName: string | null, opts: ParityOptions): Promise<CliOutput>;
|
|
293
|
-
/** `cello dismiss <session-id>` → cello_dismiss. Clears a terminal session from the inbox. */
|
|
294
|
-
export declare function dismissSession(celloDir: string, sessionId: string, opts: ParityOptions): Promise<CliOutput>;
|
|
295
|
-
/** `cello await-session [--timeout-ms N]` → cello_await_session. Blocks for an inbound doorbell. */
|
|
296
|
-
export declare function awaitSession(celloDir: string, opts: ParityOptions & {
|
|
297
|
-
timeoutMs?: number;
|
|
298
|
-
}): Promise<CliOutput>;
|
|
299
|
-
/** `cello attestation-consent list` → cello_attestation_consent_list. */
|
|
300
|
-
export declare function attestationConsentList(celloDir: string, opts: ParityOptions): Promise<CliOutput>;
|
|
301
|
-
/** `cello attestation-consent accept <signal-hash>` → cello_attestation_consent_accept. */
|
|
302
|
-
export declare function attestationConsentAccept(celloDir: string, hashPrefix: string, opts: ParityOptions): Promise<CliOutput>;
|
|
303
|
-
/** `cello attestation-consent refuse <hash> [message…]` → cello_attestation_consent_refuse. An empty message is OMITTED, not
|
|
304
|
-
* sent as "": silence is the default and it must be the literal absence of the field (M10B-D4). */
|
|
305
|
-
export declare function attestationConsentRefuse(celloDir: string, hashPrefix: string, message: string | null, opts: ParityOptions): Promise<CliOutput>;
|
|
306
|
-
/** `cello contact <pubkey> set-signal <hash> <on|off|clear>` → cello_contact_set_signal.
|
|
307
|
-
* `clear` sends null — distinct from `off`, which is an explicit "never show this to them". */
|
|
308
|
-
export declare function contactSetSignal(celloDir: string, pubkey: string, hashPrefix: string, present: boolean | null, opts: ParityOptions): Promise<CliOutput>;
|
|
309
|
-
/**
|
|
310
|
-
* `cello doc propose <peer-pubkey> [--type <t>] [--content <text>] [--append-only] [--admins <hex,hex>] [--retry <id>]`
|
|
311
|
-
* → cello_doc_propose.
|
|
312
|
-
*
|
|
313
|
-
* `--retry` re-sends an offer that was created locally but never reached the peer. The daemon has
|
|
314
|
-
* always had that branch and its failure guidance names it by id — but no surface forwarded the
|
|
315
|
-
* parameter, so the instruction could not be carried out and the closest thing an operator could do
|
|
316
|
-
* (propose again) minted a SECOND document, which is what the guidance warns against.
|
|
317
|
-
*
|
|
318
|
-
* The doc comment advertised a `--from-file` flag that was never implemented; corrected here rather
|
|
319
|
-
* than left for the next reader to try.
|
|
320
|
-
*/
|
|
321
|
-
export declare function docPropose(celloDir: string, peerPubkey: string, opts: ParityOptions & {
|
|
322
|
-
documentType?: string;
|
|
323
|
-
appendOnly?: boolean;
|
|
324
|
-
startingContent?: string;
|
|
325
|
-
documentId?: string;
|
|
326
|
-
admins?: string[];
|
|
327
|
-
}): Promise<CliOutput>;
|
|
328
|
-
/** `cello doc invite <document-id> <invitee-pubkey>` → cello_doc_invite. */
|
|
329
|
-
export declare function docInvite(celloDir: string, documentId: string, inviteePubkey: string, opts: ParityOptions): Promise<CliOutput>;
|
|
330
|
-
/** `cello doc remove <document-id> <holder-pubkey>` → cello_doc_remove. */
|
|
331
|
-
export declare function docRemove(celloDir: string, documentId: string, holderPubkey: string, opts: ParityOptions): Promise<CliOutput>;
|
|
332
|
-
/** `cello doc inbox` → cello_doc_inbox. Proposals awaiting a consent decision. */
|
|
333
|
-
export declare function docInbox(celloDir: string, opts: ParityOptions): Promise<CliOutput>;
|
|
334
|
-
/** `cello doc accept <document-id>` → cello_doc_accept. */
|
|
335
|
-
export declare function docAccept(celloDir: string, documentId: string, opts: ParityOptions): Promise<CliOutput>;
|
|
336
|
-
/** `cello doc refuse <document-id> [why…]` → cello_doc_refuse. An empty reason is OMITTED, so the
|
|
337
|
-
* daemon applies its own default rather than recording the empty string as the operator's words. */
|
|
338
|
-
export declare function docRefuse(celloDir: string, documentId: string, reason: string | null, opts: ParityOptions): Promise<CliOutput>;
|
|
339
|
-
/** `cello doc list` → cello_doc_list. */
|
|
340
|
-
export declare function docList(celloDir: string, opts: ParityOptions): Promise<CliOutput>;
|
|
341
|
-
/** `cello doc read <document-id>` → cello_doc_read. */
|
|
342
|
-
export declare function docRead(celloDir: string, documentId: string, opts: ParityOptions): Promise<CliOutput>;
|
|
343
|
-
/** `cello doc diff <document-id>` → cello_doc_diff. What changed since you last read it. */
|
|
344
|
-
export declare function docDiff(celloDir: string, documentId: string, opts: ParityOptions): Promise<CliOutput>;
|
|
345
|
-
/** `cello doc watch <document-id> [paths…]` → cello_doc_watch. No paths LISTS; `--clear` clears. */
|
|
346
|
-
export declare function docWatch(celloDir: string, documentId: string, paths: string[] | null, opts: ParityOptions): Promise<CliOutput>;
|
|
347
|
-
/** `cello doc write <document-id> <content…>` → cello_doc_write.
|
|
348
|
-
*
|
|
349
|
-
* The COMPLETE new text, never a patch — the daemon diffs it against current state, so an offset
|
|
350
|
-
* cannot go stale under the peer's concurrent edit. */
|
|
351
|
-
export declare function docWrite(celloDir: string, documentId: string, content: string, opts: ParityOptions): Promise<CliOutput>;
|
|
352
|
-
/** `cello doc close <document-id>` → cello_doc_close. Every current holder is told; `holdersNotified` says who took it. */
|
|
353
|
-
export declare function docClose(celloDir: string, documentId: string, opts: ParityOptions): Promise<CliOutput>;
|
|
354
|
-
/** `cello doc kill <document-id>` → cello_doc_kill. One-sided and immediate; every holder is told best-effort. */
|
|
355
|
-
export declare function docKill(celloDir: string, documentId: string, opts: ParityOptions): Promise<CliOutput>;
|
|
356
|
-
/** `cello doc publish <document-id>` → cello_doc_publish. Publishes what is in the FILE right now. */
|
|
357
|
-
export declare function docPublish(celloDir: string, documentId: string, opts: ParityOptions): Promise<CliOutput>;
|
|
358
|
-
//# sourceMappingURL=parity-commands.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parity-commands.d.ts","sourceRoot":"","sources":["../src/parity-commands.ts"],"names":[],"mappings":"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"}
|