@essentialai/cogent 3.5.0 → 3.6.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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.6.0] - 2026-08-05
4
+
5
+ ### Added — A2A Agent Card
6
+ - `peerInfoToAgentCard(peer, ctx)` + `a2a/agent-card` module: maps a Cogent `PeerInfo` to a standard
7
+ **A2A v1.0.1 Agent Card** (typed against `@a2a-js/sdk`; v1.0.1 canonical + opt-in v0.3.0 scaffold).
8
+ - `RegisterPeerRequest` + `PeerInfo` gain optional `role` + `capabilities[]` (additive; `.strict()`-safe).
9
+
10
+
3
11
  ## [3.4.0] - 2026-06-03
4
12
 
5
13
  ### Added
@@ -0,0 +1,57 @@
1
+ /**
2
+ * A2A Agent Card mapper — Cogent PeerInfo → a standard A2A Agent Card.
3
+ *
4
+ * Card-only compliance (see docs/superpowers/specs/2026-08-04-a2a-agent-card-compliance-design.md):
5
+ * we adopt the standard A2A **Agent Card** as a peer's self-description so Cogent can declare
6
+ * "latest A2A standard compliant (from the Agent Card point of view)" and expose a vendor-neutral
7
+ * interop primitive. We do NOT adopt A2A auth / security schemes / JSON-RPC-gRPC transport / the
8
+ * task protocol — Cogent stays on its own rails (WS + Bearer + relay).
9
+ *
10
+ * Types come from the official reference SDK `@a2a-js/sdk` (v1.0.1) — we do NOT hand-roll the schema.
11
+ *
12
+ * PURE: no I/O, no wire/auth change. Safe to call anywhere (bridge cogent_list_peers, relay /card).
13
+ */
14
+ import type { AgentCard } from "@a2a-js/sdk";
15
+ import type { PeerInfo } from "../types/peer.js";
16
+ /**
17
+ * Open-form A2A `protocolBinding` for the Cogent relay transport. A2A's core bindings are
18
+ * JSONRPC | GRPC | HTTP+JSON; the field is explicitly an open string. We declare our OWN binding
19
+ * rather than falsely claiming JSON-RPC — a standard A2A client can READ this card but cannot yet
20
+ * TASK the peer over an A2A transport (that is the future cross-vendor gateway's job).
21
+ */
22
+ export declare const COGENT_PROTOCOL_BINDING = "COGENT-RELAY";
23
+ /** The A2A protocol major.minor this card's interface exposes. */
24
+ export declare const A2A_PROTOCOL_VERSION = "1.0";
25
+ export interface AgentCardContext {
26
+ /** Base relay endpoint (e.g. https://cogent.tools) — the peer is addressed inside a session under it. */
27
+ endpoint: string;
28
+ /** The relay/channel session id the peer lives in. */
29
+ sessionId: string;
30
+ /** The peer's client version → AgentCard.version. Falls back to peer.clientVersion, then "0.0.0". */
31
+ clientVersion?: string;
32
+ /** Card shape. Default "1.0.1" (canonical — declare latest). "0.3.0" = opt-in legacy scaffold. */
33
+ cardVersion?: "1.0.1" | "0.3.0";
34
+ }
35
+ /**
36
+ * PeerInfo carries role/capabilities once the wire seams land; read defensively (order-independent).
37
+ * `clientVersion` + `mode` live on the BRIDGE PeerInfo (src/types.ts), not this shared one, so they are
38
+ * declared here as optional rather than assumed on the shared type.
39
+ */
40
+ type PeerWithA2A = PeerInfo & {
41
+ role?: string;
42
+ capabilities?: string[];
43
+ mode?: "observer" | "agent";
44
+ clientVersion?: string;
45
+ };
46
+ /**
47
+ * Build a standard A2A Agent Card for a Cogent peer.
48
+ *
49
+ * v1.0.1 canonical (default): required `supportedInterfaces[]`, no top-level url/protocolVersion.
50
+ * v0.3.0 (opt-in scaffold): top-level `url` + `protocolVersion` — the shape most deployed clients read.
51
+ *
52
+ * Excluded-by-scope fields are emitted EMPTY (securitySchemes {}, securityRequirements [], signatures [])
53
+ * so the card is type/schema-valid without adopting any auth.
54
+ */
55
+ export declare function peerInfoToAgentCard(peer: PeerWithA2A, ctx: AgentCardContext): AgentCard;
56
+ export {};
57
+ //# sourceMappingURL=agent-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-card.d.ts","sourceRoot":"","sources":["../../src/a2a/agent-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAE1C,MAAM,WAAW,gBAAgB;IAC/B,yGAAyG;IACzG,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,qGAAqG;IACrG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kGAAkG;IAClG,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACjC;AAED;;;;GAIG;AACH,KAAK,WAAW,GAAG,QAAQ,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAuCF;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,gBAAgB,GAAG,SAAS,CAiDvF"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Open-form A2A `protocolBinding` for the Cogent relay transport. A2A's core bindings are
3
+ * JSONRPC | GRPC | HTTP+JSON; the field is explicitly an open string. We declare our OWN binding
4
+ * rather than falsely claiming JSON-RPC — a standard A2A client can READ this card but cannot yet
5
+ * TASK the peer over an A2A transport (that is the future cross-vendor gateway's job).
6
+ */
7
+ export const COGENT_PROTOCOL_BINDING = "COGENT-RELAY";
8
+ /** The A2A protocol major.minor this card's interface exposes. */
9
+ export const A2A_PROTOCOL_VERSION = "1.0";
10
+ /** "role:reviewer" / "auto-resume" → "Reviewer" / "Auto Resume". */
11
+ function titleCase(s) {
12
+ return s
13
+ .replace(/[:_-]+/g, " ")
14
+ .trim()
15
+ .replace(/\b\w/g, (c) => c.toUpperCase());
16
+ }
17
+ /** Map the peer's flat capability strings + role into A2A AgentSkill objects (deduped). */
18
+ function toSkills(peer) {
19
+ const caps = new Set(peer.capabilities ?? []);
20
+ if (peer.role)
21
+ caps.add(`role:${peer.role}`);
22
+ return [...caps].map((cap) => {
23
+ const isRole = cap.startsWith("role:");
24
+ const roleName = isRole ? cap.slice("role:".length) : cap;
25
+ return {
26
+ id: cap,
27
+ name: titleCase(roleName),
28
+ description: isRole
29
+ ? `Acts as the ${roleName} in agent-to-agent collaboration.`
30
+ : `Cogent capability: ${cap}.`,
31
+ tags: isRole ? ["role", roleName] : ["capability"],
32
+ examples: [],
33
+ inputModes: [],
34
+ outputModes: [],
35
+ securityRequirements: [],
36
+ };
37
+ });
38
+ }
39
+ function synthDescription(peer) {
40
+ const parts = [`Cogent fabric peer on ${peer.platform ?? "cc"}`];
41
+ if (peer.role)
42
+ parts.push(`role: ${peer.role}`);
43
+ if (peer.mode === "observer")
44
+ parts.push("observer (read-only)");
45
+ return parts.join("; ") + ".";
46
+ }
47
+ /**
48
+ * Build a standard A2A Agent Card for a Cogent peer.
49
+ *
50
+ * v1.0.1 canonical (default): required `supportedInterfaces[]`, no top-level url/protocolVersion.
51
+ * v0.3.0 (opt-in scaffold): top-level `url` + `protocolVersion` — the shape most deployed clients read.
52
+ *
53
+ * Excluded-by-scope fields are emitted EMPTY (securitySchemes {}, securityRequirements [], signatures [])
54
+ * so the card is type/schema-valid without adopting any auth.
55
+ */
56
+ export function peerInfoToAgentCard(peer, ctx) {
57
+ const url = `${ctx.endpoint.replace(/\/$/, "")}/api/sessions/${ctx.sessionId}`;
58
+ const name = `${peer.label} (${peer.peerId})`;
59
+ const description = synthDescription(peer);
60
+ const version = ctx.clientVersion ?? peer.clientVersion ?? "0.0.0";
61
+ const provider = { organization: `Cogent · ${peer.platform ?? "cc"}`, url: "https://cogent.tools" };
62
+ const skills = toSkills(peer);
63
+ if (ctx.cardVersion === "0.3.0") {
64
+ // Opt-in legacy scaffold (top-level url + protocolVersion). Different shape than the v1.0.1 type,
65
+ // hence the deliberate cast — this branch exists only for backward interop, not as the primary card.
66
+ return {
67
+ protocolVersion: "0.3.0",
68
+ name,
69
+ description,
70
+ url,
71
+ version,
72
+ provider,
73
+ capabilities: {},
74
+ defaultInputModes: ["text/plain"],
75
+ defaultOutputModes: ["text/plain"],
76
+ skills,
77
+ securitySchemes: {},
78
+ security: [],
79
+ };
80
+ }
81
+ // v1.0.1 canonical (PRIMARY).
82
+ return {
83
+ name,
84
+ description,
85
+ version,
86
+ provider,
87
+ supportedInterfaces: [
88
+ {
89
+ url,
90
+ protocolBinding: COGENT_PROTOCOL_BINDING,
91
+ protocolVersion: A2A_PROTOCOL_VERSION,
92
+ tenant: ctx.sessionId,
93
+ },
94
+ ],
95
+ capabilities: { extensions: [] },
96
+ defaultInputModes: ["text/plain"],
97
+ defaultOutputModes: ["text/plain"],
98
+ skills,
99
+ securitySchemes: {},
100
+ securityRequirements: [],
101
+ signatures: [],
102
+ };
103
+ }
104
+ //# sourceMappingURL=agent-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-card.js","sourceRoot":"","sources":["../../src/a2a/agent-card.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,4 +3,5 @@ export * from "./errors/index.js";
3
3
  export * from "./schemas/index.js";
4
4
  export * from "./routes/index.js";
5
5
  export * from "./helpers/index.js";
6
+ export * from "./a2a/agent-card.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -3,4 +3,5 @@ export * from "./errors/index.js";
3
3
  export * from "./schemas/index.js";
4
4
  export * from "./routes/index.js";
5
5
  export * from "./helpers/index.js";
6
+ export * from "./a2a/agent-card.js";
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
@@ -27,10 +27,14 @@ export interface RegisterPeerRequest {
27
27
  peerId: string;
28
28
  cwd: string;
29
29
  label: string;
30
- platform?: "cc" | "codex" | "slack" | "gchat" | "web";
30
+ platform?: "cc" | "codex" | "slack" | "gchat" | "web" | "gemini";
31
31
  type?: "agent" | "human";
32
32
  transport?: "ws" | "slack-bot" | "gchat-bot" | "websocket";
33
33
  platformIdentity?: Record<string, string>;
34
+ /** A2A role advertised by an agent peer (implementer|reviewer|auditor|coordinator). Optional; back-compat. */
35
+ role?: string;
36
+ /** Flat capability strings (auto-resume, reply:*, role:*, observer) — source for the A2A Agent Card skills[]. Optional. */
37
+ capabilities?: string[];
34
38
  }
35
39
  /** Request body for deregistering a peer (empty -- IDs come from URL path). */
36
40
  export interface DeregisterPeerRequest {
@@ -40,7 +44,7 @@ export interface SendMessageRequest {
40
44
  fromPeerId: string;
41
45
  toPeerId: string;
42
46
  message: string;
43
- originPlatform?: "cc" | "codex" | "slack" | "gchat" | "web";
47
+ originPlatform?: "cc" | "codex" | "slack" | "gchat" | "web" | "gemini";
44
48
  }
45
49
  /** Query parameters for message history retrieval. */
46
50
  export interface GetHistoryQuery {
@@ -1 +1 @@
1
- {"version":3,"file":"api-requests.d.ts","sourceRoot":"","sources":["../../src/schemas/api-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,sDAAsD;AACtD,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;IACtD,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;CAAG;AAEzC,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;CAC7D;AAED,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAM5D,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAKxD,CAAC;AAEZ;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAK9D,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAU1D,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAE9D,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAOxD,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAMlD,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAKtC,CAAC"}
1
+ {"version":3,"file":"api-requests.d.ts","sourceRoot":"","sources":["../../src/schemas/api-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,sDAAsD;AACtD,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACjE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,8GAA8G;IAC9G,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2HAA2H;IAC3H,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;CAAG;AAEzC,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;CACxE;AAED,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAM5D,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAKxD,CAAC;AAEZ;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAK9D,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAY1D,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAE9D,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAOxD,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAMlD,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAKtC,CAAC"}
@@ -41,10 +41,12 @@ export const RegisterPeerRequestSchema = z
41
41
  peerId: z.string().min(1).describe("Unique peer identifier"),
42
42
  cwd: z.string().describe("Peer working directory path"),
43
43
  label: z.string().describe("Human-readable peer label"),
44
- platform: z.enum(["cc", "codex", "slack", "gchat", "web"]).optional().describe("Platform this peer belongs to"),
44
+ platform: z.enum(["cc", "codex", "slack", "gchat", "web", "gemini"]).optional().describe("Platform this peer belongs to"),
45
45
  type: z.enum(["agent", "human"]).optional().describe("Peer type"),
46
46
  transport: z.enum(["ws", "slack-bot", "gchat-bot", "websocket"]).optional().describe("Transport mechanism"),
47
47
  platformIdentity: z.record(z.string(), z.string()).optional().describe("Platform-specific identity fields"),
48
+ role: z.string().max(64).optional().describe("A2A role advertised by this peer (Agent Card)"),
49
+ capabilities: z.array(z.string().max(64)).max(16).optional().describe("Capability strings → A2A Agent Card skills[]"),
48
50
  })
49
51
  .strict();
50
52
  /**
@@ -63,7 +65,7 @@ export const SendMessageRequestSchema = z
63
65
  fromPeerId: z.string().min(1).describe("Sender peer ID"),
64
66
  toPeerId: z.string().min(1).describe("Recipient peer ID (use '*' for broadcast)"),
65
67
  message: z.string().min(1).describe("Message content"),
66
- originPlatform: z.enum(["cc", "codex", "slack", "gchat", "web"]).optional().describe("Platform originating this message"),
68
+ originPlatform: z.enum(["cc", "codex", "slack", "gchat", "web", "gemini"]).optional().describe("Platform originating this message"),
67
69
  })
68
70
  .strict();
69
71
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"api-requests.js","sourceRoot":"","sources":["../../src/schemas/api-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiExB,wCAAwC;AAExC;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAoC,CAAC;KACzE,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+EAA+E,CAAC;IACjK,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;IACzF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yFAAyF,CAAC;CACxI,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAkC,CAAC;KACrE,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;CAC/G,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAqC,CAAC;KAC3E,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,QAAQ,CAAC,yEAAyE,CAAC;IAChJ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;CACxH,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAmC,CAAC;KACvE,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC5D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC/G,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IACjE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC3G,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAC5G,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAqC,CAAC;KAC3E,MAAM,CAAC,EAAE,CAAC;KACV,MAAM,EAAE,CAAC;AAEZ;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAkC,CAAC;KACrE,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACjF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACtD,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAC1H,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA+B,CAAC;KAC/D,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACpE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC1G,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CACpG,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAyB,CAAC;KACnD,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CACxD,CAAC;KACD,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"api-requests.js","sourceRoot":"","sources":["../../src/schemas/api-requests.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export interface MessageRecord {
11
11
  success: boolean;
12
12
  error: string | null;
13
13
  /** Platform that originated this message -- used for echo suppression in multi-platform sessions. */
14
- originPlatform?: "cc" | "codex" | "slack" | "gchat" | "web";
14
+ originPlatform?: "cc" | "codex" | "slack" | "gchat" | "web" | "gemini" | "whatsapp";
15
15
  }
16
16
  /**
17
17
  * MessageRecord schema -- describes a message exchanged between peers.
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,qGAAqG;IACrG,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;CAC7D;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAWvD,CAAC"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,qGAAqG;IACrG,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;CACrF;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAWvD,CAAC"}
@@ -13,6 +13,6 @@ export const MessageRecordSchema = z.object({
13
13
  durationMs: z.number().nullable().describe("Round-trip duration in ms"),
14
14
  success: z.boolean().describe("Whether delivery succeeded"),
15
15
  error: z.string().nullable().describe("Error message if delivery failed"),
16
- originPlatform: z.enum(["cc", "codex", "slack", "gchat", "web"]).optional().describe("Platform that originated this message"),
16
+ originPlatform: z.enum(["cc", "codex", "slack", "gchat", "web", "gemini", "whatsapp"]).optional().describe("Platform that originated this message"),
17
17
  });
18
18
  //# sourceMappingURL=message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA6B,CAAC,CAAC,MAAM,CAAC;IACpE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACrE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACvE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACvE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACzE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CAC9H,CAAC,CAAC"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA6B,CAAC,CAAC,MAAM,CAAC;IACpE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACrE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACvE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACvE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACzE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CACpJ,CAAC,CAAC"}
@@ -8,13 +8,37 @@ export interface PeerInfo {
8
8
  registeredAt: string;
9
9
  lastSeenAt: string;
10
10
  /** Platform this peer belongs to (default "cc" for Claude Code). */
11
- platform?: "cc" | "codex" | "slack" | "gchat" | "web";
11
+ platform?: "cc" | "codex" | "slack" | "gchat" | "web" | "gemini" | "whatsapp";
12
12
  /** Peer type: AI agent or human user. */
13
13
  type?: "agent" | "human";
14
14
  /** Transport mechanism for this peer. */
15
- transport?: "ws" | "slack-bot" | "gchat-bot" | "websocket";
15
+ transport?: "ws" | "slack-bot" | "gchat-bot" | "websocket" | "whatsapp-cloud";
16
16
  /** Platform-specific identity fields (e.g., slackUserId, slackChannelId). */
17
17
  platformIdentity?: Record<string, string>;
18
+ /**
19
+ * Durable workspace identifier (Slice 5 / Story 8.6). A STABLE id for the
20
+ * peer's workspace that does NOT depend on the mutable, lossy cwd hint (CC's
21
+ * cwd→escaped-path map is non-injective, so distinct cwds can collide). When
22
+ * present the relay can route/resolve on it instead of cwd; cwd becomes a hint.
23
+ * Optional + conditional-set → back-compat with older clients/relays.
24
+ */
25
+ workspaceId?: string;
26
+ /**
27
+ * Durable thread/conversation identifier (Slice 5 / Story 8.6). A stable id
28
+ * for the specific conversation within the workspace. Optional; back-compat.
29
+ */
30
+ threadId?: string;
31
+ /**
32
+ * A2A role advertised by an agent peer (implementer|reviewer|auditor|coordinator).
33
+ * Carried on the wire (2026-08) so the peer's A2A Agent Card has a real role skill.
34
+ * Optional; back-compat with older clients/relays.
35
+ */
36
+ role?: string;
37
+ /**
38
+ * Flat capability strings (auto-resume, reply:*, role:*, observer) — the source for
39
+ * the peer's A2A Agent Card skills[]. Optional; back-compat.
40
+ */
41
+ capabilities?: string[];
18
42
  }
19
43
  /**
20
44
  * PeerInfo schema -- describes a registered peer in a bridge session.
@@ -1 +1 @@
1
- {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../src/types/peer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,uFAAuF;AACvF,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;IACtD,yCAAyC;IACzC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,yCAAyC;IACzC,SAAS,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;IAC3D,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAW7C,CAAC"}
1
+ {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../src/types/peer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,uFAAuF;AACvF,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC9E,yCAAyC;IACzC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,yCAAyC;IACzC,SAAS,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,gBAAgB,CAAC;IAC9E,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAe7C,CAAC"}
@@ -10,9 +10,13 @@ export const PeerInfoSchema = z.object({
10
10
  label: z.string().describe("Human-readable label"),
11
11
  registeredAt: z.string().datetime().describe("ISO 8601 registration timestamp"),
12
12
  lastSeenAt: z.string().datetime().describe("ISO 8601 last activity timestamp"),
13
- platform: z.enum(["cc", "codex", "slack", "gchat", "web"]).optional().describe("Platform this peer belongs to"),
13
+ platform: z.enum(["cc", "codex", "slack", "gchat", "web", "gemini", "whatsapp"]).optional().describe("Platform this peer belongs to"),
14
14
  type: z.enum(["agent", "human"]).optional().describe("Peer type: AI agent or human user"),
15
- transport: z.enum(["ws", "slack-bot", "gchat-bot", "websocket"]).optional().describe("Transport mechanism for this peer"),
15
+ transport: z.enum(["ws", "slack-bot", "gchat-bot", "websocket", "whatsapp-cloud"]).optional().describe("Transport mechanism for this peer"),
16
16
  platformIdentity: z.record(z.string(), z.string()).optional().describe("Platform-specific identity fields (slackUserId, slackChannelId, etc.)"),
17
+ workspaceId: z.string().optional().describe("Durable workspace identifier (Slice 5) — stable id not tied to the mutable cwd hint"),
18
+ threadId: z.string().optional().describe("Durable thread/conversation identifier (Slice 5)"),
19
+ role: z.string().max(64).optional().describe("A2A role advertised by this peer (Agent Card)"),
20
+ capabilities: z.array(z.string().max(64)).max(16).optional().describe("Capability strings → A2A Agent Card skills[]"),
17
21
  });
18
22
  //# sourceMappingURL=peer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../src/types/peer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwB,CAAC,CAAC,MAAM,CAAC;IAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACrE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACrE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAClD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC/E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC/G,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACzF,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACzH,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;CAChJ,CAAC,CAAC"}
1
+ {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../src/types/peer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4CxB;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwB,CAAC,CAAC,MAAM,CAAC;IAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACrE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACrE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAClD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC/E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACrI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACzF,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC3I,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;IAC/I,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC;IAClI,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IAC5F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IAC7F,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;CACtH,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@essentialai/cogent",
3
- "version": "3.5.0",
3
+ "version": "3.6.0",
4
4
  "description": "Shared types, schemas, and contracts for Cogent Bridge",
5
5
  "type": "module",
6
6
  "exports": {
@@ -36,6 +36,7 @@
36
36
  "check-exports": "attw --pack"
37
37
  },
38
38
  "dependencies": {
39
+ "@a2a-js/sdk": "^1.0.1",
39
40
  "bcryptjs": "^3.0.3",
40
41
  "slackify-markdown": "^5.0.0"
41
42
  },
@@ -43,10 +44,10 @@
43
44
  "zod": "^3.25.0 || ^4.0.0"
44
45
  },
45
46
  "devDependencies": {
46
- "zod": "^4.0.0",
47
+ "@arethetypeswrong/cli": "^0.17.0",
47
48
  "typescript": "^5.7.2",
48
49
  "vitest": "^4.0.18",
49
- "@arethetypeswrong/cli": "^0.17.0"
50
+ "zod": "^4.0.0"
50
51
  },
51
52
  "engines": {
52
53
  "node": ">=18"