@groundnuty/macf-channel-server 0.2.54 → 0.2.56

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.
@@ -36,6 +36,11 @@ import type { NotifyPayload } from '@groundnuty/macf-core';
36
36
  * trusted clients (fine under mTLS).
37
37
  * - **source**: from `Message.metadata.source` (sender agent name); falls
38
38
  * back to a generic label when absent.
39
+ * - **reply_to** (macf#790 Gap 2): from `Message.metadata.reply_to` — the
40
+ * sender's canonical `<project>/<name>` reply address (stamped by
41
+ * `notify-peer.ts`'s `buildA2aMessageFromPayload`). Carried straight
42
+ * through so `formatNotifyContent` can surface it to the recipient;
43
+ * omitted when absent (pre-#790 senders) or non-string.
39
44
  */
40
45
  export declare function a2aMessageToNotifyPayload(message: Message): NotifyPayload;
41
46
  //# sourceMappingURL=a2a-delivery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"a2a-delivery.d.ts","sourceRoot":"","sources":["../src/a2a-delivery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAU3D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAmBzE"}
1
+ {"version":3,"file":"a2a-delivery.d.ts","sourceRoot":"","sources":["../src/a2a-delivery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAU3D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAqBzE"}
@@ -24,6 +24,11 @@ function isKnownEvent(v) {
24
24
  * trusted clients (fine under mTLS).
25
25
  * - **source**: from `Message.metadata.source` (sender agent name); falls
26
26
  * back to a generic label when absent.
27
+ * - **reply_to** (macf#790 Gap 2): from `Message.metadata.reply_to` — the
28
+ * sender's canonical `<project>/<name>` reply address (stamped by
29
+ * `notify-peer.ts`'s `buildA2aMessageFromPayload`). Carried straight
30
+ * through so `formatNotifyContent` can surface it to the recipient;
31
+ * omitted when absent (pre-#790 senders) or non-string.
27
32
  */
28
33
  export function a2aMessageToNotifyPayload(message) {
29
34
  const body = message.parts
@@ -32,6 +37,7 @@ export function a2aMessageToNotifyPayload(message) {
32
37
  .join('\n');
33
38
  const meta = message.metadata ?? {};
34
39
  const rawEvent = meta['event'];
40
+ const rawReplyTo = meta['reply_to'];
35
41
  const source = typeof meta['source'] === 'string' && meta['source'].length > 0
36
42
  ? meta['source']
37
43
  : 'a2a-peer';
@@ -41,6 +47,7 @@ export function a2aMessageToNotifyPayload(message) {
41
47
  message: body,
42
48
  // Omit `event` entirely when unrecognized → decideWake → skip (push-only).
43
49
  ...(isKnownEvent(rawEvent) ? { event: rawEvent } : {}),
50
+ ...(typeof rawReplyTo === 'string' && rawReplyTo.length > 0 ? { reply_to: rawReplyTo } : {}),
44
51
  };
45
52
  }
46
53
  //# sourceMappingURL=a2a-delivery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"a2a-delivery.js","sourceRoot":"","sources":["../src/a2a-delivery.ts"],"names":[],"mappings":"AAkBA,sEAAsE;AACtE,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAGlF,SAAS,YAAY,CAAC,CAAU;IAC9B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAK,YAAkC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK;SACvB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACjF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SAC3B,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;QAC5E,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChB,CAAC,CAAC,UAAU,CAAC;IAEf,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,MAAM;QACN,OAAO,EAAE,IAAI;QACb,2EAA2E;QAC3E,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"a2a-delivery.js","sourceRoot":"","sources":["../src/a2a-delivery.ts"],"names":[],"mappings":"AAkBA,sEAAsE;AACtE,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAGlF,SAAS,YAAY,CAAC,CAAU;IAC9B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAK,YAAkC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK;SACvB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACjF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SAC3B,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;QAC5E,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChB,CAAC,CAAC,UAAU,CAAC;IAEf,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,MAAM;QACN,OAAO,EAAE,IAAI;QACb,2EAA2E;QAC3E,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7F,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"notify-formatter.d.ts","sourceRoot":"","sources":["../src/notify-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,eAAe,CAiH3E"}
1
+ {"version":3,"file":"notify-formatter.d.ts","sourceRoot":"","sources":["../src/notify-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,eAAe,CAc3E"}
@@ -1,4 +1,19 @@
1
1
  export function formatNotifyContent(payload) {
2
+ const formatted = renderNotifyContent(payload);
3
+ // macf#790 Gap 2: when the sender stamped a canonical `<project>/<name>`
4
+ // reply-to slug, surface it explicitly so the recipient agent has an
5
+ // unambiguous reply address instead of guessing from the bare `source` —
6
+ // a guest replying to a bare routing label resolves inside its OWN
7
+ // project and never reaches the sender's home fleet. Applies uniformly
8
+ // across every rendered variant that can carry `reply_to` (peer_notification
9
+ // + mention today, both the legacy `/notify` path and the A2A message
10
+ // path once converted to NotifyPayload — see a2a-delivery.ts).
11
+ if (payload.reply_to !== undefined && payload.reply_to.length > 0) {
12
+ return { ...formatted, content: `${formatted.content}\n(reply to: ${payload.reply_to})` };
13
+ }
14
+ return formatted;
15
+ }
16
+ function renderNotifyContent(payload) {
2
17
  if (payload.type === 'issue_routed') {
3
18
  if (payload.issue_number !== undefined) {
4
19
  const suffix = payload.title ? `: ${payload.title}` : '';
@@ -1 +1 @@
1
- {"version":3,"file":"notify-formatter.js","sourceRoot":"","sources":["../src/notify-formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notify-formatter.js","sourceRoot":"","sources":["../src/notify-formatter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Registry } from '@groundnuty/macf-core';
2
2
  import type { Logger } from '@groundnuty/macf-core';
3
+ import type { CrossProjectAgentResolver } from '@groundnuty/macf-core';
3
4
  import { z } from 'zod';
4
5
  import { A2aClient } from './a2a-client.js';
5
6
  import type { CommsLedgerEdge } from './comms-ledger.js';
@@ -22,13 +23,29 @@ export declare const NotifyPeerOutputSchema: {
22
23
  readonly channel_state: z.ZodEnum<{
23
24
  online: "online";
24
25
  offline: "offline";
26
+ "no-peer-resolved": "no-peer-resolved";
25
27
  }>;
26
28
  readonly peers_attempted: z.ZodNumber;
27
29
  readonly peers_delivered: z.ZodNumber;
30
+ readonly error: z.ZodOptional<z.ZodString>;
28
31
  };
29
32
  export interface NotifyPeerDeps {
30
33
  readonly registry: Registry;
31
34
  readonly selfAgentName: string;
35
+ /**
36
+ * macf#790 Gap 2: this agent's canonical cross-fleet reply-to slug, in
37
+ * `<project>/<routing-label>` form (e.g. `icsoc-2026/science-agent`).
38
+ * Computed ONCE at the wiring site (`server.ts`, where both `config.project`
39
+ * and `config.routingLabel` are available) — NOT derived here, so this
40
+ * module never needs to know about `ChannelServerConfig`. Stamped onto
41
+ * every outbound payload (legacy `reply_to` field + A2A
42
+ * `Message.metadata.reply_to`) so a cross-fleet guest recipient has an
43
+ * unambiguous address to reply to, instead of resolving the bare
44
+ * `source`/`selfAgentName` inside ITS OWN project (macf#790's confirmed
45
+ * live bug: a guest's reply to a bare routing-label never reaches the
46
+ * sender's home fleet).
47
+ */
48
+ readonly selfReplyTo: string;
32
49
  readonly mTlsClientCertPem: string;
33
50
  readonly mTlsClientKeyPem: string;
34
51
  readonly caCertPem: string;
@@ -75,6 +92,35 @@ export interface NotifyPeerDeps {
75
92
  * `createNotifyOutboxSend`'s doc comment for the full accepted-tradeoff note.
76
93
  */
77
94
  readonly outboxAttempts: Map<string, NotifyOutboxAttempt>;
95
+ /**
96
+ * DR-041 Amendment A (groundnuty/macf#786): federated project identifiers
97
+ * this agent trusts — mirrors `.github/macf-fleet.json`'s `federated_cas`,
98
+ * loaded ONCE at server startup via `trust-bundle.ts`'s
99
+ * `loadFederatedCaProjects` and threaded here as the SAME list (not
100
+ * re-parsed) per `server.ts`. Gates outbound addressing of a
101
+ * `<project>/<name>` cross-fleet guest slug: a guest's home project MUST
102
+ * appear here or the send fails with a clear DR-041 error rather than a
103
+ * silent `peers_attempted:0`. Omitted (or `[]`, the DR-024 local-mode
104
+ * case — a non-empty `federated_cas` there throws at channel-server
105
+ * startup, per trust-bundle.ts) means "no federation": every
106
+ * `<project>/<name>` target fails rung 2.
107
+ */
108
+ readonly federatedCas?: readonly string[];
109
+ /**
110
+ * DR-041 Amendment A: resolve a federated guest's home-project registry
111
+ * slot — `(homeProject, name) → AgentInfo | null`. `server.ts` wires this
112
+ * from the SAME shared-registry client (`varsClient`) already used for the
113
+ * trust-bundle's federated CA cert reads + the `/sign` flow — a federated
114
+ * fleet's `<PROJECT>_AGENT_<NAME>` slot lives in that SAME shared registry
115
+ * namespace (DR-006 shared profile scope), just under a different project
116
+ * prefix. Mirrors `fleet-guests.ts`'s `GuestResolveFn` (DR-036) exactly —
117
+ * kept as an independent field (not that type) because this package does
118
+ * not depend on the `macf` CLI package; the SHARED ladder logic lives in
119
+ * macf-core's `resolveGuestAddress` instead. Omitted → cross-project
120
+ * resolution is unavailable (structurally unreachable in practice, since
121
+ * `federatedCas` is always `[]` whenever this is `undefined`).
122
+ */
123
+ readonly resolveCrossProjectAgent?: CrossProjectAgentResolver;
78
124
  }
79
125
  export interface NotifyPeerInput {
80
126
  readonly to?: string;
@@ -86,9 +132,12 @@ export interface NotifyPeerInput {
86
132
  }
87
133
  export interface NotifyPeerResult {
88
134
  readonly delivered: boolean;
89
- readonly channel_state: 'online' | 'offline';
135
+ /** macf#790 Gap 1 — see `NotifyPeerOutputSchema.channel_state` doc. */
136
+ readonly channel_state: 'online' | 'offline' | 'no-peer-resolved';
90
137
  readonly peers_attempted: number;
91
138
  readonly peers_delivered: number;
139
+ /** DR-041 Amendment A (macf#786) — see `NotifyPeerOutputSchema.error` doc. */
140
+ readonly error?: string;
92
141
  }
93
142
  /**
94
143
  * Tool body — resolves peers, fans out, aggregates.
@@ -1 +1 @@
1
- {"version":3,"file":"notify-peer.d.ts","sourceRoot":"","sources":["../src/notify-peer.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,OAAO,EAAE,SAAS,EAAkB,MAAM,iBAAiB,CAAC;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEjE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;CAgBxB,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;CASzB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5D;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB,GAAG,eAAe,GAAG,OAAO,GAAG,QAAQ,CAAC;IACzF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,yFAAyF;IACzF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAuXD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA0I3B;AAMD,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,gBAAgB,CAAC,CAAC;AAQnF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,EACxB,SAAS,SAAO,GACf;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;CAAE,CAoC1F"}
1
+ {"version":3,"file":"notify-peer.d.ts","sourceRoot":"","sources":["../src/notify-peer.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,11 @@
27
27
  */
28
28
  import { request as httpsRequest } from 'node:https';
29
29
  import { toVariableSegment, fromVariableSegment } from '@groundnuty/macf-core';
30
+ // DR-041 Amendment A (groundnuty/macf#786): the unified cross-fleet guest
31
+ // resolution ladder — same implementation `macf-ping` reuses (see
32
+ // packages/macf/src/plugin/bin/macf-plugin-cli.ts) so the addressing gate +
33
+ // its error text never drifts between call sites.
34
+ import { resolveGuestAddress } from '@groundnuty/macf-core';
30
35
  import { z } from 'zod';
31
36
  // macf#267 Findings 3+4: OTel span on outbound notify_peer + W3C
32
37
  // traceparent propagation to receiver. `propagation.inject()` writes
@@ -58,12 +63,25 @@ export const NotifyPeerInputSchema = {
58
63
  export const NotifyPeerOutputSchema = {
59
64
  delivered: z.boolean()
60
65
  .describe('True if at least one peer received HTTP 200 from /notify.'),
61
- channel_state: z.enum(['online', 'offline'])
62
- .describe('Aggregate state — "online" if at least one peer reachable, "offline" otherwise.'),
66
+ // macf#790 Gap 1: `no-peer-resolved` is distinct from `offline` — it means
67
+ // ADDRESS RESOLUTION failed (no peer was ever dialed), not that a real
68
+ // peer was attempted and found unreachable. Conflating the two reads as
69
+ // "my own channel-server is down" when the actual cause is a bad/
70
+ // unfederated `<project>/<name>` slug. See the `error` field doc below.
71
+ channel_state: z.enum(['online', 'offline', 'no-peer-resolved'])
72
+ .describe('Aggregate state — "online" if at least one peer reachable, "offline" if peers were attempted but unreachable, "no-peer-resolved" if address resolution itself failed (see `error`).'),
63
73
  peers_attempted: z.number().int().nonnegative()
64
74
  .describe('Number of peers the tool attempted to notify.'),
65
75
  peers_delivered: z.number().int().nonnegative()
66
76
  .describe('Subset of attempted peers that returned HTTP 200.'),
77
+ // DR-041 Amendment A (macf#786): a `<project>/<name>` cross-fleet guest
78
+ // target that fails the resolution ladder (home fleet not in
79
+ // `federated_cas`, or the guest's home-project registry slot is missing)
80
+ // surfaces here as a CLEAR message instead of a silent `peers_attempted:0`.
81
+ // Absent on success, and absent for a plain own-project `to` (unchanged
82
+ // pre-#786 "peer not registered" shape has no error field either).
83
+ error: z.string().optional()
84
+ .describe('Clear resolution error for a cross-fleet guest `to` (`<project>/<name>`) that failed the DR-041 Amendment A addressing ladder — home fleet not federated, or not found in the guest\'s home-project registry. Absent on success or for a plain own-project `to`.'),
67
85
  };
68
86
  /**
69
87
  * Resolve target peer list. Single-peer mode if `to` provided; broadcast
@@ -85,18 +103,56 @@ async function resolveTargetPeers(deps, to) {
85
103
  const selfNormalized = toVariableSegment(deps.selfAgentName);
86
104
  if (to !== undefined && to !== '') {
87
105
  if (toVariableSegment(to) === selfNormalized)
88
- return [];
89
- const info = await deps.registry.get(to);
106
+ return { peers: [] };
107
+ const { info, error } = await resolvePeerAddress(deps, to);
108
+ if (error !== undefined)
109
+ return { peers: [], error };
90
110
  if (info === null)
91
- return [];
92
- return [{ name: to, info }];
111
+ return { peers: [] };
112
+ return { peers: [{ name: to, info }] };
93
113
  }
94
114
  // Broadcast: list all registered peers, exclude self. Normalize BOTH
95
115
  // sides since Registry.list() can return names in either canonical
96
116
  // or variable form depending on the GitHubVariablesClient impl —
97
- // safest comparison normalizes both.
117
+ // safest comparison normalizes both. Own-project ONLY — DR-041 Amendment
118
+ // A extends explicit single-peer `to` addressing, not broadcast fan-out;
119
+ // guests are never included in a broadcast.
98
120
  const all = await deps.registry.list('');
99
- return all.filter(p => toVariableSegment(p.name) !== selfNormalized);
121
+ return { peers: all.filter(p => toVariableSegment(p.name) !== selfNormalized) };
122
+ }
123
+ /**
124
+ * DR-041 Amendment A (groundnuty/macf#786): resolve ONE address string to its
125
+ * `AgentInfo`, guest-aware. The SINGLE implementation reused at BOTH initial
126
+ * resolution (`resolveTargetPeers`, above) and outbox retry-time
127
+ * RE-resolution (`createNotifyOutboxSend`'s `send`, below) — a guest peer's
128
+ * LATER retries stay guest-aware too, not just the first attempt, exactly
129
+ * mirroring why an own-project peer is already re-resolved at send time (a
130
+ * retry gap can see host/port change via relaunch or collision takeover).
131
+ *
132
+ * A `<project>/<name>` slug is resolved via macf-core's `resolveGuestAddress`
133
+ * (reusing `parseGuestAgentRef` + gating on `deps.federatedCas` — the #785
134
+ * trust bundle is the SOLE admission gate per DR-041 Amendment A decision 1,
135
+ * NOT the `guests` binding). ANY other shape (rung 4) falls through to the
136
+ * UNCHANGED own-project `deps.registry.get()` lookup — byte-identical to the
137
+ * pre-#786 behavior.
138
+ *
139
+ * `error` is populated ONLY for a guest-ref that fails rung 2 (home fleet not
140
+ * federated) or rung 3 (registry slot missing) — the DR-041 Amendment A
141
+ * "clear error, not silent peers_attempted:0" AC. A bare own-project miss
142
+ * (rung 4) carries NO error — unchanged pre-#786 "peer not registered" shape
143
+ * (`peers_attempted:0`, no error field).
144
+ */
145
+ async function resolvePeerAddress(deps, to) {
146
+ const guestResolution = await resolveGuestAddress(to, deps.federatedCas ?? [], deps.resolveCrossProjectAgent ?? (() => Promise.resolve(null)));
147
+ switch (guestResolution.kind) {
148
+ case 'resolved':
149
+ return { info: guestResolution.info };
150
+ case 'not-federated':
151
+ case 'not-found':
152
+ return { info: null, error: guestResolution.error };
153
+ case 'not-a-guest-ref':
154
+ return { info: await deps.registry.get(to) };
155
+ }
100
156
  }
101
157
  /**
102
158
  * Send a single mTLS POST to `https://${host}:${port}/notify` with the
@@ -184,7 +240,7 @@ function peerBaseUrl(peer) {
184
240
  * must be the SAME across every retry, and this function has no id of its
185
241
  * own to offer).
186
242
  */
187
- function buildLegacyPayload(input, selfAgentName) {
243
+ function buildLegacyPayload(input, selfAgentName, selfReplyTo) {
188
244
  return {
189
245
  type: 'peer_notification',
190
246
  source: selfAgentName,
@@ -196,6 +252,11 @@ function buildLegacyPayload(input, selfAgentName) {
196
252
  // legacy recv edge can't derive the anchor → silent drop + send/recv
197
253
  // graph-join asymmetry.
198
254
  ...(input.github_anchor != null ? { github_anchor: input.github_anchor } : {}),
255
+ // macf#790 Gap 2: the canonical `<project>/<name>` reply-to slug, always
256
+ // present (selfReplyTo is required on NotifyPeerDeps) — unlike `source`
257
+ // (the bare routing label), this is unambiguous for a cross-fleet guest
258
+ // recipient to reply to.
259
+ reply_to: selfReplyTo,
199
260
  };
200
261
  }
201
262
  /**
@@ -221,7 +282,7 @@ function buildLegacyPayload(input, selfAgentName) {
221
282
  * receiver-side metadata-driven wake-decision routing so that custom
222
283
  * events on the A2A path still wake the receiver TUI.
223
284
  */
224
- function buildA2aMessageFromPayload(input, selfAgentName, id) {
285
+ function buildA2aMessageFromPayload(input, selfAgentName, selfReplyTo, id) {
225
286
  const summary = input.message ?? `Notification from ${selfAgentName} (event=${input.event})`;
226
287
  return {
227
288
  messageId: id,
@@ -234,6 +295,10 @@ function buildA2aMessageFromPayload(input, selfAgentName, id) {
234
295
  // macf#473 piece 2: carry the github_anchor on the wire so the
235
296
  // receiver records the same anchor on its recv edge (graph join).
236
297
  ...(input.github_anchor != null ? { github_anchor: input.github_anchor } : {}),
298
+ // macf#790 Gap 2: mirror the legacy path's `reply_to` — the canonical
299
+ // `<project>/<name>` slug the receiver should reply to, distinct from
300
+ // the bare `source` routing label.
301
+ reply_to: selfReplyTo,
237
302
  },
238
303
  };
239
304
  }
@@ -337,12 +402,15 @@ async function dispatchToPeer(deps, peer, input, id, timeoutMs) {
337
402
  }
338
403
  let result;
339
404
  if (protocol === 'legacy') {
340
- const legacyPayload = { ...buildLegacyPayload(input, deps.selfAgentName), message_id: id };
405
+ const legacyPayload = {
406
+ ...buildLegacyPayload(input, deps.selfAgentName, deps.selfReplyTo),
407
+ message_id: id,
408
+ };
341
409
  result = await postToPeer(deps, peer, legacyPayload, timeoutMs);
342
410
  }
343
411
  else {
344
412
  // A2A path: construct message (stable id stamped in) + send + map outcome.
345
- const message = buildA2aMessageFromPayload(input, deps.selfAgentName, id);
413
+ const message = buildA2aMessageFromPayload(input, deps.selfAgentName, deps.selfReplyTo, id);
346
414
  try {
347
415
  const task = await deps.a2aClient.sendMessage(`${peerBaseUrl(peer)}`, message,
348
416
  // macf#590: the `target` becomes the span's `gen_ai.agent.name`
@@ -462,7 +530,30 @@ export async function notifyPeer(deps, input) {
462
530
  },
463
531
  }, async (span) => {
464
532
  try {
465
- const peers = await resolveTargetPeers(deps, input.to);
533
+ const resolved = await resolveTargetPeers(deps, input.to);
534
+ // DR-041 Amendment A (macf#786): a cross-fleet guest `to` that fails
535
+ // the addressing ladder (home fleet not federated, or its
536
+ // registry slot is missing) gets a CLEAR error here — never a
537
+ // silent `peers_attempted:0` (the AC this rung exists to satisfy).
538
+ if (resolved.error !== undefined) {
539
+ span.setAttribute(Attr.PeersAttempted, 0);
540
+ span.setAttribute(Attr.PeersDelivered, 0);
541
+ span.setStatus({ code: SpanStatusCode.ERROR, message: resolved.error });
542
+ // macf#790 Gap 1: this is an ADDRESS RESOLUTION failure (bad/
543
+ // unfederated `<project>/<name>` slug) — no peer was ever dialed.
544
+ // `channel_state: 'offline'` here previously misread as "my own
545
+ // channel-server is down"; `'no-peer-resolved'` names the actual
546
+ // cause. Distinct from the real-outage path below (peers WERE
547
+ // attempted and found unreachable), which stays `'offline'`.
548
+ return {
549
+ delivered: false,
550
+ channel_state: 'no-peer-resolved',
551
+ peers_attempted: 0,
552
+ peers_delivered: 0,
553
+ error: resolved.error,
554
+ };
555
+ }
556
+ const peers = resolved.peers;
466
557
  if (peers.length === 0) {
467
558
  span.setAttribute(Attr.PeersAttempted, 0);
468
559
  span.setAttribute(Attr.PeersDelivered, 0);
@@ -594,8 +685,17 @@ export function createNotifyOutboxSend(deps, timeoutMs = 5000) {
594
685
  // changed (relaunch, collision takeover), and a stale cached AgentInfo
595
686
  // would keep retrying a dead address. `target` is the routing-label
596
687
  // string `outbox.enqueue`'s caller passed as its first arg
597
- // (`peer.name` in `notifyPeer()`).
598
- const info = await deps.registry.get(target);
688
+ // (`peer.name` in `notifyPeer()`) — for a DR-041 Amendment A cross-fleet
689
+ // guest peer, that is the ORIGINAL `<project>/<name>` slug (see
690
+ // `resolveTargetPeers`), so re-resolving via the SAME `resolvePeerAddress`
691
+ // helper keeps a guest peer's LATER retries guest-aware too, not just the
692
+ // first attempt. A guest whose federation is revoked between the initial
693
+ // send and a later retry degrades to a normal failed attempt here (no
694
+ // `error` propagation on this path — see `resolvePeerAddress`'s doc
695
+ // comment: the clear DR-041 error text is an INITIAL-resolution UX
696
+ // guarantee, not a per-retry one, since `OutboxSendFn`'s `{ack}` contract
697
+ // has no slot to carry a message through).
698
+ const { info } = await resolvePeerAddress(deps, target);
599
699
  if (info === null) {
600
700
  // Peer no longer registered — a transient (deregistered mid-restart)
601
701
  // or permanent (removed) absence look identical here; either way,
@@ -1 +1 @@
1
- {"version":3,"file":"notify-peer.js","sourceRoot":"","sources":["../src/notify-peer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notify-peer.js","sourceRoot":"","sources":["../src/notify-peer.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -52,8 +52,17 @@ import { createInboxTicker } from './delivery/inbox-ticker.js';
52
52
  // DR-041 Decision 1 (groundnuty/macf#784): cross-fleet multi-CA trust bundle.
53
53
  // Built ONCE at startup + threaded unchanged to all three mTLS-configuring
54
54
  // sites (inbound https.ts `ca:`, outbound a2a-client.ts + notify-peer.ts
55
- // `caCertPem`) — see trust-bundle.ts module doc for the full trust model.
56
- import { buildTrustBundlePem } from './trust-bundle.js';
55
+ // `caCertPem`) — see macf-core's trust-bundle.ts module doc for the full
56
+ // trust model. Moved to macf-core by DR-041 Amendment B (groundnuty/macf#794)
57
+ // so the `macf` CLI's guest-probe path can share the SAME security-critical
58
+ // resolution logic rather than duplicating it.
59
+ // DR-041 Amendment A (groundnuty/macf#786): `loadFederatedCaProjects` is
60
+ // called ONCE here (below) and its result threaded to BOTH the trust-bundle
61
+ // PEM resolution AND the outbound messaging layer's `federatedCas` dep —
62
+ // `buildTrustBundlePem`'s all-in-one orchestration is bypassed in favor of
63
+ // its two constituent calls so the file is read/parsed exactly once
64
+ // (single source, per the addressing-gate design on #786).
65
+ import { loadFederatedCaProjects, resolveFederatedCaBundle } from '@groundnuty/macf-core';
57
66
  async function main() {
58
67
  // Bootstrap OTEL BEFORE anything calls `trace.getTracer()` with
59
68
  // intent to record. Function is no-op when
@@ -365,18 +374,22 @@ async function main() {
365
374
  // used for the /sign flow above — a federated fleet's `<PROJECT>_CA_CERT`
366
375
  // lives in that same registry namespace (DR-006 shared profile scope),
367
376
  // just under a different project prefix, so no separate client is needed.
368
- // `undefined` in DR-024 local-registry mode; `buildTrustBundlePem` throws
369
- // LOUD at startup if federated_cas is declared without a resolvable
377
+ // `undefined` in DR-024 local-registry mode; `resolveFederatedCaBundle`
378
+ // throws LOUD at startup if federated_cas is declared without a resolvable
370
379
  // shared registry, rather than silently shipping a partial bundle (see
371
380
  // trust-bundle.ts module doc). Zero federation declared → returns
372
381
  // `ownCaCertPem` unchanged, byte-for-byte the pre-#784 single-CA value.
382
+ //
383
+ // DR-041 Amendment A (groundnuty/macf#786): `federatedCaProjects` is read
384
+ // HERE (single source) via `loadFederatedCaProjects`, then threaded to
385
+ // BOTH `resolveFederatedCaBundle` (the trust-bundle PEM, below) AND
386
+ // `notifyDispatchDeps.federatedCas` (the outbound MESSAGING addressing
387
+ // gate, further below) — the SAME list gates both "can I mTLS this fleet"
388
+ // and "can I address this fleet's guest," which is the point (DR-041
389
+ // Amendment A decision 1: trust is the single admission gate for both).
373
390
  const ownCaCertPem = readFileSync(config.caCertPath, 'utf8');
374
- const trustBundlePem = await buildTrustBundlePem({
375
- workspaceDir: config.workspaceDir,
376
- ownCaCertPem,
377
- varsClient,
378
- logger,
379
- });
391
+ const federatedCaProjects = loadFederatedCaProjects(config.workspaceDir, logger);
392
+ const trustBundlePem = await resolveFederatedCaBundle(ownCaCertPem, federatedCaProjects, varsClient, logger);
380
393
  // In-memory challenge store (DR-010, #80). Process-local; server restart
381
394
  // between step 1 and step 2 of a flow invalidates outstanding challenges.
382
395
  const challengeStore = createChallengeStore();
@@ -530,9 +543,31 @@ async function main() {
530
543
  mTlsClientKeyPem,
531
544
  caCertPem,
532
545
  });
546
+ // DR-041 Amendment A (groundnuty/macf#786): outbound cross-fleet GUEST
547
+ // addressing. `varsClient` is the SAME shared-registry client used for the
548
+ // trust-bundle's federated CA cert reads above + the /sign flow — a
549
+ // federated fleet's `<PROJECT>_AGENT_<NAME>` registry slot lives in that
550
+ // SAME shared registry namespace (DR-006 shared profile scope), just
551
+ // under a different project prefix, so `createRegistry(varsClient,
552
+ // homeProject)` resolves it with no separate client + no fresh token
553
+ // mint. `undefined` in DR-024 local-registry mode — structurally
554
+ // unreachable in practice anyway, since `federatedCaProjects` is always
555
+ // `[]` there (a non-empty `federated_cas` throws above, at the trust-
556
+ // bundle resolution step, before this point is ever reached).
557
+ const resolveCrossProjectAgent = varsClient === undefined
558
+ ? undefined
559
+ : (homeProject, name) => createRegistry(varsClient, homeProject).get(name);
533
560
  const notifyDispatchDeps = {
534
561
  registry,
535
562
  selfAgentName: config.agentName,
563
+ // macf#790 Gap 2: the canonical cross-fleet reply-to slug, computed ONCE
564
+ // here (the wiring site — the only place both `config.project` and
565
+ // `config.routingLabel` are naturally in scope) and threaded through
566
+ // notify-peer.ts's dispatch so every outbound payload carries an
567
+ // unambiguous `<project>/<name>` reply address rather than a bare
568
+ // routing label a cross-fleet guest would resolve inside its OWN
569
+ // project.
570
+ selfReplyTo: `${config.project}/${config.routingLabel}`,
536
571
  mTlsClientCertPem,
537
572
  mTlsClientKeyPem,
538
573
  caCertPem,
@@ -541,6 +576,10 @@ async function main() {
541
576
  // macf#473 piece 2: the outbound send edge site records a ledger edge
542
577
  // per peer once the dispatch outcome (delivered) is known.
543
578
  recordLedgerEdge,
579
+ // DR-041 Amendment A (macf#786): the SAME federated-project list that
580
+ // gated the trust bundle above now gates outbound guest addressing too.
581
+ federatedCas: federatedCaProjects,
582
+ resolveCrossProjectAgent,
544
583
  };
545
584
  // DR-038 Slice B: wire the durable outbox — `send` is the ACTUAL peer
546
585
  // dispatch (legacy /notify POST or A2A message/send), adapted to the
@@ -604,9 +643,12 @@ async function main() {
604
643
  mcp.mcp.registerTool('notify_peer', {
605
644
  description: 'Notify a peer agent of an event via the channel-server network. ' +
606
645
  'If `to` is provided, POSTs to that peer\'s /notify. If absent, broadcasts to ' +
607
- 'all registered peers in the project (excluding self). Failure semantics are ' +
646
+ 'all registered peers in the project (excluding self). `to` also accepts a ' +
647
+ '`<project>/<name>` cross-fleet guest slug (DR-041 Amendment A, macf#786), gated ' +
648
+ 'on the fleet\'s `federated_cas` trust bundle. Failure semantics are ' +
608
649
  'observational + non-blocking per DR-023 §"Failure-mode contract" — `isError: true` ' +
609
- 'when peers were attempted but none delivered, signaling LLM self-correction; ' +
650
+ 'when peers were attempted but none delivered, OR when a guest `to` fails the DR-041 ' +
651
+ 'addressing ladder (see the `error` field), signaling LLM self-correction; ' +
610
652
  'the triggering Stop event proceeds regardless.',
611
653
  inputSchema: NotifyPeerInputSchema,
612
654
  outputSchema: NotifyPeerOutputSchema,
@@ -619,7 +661,10 @@ async function main() {
619
661
  // it. NotifyPeerResult's `readonly` props make the strict-shape
620
662
  // assignment fail otherwise.
621
663
  structuredContent: { ...result },
622
- isError: result.peers_attempted > 0 && result.peers_delivered === 0,
664
+ // DR-041 Amendment A (macf#786): a guest-addressing ladder failure
665
+ // (`result.error` set) is ALSO an error result, not just the
666
+ // pre-#786 attempted-but-undelivered case.
667
+ isError: result.error !== undefined || (result.peers_attempted > 0 && result.peers_delivered === 0),
623
668
  };
624
669
  });
625
670
  // macf#271 / DR-023 UC-3: register checkpoint_to_memory MCP tool on
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groundnuty/macf-channel-server",
3
- "version": "0.2.54",
3
+ "version": "0.2.56",
4
4
  "description": "MCP channel server for the Multi-Agent Coordination Framework. HTTPS + mTLS endpoint agents connect to for inter-agent messaging (notify), CI-completion routing, and /sign certificate issuance. Invoked by Claude Code's plugin via `npx -y @groundnuty/macf-channel-server` per DR-022.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -33,7 +33,7 @@
33
33
  "test:integration": "vitest run --config vitest.integration.config.ts"
34
34
  },
35
35
  "dependencies": {
36
- "@groundnuty/macf-core": "0.2.54",
36
+ "@groundnuty/macf-core": "0.2.56",
37
37
  "@modelcontextprotocol/sdk": "~1.29.0",
38
38
  "@opentelemetry/api": "1.9.1",
39
39
  "@opentelemetry/core": "2.7.0",
@@ -1,59 +0,0 @@
1
- import { MacfError } from '@groundnuty/macf-core';
2
- import type { GitHubVariablesClient, Logger } from '@groundnuty/macf-core';
3
- /** Raised when a declared `federated_cas` entry cannot be resolved to a CA PEM. */
4
- export declare class TrustBundleError extends MacfError {
5
- constructor(message: string);
6
- }
7
- /**
8
- * Read `<workspaceDir>/.github/macf-fleet.json` and return the declared
9
- * `federated_cas` project list. Pure file-IO + parse — no network.
10
- *
11
- * Degrades to `[]` (i.e. "no federation") on every "the file doesn't clearly
12
- * express federation intent" case: no workspaceDir, absent file, unparseable
13
- * JSON, or a schema violation. This is the SAFE default for a trust-boundary
14
- * config — an empty bundle-addition means "trust only my own CA," which is
15
- * strictly MORE conservative than the pre-#784 behavior, never less. This
16
- * mirrors `fleet-guests.ts`'s `loadGuestBindings` loud-but-degrade posture
17
- * for the same file. Contrast with `resolveFederatedCaBundle` below, which
18
- * FAILS LOUD once a project is unambiguously *declared* — degrading there
19
- * would silently narrow an operator's explicit trust intent.
20
- */
21
- export declare function loadFederatedCaProjects(workspaceDir: string | undefined, logger: Logger): readonly string[];
22
- /**
23
- * Resolve `federatedProjects` to their `<PROJECT>_CA_CERT` shared-registry
24
- * variables and concatenate them onto `ownCaCertPem`, producing the final
25
- * trust-bundle PEM string threaded to all three mTLS-configuring sites
26
- * (`https.ts` inbound, `a2a-client.ts` + `notify-peer.ts` outbound).
27
- *
28
- * Empty `federatedProjects` short-circuits to `ownCaCertPem` UNCHANGED — the
29
- * exact pre-#784 single-CA value, byte-for-byte — so the zero-federation
30
- * path has no observable difference from before this feature existed.
31
- *
32
- * THROWS `TrustBundleError` (never returns a partial bundle) when:
33
- * - `federatedProjects` is non-empty but `varsClient` is `undefined` (this
34
- * agent's registry is DR-024 local-mode, which has no shared-registry
35
- * variable to resolve a foreign project's CA from); or
36
- * - any declared project's `<PROJECT>_CA_CERT` variable read fails
37
- * (network/auth error) or resolves to `null`/empty (variable absent).
38
- *
39
- * Exported standalone (no file IO) so tests can exercise every resolution
40
- * outcome — success, missing-var, read-error, local-mode-with-federation —
41
- * without needing a real `.github/macf-fleet.json` fixture.
42
- */
43
- export declare function resolveFederatedCaBundle(ownCaCertPem: string, federatedProjects: readonly string[], varsClient: GitHubVariablesClient | undefined, logger: Logger): Promise<string>;
44
- /**
45
- * Full orchestration: load `federated_cas` from the workspace's
46
- * `.github/macf-fleet.json` (degrade-to-`[]` on absent/malformed — safe
47
- * default), then resolve + concatenate into the final trust-bundle PEM
48
- * (fail-loud on an unresolvable DECLARED project — see module doc). This is
49
- * the single call `server.ts` makes at startup; its result is threaded
50
- * unchanged to `createHttpsServer`'s `caBundlePem`, `A2aClient`'s
51
- * `caCertPem`, and `notifyDispatchDeps.caCertPem`.
52
- */
53
- export declare function buildTrustBundlePem(deps: {
54
- readonly workspaceDir: string | undefined;
55
- readonly ownCaCertPem: string;
56
- readonly varsClient: GitHubVariablesClient | undefined;
57
- readonly logger: Logger;
58
- }): Promise<string>;
59
- //# sourceMappingURL=trust-bundle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trust-bundle.d.ts","sourceRoot":"","sources":["../src/trust-bundle.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAE,SAAS,EAA2C,MAAM,uBAAuB,CAAC;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3E,mFAAmF;AACnF,qBAAa,gBAAiB,SAAQ,SAAS;gBACjC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,EAAE,MAAM,GACb,SAAS,MAAM,EAAE,CAyBnB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,SAAS,MAAM,EAAE,EACpC,UAAU,EAAE,qBAAqB,GAAG,SAAS,EAC7C,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CA0CjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,MAAM,CAAC,CAGlB"}
@@ -1,158 +0,0 @@
1
- /**
2
- * DR-041 Decision 1 (cross-fleet trust federation, groundnuty/macf#784):
3
- * builds this channel-server's multi-CA mTLS trust bundle from its own CA +
4
- * zero-or-more federated fleets' CAs declared in `.github/macf-fleet.json`
5
- * `federated_cas` (macf-core `guest.ts` schema).
6
- *
7
- * v1 = the STATIC committed-bundle tier (DR-041 Decision 1c Tier v1): the
8
- * bundle is resolved ONCE at process startup from the shared registry (the
9
- * same GitHub-Variables backing this agent's OWN registry, per DR-006 shared
10
- * profile scope — a federated fleet's `<PROJECT>_CA_CERT` variable lives in
11
- * the same registry namespace as this fleet's own, just under a different
12
- * project prefix). Re-resolved on the next process restart if a federated
13
- * fleet rotates its CA (documented rotation model: re-commit + notify). The
14
- * well-known bundle-endpoint + poller tier (rotation-aware, live-fetched) is
15
- * v2 — documented, not built (backlog groundnuty/macf#783).
16
- *
17
- * SECURITY-CRITICAL trust-boundary code. Two invariants this module upholds
18
- * (DR-041 Decision 1b):
19
- *
20
- * 1. **Complete-allow-list, never partial.** The resulting bundle REPLACES
21
- * Node's default TLS root store at every consuming site (`https.ts`
22
- * inbound `ca:`, `a2a-client.ts` + `notify-peer.ts` outbound `ca:`), so
23
- * it MUST carry every CA this agent intends to trust. If a declared
24
- * `federated_cas` project's CA is unresolvable (registry read failure,
25
- * or the variable is simply absent), this module THROWS rather than
26
- * silently omitting that CA from the bundle — a silently-partial bundle
27
- * would present as the EXACT same symptom (a guest reading `offline`)
28
- * DR-041 exists to fix, with no signal pointing at the real cause. See
29
- * `.claude/rules/silent-fallback-hazards.md` — this is Pattern B
30
- * (reject-at-the-boundary) applied to a trust-anchor set.
31
- * 2. **All-or-nothing per fleet-CA, by design.** Federating a fleet's CA
32
- * trusts EVERY certificate that CA has signed or will sign — there is
33
- * no per-agent or per-skill restriction at this layer (DR-041 Decision
34
- * 4 explicitly defers finer-grained capability enforcement to a future
35
- * capability-token mechanism, NOT this bundle).
36
- */
37
- import { existsSync, readFileSync } from 'node:fs';
38
- import { join } from 'node:path';
39
- import { MacfError, parseMacfFleetConfig, toVariableSegment } from '@groundnuty/macf-core';
40
- /** Raised when a declared `federated_cas` entry cannot be resolved to a CA PEM. */
41
- export class TrustBundleError extends MacfError {
42
- constructor(message) {
43
- super('TRUST_BUNDLE_ERROR', message);
44
- this.name = 'TrustBundleError';
45
- }
46
- }
47
- /**
48
- * Read `<workspaceDir>/.github/macf-fleet.json` and return the declared
49
- * `federated_cas` project list. Pure file-IO + parse — no network.
50
- *
51
- * Degrades to `[]` (i.e. "no federation") on every "the file doesn't clearly
52
- * express federation intent" case: no workspaceDir, absent file, unparseable
53
- * JSON, or a schema violation. This is the SAFE default for a trust-boundary
54
- * config — an empty bundle-addition means "trust only my own CA," which is
55
- * strictly MORE conservative than the pre-#784 behavior, never less. This
56
- * mirrors `fleet-guests.ts`'s `loadGuestBindings` loud-but-degrade posture
57
- * for the same file. Contrast with `resolveFederatedCaBundle` below, which
58
- * FAILS LOUD once a project is unambiguously *declared* — degrading there
59
- * would silently narrow an operator's explicit trust intent.
60
- */
61
- export function loadFederatedCaProjects(workspaceDir, logger) {
62
- if (workspaceDir === undefined)
63
- return [];
64
- const path = join(workspaceDir, '.github', 'macf-fleet.json');
65
- if (!existsSync(path))
66
- return [];
67
- let raw;
68
- try {
69
- raw = JSON.parse(readFileSync(path, 'utf-8'));
70
- }
71
- catch (e) {
72
- logger.warn('trust_bundle_fleet_config_parse_failed', {
73
- path,
74
- error: e instanceof Error ? e.message : String(e),
75
- });
76
- return [];
77
- }
78
- try {
79
- return parseMacfFleetConfig(raw).federated_cas;
80
- }
81
- catch (e) {
82
- logger.warn('trust_bundle_fleet_config_invalid', {
83
- path,
84
- error: e instanceof Error ? e.message : String(e),
85
- });
86
- return [];
87
- }
88
- }
89
- /**
90
- * Resolve `federatedProjects` to their `<PROJECT>_CA_CERT` shared-registry
91
- * variables and concatenate them onto `ownCaCertPem`, producing the final
92
- * trust-bundle PEM string threaded to all three mTLS-configuring sites
93
- * (`https.ts` inbound, `a2a-client.ts` + `notify-peer.ts` outbound).
94
- *
95
- * Empty `federatedProjects` short-circuits to `ownCaCertPem` UNCHANGED — the
96
- * exact pre-#784 single-CA value, byte-for-byte — so the zero-federation
97
- * path has no observable difference from before this feature existed.
98
- *
99
- * THROWS `TrustBundleError` (never returns a partial bundle) when:
100
- * - `federatedProjects` is non-empty but `varsClient` is `undefined` (this
101
- * agent's registry is DR-024 local-mode, which has no shared-registry
102
- * variable to resolve a foreign project's CA from); or
103
- * - any declared project's `<PROJECT>_CA_CERT` variable read fails
104
- * (network/auth error) or resolves to `null`/empty (variable absent).
105
- *
106
- * Exported standalone (no file IO) so tests can exercise every resolution
107
- * outcome — success, missing-var, read-error, local-mode-with-federation —
108
- * without needing a real `.github/macf-fleet.json` fixture.
109
- */
110
- export async function resolveFederatedCaBundle(ownCaCertPem, federatedProjects, varsClient, logger) {
111
- if (federatedProjects.length === 0) {
112
- return ownCaCertPem;
113
- }
114
- if (varsClient === undefined) {
115
- throw new TrustBundleError(`DR-041 federated_cas declares ${federatedProjects.length} federated project(s) ` +
116
- `(${federatedProjects.join(', ')}) but this agent's registry is DR-024 local-mode, ` +
117
- 'which has no shared GitHub-Variables registry to resolve a foreign fleet\'s CA from. ' +
118
- 'Cross-fleet CA federation (DR-041) requires a GitHub-backed registry (repo/org/profile). ' +
119
- 'Remove federated_cas from .github/macf-fleet.json, or switch this agent off local mode.');
120
- }
121
- const parts = [ownCaCertPem];
122
- for (const project of federatedProjects) {
123
- const varName = `${toVariableSegment(project)}_CA_CERT`;
124
- let pem;
125
- try {
126
- pem = await varsClient.readVariable(varName);
127
- }
128
- catch (e) {
129
- throw new TrustBundleError(`DR-041 federated_cas: failed to read registry variable "${varName}" for declared ` +
130
- `federated project "${project}": ${e instanceof Error ? e.message : String(e)}. ` +
131
- 'Refusing to start with an INCOMPLETE trust bundle (a partial bundle would present ' +
132
- 'as the exact same "guest reads offline" symptom DR-041 fixes, with no signal why).');
133
- }
134
- if (pem === null || pem.trim() === '') {
135
- throw new TrustBundleError(`DR-041 federated_cas: registry variable "${varName}" is missing/empty for declared ` +
136
- `federated project "${project}". Run \`macf certs\` on that project first to publish ` +
137
- 'its CA, or remove the project from federated_cas. Refusing to start with an ' +
138
- 'INCOMPLETE trust bundle.');
139
- }
140
- parts.push(pem);
141
- logger.info('trust_bundle_federated_ca_added', { project, variable: varName });
142
- }
143
- return parts.join('\n');
144
- }
145
- /**
146
- * Full orchestration: load `federated_cas` from the workspace's
147
- * `.github/macf-fleet.json` (degrade-to-`[]` on absent/malformed — safe
148
- * default), then resolve + concatenate into the final trust-bundle PEM
149
- * (fail-loud on an unresolvable DECLARED project — see module doc). This is
150
- * the single call `server.ts` makes at startup; its result is threaded
151
- * unchanged to `createHttpsServer`'s `caBundlePem`, `A2aClient`'s
152
- * `caCertPem`, and `notifyDispatchDeps.caCertPem`.
153
- */
154
- export async function buildTrustBundlePem(deps) {
155
- const federatedProjects = loadFederatedCaProjects(deps.workspaceDir, deps.logger);
156
- return resolveFederatedCaBundle(deps.ownCaCertPem, federatedProjects, deps.varsClient, deps.logger);
157
- }
158
- //# sourceMappingURL=trust-bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trust-bundle.js","sourceRoot":"","sources":["../src/trust-bundle.ts"],"names":[],"mappings":"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"}