@oh-hai/cli 0.4.4 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/token-store.d.ts +17 -0
- package/dist/auth/token-store.js +21 -0
- package/dist/auth/token-store.js.map +1 -1
- package/dist/commands/handlers.js +2 -0
- package/dist/commands/handlers.js.map +1 -1
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.js +134 -13
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/mail/http.d.ts +47 -0
- package/dist/commands/mail/http.js +106 -0
- package/dist/commands/mail/http.js.map +1 -0
- package/dist/commands/mail/identity.d.ts +15 -0
- package/dist/commands/mail/identity.js +135 -0
- package/dist/commands/mail/identity.js.map +1 -0
- package/dist/commands/mail.d.ts +2 -0
- package/dist/commands/mail.js +232 -0
- package/dist/commands/mail.js.map +1 -0
- package/dist/commands/messaging/http.d.ts +9 -1
- package/dist/commands/messaging/http.js +2 -2
- package/dist/commands/messaging/http.js.map +1 -1
- package/dist/commands/messaging/sessions-http.d.ts +2 -0
- package/dist/commands/messaging/sessions-http.js +1 -1
- package/dist/commands/messaging/sessions-http.js.map +1 -1
- package/dist/commands/registry.js +34 -0
- package/dist/commands/registry.js.map +1 -1
- package/dist/commands/whoami.d.ts +14 -1
- package/dist/commands/whoami.js +36 -5
- package/dist/commands/whoami.js.map +1 -1
- package/dist/help.js +1 -0
- package/dist/help.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/commands/registry.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,mFAAmF;AACnF,kFAAkF;AAClF,kGAAkG;AAelG,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC9C;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,8DAA8D;QACvE,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,EAAE;QACf,IAAI,EAAE;YACJ,gEAAgE;YAChE,EAAE;YACF,qBAAqB;YACrB,EAAE;YACF,mFAAmF;YACnF,oFAAoF;YACpF,sFAAsF;YACtF,uFAAuF;YACvF,mDAAmD;SACpD,CAAC,IAAI,CAAC,IAAI,CAAC;KACb;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,+CAA+C;QACxD,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,EAAE;QACf,IAAI,EAAE;YACJ,iEAAiE;YACjE,EAAE;YACF,wCAAwC;YACxC,uEAAuE;YACvE,EAAE;YACF,mFAAmF;YACnF,mFAAmF;YACnF,yEAAyE;YACzE,mFAAmF;YACnF,qCAAqC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/commands/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
|
-
import type { CommandContext } from "./context.js";
|
|
1
|
+
import type { CommandContext, HttpResponse } from "./context.js";
|
|
2
2
|
/** A redaction-safe fingerprint of a token (§5.4). Real bearer tokens are long + high-entropy,
|
|
3
3
|
* so the last 4 chars identify one without revealing it; for an unexpectedly short token we
|
|
4
4
|
* fall back to a non-reversible hash prefix so the fingerprint can never be the token itself. */
|
|
5
5
|
export declare function fingerprintToken(token: string): string;
|
|
6
|
+
/** Side-effect-free authenticated GET, with the transport-error → §7 exit-code mapping shared by both
|
|
7
|
+
* probes (a timeout is exit 7, any other connection failure exit 5). */
|
|
8
|
+
export declare function probeGet(ctx: CommandContext, path: string, token: string): Promise<HttpResponse>;
|
|
9
|
+
/** Parse a response body as a JSON object, defensively — a status-only fake, a non-JSON body, or a
|
|
10
|
+
* non-object all collapse to `{}` (mirrors agents.ts readJson). */
|
|
11
|
+
export declare function readJsonBody(res: HttpResponse): Promise<Record<string, unknown>>;
|
|
12
|
+
/** The `actor` field of a whoami body — required to be a well-formed MA2H actor (`human:<id>` /
|
|
13
|
+
* `agent:<id>`, the endpoint's only shapes). A proxy `200` returning arbitrary JSON (e.g.
|
|
14
|
+
* `{actor:"ok"}`), or a blank/missing value, is NOT mistaken for a valid Hub identity. */
|
|
15
|
+
export declare function readActor(body: Record<string, unknown>): string | undefined;
|
|
16
|
+
/** Map a "could not confirm validity" status to the §7 error the two probes share — ALWAYS throws
|
|
17
|
+
* (each probe handles its own "authenticated" status before delegating here). */
|
|
18
|
+
export declare function classifyProbeStatus(status: number): never;
|
|
6
19
|
export declare function whoamiCommand(ctx: CommandContext): Promise<void>;
|
package/dist/commands/whoami.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
// older Hub without that endpoint still validates via a legacy fallback probe (resolver omitted).
|
|
9
9
|
import { createHash } from "node:crypto";
|
|
10
10
|
import { CliError, buildOk, serializeEnvelope } from "../envelope.js";
|
|
11
|
+
import { isHumanId } from "../auth/token-store.js";
|
|
11
12
|
import { resolveIdentity } from "../auth/resolve-token.js";
|
|
12
13
|
import { explicitSession } from "./messaging/session-scope.js";
|
|
13
14
|
import { sanitizeForTerminal } from "../terminal.js";
|
|
@@ -25,7 +26,7 @@ export function fingerprintToken(token) {
|
|
|
25
26
|
const DEFAULT_CHECK_TIMEOUT_MS = 10_000;
|
|
26
27
|
/** Side-effect-free authenticated GET, with the transport-error → §7 exit-code mapping shared by both
|
|
27
28
|
* probes (a timeout is exit 7, any other connection failure exit 5). */
|
|
28
|
-
async function probeGet(ctx, path, token) {
|
|
29
|
+
export async function probeGet(ctx, path, token) {
|
|
29
30
|
const init = {
|
|
30
31
|
method: "GET",
|
|
31
32
|
headers: { Authorization: `Bearer ${token}` },
|
|
@@ -39,7 +40,7 @@ async function probeGet(ctx, path, token) {
|
|
|
39
40
|
}
|
|
40
41
|
/** Parse a response body as a JSON object, defensively — a status-only fake, a non-JSON body, or a
|
|
41
42
|
* non-object all collapse to `{}` (mirrors agents.ts readJson). */
|
|
42
|
-
async function readJsonBody(res) {
|
|
43
|
+
export async function readJsonBody(res) {
|
|
43
44
|
if (typeof res.json !== "function")
|
|
44
45
|
return {};
|
|
45
46
|
try {
|
|
@@ -55,13 +56,13 @@ async function readJsonBody(res) {
|
|
|
55
56
|
/** The `actor` field of a whoami body — required to be a well-formed MA2H actor (`human:<id>` /
|
|
56
57
|
* `agent:<id>`, the endpoint's only shapes). A proxy `200` returning arbitrary JSON (e.g.
|
|
57
58
|
* `{actor:"ok"}`), or a blank/missing value, is NOT mistaken for a valid Hub identity. */
|
|
58
|
-
function readActor(body) {
|
|
59
|
+
export function readActor(body) {
|
|
59
60
|
const actor = typeof body.actor === "string" ? body.actor.trim() : "";
|
|
60
61
|
return /^(?:human|agent):.+/.test(actor) ? actor : undefined;
|
|
61
62
|
}
|
|
62
63
|
/** Map a "could not confirm validity" status to the §7 error the two probes share — ALWAYS throws
|
|
63
64
|
* (each probe handles its own "authenticated" status before delegating here). */
|
|
64
|
-
function classifyProbeStatus(status) {
|
|
65
|
+
export function classifyProbeStatus(status) {
|
|
65
66
|
if (status === 401 || status === 403) {
|
|
66
67
|
throw new CliError("auth", `token is invalid or revoked (Hub returned ${status}).`);
|
|
67
68
|
}
|
|
@@ -139,6 +140,28 @@ export async function whoamiCommand(ctx) {
|
|
|
139
140
|
// liveness even under --check; that would make an offline command conditionally networked. Use
|
|
140
141
|
// `oh-hai session status` for the lease, `oh-hai fleet ls` for the neighbours.
|
|
141
142
|
const session = explicitSession(values);
|
|
143
|
+
// The identity KIND, reported explicitly (#874 R3). The `human:` prefix already encodes it, but
|
|
144
|
+
// requiring a script to parse an implementation-specific prefix makes an internal storage detail
|
|
145
|
+
// part of the machine contract — and the human line below would otherwise label the account
|
|
146
|
+
// owner's own identity `agent:`, which is simply wrong. Undefined when nothing resolved, so the
|
|
147
|
+
// field never asserts a kind for an identity that does not exist.
|
|
148
|
+
const localKind = account === undefined ? undefined : isHumanId(account) ? "human" : "agent";
|
|
149
|
+
// TWO DIFFERENT FACTS, REPORTED SEPARATELY — an earlier revision of this conflated them.
|
|
150
|
+
//
|
|
151
|
+
// `kind` answers *what is this CREDENTIAL*: when `--check` ran, the Hub settled it, and deriving
|
|
152
|
+
// it from the local key afterwards would discard the answer just paid for (a historical
|
|
153
|
+
// `human:bot` key over an agent bearer would report `human` while the check proved otherwise).
|
|
154
|
+
// So the attested value wins whenever there is one.
|
|
155
|
+
//
|
|
156
|
+
// The human-readable LABEL below answers a different question — *what is the KEY being shown* —
|
|
157
|
+
// because the line prints `account`. Relabelling a stored agent key `human:` because its token
|
|
158
|
+
// attests human would misdescribe the very string it is printing. The label therefore stays with
|
|
159
|
+
// the local shape.
|
|
160
|
+
//
|
|
161
|
+
// When those two disagree the store is wrong, which is worth SAYING rather than resolving
|
|
162
|
+
// silently in either direction.
|
|
163
|
+
const kind = actor !== undefined ? (isHumanId(actor) ? "human" : "agent") : localKind;
|
|
164
|
+
const kindMismatch = actor !== undefined && localKind !== undefined && kind !== localKind;
|
|
142
165
|
if (ctx.json) {
|
|
143
166
|
const token = { present: resolved.token !== undefined, source: resolved.source };
|
|
144
167
|
if (fingerprint !== undefined) {
|
|
@@ -146,6 +169,7 @@ export async function whoamiCommand(ctx) {
|
|
|
146
169
|
}
|
|
147
170
|
ctx.io.log(serializeEnvelope(buildOk("whoami", {
|
|
148
171
|
agent_id: account,
|
|
172
|
+
kind,
|
|
149
173
|
base_url: ctx.config.baseUrl,
|
|
150
174
|
token,
|
|
151
175
|
account_source: accountSource,
|
|
@@ -159,7 +183,14 @@ export async function whoamiCommand(ctx) {
|
|
|
159
183
|
// Sanitize before terminal output: a DISCOVERED account is the raw agent id the Hub chose at
|
|
160
184
|
// login time, so a hostile Hub could have stored control characters in it (the raw id is kept
|
|
161
185
|
// for lookup and the JSON envelope, where JSON.stringify escapes them — §5.4 / login parity).
|
|
162
|
-
|
|
186
|
+
// Labelled by the LOCAL shape, because this line prints the stored key. A stored human identity
|
|
187
|
+
// is the account owner and must not be called an agent; equally, an agent-shaped key must not be
|
|
188
|
+
// called human just because `--check` attested its token as one — see `kindMismatch` below.
|
|
189
|
+
ctx.io.log(`${localKind === "human" ? "human: " : "agent: "} ${account !== undefined ? sanitizeForTerminal(account) : "(none — set --account/--agent or MA2H_AGENT_ID)"}`);
|
|
190
|
+
if (kindMismatch) {
|
|
191
|
+
ctx.io.err(`warning: the Hub attests this credential as ${kind}, but it is stored under a ${localKind}-shaped key — ` +
|
|
192
|
+
"the store is wrong. Re-run `oh-hai login` (or `login --human`) to replace it.");
|
|
193
|
+
}
|
|
163
194
|
// Explain HOW the account resolved (flag / env / binding@<path> / user config / discovered).
|
|
164
195
|
if (accountSource !== undefined) {
|
|
165
196
|
const via = accountSource === "binding" && bindingPath !== undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,4FAA4F;AAC5F,2FAA2F;AAC3F,+FAA+F;AAC/F,mGAAmG;AACnG,sGAAsG;AACtG,kGAAkG;AAClG,kGAAkG;AAElG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD;;kGAEkG;AAClG,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED;;4FAE4F;AAC5F,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAExC;yEACyE;AACzE,KAAK,UAAU,QAAQ,CAAC,GAAmB,EAAE,IAAY,EAAE,KAAa;
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"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"}
|
package/dist/help.js
CHANGED
|
@@ -14,6 +14,7 @@ export const TOP_LEVEL_HELP = [
|
|
|
14
14
|
"Sessions: session start | close | status (v0.5 addressing scope — who you are RIGHT NOW)",
|
|
15
15
|
"Fleet: fleet ls (the agent sessions you can address with --to)",
|
|
16
16
|
"Messages: messages list (list the agent's own submitted messages — history / dedupe)",
|
|
17
|
+
"Mail: mail list | read | archive | unarchive (YOUR account inbox — needs `login --human`)",
|
|
17
18
|
"Agents: agents list | create | revoke",
|
|
18
19
|
"Health: doctor",
|
|
19
20
|
"Teach: teach (write the OH HAI snippet into this machine's agent-instruction files)",
|
package/dist/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,qEAAqE;AAErE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,8DAA8D;IAC9D,EAAE;IACF,6DAA6D;IAC7D,EAAE;IACF,sFAAsF;IACtF,2CAA2C;IAC3C,mFAAmF;IACnF,iCAAiC;IACjC,oDAAoD;IACpD,wFAAwF;IACxF,8FAA8F;IAC9F,uEAAuE;IACvE,yFAAyF;IACzF,2CAA2C;IAC3C,oBAAoB;IACpB,4FAA4F;IAC5F,kEAAkE;IAClE,EAAE;IACF,kFAAkF;IAClF,4CAA4C;CAC7C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,qEAAqE;AAErE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,8DAA8D;IAC9D,EAAE;IACF,6DAA6D;IAC7D,EAAE;IACF,sFAAsF;IACtF,2CAA2C;IAC3C,mFAAmF;IACnF,iCAAiC;IACjC,oDAAoD;IACpD,wFAAwF;IACxF,8FAA8F;IAC9F,uEAAuE;IACvE,yFAAyF;IACzF,mGAAmG;IACnG,2CAA2C;IAC3C,oBAAoB;IACpB,4FAA4F;IAC5F,kEAAkE;IAClE,EAAE;IACF,kFAAkF;IAClF,4CAA4C;CAC7C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oh-hai/cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"description": "OH HAI — the `oh-hai` CLI: reach a human from your agent through an MA2H Hub (notify / ask / task), and reach another agent over the v0.5 inter-agent leg (sessions, addressed sends, bridge, fleet).",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|