@oh-hai/cli 0.1.0-beta.0
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/README.md +154 -0
- package/dist/auth/file-backend.d.ts +16 -0
- package/dist/auth/file-backend.js +98 -0
- package/dist/auth/file-backend.js.map +1 -0
- package/dist/auth/keychain.d.ts +54 -0
- package/dist/auth/keychain.js +232 -0
- package/dist/auth/keychain.js.map +1 -0
- package/dist/auth/resolve-token.d.ts +34 -0
- package/dist/auth/resolve-token.js +91 -0
- package/dist/auth/resolve-token.js.map +1 -0
- package/dist/auth/secure-write.d.ts +2 -0
- package/dist/auth/secure-write.js +30 -0
- package/dist/auth/secure-write.js.map +1 -0
- package/dist/auth/token-store.d.ts +104 -0
- package/dist/auth/token-store.js +208 -0
- package/dist/auth/token-store.js.map +1 -0
- package/dist/cli.d.ts +16 -0
- package/dist/cli.js +238 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/agents.d.ts +2 -0
- package/dist/commands/agents.js +370 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/ask.d.ts +2 -0
- package/dist/commands/ask.js +246 -0
- package/dist/commands/ask.js.map +1 -0
- package/dist/commands/context.d.ts +72 -0
- package/dist/commands/context.js +7 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.js +237 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/flags.d.ts +25 -0
- package/dist/commands/flags.js +100 -0
- package/dist/commands/flags.js.map +1 -0
- package/dist/commands/handlers.d.ts +2 -0
- package/dist/commands/handlers.js +26 -0
- package/dist/commands/handlers.js.map +1 -0
- package/dist/commands/http.d.ts +8 -0
- package/dist/commands/http.js +19 -0
- package/dist/commands/http.js.map +1 -0
- package/dist/commands/inbox.d.ts +2 -0
- package/dist/commands/inbox.js +111 -0
- package/dist/commands/inbox.js.map +1 -0
- package/dist/commands/login.d.ts +2 -0
- package/dist/commands/login.js +272 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +2 -0
- package/dist/commands/logout.js +35 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/messaging/await.d.ts +43 -0
- package/dist/commands/messaging/await.js +125 -0
- package/dist/commands/messaging/await.js.map +1 -0
- package/dist/commands/messaging/build.d.ts +46 -0
- package/dist/commands/messaging/build.js +66 -0
- package/dist/commands/messaging/build.js.map +1 -0
- package/dist/commands/messaging/http.d.ts +22 -0
- package/dist/commands/messaging/http.js +270 -0
- package/dist/commands/messaging/http.js.map +1 -0
- package/dist/commands/messaging/identity.d.ts +29 -0
- package/dist/commands/messaging/identity.js +63 -0
- package/dist/commands/messaging/identity.js.map +1 -0
- package/dist/commands/messaging/shared.d.ts +53 -0
- package/dist/commands/messaging/shared.js +135 -0
- package/dist/commands/messaging/shared.js.map +1 -0
- package/dist/commands/messaging/state.d.ts +26 -0
- package/dist/commands/messaging/state.js +82 -0
- package/dist/commands/messaging/state.js.map +1 -0
- package/dist/commands/messaging/validate.d.ts +40 -0
- package/dist/commands/messaging/validate.js +193 -0
- package/dist/commands/messaging/validate.js.map +1 -0
- package/dist/commands/messaging/wire.d.ts +133 -0
- package/dist/commands/messaging/wire.js +16 -0
- package/dist/commands/messaging/wire.js.map +1 -0
- package/dist/commands/notify.d.ts +2 -0
- package/dist/commands/notify.js +68 -0
- package/dist/commands/notify.js.map +1 -0
- package/dist/commands/registry.d.ts +14 -0
- package/dist/commands/registry.js +144 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/commands/stub.d.ts +1 -0
- package/dist/commands/stub.js +9 -0
- package/dist/commands/stub.js.map +1 -0
- package/dist/commands/task.d.ts +2 -0
- package/dist/commands/task.js +223 -0
- package/dist/commands/task.js.map +1 -0
- package/dist/commands/whoami.d.ts +6 -0
- package/dist/commands/whoami.js +90 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/config-file.d.ts +38 -0
- package/dist/config-file.js +233 -0
- package/dist/config-file.js.map +1 -0
- package/dist/config.d.ts +64 -0
- package/dist/config.js +97 -0
- package/dist/config.js.map +1 -0
- package/dist/envelope.d.ts +25 -0
- package/dist/envelope.js +41 -0
- package/dist/envelope.js.map +1 -0
- package/dist/exit-codes.d.ts +51 -0
- package/dist/exit-codes.js +57 -0
- package/dist/exit-codes.js.map +1 -0
- package/dist/help.d.ts +1 -0
- package/dist/help.js +17 -0
- package/dist/help.js.map +1 -0
- package/dist/terminal.d.ts +5 -0
- package/dist/terminal.js +18 -0
- package/dist/terminal.js.map +1 -0
- package/dist/version.d.ts +8 -0
- package/dist/version.js +23 -0
- package/dist/version.js.map +1 -0
- package/package.json +38 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// `oh-hai logout` (docs/specs/cli.md §4.3). Remove the stored token for the current (or
|
|
2
|
+
// `--account`) identity from the keychain and scrub the file fallback; `--all` clears every
|
|
3
|
+
// stored identity. Idempotent and fully offline — removing an already-absent token (or `--all`
|
|
4
|
+
// with nothing stored) is a no-op that exits 0 (§9). No Hub call is ever made.
|
|
5
|
+
import { CliError, buildOk, serializeEnvelope } from "../envelope.js";
|
|
6
|
+
import { originOf } from "../auth/resolve-token.js";
|
|
7
|
+
import { flagOn, parseCommandArgs } from "./flags.js";
|
|
8
|
+
export async function logoutCommand(ctx) {
|
|
9
|
+
const { values } = parseCommandArgs(ctx.argv, { all: { type: "boolean" } });
|
|
10
|
+
const store = await ctx.runtime.openStore();
|
|
11
|
+
if (flagOn(values.all)) {
|
|
12
|
+
const cleared = await store.clearAll();
|
|
13
|
+
if (ctx.json) {
|
|
14
|
+
ctx.io.log(serializeEnvelope(buildOk("logout", { cleared })));
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
ctx.io.log(cleared > 0
|
|
18
|
+
? `Cleared ${cleared} stored ${cleared === 1 ? "identity" : "identities"}.`
|
|
19
|
+
: "No stored identities.");
|
|
20
|
+
}
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const account = ctx.config.account;
|
|
24
|
+
if (account === undefined) {
|
|
25
|
+
throw new CliError("usage", "an agent id is required — pass --account/--agent or set MA2H_AGENT_ID, or use --all.");
|
|
26
|
+
}
|
|
27
|
+
const removed = await store.delete(originOf(ctx.config.baseUrl), account);
|
|
28
|
+
if (ctx.json) {
|
|
29
|
+
ctx.io.log(serializeEnvelope(buildOk("logout", { agent_id: account, cleared: removed ? 1 : 0 })));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
ctx.io.log(removed ? `Logged out ${account}.` : `No stored token for ${account}.`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,4FAA4F;AAC5F,+FAA+F;AAC/F,+EAA+E;AAE/E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAmB;IACrD,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAE5C,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,EAAE,CAAC,GAAG,CACR,OAAO,GAAG,CAAC;gBACT,CAAC,CAAC,WAAW,OAAO,WAAW,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,GAAG;gBAC3E,CAAC,CAAC,uBAAuB,CAC5B,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;IACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,QAAQ,CAChB,OAAO,EACP,sFAAsF,CACvF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1E,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpG,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,GAAG,CAAC,CAAC,CAAC,uBAAuB,OAAO,GAAG,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { CommandContext } from "../context.js";
|
|
2
|
+
import type { GetMessageBody, JsonObject } from "./wire.js";
|
|
3
|
+
export declare const DEFAULT_INTERVAL_MS = 2000;
|
|
4
|
+
export declare const DEFAULT_BUDGET_MS = 120000;
|
|
5
|
+
/** Per-poll request bound when no `--timeout`/`MA2H_TIMEOUT_MS` is set. */
|
|
6
|
+
export declare const DEFAULT_PER_REQUEST_MS = 10000;
|
|
7
|
+
/** Resolve the dual-timeout budget (spec §4.4). Poll budget := `--await-timeout` (canonical) else
|
|
8
|
+
* `--timeout` (the back-compat alias — the scripts spelled the poll budget `--timeout`, which
|
|
9
|
+
* resolves into `config.timeoutMs`) else 120s. Per-poll request bound := `config.timeoutMs`
|
|
10
|
+
* (the global `--timeout`) else 10s, capped to the remaining budget in the loop. Rejects a
|
|
11
|
+
* non-positive `--interval`/`--await-timeout` up front (a NaN/0/negative would busy-loop). */
|
|
12
|
+
export declare function resolveAwaitTiming(ctx: CommandContext, intervalRaw: string | undefined, awaitTimeoutRaw: string | undefined, timeoutFlagRaw: string | undefined): {
|
|
13
|
+
intervalMs: number;
|
|
14
|
+
budgetMs: number;
|
|
15
|
+
perRequestMs: number;
|
|
16
|
+
};
|
|
17
|
+
export interface AwaitParams {
|
|
18
|
+
token: string;
|
|
19
|
+
id: string;
|
|
20
|
+
/** The message kind this subcommand resumes; a wrong-kind id fails fast. */
|
|
21
|
+
expectedType: "ask" | "task";
|
|
22
|
+
/** Poll cadence between non-terminal reads (ms). */
|
|
23
|
+
intervalMs: number;
|
|
24
|
+
/** Total poll budget (ms) — bounds the WHOLE await, not just the sleeps. */
|
|
25
|
+
budgetMs: number;
|
|
26
|
+
/** Per-poll request bound (ms), capped to the remaining budget each round. */
|
|
27
|
+
perRequestMs?: number;
|
|
28
|
+
/** Injectable clock (defaults to Date.now) — lets tests drive the timeout deterministically. */
|
|
29
|
+
now?: () => number;
|
|
30
|
+
}
|
|
31
|
+
/** Poll until terminal, then return the message body with its embedded terminal `response`.
|
|
32
|
+
* Fails fast on a wrong-kind id and throws a `timeout` CliError (exit 7) once the budget is
|
|
33
|
+
* exhausted. Sleeps go through `ctx.runtime.sleep` so tests never actually wait. */
|
|
34
|
+
export declare function awaitResolution(ctx: CommandContext, params: AwaitParams): Promise<GetMessageBody>;
|
|
35
|
+
/** Print a terminal resolution. Reads by resolution: `value` is present for an answered ask
|
|
36
|
+
* (absent for task, and for declined/cancelled), so a missing value is never an error (§6).
|
|
37
|
+
* `includeValue` is false for task (a task Response carries no value). The answer detail nests
|
|
38
|
+
* under `body.response.response` (ResponseDetail). Under `--json`, response.value/comment are
|
|
39
|
+
* printed to the asker (who requested them) but this is a CLI — they are never logged (§5.4).
|
|
40
|
+
* `openedState` is the agent-owned sealed `state`, already opened by the caller (§9.3) when
|
|
41
|
+
* MA2H_STATE_SEAL_KEY was set — surfaced verbatim to the asker (it is the asker's own resume
|
|
42
|
+
* blob), never logged. */
|
|
43
|
+
export declare function printResolution(ctx: CommandContext, body: GetMessageBody, includeValue: boolean, openedState?: JsonObject): void;
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// Shared pull-resume for `ask await` / `task await` (spec §4.4). Polls GET /v1/messages/:id
|
|
2
|
+
// (submitter-bound, agent bearer) until the message reaches a terminal status, then prints the
|
|
3
|
+
// outcome. A pull Response is trusted via the authenticated GET transport + the immutable
|
|
4
|
+
// terminal record — it carries no detached signature (push is the signed path, not the CLI's
|
|
5
|
+
// concern here), so no crypto is involved. Exit 0 at any terminal state; the *outcome* is in
|
|
6
|
+
// `data.status`, so callers branch on that, not the exit code (spec §7).
|
|
7
|
+
import { CliError, buildOk, serializeEnvelope } from "../../envelope.js";
|
|
8
|
+
import { pollMessage } from "./http.js";
|
|
9
|
+
import { MAX_TIMER_MS, positiveInt, sanitizeForTerminal } from "./shared.js";
|
|
10
|
+
export const DEFAULT_INTERVAL_MS = 2000;
|
|
11
|
+
export const DEFAULT_BUDGET_MS = 120_000;
|
|
12
|
+
/** Per-poll request bound when no `--timeout`/`MA2H_TIMEOUT_MS` is set. */
|
|
13
|
+
export const DEFAULT_PER_REQUEST_MS = 10_000;
|
|
14
|
+
/** Terminal once out of the pre-resolution states. `delivered` is the notify terminal, never an
|
|
15
|
+
* ask/task's; keying on "not open and not delivered" stays correct across the Status union. */
|
|
16
|
+
function isTerminal(status) {
|
|
17
|
+
return status !== "open" && status !== "delivered";
|
|
18
|
+
}
|
|
19
|
+
/** Resolve the dual-timeout budget (spec §4.4). Poll budget := `--await-timeout` (canonical) else
|
|
20
|
+
* `--timeout` (the back-compat alias — the scripts spelled the poll budget `--timeout`, which
|
|
21
|
+
* resolves into `config.timeoutMs`) else 120s. Per-poll request bound := `config.timeoutMs`
|
|
22
|
+
* (the global `--timeout`) else 10s, capped to the remaining budget in the loop. Rejects a
|
|
23
|
+
* non-positive `--interval`/`--await-timeout` up front (a NaN/0/negative would busy-loop). */
|
|
24
|
+
export function resolveAwaitTiming(ctx, intervalRaw, awaitTimeoutRaw, timeoutFlagRaw) {
|
|
25
|
+
const intervalMs = intervalRaw !== undefined ? positiveMs(intervalRaw, "--interval") : DEFAULT_INTERVAL_MS;
|
|
26
|
+
const awaitTimeout = awaitTimeoutRaw !== undefined ? positiveMs(awaitTimeoutRaw, "--await-timeout") : undefined;
|
|
27
|
+
// Poll budget := `--await-timeout` (canonical) else the legacy `--timeout` FLAG (back-compat,
|
|
28
|
+
// §4.4) else the default. ONLY the flag aliases the budget — `MA2H_TIMEOUT_MS` env is per-request
|
|
29
|
+
// ONLY (§6). As an await budget the flag is validated with the SAME strictness as `--await-timeout`
|
|
30
|
+
// (positive integer within the timer range): a `0` / fractional / over-ceiling value is a usage
|
|
31
|
+
// error, not a silent truncation or revert to the default.
|
|
32
|
+
const timeoutFlag = timeoutFlagRaw !== undefined ? positiveMs(timeoutFlagRaw, "--timeout") : undefined;
|
|
33
|
+
const budgetMs = awaitTimeout ?? timeoutFlag ?? DEFAULT_BUDGET_MS;
|
|
34
|
+
// The per-request bound: `config.timeoutMs` (from `--timeout` / `MA2H_TIMEOUT_MS`, §6), defaulted,
|
|
35
|
+
// clamped to the timer ceiling, and never larger than the whole budget.
|
|
36
|
+
const configTimeout = ctx.config.timeoutMs !== undefined && ctx.config.timeoutMs > 0 ? Math.min(ctx.config.timeoutMs, MAX_TIMER_MS) : DEFAULT_PER_REQUEST_MS;
|
|
37
|
+
const perRequestMs = Math.min(configTimeout, budgetMs);
|
|
38
|
+
return { intervalMs, budgetMs, perRequestMs };
|
|
39
|
+
}
|
|
40
|
+
/** A strictly-positive INTEGER millisecond flag (`--interval` / `--await-timeout` / `--timeout`).
|
|
41
|
+
* Delegates to the shared `positiveInt` (same range + integer check, so a non-integer can't reach
|
|
42
|
+
* `AbortSignal.timeout()` and an oversized value can't overflow `setTimeout`), with a ms-specific
|
|
43
|
+
* message. */
|
|
44
|
+
function positiveMs(raw, flag) {
|
|
45
|
+
return positiveInt(raw, flag, "a positive integer number of milliseconds");
|
|
46
|
+
}
|
|
47
|
+
/** Poll until terminal, then return the message body with its embedded terminal `response`.
|
|
48
|
+
* Fails fast on a wrong-kind id and throws a `timeout` CliError (exit 7) once the budget is
|
|
49
|
+
* exhausted. Sleeps go through `ctx.runtime.sleep` so tests never actually wait. */
|
|
50
|
+
export async function awaitResolution(ctx, params) {
|
|
51
|
+
const now = params.now ?? (() => Date.now());
|
|
52
|
+
const perRequestMs = params.perRequestMs ?? DEFAULT_PER_REQUEST_MS;
|
|
53
|
+
const deadline = now() + params.budgetMs;
|
|
54
|
+
const noun = params.expectedType === "ask" ? "decisions" : "actions";
|
|
55
|
+
for (;;) {
|
|
56
|
+
const remaining = deadline - now();
|
|
57
|
+
if (remaining <= 0) {
|
|
58
|
+
throw new CliError("timeout", `${params.expectedType} ${params.id} not resolved within ${params.budgetMs}ms`);
|
|
59
|
+
}
|
|
60
|
+
const body = await pollMessage(ctx, params.token, params.id, Math.min(remaining, perRequestMs));
|
|
61
|
+
// A copied notify/other-kind id would otherwise hang to timeout or print a misleading
|
|
62
|
+
// outcome — fail fast on the wrong message type (generic error; the id exists, it's the
|
|
63
|
+
// wrong kind for this subcommand).
|
|
64
|
+
if (body.type !== params.expectedType) {
|
|
65
|
+
throw new CliError("error", `message ${params.id} is a ${body.type}, not ${params.expectedType === "ask" ? "an" : "a"} ${params.expectedType} — '${params.expectedType} await' only resumes ${params.expectedType} ${noun}`);
|
|
66
|
+
}
|
|
67
|
+
if (isTerminal(body.status))
|
|
68
|
+
return body;
|
|
69
|
+
// The poll itself consumed budget (that's why `now()` is sampled again here, not reused from
|
|
70
|
+
// the top of the loop). If it's exhausted, fail now with the last observed status rather than
|
|
71
|
+
// sleeping and looping to the terser top-of-loop timeout.
|
|
72
|
+
const afterPoll = deadline - now();
|
|
73
|
+
if (afterPoll <= 0) {
|
|
74
|
+
throw new CliError("timeout", `${params.expectedType} ${params.id} not resolved within ${params.budgetMs}ms (last status: ${body.status})`);
|
|
75
|
+
}
|
|
76
|
+
// Cap the sleep to the remaining budget so a long --interval can't overshoot the timeout.
|
|
77
|
+
await ctx.runtime.sleep(Math.min(params.intervalMs, afterPoll));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** Print a terminal resolution. Reads by resolution: `value` is present for an answered ask
|
|
81
|
+
* (absent for task, and for declined/cancelled), so a missing value is never an error (§6).
|
|
82
|
+
* `includeValue` is false for task (a task Response carries no value). The answer detail nests
|
|
83
|
+
* under `body.response.response` (ResponseDetail). Under `--json`, response.value/comment are
|
|
84
|
+
* printed to the asker (who requested them) but this is a CLI — they are never logged (§5.4).
|
|
85
|
+
* `openedState` is the agent-owned sealed `state`, already opened by the caller (§9.3) when
|
|
86
|
+
* MA2H_STATE_SEAL_KEY was set — surfaced verbatim to the asker (it is the asker's own resume
|
|
87
|
+
* blob), never logged. */
|
|
88
|
+
export function printResolution(ctx, body, includeValue, openedState) {
|
|
89
|
+
const response = body.response;
|
|
90
|
+
const detail = response?.response;
|
|
91
|
+
if (ctx.json) {
|
|
92
|
+
const data = { id: body.id, status: body.status };
|
|
93
|
+
if (detail?.actor !== undefined)
|
|
94
|
+
data.actor = detail.actor;
|
|
95
|
+
if (includeValue && detail?.value !== undefined)
|
|
96
|
+
data.value = detail.value;
|
|
97
|
+
if (detail?.comment !== undefined)
|
|
98
|
+
data.comment = detail.comment;
|
|
99
|
+
if (openedState !== undefined)
|
|
100
|
+
data.state = openedState;
|
|
101
|
+
ctx.io.log(serializeEnvelope(buildOk(`${body.type}.await`, data)));
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
// Resolution fields are Hub-supplied — sanitize before echoing to the terminal (§5.4 posture).
|
|
105
|
+
// A non-string `value` (an input object) is rendered via JSON.stringify, which does NOT escape
|
|
106
|
+
// C1/DEL control chars, so the stringified result is sanitized too (JSON structure chars are all
|
|
107
|
+
// printable, so stripping controls from string leaves keeps it valid JSON).
|
|
108
|
+
ctx.io.log(`resolution: ${sanitizeForTerminal(body.status)}`);
|
|
109
|
+
if (includeValue && detail?.value !== undefined) {
|
|
110
|
+
const rendered = typeof detail.value === "string" ? detail.value : JSON.stringify(detail.value);
|
|
111
|
+
ctx.io.log(`value: ${sanitizeForTerminal(rendered)}`);
|
|
112
|
+
}
|
|
113
|
+
if (detail?.comment !== undefined)
|
|
114
|
+
ctx.io.log(`comment: ${sanitizeForTerminal(detail.comment)}`);
|
|
115
|
+
if (detail?.actor !== undefined)
|
|
116
|
+
ctx.io.log(`actor: ${sanitizeForTerminal(detail.actor)}`);
|
|
117
|
+
if (response?.defaulted === true)
|
|
118
|
+
ctx.io.log("defaulted: true (resolved by default_on_expire)");
|
|
119
|
+
// The opened resume blob is the asker's own agent-owned state (GCM-verified on open), rendered
|
|
120
|
+
// via JSON.stringify; sanitize the rendered string too (JSON escapes structure chars but not
|
|
121
|
+
// C1/DEL), matching the §5.4 terminal posture applied to the Hub-supplied fields above.
|
|
122
|
+
if (openedState !== undefined)
|
|
123
|
+
ctx.io.log(`state: ${sanitizeForTerminal(JSON.stringify(openedState))}`);
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=await.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"await.js","sourceRoot":"","sources":["../../../src/commands/messaging/await.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { AskMessage, AskRequest, JsonObject, NotifyMessage, Priority, Runtime, TaskAction, TaskMessage } from "./wire.js";
|
|
2
|
+
/** The submitting agent's identity. `id` MUST equal the bound bearer credential or the Hub 403s. */
|
|
3
|
+
export interface AgentIdentity {
|
|
4
|
+
id: string;
|
|
5
|
+
run_id: string;
|
|
6
|
+
/** Defaults to "cli". */
|
|
7
|
+
runtime?: Runtime;
|
|
8
|
+
project?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface BuildNotifyInput {
|
|
11
|
+
agent: AgentIdentity;
|
|
12
|
+
title: string;
|
|
13
|
+
body?: string;
|
|
14
|
+
priority?: Priority;
|
|
15
|
+
tags?: string[];
|
|
16
|
+
created_at?: string;
|
|
17
|
+
/** Already-sealed agent resume blob (`{ sealed: … }` from `state.ts`). */
|
|
18
|
+
state?: JsonObject;
|
|
19
|
+
}
|
|
20
|
+
/** A general notify carries NO idempotency key — fire-and-forget is never retried (a retry
|
|
21
|
+
* would post a duplicate). An empty `tags` is omitted (the Hub treats absent and `[]` alike). */
|
|
22
|
+
export declare function buildNotify(input: BuildNotifyInput): NotifyMessage;
|
|
23
|
+
export interface BuildAskInput {
|
|
24
|
+
agent: AgentIdentity;
|
|
25
|
+
title: string;
|
|
26
|
+
request: AskRequest;
|
|
27
|
+
body?: string;
|
|
28
|
+
/** Defaults to a fresh `idem_<uuid>`. */
|
|
29
|
+
idempotency_key?: string;
|
|
30
|
+
created_at?: string;
|
|
31
|
+
/** Already-sealed agent resume blob (`{ sealed: … }` from `state.ts`). */
|
|
32
|
+
state?: JsonObject;
|
|
33
|
+
}
|
|
34
|
+
export declare function buildAsk(input: BuildAskInput): AskMessage;
|
|
35
|
+
export interface BuildTaskInput {
|
|
36
|
+
agent: AgentIdentity;
|
|
37
|
+
title: string;
|
|
38
|
+
action: TaskAction;
|
|
39
|
+
body?: string;
|
|
40
|
+
/** Defaults to a fresh `idem_<uuid>`. */
|
|
41
|
+
idempotency_key?: string;
|
|
42
|
+
created_at?: string;
|
|
43
|
+
/** Already-sealed agent resume blob (`{ sealed: … }` from `state.ts`). */
|
|
44
|
+
state?: JsonObject;
|
|
45
|
+
}
|
|
46
|
+
export declare function buildTask(input: BuildTaskInput): TaskMessage;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Pure MA2H envelope builders for the productized messaging commands (spec §4.4).
|
|
2
|
+
//
|
|
3
|
+
// These mirror `scripts/agent-client.ts`'s buildNotify / buildAsk / buildTask in shape —
|
|
4
|
+
// stamp `ma2h_version: "0.3"`, the `type`, a `created_at` (defaulting to now), the agent
|
|
5
|
+
// descriptor (runtime defaults to "cli"), and — for ask/task — a REQUIRED idempotency key
|
|
6
|
+
// (a fresh `idem_<uuid>` unless the caller pins one). No crypto and no I/O: envelope
|
|
7
|
+
// construction is plain object assembly, so this is not the "no hand-rolled crypto" surface
|
|
8
|
+
// (that rule covers JCS / the detached HMAC signature / the AES-256-GCM state-seal, none of
|
|
9
|
+
// which the submit/pull path touches). See `wire.ts` for why these live in the CLI package.
|
|
10
|
+
import { randomUUID } from "node:crypto";
|
|
11
|
+
function descriptor(agent) {
|
|
12
|
+
return {
|
|
13
|
+
id: agent.id,
|
|
14
|
+
run_id: agent.run_id,
|
|
15
|
+
runtime: agent.runtime ?? "cli",
|
|
16
|
+
...(agent.project !== undefined ? { project: agent.project } : {}),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function nowIso() {
|
|
20
|
+
return new Date().toISOString();
|
|
21
|
+
}
|
|
22
|
+
function freshIdempotencyKey() {
|
|
23
|
+
return `idem_${randomUUID()}`;
|
|
24
|
+
}
|
|
25
|
+
/** A general notify carries NO idempotency key — fire-and-forget is never retried (a retry
|
|
26
|
+
* would post a duplicate). An empty `tags` is omitted (the Hub treats absent and `[]` alike). */
|
|
27
|
+
export function buildNotify(input) {
|
|
28
|
+
return {
|
|
29
|
+
ma2h_version: "0.3",
|
|
30
|
+
type: "notify",
|
|
31
|
+
created_at: input.created_at ?? nowIso(),
|
|
32
|
+
agent: descriptor(input.agent),
|
|
33
|
+
title: input.title,
|
|
34
|
+
...(input.body !== undefined ? { body: input.body } : {}),
|
|
35
|
+
...(input.priority !== undefined ? { priority: input.priority } : {}),
|
|
36
|
+
...(input.tags !== undefined && input.tags.length > 0 ? { tags: input.tags } : {}),
|
|
37
|
+
...(input.state !== undefined ? { state: input.state } : {}),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function buildAsk(input) {
|
|
41
|
+
return {
|
|
42
|
+
ma2h_version: "0.3",
|
|
43
|
+
type: "ask",
|
|
44
|
+
created_at: input.created_at ?? nowIso(),
|
|
45
|
+
agent: descriptor(input.agent),
|
|
46
|
+
title: input.title,
|
|
47
|
+
idempotency_key: input.idempotency_key ?? freshIdempotencyKey(),
|
|
48
|
+
request: input.request,
|
|
49
|
+
...(input.body !== undefined ? { body: input.body } : {}),
|
|
50
|
+
...(input.state !== undefined ? { state: input.state } : {}),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function buildTask(input) {
|
|
54
|
+
return {
|
|
55
|
+
ma2h_version: "0.3",
|
|
56
|
+
type: "task",
|
|
57
|
+
created_at: input.created_at ?? nowIso(),
|
|
58
|
+
agent: descriptor(input.agent),
|
|
59
|
+
title: input.title,
|
|
60
|
+
idempotency_key: input.idempotency_key ?? freshIdempotencyKey(),
|
|
61
|
+
action: input.action,
|
|
62
|
+
...(input.body !== undefined ? { body: input.body } : {}),
|
|
63
|
+
...(input.state !== undefined ? { state: input.state } : {}),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/messaging/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CommandContext } from "../context.js";
|
|
2
|
+
import type { GetMessageBody, InboundDelivery, InboxAckResult, SubmitAck } from "./wire.js";
|
|
3
|
+
/** Redact any occurrence of the bearer from a Hub-supplied string before it can reach
|
|
4
|
+
* stdout/stderr/logs/the `--json` envelope (§5.4) — a hostile/buggy Hub could echo the
|
|
5
|
+
* Authorization value back in an error message, an ack field, or (inbox watch) a directive. */
|
|
6
|
+
export declare function redactToken(message: string | undefined, token: string): string | undefined;
|
|
7
|
+
/** POST an envelope to the Hub's ingest endpoint (agent bearer). `202` → the SubmitAck; every
|
|
8
|
+
* other status maps to the right §7 exit code (via the Hub's error envelope when present). */
|
|
9
|
+
export declare function submitEnvelope(ctx: CommandContext, token: string, envelope: unknown): Promise<SubmitAck>;
|
|
10
|
+
/** GET one message (the submitter-bound pull, agent bearer). Embeds the terminal Response.
|
|
11
|
+
* A `2xx` returns the parsed body; every other status maps to a §7 exit code. */
|
|
12
|
+
export declare function pollMessage(ctx: CommandContext, token: string, id: string, timeoutMs: number): Promise<GetMessageBody>;
|
|
13
|
+
/** GET the agent's mailbox — the human→agent drain (spec §13, agent bearer). A `2xx` returns the
|
|
14
|
+
* signed deliveries; every other status maps to a §7 exit code. `max`, when set, caps the batch via
|
|
15
|
+
* `?max=`. The drain also touches `agent_seen` server-side, so an authenticated poll is itself the
|
|
16
|
+
* presence heartbeat (§15) — nothing extra to send. */
|
|
17
|
+
export declare function drainInbox(ctx: CommandContext, token: string, max?: number): Promise<{
|
|
18
|
+
directives: InboundDelivery[];
|
|
19
|
+
}>;
|
|
20
|
+
/** POST a single batched consume-ack for the drained ids — the §14 directive receipt (agent bearer).
|
|
21
|
+
* A `2xx` returns the consumed count; every other status maps to a §7 exit code. */
|
|
22
|
+
export declare function ackInbox(ctx: CommandContext, token: string, ids: string[]): Promise<InboxAckResult>;
|