@sentropic/h2a-cli 0.20.1 → 0.21.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.
Files changed (57) hide show
  1. package/dist/bin.js +4 -1
  2. package/dist/bin.js.map +1 -1
  3. package/dist/cli-contract.d.ts.map +1 -1
  4. package/dist/cli-contract.js +10 -2
  5. package/dist/cli-contract.js.map +1 -1
  6. package/dist/cli.d.ts +5 -0
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +108 -6
  9. package/dist/cli.js.map +1 -1
  10. package/dist/index.d.ts +4 -3
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +4 -3
  13. package/dist/index.js.map +1 -1
  14. package/dist/runtime/drumbeat/inbox-relance.d.ts +29 -0
  15. package/dist/runtime/drumbeat/inbox-relance.d.ts.map +1 -0
  16. package/dist/runtime/drumbeat/inbox-relance.js +101 -0
  17. package/dist/runtime/drumbeat/inbox-relance.js.map +1 -0
  18. package/dist/runtime/drumbeat/index.d.ts +2 -1
  19. package/dist/runtime/drumbeat/index.d.ts.map +1 -1
  20. package/dist/runtime/drumbeat/index.js +2 -1
  21. package/dist/runtime/drumbeat/index.js.map +1 -1
  22. package/dist/runtime/drumbeat/relaunchers.d.ts +25 -1
  23. package/dist/runtime/drumbeat/relaunchers.d.ts.map +1 -1
  24. package/dist/runtime/drumbeat/relaunchers.js +53 -0
  25. package/dist/runtime/drumbeat/relaunchers.js.map +1 -1
  26. package/dist/runtime/drumbeat/scan.d.ts +2 -0
  27. package/dist/runtime/drumbeat/scan.d.ts.map +1 -1
  28. package/dist/runtime/drumbeat/scan.js +3 -0
  29. package/dist/runtime/drumbeat/scan.js.map +1 -1
  30. package/dist/runtime/drumbeat/watch.d.ts +3 -1
  31. package/dist/runtime/drumbeat/watch.d.ts.map +1 -1
  32. package/dist/runtime/drumbeat/watch.js +6 -2
  33. package/dist/runtime/drumbeat/watch.js.map +1 -1
  34. package/dist/runtime/identity/bindings.d.ts +60 -0
  35. package/dist/runtime/identity/bindings.d.ts.map +1 -0
  36. package/dist/runtime/identity/bindings.js +90 -0
  37. package/dist/runtime/identity/bindings.js.map +1 -0
  38. package/dist/runtime/identity/index.d.ts +8 -0
  39. package/dist/runtime/identity/index.d.ts.map +1 -0
  40. package/dist/runtime/identity/index.js +5 -0
  41. package/dist/runtime/identity/index.js.map +1 -0
  42. package/dist/runtime/identity/migration.d.ts +46 -0
  43. package/dist/runtime/identity/migration.d.ts.map +1 -0
  44. package/dist/runtime/identity/migration.js +63 -0
  45. package/dist/runtime/identity/migration.js.map +1 -0
  46. package/dist/runtime/identity/readers.d.ts +11 -0
  47. package/dist/runtime/identity/readers.d.ts.map +1 -0
  48. package/dist/runtime/identity/readers.js +114 -0
  49. package/dist/runtime/identity/readers.js.map +1 -0
  50. package/dist/runtime/identity/resolver.d.ts +50 -0
  51. package/dist/runtime/identity/resolver.d.ts.map +1 -0
  52. package/dist/runtime/identity/resolver.js +61 -0
  53. package/dist/runtime/identity/resolver.js.map +1 -0
  54. package/dist/runtime/mcp/stdio.d.ts.map +1 -1
  55. package/dist/runtime/mcp/stdio.js +24 -2
  56. package/dist/runtime/mcp/stdio.js.map +1 -1
  57. package/package.json +2 -2
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Transparent migration dual-read (DEC-116).
3
+ *
4
+ * After the identity fix, an agent's perennial inbox lives under its new
5
+ * uuid-bearing instance id, while messages addressed before the migration sit
6
+ * under the old label-derived instance dir(s). Migration must be transparent
7
+ * and immediate: the agent keeps receiving everything with no manual move. The
8
+ * read path therefore unions the current inbox with one or more legacy inbox
9
+ * locations, deduplicated by envelope id — equivalent to reading several dirs
10
+ * as if they were one (same id-sorted order as the single-dir reader).
11
+ *
12
+ * Pure + total: the impure part (which dirs to read) belongs to the caller; this
13
+ * is the deterministic merge that is unit-tested in isolation.
14
+ */
15
+ import type { H2AEnvelope } from "@sentropic/h2a";
16
+ /**
17
+ * Merge envelope sets, deduplicated by `envelope.id`. Pass the CURRENT inbox
18
+ * first: on an id collision the earlier set wins (identical content is expected,
19
+ * but precedence is defined). Entries without a string `id` are skipped. The
20
+ * result is sorted by `id` ascending, matching the single-dir reader's
21
+ * filename `.sort()`, so a dual-read is indistinguishable from one merged dir.
22
+ */
23
+ export declare function mergeInboxDedup(sets: ReadonlyArray<readonly H2AEnvelope[]>): H2AEnvelope[];
24
+ export interface LegacyAdoptionInput {
25
+ /** Has some agent already inherited this legacy id's keyring (single-inheritor lock)? */
26
+ readonly legacyAlreadyAdopted: boolean;
27
+ /** Did this connector prove possession of one of the legacy keyring's keys? */
28
+ readonly provedLegacyPossession: boolean;
29
+ }
30
+ export interface LegacyAdoptionDecision {
31
+ /** Adopt the legacy id as an alias of this agent's perennial uuid + inherit its keyring. */
32
+ readonly adopt: boolean;
33
+ /** Mint a fresh key for this agent (honest re-key for de-collided peers). */
34
+ readonly netNewKeys: boolean;
35
+ readonly reason: string;
36
+ }
37
+ /**
38
+ * Ratified migration rule (DEC-116, spec §Migration F4): the FIRST agent to
39
+ * prove possession of a legacy key inherits the legacy keyring and adopts the
40
+ * legacy id as an alias of its new perennial uuid; every de-collided peer mints
41
+ * **net-new keys** (honest re-key, surfaced in the migration notice). No proof
42
+ * → no inheritance. Pure + total. The adoption record + keyring copy are the
43
+ * caller's (impure, locked) job; this is the deterministic decision.
44
+ */
45
+ export declare function decideLegacyAdoption(input: LegacyAdoptionInput): LegacyAdoptionDecision;
46
+ //# sourceMappingURL=migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/runtime/identity/migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,aAAa,CAAC,SAAS,WAAW,EAAE,CAAC,GAC1C,WAAW,EAAE,CAUf;AAED,MAAM,WAAW,mBAAmB;IAClC,yFAAyF;IACzF,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,+EAA+E;IAC/E,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACrC,4FAA4F;IAC5F,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,sBAAsB,CAoBvF"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Transparent migration dual-read (DEC-116).
3
+ *
4
+ * After the identity fix, an agent's perennial inbox lives under its new
5
+ * uuid-bearing instance id, while messages addressed before the migration sit
6
+ * under the old label-derived instance dir(s). Migration must be transparent
7
+ * and immediate: the agent keeps receiving everything with no manual move. The
8
+ * read path therefore unions the current inbox with one or more legacy inbox
9
+ * locations, deduplicated by envelope id — equivalent to reading several dirs
10
+ * as if they were one (same id-sorted order as the single-dir reader).
11
+ *
12
+ * Pure + total: the impure part (which dirs to read) belongs to the caller; this
13
+ * is the deterministic merge that is unit-tested in isolation.
14
+ */
15
+ /**
16
+ * Merge envelope sets, deduplicated by `envelope.id`. Pass the CURRENT inbox
17
+ * first: on an id collision the earlier set wins (identical content is expected,
18
+ * but precedence is defined). Entries without a string `id` are skipped. The
19
+ * result is sorted by `id` ascending, matching the single-dir reader's
20
+ * filename `.sort()`, so a dual-read is indistinguishable from one merged dir.
21
+ */
22
+ export function mergeInboxDedup(sets) {
23
+ const byId = new Map();
24
+ for (const set of sets) {
25
+ for (const env of set) {
26
+ const id = env?.id;
27
+ if (typeof id !== "string" || byId.has(id))
28
+ continue;
29
+ byId.set(id, env);
30
+ }
31
+ }
32
+ return [...byId.values()].sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
33
+ }
34
+ /**
35
+ * Ratified migration rule (DEC-116, spec §Migration F4): the FIRST agent to
36
+ * prove possession of a legacy key inherits the legacy keyring and adopts the
37
+ * legacy id as an alias of its new perennial uuid; every de-collided peer mints
38
+ * **net-new keys** (honest re-key, surfaced in the migration notice). No proof
39
+ * → no inheritance. Pure + total. The adoption record + keyring copy are the
40
+ * caller's (impure, locked) job; this is the deterministic decision.
41
+ */
42
+ export function decideLegacyAdoption(input) {
43
+ if (!input.provedLegacyPossession) {
44
+ return {
45
+ adopt: false,
46
+ netNewKeys: true,
47
+ reason: "no proof of possession of a legacy key — mint net-new keys"
48
+ };
49
+ }
50
+ if (input.legacyAlreadyAdopted) {
51
+ return {
52
+ adopt: false,
53
+ netNewKeys: true,
54
+ reason: "legacy id already adopted by a peer — de-collided peer mints net-new keys"
55
+ };
56
+ }
57
+ return {
58
+ adopt: true,
59
+ netNewKeys: false,
60
+ reason: "first to prove possession — inherits legacy keyring, legacy id becomes an alias"
61
+ };
62
+ }
63
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../../src/runtime/identity/migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,IAA2C;IAE3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,MAAM,EAAE,GAAI,GAA+B,EAAE,EAAE,CAAC;YAChD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAS;YACrD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAiBD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAA0B;IAC7D,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;QAClC,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,4DAA4D;SACrE,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC/B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,2EAA2E;SACpF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,iFAAiF;KAC1F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Default (real-filesystem) `ProviderSessionReaders` for the identity resolver
3
+ * (DEC-116). Every reader is **best-effort + total**: any missing file, format
4
+ * drift, or parse error yields `undefined`, so the resolver degrades to
5
+ * `{ source: "none" }` and the caller mints a keypair-anchored id (never throws,
6
+ * never blocks connect). The transcript layouts were live-verified 2026-05-30
7
+ * (gemini's path layout drifts across versions — we match on `.project_root`).
8
+ */
9
+ import type { ProviderSessionReaders } from "./resolver.js";
10
+ export declare const defaultProviderSessionReaders: ProviderSessionReaders;
11
+ //# sourceMappingURL=readers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readers.d.ts","sourceRoot":"","sources":["../../../src/runtime/identity/readers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AA2F5D,eAAO,MAAM,6BAA6B,EAAE,sBAK3C,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Default (real-filesystem) `ProviderSessionReaders` for the identity resolver
3
+ * (DEC-116). Every reader is **best-effort + total**: any missing file, format
4
+ * drift, or parse error yields `undefined`, so the resolver degrades to
5
+ * `{ source: "none" }` and the caller mints a keypair-anchored id (never throws,
6
+ * never blocks connect). The transcript layouts were live-verified 2026-05-30
7
+ * (gemini's path layout drifts across versions — we match on `.project_root`).
8
+ */
9
+ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
10
+ import { homedir } from "node:os";
11
+ import { join } from "node:path";
12
+ /** First newline-delimited line of a (possibly large) file, decoded best-effort. */
13
+ function firstLine(path) {
14
+ return readFileSync(path, "utf8").split("\n", 1)[0] ?? "";
15
+ }
16
+ function newestFirst(paths) {
17
+ return paths
18
+ .map((p) => {
19
+ try {
20
+ return { p, m: statSync(p).mtimeMs };
21
+ }
22
+ catch {
23
+ return { p, m: 0 };
24
+ }
25
+ })
26
+ .sort((a, b) => b.m - a.m)
27
+ .map((x) => x.p);
28
+ }
29
+ function codexThreadForCwd(cwd) {
30
+ try {
31
+ const base = join(homedir(), ".codex", "sessions");
32
+ if (!existsSync(base))
33
+ return undefined;
34
+ const files = [];
35
+ const walk = (dir) => {
36
+ for (const e of readdirSync(dir, { withFileTypes: true })) {
37
+ const p = join(dir, e.name);
38
+ if (e.isDirectory())
39
+ walk(p);
40
+ else if (e.name.endsWith(".jsonl"))
41
+ files.push(p);
42
+ }
43
+ };
44
+ walk(base);
45
+ for (const f of newestFirst(files).slice(0, 100)) {
46
+ try {
47
+ const rec = JSON.parse(firstLine(f));
48
+ const payload = rec.session_meta?.payload ?? rec.payload;
49
+ if (payload && payload.cwd === cwd && typeof payload.id === "string")
50
+ return payload.id;
51
+ }
52
+ catch {
53
+ // skip malformed rollout
54
+ }
55
+ }
56
+ return undefined;
57
+ }
58
+ catch {
59
+ return undefined;
60
+ }
61
+ }
62
+ function geminiSessionForCwd(cwd) {
63
+ try {
64
+ const base = join(homedir(), ".gemini", "tmp");
65
+ if (!existsSync(base))
66
+ return undefined;
67
+ for (const e of readdirSync(base, { withFileTypes: true })) {
68
+ if (!e.isDirectory())
69
+ continue;
70
+ const dir = join(base, e.name);
71
+ try {
72
+ if (readFileSync(join(dir, ".project_root"), "utf8").trim() !== cwd)
73
+ continue;
74
+ const chats = join(dir, "chats");
75
+ if (!existsSync(chats))
76
+ continue;
77
+ const sessions = readdirSync(chats).filter((n) => n.startsWith("session-") && n.endsWith(".jsonl"));
78
+ if (sessions.length === 0)
79
+ continue;
80
+ const newest = newestFirst(sessions.map((n) => join(chats, n)))[0];
81
+ const rec = JSON.parse(firstLine(newest));
82
+ if (typeof rec.sessionId === "string")
83
+ return rec.sessionId;
84
+ }
85
+ catch {
86
+ // try the next tmp dir
87
+ }
88
+ }
89
+ return undefined;
90
+ }
91
+ catch {
92
+ return undefined;
93
+ }
94
+ }
95
+ function agyConversationForCwd(cwd) {
96
+ try {
97
+ const f = join(homedir(), ".gemini", "antigravity-cli", "cache", "last_conversations.json");
98
+ if (!existsSync(f))
99
+ return undefined;
100
+ const map = JSON.parse(readFileSync(f, "utf8"));
101
+ const v = map && typeof map === "object" ? map[cwd] : undefined;
102
+ return typeof v === "string" ? v : undefined;
103
+ }
104
+ catch {
105
+ return undefined;
106
+ }
107
+ }
108
+ export const defaultProviderSessionReaders = {
109
+ env: (name) => process.env[name],
110
+ codexThreadForCwd,
111
+ geminiSessionForCwd,
112
+ agyConversationForCwd
113
+ };
114
+ //# sourceMappingURL=readers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readers.js","sourceRoot":"","sources":["../../../src/runtime/identity/readers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Agent-identity fix (DEC-116) — provider session resolver.
3
+ *
4
+ * The reconnect de-collision binds `(host, providerSessionId, workspaceId)` →
5
+ * agentUuid. This module produces the **providerSessionId hint** for the host
6
+ * the agent runs under. It is only a *routing hint*; the authority anchor is the
7
+ * ed25519 key (proof-of-possession), not this string (see the spec, F1).
8
+ *
9
+ * Per-provider source (live-verified, 2026-05-30):
10
+ * - claude → `env.CLAUDE_CODE_SESSION_ID` (inherited by the spawned MCP server).
11
+ * - remote → the `@sentropic/remote` bridge injects `env.SESSION_ID` +
12
+ * `env.SESSION_WORKSPACE_ID` (authoritative, Pod-scoped).
13
+ * - codex / gemini / agy → NOT in the env; read the provider's on-disk
14
+ * transcript/cache, matched by cwd (codex rollout `payload.cwd`, gemini
15
+ * `.project_root`, agy `last_conversations.json`).
16
+ * - none found → `{ source: "none" }`; the caller mints a UUID keyed by the
17
+ * agent's keypair fingerprint (so reconnect-same-key reclaims, new-key mints).
18
+ *
19
+ * The per-host *dispatch* is pure and tested with injected `readers`; the real
20
+ * filesystem scans live in `defaultProviderSessionReaders`.
21
+ */
22
+ export type ProviderSessionSource = "env" | "bridge" | "transcript" | "none";
23
+ export interface ProviderSession {
24
+ readonly providerSessionId?: string;
25
+ readonly source: ProviderSessionSource;
26
+ /** A workspace hint the host supplies authoritatively (only the bridge today). */
27
+ readonly workspaceHint?: string;
28
+ }
29
+ /** I/O the resolver needs — injected so the dispatch is testable without a real FS. */
30
+ export interface ProviderSessionReaders {
31
+ env(name: string): string | undefined;
32
+ /** codex: newest `~/.codex/sessions/**` rollout whose `payload.cwd === cwd` → `payload.id`. */
33
+ codexThreadForCwd(cwd: string): string | undefined;
34
+ /** gemini: `~/.gemini/tmp/<dir>/.project_root === cwd` → that session's `sessionId`. */
35
+ geminiSessionForCwd(cwd: string): string | undefined;
36
+ /** agy: `~/.gemini/antigravity-cli/cache/last_conversations.json` map `cwd → uuid`. */
37
+ agyConversationForCwd(cwd: string): string | undefined;
38
+ }
39
+ export interface ResolveProviderSessionInput {
40
+ readonly host: string;
41
+ readonly cwd: string;
42
+ readonly readers: ProviderSessionReaders;
43
+ }
44
+ /**
45
+ * Resolve the provider's native session id for `host` (a routing hint for
46
+ * de-collision). Total — never throws; an unknown host or an absent source
47
+ * yields `{ source: "none" }`.
48
+ */
49
+ export declare function resolveProviderSession(input: ResolveProviderSessionInput): ProviderSession;
50
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/runtime/identity/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,kFAAkF;IAClF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,uFAAuF;AACvF,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,+FAA+F;IAC/F,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACnD,wFAAwF;IACxF,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACrD,uFAAuF;IACvF,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,eAAe,CAgC1F"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Agent-identity fix (DEC-116) — provider session resolver.
3
+ *
4
+ * The reconnect de-collision binds `(host, providerSessionId, workspaceId)` →
5
+ * agentUuid. This module produces the **providerSessionId hint** for the host
6
+ * the agent runs under. It is only a *routing hint*; the authority anchor is the
7
+ * ed25519 key (proof-of-possession), not this string (see the spec, F1).
8
+ *
9
+ * Per-provider source (live-verified, 2026-05-30):
10
+ * - claude → `env.CLAUDE_CODE_SESSION_ID` (inherited by the spawned MCP server).
11
+ * - remote → the `@sentropic/remote` bridge injects `env.SESSION_ID` +
12
+ * `env.SESSION_WORKSPACE_ID` (authoritative, Pod-scoped).
13
+ * - codex / gemini / agy → NOT in the env; read the provider's on-disk
14
+ * transcript/cache, matched by cwd (codex rollout `payload.cwd`, gemini
15
+ * `.project_root`, agy `last_conversations.json`).
16
+ * - none found → `{ source: "none" }`; the caller mints a UUID keyed by the
17
+ * agent's keypair fingerprint (so reconnect-same-key reclaims, new-key mints).
18
+ *
19
+ * The per-host *dispatch* is pure and tested with injected `readers`; the real
20
+ * filesystem scans live in `defaultProviderSessionReaders`.
21
+ */
22
+ /**
23
+ * Resolve the provider's native session id for `host` (a routing hint for
24
+ * de-collision). Total — never throws; an unknown host or an absent source
25
+ * yields `{ source: "none" }`.
26
+ */
27
+ export function resolveProviderSession(input) {
28
+ const { host, cwd, readers } = input;
29
+ switch (host) {
30
+ case "claude": {
31
+ const id = readers.env("CLAUDE_CODE_SESSION_ID");
32
+ return id ? { providerSessionId: id, source: "env" } : { source: "none" };
33
+ }
34
+ case "remote": {
35
+ const id = readers.env("SESSION_ID");
36
+ const ws = readers.env("SESSION_WORKSPACE_ID");
37
+ if (!id)
38
+ return { source: "none" };
39
+ return {
40
+ providerSessionId: id,
41
+ source: "bridge",
42
+ ...(ws ? { workspaceHint: ws } : {})
43
+ };
44
+ }
45
+ case "codex": {
46
+ const id = readers.codexThreadForCwd(cwd);
47
+ return id ? { providerSessionId: id, source: "transcript" } : { source: "none" };
48
+ }
49
+ case "gemini": {
50
+ const id = readers.geminiSessionForCwd(cwd);
51
+ return id ? { providerSessionId: id, source: "transcript" } : { source: "none" };
52
+ }
53
+ case "agy": {
54
+ const id = readers.agyConversationForCwd(cwd);
55
+ return id ? { providerSessionId: id, source: "transcript" } : { source: "none" };
56
+ }
57
+ default:
58
+ return { source: "none" };
59
+ }
60
+ }
61
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/runtime/identity/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA4BH;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACvE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACrC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACjD,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC5E,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAC/C,IAAI,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YACnC,OAAO;gBACL,iBAAiB,EAAE,EAAE;gBACrB,MAAM,EAAE,QAAQ;gBAChB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrC,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACnF,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACnF,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACnF,CAAC;QACD;YACE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../../src/runtime/mcp/stdio.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA8BtD,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,KAAK,EAAE,QAAQ,CAAC;IAChB,gEAAgE;IAChE,MAAM,EAAE,QAAQ,CAAC;IACjB,yEAAyE;IACzE,MAAM,EAAE,QAAQ,CAAC;IACjB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACrC,CAAC;CACH;AA0ED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwHtE"}
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../../src/runtime/mcp/stdio.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA8BtD,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,KAAK,EAAE,QAAQ,CAAC;IAChB,gEAAgE;IAChE,MAAM,EAAE,QAAQ,CAAC;IACjB,yEAAyE;IACzE,MAAM,EAAE,QAAQ,CAAC;IACjB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACrC,CAAC;CACH;AA0ED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwItE"}
@@ -138,15 +138,37 @@ export function runMcpStdio(options) {
138
138
  writeResponse(stdout, errorResponse(null, -32700, "Parse error", message));
139
139
  return;
140
140
  }
141
+ // JSON-RPC 2.0: a message with NO `id` member is a NOTIFICATION — the
142
+ // server MUST NOT reply to it (not even an error). Previously every line
143
+ // got a response with `id: request.id ?? null`, so a notification such as
144
+ // the standard `notifications/initialized` drew back an `id:null` error
145
+ // response, which strict clients (codex's rmcp) reject with "data did not
146
+ // match any variant of untagged enum JsonRpcMessage" — breaking the stream
147
+ // at startup. Gate every stdout write on the message actually being a
148
+ // request (DEC-115).
149
+ const isNotification = !("id" in request);
141
150
  if (request.jsonrpc !== "2.0" || typeof request.method !== "string") {
142
- writeResponse(stdout, errorResponse(request.id ?? null, -32600, "Invalid Request"));
151
+ if (!isNotification) {
152
+ writeResponse(stdout, errorResponse(request.id ?? null, -32600, "Invalid Request"));
153
+ }
143
154
  return;
144
155
  }
145
156
  try {
146
157
  const result = handleMethod(server, request.method, request.params);
147
- writeResponse(stdout, successResponse(request.id ?? null, result));
158
+ if (!isNotification) {
159
+ writeResponse(stdout, successResponse(request.id ?? null, result));
160
+ }
148
161
  }
149
162
  catch (err) {
163
+ if (isNotification) {
164
+ // An unhandled notification (e.g. `notifications/initialized`) is a
165
+ // silent no-op; surface only genuine internal errors on stderr.
166
+ if (!(err instanceof MethodNotFoundError)) {
167
+ const message = err instanceof Error ? err.message : String(err);
168
+ stderr.write(`h2a mcp-serve: internal error (notification ${request.method}): ${message}\n`);
169
+ }
170
+ return;
171
+ }
150
172
  if (err instanceof MethodNotFoundError) {
151
173
  writeResponse(stdout, errorResponse(request.id ?? null, -32601, `Method not found: ${err.method}`));
152
174
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../../src/runtime/mcp/stdio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../../src/runtime/mcp/stdio.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentropic/h2a-cli",
3
- "version": "0.20.1",
3
+ "version": "0.21.0",
4
4
  "description": "Unified CLI surface for h2a hosts and MCP-oriented coordination flows.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -40,7 +40,7 @@
40
40
  "skills"
41
41
  ],
42
42
  "dependencies": {
43
- "@sentropic/h2a": "^0.20.1"
43
+ "@sentropic/h2a": "^0.21.0"
44
44
  },
45
45
  "publishConfig": {
46
46
  "access": "public"