@monoes/monomindcli 2.10.30 → 2.10.31
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/.claude/helpers/graphify-freshen.cjs +11 -12
- package/.claude/helpers/handlers/capture-handler.cjs +1 -1
- package/dist/src/commands/analyze-diff.d.ts.map +1 -1
- package/dist/src/commands/analyze-diff.js +6 -0
- package/dist/src/commands/analyze-diff.js.map +1 -1
- package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +2 -2
- package/dist/src/commands/doctor-project-checks.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/mcp.d.ts.map +1 -1
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts +15 -7
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +208 -63
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +57 -4
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +11 -2
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/memory/memory-kg.d.ts.map +1 -1
- package/dist/src/memory/memory-kg.js +10 -2
- package/dist/src/memory/memory-kg.js.map +1 -1
- package/dist/src/orgrt/agent-exec.d.ts.map +1 -1
- package/dist/src/orgrt/agent-exec.js +7 -3
- package/dist/src/orgrt/agent-exec.js.map +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
- package/dist/src/orgrt/antigravity-runner.js +6 -2
- package/dist/src/orgrt/antigravity-runner.js.map +1 -1
- package/dist/src/orgrt/approvals.d.ts +15 -1
- package/dist/src/orgrt/approvals.d.ts.map +1 -1
- package/dist/src/orgrt/approvals.js +76 -11
- package/dist/src/orgrt/approvals.js.map +1 -1
- package/dist/src/orgrt/broker.d.ts +10 -2
- package/dist/src/orgrt/broker.d.ts.map +1 -1
- package/dist/src/orgrt/broker.js +20 -5
- package/dist/src/orgrt/broker.js.map +1 -1
- package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/cross-org.d.ts +15 -2
- package/dist/src/orgrt/cross-org.d.ts.map +1 -1
- package/dist/src/orgrt/cross-org.js +169 -16
- package/dist/src/orgrt/cross-org.js.map +1 -1
- package/dist/src/orgrt/daemon.d.ts +31 -3
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +132 -21
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts.map +1 -1
- package/dist/src/orgrt/decisions.js +13 -1
- package/dist/src/orgrt/decisions.js.map +1 -1
- package/dist/src/orgrt/endpoint-roles.d.ts +86 -0
- package/dist/src/orgrt/endpoint-roles.d.ts.map +1 -0
- package/dist/src/orgrt/endpoint-roles.js +364 -0
- package/dist/src/orgrt/endpoint-roles.js.map +1 -0
- package/dist/src/orgrt/inbox.d.ts +18 -0
- package/dist/src/orgrt/inbox.d.ts.map +1 -1
- package/dist/src/orgrt/inbox.js +73 -0
- package/dist/src/orgrt/inbox.js.map +1 -1
- package/dist/src/orgrt/migrate.d.ts.map +1 -1
- package/dist/src/orgrt/migrate.js +3 -0
- package/dist/src/orgrt/migrate.js.map +1 -1
- package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/opencode-runner.js +2 -1
- package/dist/src/orgrt/opencode-runner.js.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.js +6 -2
- package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
- package/dist/src/orgrt/policy.d.ts +22 -1
- package/dist/src/orgrt/policy.d.ts.map +1 -1
- package/dist/src/orgrt/policy.js +36 -4
- package/dist/src/orgrt/policy.js.map +1 -1
- package/dist/src/orgrt/questions.d.ts +3 -1
- package/dist/src/orgrt/questions.d.ts.map +1 -1
- package/dist/src/orgrt/questions.js +19 -3
- package/dist/src/orgrt/questions.js.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.js +3 -1
- package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -1
- package/dist/src/orgrt/role-slot.d.ts +1 -2
- package/dist/src/orgrt/role-slot.d.ts.map +1 -1
- package/dist/src/orgrt/role-slot.js +2 -1
- package/dist/src/orgrt/role-slot.js.map +1 -1
- package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
- package/dist/src/orgrt/scheduler-integration.js +8 -1
- package/dist/src/orgrt/scheduler-integration.js.map +1 -1
- package/dist/src/orgrt/server.d.ts.map +1 -1
- package/dist/src/orgrt/server.js +43 -8
- package/dist/src/orgrt/server.js.map +1 -1
- package/dist/src/orgrt/session.d.ts +12 -1
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +20 -3
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/tool-providers.d.ts +110 -0
- package/dist/src/orgrt/tool-providers.d.ts.map +1 -0
- package/dist/src/orgrt/tool-providers.js +617 -0
- package/dist/src/orgrt/tool-providers.js.map +1 -0
- package/dist/src/orgrt/types.d.ts +72 -0
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +56 -0
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/protocol-capabilities.d.ts +7 -1
- package/dist/src/protocol-capabilities.d.ts.map +1 -1
- package/dist/src/protocol-capabilities.js +15 -1
- package/dist/src/protocol-capabilities.js.map +1 -1
- package/dist/src/ui/routes-org.mjs +9 -7
- package/dist/src/utils/native-error.d.ts.map +1 -1
- package/dist/src/utils/native-error.js +9 -5
- package/dist/src/utils/native-error.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type OrgDaemon, type RunningOrg } from './daemon.js';
|
|
2
|
+
/** `federation.allow_*` membership: absent list = unrestricted, '*' = any. */
|
|
3
|
+
export declare function federationAllows(list: string[] | undefined, org: string): boolean;
|
|
2
4
|
/**
|
|
3
5
|
* Resolves an org_send `to` address ("role" for same-org, "org:role" for
|
|
4
6
|
* cross-org) into its parts. Centralizes the one addressing rule that
|
|
@@ -25,11 +27,22 @@ export declare function mailBody(root: string, orgName: string, org: RunningOrg
|
|
|
25
27
|
* emitted the audit event) or the recipient can't take mail. */
|
|
26
28
|
export declare function pushMessage(daemon: OrgDaemon, orgName: string, org: RunningOrg, toRole: string, from: string, subject: string, body: string, id: string): Promise<boolean>;
|
|
27
29
|
/** Route a message. to = "role" (same org) or "org:role" (cross-org). Returns a receipt string. */
|
|
28
|
-
export declare function deliver(daemon: OrgDaemon, fromOrg: string, fromRole: string, to: string, subject: string, body: string
|
|
30
|
+
export declare function deliver(daemon: OrgDaemon, fromOrg: string, fromRole: string, to: string, subject: string, body: string, opts?: {
|
|
31
|
+
messageId?: string;
|
|
32
|
+
}): Promise<string>;
|
|
33
|
+
export interface ReceiveRemoteOpts {
|
|
34
|
+
/** The caller presented the OPERATOR credential: skip the broker sender
|
|
35
|
+
* identity check and trust `fromQualified` as given (M3). */
|
|
36
|
+
operator?: boolean;
|
|
37
|
+
/** Origin message id (M3) — generated here when the sender sent none. */
|
|
38
|
+
messageId?: string;
|
|
39
|
+
/** M4: the sending daemon's project root (xdeliver body `fromRoot`). */
|
|
40
|
+
fromRoot?: string;
|
|
41
|
+
}
|
|
29
42
|
/** Inbound handler for cross-process delivery — called by the server's POST /api/xdeliver route
|
|
30
43
|
* when ANOTHER process's deliverRemote() reaches this daemon. Pushes straight into the target
|
|
31
44
|
* agent's mailbox; the agent picks it up on its own next turn (see Mailbox — never interrupts). */
|
|
32
|
-
export declare function receiveRemote(daemon: OrgDaemon, toOrg: string, toRole: string, fromQualified: string, subject: string, body: string, fromCredential?: string): Promise<{
|
|
45
|
+
export declare function receiveRemote(daemon: OrgDaemon, toOrg: string, toRole: string, fromQualified: string, subject: string, body: string, fromCredential?: string, opts?: ReceiveRemoteOpts): Promise<{
|
|
33
46
|
ok: true;
|
|
34
47
|
receipt: string;
|
|
35
48
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-org.d.ts","sourceRoot":"","sources":["../../../src/orgrt/cross-org.ts"],"names":[],"mappings":"AAOA,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cross-org.d.ts","sourceRoot":"","sources":["../../../src/orgrt/cross-org.ts"],"names":[],"mappings":"AAOA,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAS/E,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAGjF;AAsED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,GACT;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAMtE;AAED;;;mEAGmE;AACnE,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,UAAU,GAAG,SAAS,EAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,MAAM,CAWR;AAED;;;;;iEAKiE;AACjE,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,OAAO,CAAC,CAoClB;AAUD,mGAAmG;AACnG,wBAAsB,OAAO,CAC3B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,CAAC,MAAM,CAAC,CA6RjB;AAwMD,MAAM,WAAW,iBAAiB;IAChC;kEAC8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;oGAEoG;AACpG,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,MAAM,EACvB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA6NvE"}
|
|
@@ -1,14 +1,40 @@
|
|
|
1
1
|
// packages/@monomind/cli/src/orgrt/cross-org.ts
|
|
2
2
|
// Extracted from daemon.ts — message delivery, cross-org routing, remote delivery.
|
|
3
3
|
import { timingSafeEqual } from 'node:crypto';
|
|
4
|
-
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
4
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { checkResources, waitForCapacity } from '../utils/resource-governor.js';
|
|
7
|
-
import { lookupOrg } from './broker.js';
|
|
7
|
+
import { lookupOrg, normalizeRoot } from './broker.js';
|
|
8
8
|
import { activeRoleCount } from './daemon.js';
|
|
9
|
+
import { clearEndpointWait, deliverToEndpoint, findEndpointRole } from './endpoint-roles.js';
|
|
9
10
|
import { scanMessage } from './fence.js';
|
|
10
|
-
import { queueMessage } from './inbox.js';
|
|
11
|
+
import { newMessageId, queueMessage } from './inbox.js';
|
|
12
|
+
import { parseTraceLine } from './tool-providers.js';
|
|
11
13
|
import { ORG_DIR } from './types.js';
|
|
14
|
+
// ── M4 federation ───────────────────────────────────────────────────────
|
|
15
|
+
/** `federation.allow_*` membership: absent list = unrestricted, '*' = any. */
|
|
16
|
+
export function federationAllows(list, org) {
|
|
17
|
+
if (list === undefined)
|
|
18
|
+
return true;
|
|
19
|
+
return list.includes('*') || list.includes(org);
|
|
20
|
+
}
|
|
21
|
+
/** The org def for federation checks: the running def, else the one on disk. */
|
|
22
|
+
function federationDef(daemon, org) {
|
|
23
|
+
const running = daemon.orgs.get(org);
|
|
24
|
+
if (running)
|
|
25
|
+
return running.def;
|
|
26
|
+
if (!daemon.hasOrgDef(org))
|
|
27
|
+
return undefined;
|
|
28
|
+
const path = join(daemon.root, ORG_DIR, `${org}.json`);
|
|
29
|
+
try {
|
|
30
|
+
if (!existsSync(path))
|
|
31
|
+
return undefined;
|
|
32
|
+
return JSON.parse(readFileSync(path, 'utf8'));
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
12
38
|
/** Bodies larger than this are digested to a .mail file (see mailBody). */
|
|
13
39
|
const MAIL_BODY_MAX = 4096;
|
|
14
40
|
/** How much of an oversized body stays inline in the digest. */
|
|
@@ -112,19 +138,49 @@ export async function pushMessage(daemon, orgName, org, toRole, from, subject, b
|
|
|
112
138
|
const slot = org.roleSlots?.get(toRole);
|
|
113
139
|
if (slot?.phase === 'draining') {
|
|
114
140
|
slot.queuedDuringSwap.push(mail);
|
|
141
|
+
recordTrace(org, toRole, body);
|
|
142
|
+
clearEndpointWait(org, orgName, from);
|
|
115
143
|
return true;
|
|
116
144
|
}
|
|
117
145
|
const agent = org.agents.get(toRole);
|
|
118
146
|
if (!agent || agent.mailbox.isClosed)
|
|
119
147
|
return false;
|
|
120
148
|
agent.mailbox.push(mail);
|
|
149
|
+
recordTrace(org, toRole, body);
|
|
150
|
+
clearEndpointWait(org, orgName, from);
|
|
121
151
|
return true;
|
|
122
152
|
}
|
|
153
|
+
/** M1: remember the chain trace of the latest traced message a role got. */
|
|
154
|
+
function recordTrace(org, toRole, body) {
|
|
155
|
+
const trace = parseTraceLine(body);
|
|
156
|
+
if (!trace)
|
|
157
|
+
return;
|
|
158
|
+
if (!org.traces)
|
|
159
|
+
org.traces = new Map();
|
|
160
|
+
org.traces.set(toRole, trace);
|
|
161
|
+
}
|
|
123
162
|
/** Route a message. to = "role" (same org) or "org:role" (cross-org). Returns a receipt string. */
|
|
124
|
-
export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
163
|
+
export async function deliver(daemon, fromOrg, fromRole, to, subject, body, opts = {}) {
|
|
164
|
+
// M3: one id per logical message, stamped on every bus copy and queue entry.
|
|
165
|
+
const messageId = opts.messageId ?? newMessageId();
|
|
125
166
|
const { cross, orgName: targetOrgName, role: targetRole, qualified: toQualified, } = resolveAddress(fromOrg, to);
|
|
126
167
|
const targetOrg = daemon.orgs.get(targetOrgName);
|
|
127
168
|
const src = daemon.orgs.get(fromOrg);
|
|
169
|
+
// M2: an endpoint role has no mailbox — POST to its endpoint instead.
|
|
170
|
+
const endpointRole = targetOrg ? findEndpointRole(targetOrg.def, targetRole) : undefined;
|
|
171
|
+
if (targetOrg && endpointRole) {
|
|
172
|
+
return deliverToEndpoint(daemon, {
|
|
173
|
+
orgName: targetOrgName,
|
|
174
|
+
org: targetOrg,
|
|
175
|
+
role: endpointRole,
|
|
176
|
+
from: cross ? `${fromOrg}:${fromRole}` : fromRole,
|
|
177
|
+
subject,
|
|
178
|
+
body,
|
|
179
|
+
messageId,
|
|
180
|
+
src,
|
|
181
|
+
eventTo: toQualified,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
128
184
|
// Lazy spawn: if the role is pending (not yet spawned), spawn it now.
|
|
129
185
|
// ATOMIC GUARD: Check spawning Set to prevent duplicate spawns from concurrent messages
|
|
130
186
|
const spawning = daemon.spawning.get(targetOrgName) ?? new Set();
|
|
@@ -155,6 +211,7 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
155
211
|
subject,
|
|
156
212
|
body,
|
|
157
213
|
ts: Date.now(),
|
|
214
|
+
messageId,
|
|
158
215
|
});
|
|
159
216
|
if (!queued) {
|
|
160
217
|
src?.bus.emit({
|
|
@@ -190,6 +247,7 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
190
247
|
subject,
|
|
191
248
|
body,
|
|
192
249
|
ts: Date.now(),
|
|
250
|
+
messageId,
|
|
193
251
|
});
|
|
194
252
|
if (!queued) {
|
|
195
253
|
src?.bus.emit({
|
|
@@ -216,7 +274,7 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
216
274
|
}
|
|
217
275
|
if (!targetOrg?.agents.has(targetRole)) {
|
|
218
276
|
if (cross && daemon.opts.crossProcess)
|
|
219
|
-
return deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRole, toQualified, subject, body, src);
|
|
277
|
+
return deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRole, toQualified, subject, body, src, messageId);
|
|
220
278
|
// Queue + auto-wake: if the org definition exists locally but isn't running, spool the message and start it
|
|
221
279
|
if (cross && daemon.hasOrgDef(targetOrgName)) {
|
|
222
280
|
const queued = queueMessage(daemon.root, targetOrgName, {
|
|
@@ -225,6 +283,7 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
225
283
|
subject,
|
|
226
284
|
body,
|
|
227
285
|
ts: Date.now(),
|
|
286
|
+
messageId,
|
|
228
287
|
});
|
|
229
288
|
if (!queued) {
|
|
230
289
|
src?.bus.emit({
|
|
@@ -242,7 +301,7 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
242
301
|
to: toQualified,
|
|
243
302
|
subject,
|
|
244
303
|
msg: body,
|
|
245
|
-
data: { queued: true },
|
|
304
|
+
data: { queued: true, messageId },
|
|
246
305
|
});
|
|
247
306
|
daemon.autoWake(targetOrgName);
|
|
248
307
|
return `queued for ${toQualified} (org starting)`;
|
|
@@ -258,6 +317,7 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
258
317
|
subject,
|
|
259
318
|
body,
|
|
260
319
|
ts: Date.now(),
|
|
320
|
+
messageId,
|
|
261
321
|
});
|
|
262
322
|
if (!queued) {
|
|
263
323
|
src?.bus.emit({
|
|
@@ -315,6 +375,7 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
315
375
|
subject,
|
|
316
376
|
body,
|
|
317
377
|
ts: Date.now(),
|
|
378
|
+
messageId,
|
|
318
379
|
});
|
|
319
380
|
src?.bus.emit({
|
|
320
381
|
type: 'audit',
|
|
@@ -334,6 +395,7 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
334
395
|
subject,
|
|
335
396
|
msg: body,
|
|
336
397
|
parentId,
|
|
398
|
+
data: { messageId },
|
|
337
399
|
};
|
|
338
400
|
const emitted = src?.bus.emit({ type: cross ? 'xorg' : 'message', ...evt });
|
|
339
401
|
if (cross && targetOrg !== src)
|
|
@@ -361,9 +423,26 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
361
423
|
}
|
|
362
424
|
return `delivered to ${toQualified}`;
|
|
363
425
|
}
|
|
426
|
+
/** M4: the sender's allow_to check for a cross-root delivery. Returns the
|
|
427
|
+
* ERROR receipt when denied (and emits the audit event), else undefined. */
|
|
428
|
+
function federationDenied(daemon, fromOrg, fromRole, targetOrgName, to, subject, src) {
|
|
429
|
+
const allowTo = (src?.def ?? federationDef(daemon, fromOrg))?.federation?.allow_to;
|
|
430
|
+
if (federationAllows(allowTo, targetOrgName))
|
|
431
|
+
return undefined;
|
|
432
|
+
const from = `${fromOrg}:${fromRole}`;
|
|
433
|
+
src?.bus.emit({
|
|
434
|
+
type: 'audit',
|
|
435
|
+
from: fromRole,
|
|
436
|
+
to,
|
|
437
|
+
reason: 'federation-denied',
|
|
438
|
+
msg: `federation: ${from} may not send to ${to} (${subject})`,
|
|
439
|
+
data: { direction: 'to', from, to },
|
|
440
|
+
});
|
|
441
|
+
return `ERROR: federation: ${from} may not send to ${to}`;
|
|
442
|
+
}
|
|
364
443
|
/** Cross-process leg of deliver(): ask the machine-local broker who hosts targetOrgName, then POST over HTTP.
|
|
365
444
|
* `to` here is always the fully-qualified "org:role" display form (resolveAddress already normalized it). */
|
|
366
|
-
async function deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRole, to, subject, body, src) {
|
|
445
|
+
async function deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRole, to, subject, body, src, messageId) {
|
|
367
446
|
const remote = lookupOrg(targetOrgName, daemon.opts.brokerDir);
|
|
368
447
|
if (!remote) {
|
|
369
448
|
// No remote host either — queue + auto-wake if the org def exists locally
|
|
@@ -374,6 +453,7 @@ async function deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRol
|
|
|
374
453
|
subject,
|
|
375
454
|
body,
|
|
376
455
|
ts: Date.now(),
|
|
456
|
+
messageId,
|
|
377
457
|
});
|
|
378
458
|
if (!queued) {
|
|
379
459
|
src?.bus.emit({
|
|
@@ -391,7 +471,7 @@ async function deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRol
|
|
|
391
471
|
to,
|
|
392
472
|
subject,
|
|
393
473
|
msg: body,
|
|
394
|
-
data: { queued: true },
|
|
474
|
+
data: { queued: true, messageId },
|
|
395
475
|
});
|
|
396
476
|
daemon.autoWake(targetOrgName);
|
|
397
477
|
return `queued for ${to} (org starting)`;
|
|
@@ -401,6 +481,10 @@ async function deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRol
|
|
|
401
481
|
const { lookupRemoteOrg, deliverRemote: sshDeliver } = await import('./remote.js');
|
|
402
482
|
const remoteHost = lookupRemoteOrg(targetOrgName, daemon.root);
|
|
403
483
|
if (remoteHost) {
|
|
484
|
+
// M4: another host is always another trust domain.
|
|
485
|
+
const denied = federationDenied(daemon, fromOrg, fromRole, targetOrgName, to, subject, src);
|
|
486
|
+
if (denied)
|
|
487
|
+
return denied;
|
|
404
488
|
const result = await sshDeliver(targetOrgName, `${fromOrg}:${fromRole}`, subject, body, remoteHost);
|
|
405
489
|
if (result.ok) {
|
|
406
490
|
src?.bus.emit({
|
|
@@ -409,7 +493,7 @@ async function deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRol
|
|
|
409
493
|
to,
|
|
410
494
|
subject,
|
|
411
495
|
msg: body,
|
|
412
|
-
data: { remote: 'ssh', host: remoteHost.host },
|
|
496
|
+
data: { remote: 'ssh', host: remoteHost.host, messageId },
|
|
413
497
|
});
|
|
414
498
|
return `delivered to ${to} via SSH (${remoteHost.host})`;
|
|
415
499
|
}
|
|
@@ -435,6 +519,13 @@ async function deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRol
|
|
|
435
519
|
});
|
|
436
520
|
return `ERROR: unknown recipient "${to}" (no local org, no process on this machine, and no SSH remote configured for "${targetOrgName}")`;
|
|
437
521
|
}
|
|
522
|
+
// M4: a target under a different project root is another trust domain —
|
|
523
|
+
// honour the sender's federation.allow_to. Same root is never restricted.
|
|
524
|
+
if (remote.root !== normalizeRoot(daemon.root)) {
|
|
525
|
+
const denied = federationDenied(daemon, fromOrg, fromRole, targetOrgName, to, subject, src);
|
|
526
|
+
if (denied)
|
|
527
|
+
return denied;
|
|
528
|
+
}
|
|
438
529
|
try {
|
|
439
530
|
// BUG 2 FIX: attach fromOrg's OWN registered credential as proof of
|
|
440
531
|
// sender identity — separate from the `x-monomind-cred` header above,
|
|
@@ -452,16 +543,25 @@ async function deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRol
|
|
|
452
543
|
fromOrg,
|
|
453
544
|
fromRole,
|
|
454
545
|
fromCredential: fromEntry?.credential,
|
|
546
|
+
fromRoot: normalizeRoot(daemon.root),
|
|
455
547
|
toOrg: targetOrgName,
|
|
456
548
|
toRole: targetRole,
|
|
457
549
|
subject,
|
|
458
550
|
body,
|
|
551
|
+
messageId,
|
|
459
552
|
}),
|
|
460
553
|
signal: AbortSignal.timeout(10_000),
|
|
461
554
|
});
|
|
462
555
|
const data = (await res.json().catch(() => ({})));
|
|
463
556
|
if (res.ok && data.ok) {
|
|
464
|
-
src?.bus.emit({
|
|
557
|
+
src?.bus.emit({
|
|
558
|
+
type: 'xorg',
|
|
559
|
+
from: `${fromOrg}:${fromRole}`,
|
|
560
|
+
to,
|
|
561
|
+
subject,
|
|
562
|
+
msg: body,
|
|
563
|
+
data: { messageId },
|
|
564
|
+
});
|
|
465
565
|
return data.receipt ?? `delivered to ${to} (remote)`;
|
|
466
566
|
}
|
|
467
567
|
src?.bus.emit({
|
|
@@ -498,20 +598,48 @@ function credentialMatches(supplied, expected) {
|
|
|
498
598
|
/** Inbound handler for cross-process delivery — called by the server's POST /api/xdeliver route
|
|
499
599
|
* when ANOTHER process's deliverRemote() reaches this daemon. Pushes straight into the target
|
|
500
600
|
* agent's mailbox; the agent picks it up on its own next turn (see Mailbox — never interrupts). */
|
|
501
|
-
export async function receiveRemote(daemon, toOrg, toRole, fromQualified, subject, body, fromCredential) {
|
|
601
|
+
export async function receiveRemote(daemon, toOrg, toRole, fromQualified, subject, body, fromCredential, opts = {}) {
|
|
602
|
+
const messageId = opts.messageId ?? newMessageId();
|
|
502
603
|
// BUG 2 FIX: the HTTP auth gate in server.ts only proves the caller knows a
|
|
503
604
|
// credential this daemon accepts (the target org's, or the operator's) — it
|
|
504
605
|
// says nothing about who the caller claims to be. Verify the claimed sender
|
|
505
606
|
// actually owns the credential registered for it in the broker before
|
|
506
607
|
// trusting anything else. Credentials are per-org, so a sibling org hosted
|
|
507
608
|
// by the same daemon can't reuse its own to pass as `fromOrg`.
|
|
609
|
+
//
|
|
610
|
+
// M3: an OPERATOR-authenticated call (server.ts saw the operator credential)
|
|
611
|
+
// carries human authority and may speak as any sender — the org need not be
|
|
612
|
+
// registered (e.g. `workflow:<exec>` or an automation role's reply).
|
|
508
613
|
const claimedFromOrg = fromQualified.split(':', 1)[0];
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
614
|
+
if (!opts.operator) {
|
|
615
|
+
const fromEntry = lookupOrg(claimedFromOrg, daemon.opts.brokerDir);
|
|
616
|
+
if (!fromEntry?.credential || !credentialMatches(fromCredential, fromEntry.credential)) {
|
|
617
|
+
return {
|
|
618
|
+
ok: false,
|
|
619
|
+
error: `sender "${claimedFromOrg}" failed identity verification (unregistered or credential mismatch)`,
|
|
620
|
+
};
|
|
621
|
+
}
|
|
622
|
+
// M4 federation (operator-authenticated calls are exempt).
|
|
623
|
+
const fromRoot = opts.fromRoot ? normalizeRoot(opts.fromRoot) : undefined;
|
|
624
|
+
const reject = (error) => {
|
|
625
|
+
daemon.orgs.get(toOrg)?.bus.emit({
|
|
626
|
+
type: 'audit',
|
|
627
|
+
from: toRole,
|
|
628
|
+
reason: 'federation-denied',
|
|
629
|
+
msg: `${error} (from ${fromQualified})`,
|
|
630
|
+
data: { direction: 'from', from: fromQualified, fromRoot: fromRoot ?? null },
|
|
631
|
+
});
|
|
632
|
+
return { ok: false, error };
|
|
514
633
|
};
|
|
634
|
+
// A sender that states no root (an older daemon, a hand-rolled client)
|
|
635
|
+
// is not a mismatch — it is simply treated as another root below.
|
|
636
|
+
if (fromEntry.root && fromRoot !== undefined && fromRoot !== fromEntry.root)
|
|
637
|
+
return reject('federation: root mismatch');
|
|
638
|
+
if (fromRoot !== normalizeRoot(daemon.root)) {
|
|
639
|
+
const allowFrom = federationDef(daemon, toOrg)?.federation?.allow_from;
|
|
640
|
+
if (!federationAllows(allowFrom, claimedFromOrg))
|
|
641
|
+
return reject('federation: sender not allowed');
|
|
642
|
+
}
|
|
515
643
|
}
|
|
516
644
|
const org = daemon.orgs.get(toOrg);
|
|
517
645
|
if (!org) {
|
|
@@ -523,6 +651,7 @@ export async function receiveRemote(daemon, toOrg, toRole, fromQualified, subjec
|
|
|
523
651
|
subject,
|
|
524
652
|
body,
|
|
525
653
|
ts: Date.now(),
|
|
654
|
+
messageId,
|
|
526
655
|
});
|
|
527
656
|
if (!queued) {
|
|
528
657
|
return {
|
|
@@ -535,6 +664,26 @@ export async function receiveRemote(daemon, toOrg, toRole, fromQualified, subjec
|
|
|
535
664
|
}
|
|
536
665
|
return { ok: false, error: `org "${toOrg}" not hosted here` };
|
|
537
666
|
}
|
|
667
|
+
// M2: an endpoint role has no mailbox — POST to its endpoint instead.
|
|
668
|
+
const endpointRole = findEndpointRole(org.def, toRole);
|
|
669
|
+
if (endpointRole) {
|
|
670
|
+
const from = fromQualified.startsWith(`${toOrg}:`)
|
|
671
|
+
? fromQualified.slice(toOrg.length + 1)
|
|
672
|
+
: fromQualified;
|
|
673
|
+
const receipt = await deliverToEndpoint(daemon, {
|
|
674
|
+
orgName: toOrg,
|
|
675
|
+
org,
|
|
676
|
+
role: endpointRole,
|
|
677
|
+
from,
|
|
678
|
+
subject,
|
|
679
|
+
body,
|
|
680
|
+
messageId,
|
|
681
|
+
eventTo: `${toOrg}:${toRole}`,
|
|
682
|
+
});
|
|
683
|
+
return receipt.startsWith('ERROR:')
|
|
684
|
+
? { ok: false, error: receipt.slice('ERROR: '.length) }
|
|
685
|
+
: { ok: true, receipt };
|
|
686
|
+
}
|
|
538
687
|
// Lazy-spawn pending roles on cross-process delivery (matches deliver/answerQuestion)
|
|
539
688
|
// ATOMIC GUARD: Check spawning Set to prevent duplicate spawns from concurrent messages
|
|
540
689
|
const spawning = daemon.spawning.get(toOrg) ?? new Set();
|
|
@@ -561,6 +710,7 @@ export async function receiveRemote(daemon, toOrg, toRole, fromQualified, subjec
|
|
|
561
710
|
subject,
|
|
562
711
|
body,
|
|
563
712
|
ts: Date.now(),
|
|
713
|
+
messageId,
|
|
564
714
|
});
|
|
565
715
|
if (!queued) {
|
|
566
716
|
return {
|
|
@@ -592,6 +742,7 @@ export async function receiveRemote(daemon, toOrg, toRole, fromQualified, subjec
|
|
|
592
742
|
subject,
|
|
593
743
|
body,
|
|
594
744
|
ts: Date.now(),
|
|
745
|
+
messageId,
|
|
595
746
|
});
|
|
596
747
|
if (!queued) {
|
|
597
748
|
return {
|
|
@@ -624,6 +775,7 @@ export async function receiveRemote(daemon, toOrg, toRole, fromQualified, subjec
|
|
|
624
775
|
subject,
|
|
625
776
|
body,
|
|
626
777
|
ts: Date.now(),
|
|
778
|
+
messageId,
|
|
627
779
|
});
|
|
628
780
|
if (!queued) {
|
|
629
781
|
return {
|
|
@@ -652,6 +804,7 @@ export async function receiveRemote(daemon, toOrg, toRole, fromQualified, subjec
|
|
|
652
804
|
to: `${toOrg}:${toRole}`,
|
|
653
805
|
subject,
|
|
654
806
|
msg: body,
|
|
807
|
+
data: { messageId },
|
|
655
808
|
});
|
|
656
809
|
agent.lastMessageId = messageEvent.id; // Track last message ID for response threading
|
|
657
810
|
const pushed = await pushMessage(daemon, toOrg, org, toRole, fromQualified, subject, body, messageEvent.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-org.js","sourceRoot":"","sources":["../../../src/orgrt/cross-org.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cross-org.js","sourceRoot":"","sources":["../../../src/orgrt/cross-org.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import type { query } from '@anthropic-ai/claude-agent-sdk';
|
|
2
2
|
import type { AgentRunner } from './agent-runner.js';
|
|
3
|
+
import * as approvalOps from './approvals.js';
|
|
3
4
|
import { OrgBus } from './bus.js';
|
|
4
5
|
import { type OrgCheckpoint, type RoleCheckpoint } from './checkpoint.js';
|
|
6
|
+
import * as crossOrg from './cross-org.js';
|
|
7
|
+
import { type EndpointWait } from './endpoint-roles.js';
|
|
5
8
|
import { type RoleFence } from './fence.js';
|
|
6
9
|
import { Mailbox } from './mailbox.js';
|
|
7
10
|
import { PolicyEngine } from './policy.js';
|
|
8
11
|
import { type RespawnReceipt, type RoleSlot } from './role-slot.js';
|
|
9
12
|
import { type RuntimeOptionsReceipt } from './runtime-options.js';
|
|
10
13
|
import { TaskDag } from './task-dag.js';
|
|
14
|
+
import { type ChainTrace, ToolProviderHub } from './tool-providers.js';
|
|
11
15
|
import { type BusEvent, type DecisionGate, type OrgDef, type OrgRole, type ProviderConfig } from './types.js';
|
|
12
16
|
/** Resolve which AgentRunner hosts an org's role sessions.
|
|
13
17
|
* Precedence: role `runtime` field > org def `runtime` field >
|
|
@@ -147,6 +151,11 @@ export interface RunningOrg {
|
|
|
147
151
|
/** Role ids currently undergoing replacement — rejects a concurrent
|
|
148
152
|
* respawnRole() call for the same role id. */
|
|
149
153
|
respawning: Set<string>;
|
|
154
|
+
/** M1: per-role chain trace — set from the latest delivered message carrying
|
|
155
|
+
* a `[trace chn_… hop=N]` line, else a fresh chain minted on first use. */
|
|
156
|
+
traces?: Map<string, ChainTrace>;
|
|
157
|
+
/** M2: reply waits for endpoint deliveries — hold the idle watchdog. */
|
|
158
|
+
endpointWaits?: EndpointWait[];
|
|
150
159
|
}
|
|
151
160
|
/** Bug 4: number of roles for this org that are actually spawned and running
|
|
152
161
|
* right now — the live count run_config.max_concurrent_agents caps. A role
|
|
@@ -192,6 +201,12 @@ export interface DaemonOpts {
|
|
|
192
201
|
tool?: string;
|
|
193
202
|
decision?: 'allow' | 'deny';
|
|
194
203
|
};
|
|
204
|
+
/** M2 (tests only): endpoint retry schedule (default [1000, 5000, 15000] ms). */
|
|
205
|
+
endpointRetryMs?: number[];
|
|
206
|
+
/** M2 (tests only): periodic endpoint re-attempt interval (default 60000 ms). */
|
|
207
|
+
endpointPeriodicRetryMs?: number;
|
|
208
|
+
/** M2 (tests only): endpoint POST timeout (default 15000 ms). */
|
|
209
|
+
endpointPostTimeoutMs?: number;
|
|
195
210
|
}
|
|
196
211
|
export declare class OrgDaemon {
|
|
197
212
|
/** @internal */ root: string;
|
|
@@ -222,6 +237,13 @@ export declare class OrgDaemon {
|
|
|
222
237
|
question: string;
|
|
223
238
|
ts: number;
|
|
224
239
|
approved: boolean | null;
|
|
240
|
+
/** M5: `apr-<ms>-<8 hex>` — addresses exactly this request. */
|
|
241
|
+
requestId?: string;
|
|
242
|
+
/** M5: the redacted argument summary `policy.decide` logged. */
|
|
243
|
+
input?: Record<string, unknown>;
|
|
244
|
+
/** M5: who resolved it (`human` by default). */
|
|
245
|
+
resolvedBy?: string;
|
|
246
|
+
resolvedAt?: number;
|
|
225
247
|
}[]>;
|
|
226
248
|
/** @internal */ approvalLocks: Map<string, Promise<unknown>>;
|
|
227
249
|
/** @internal */ gatesLocks: Map<string, Promise<unknown>>;
|
|
@@ -235,6 +257,8 @@ export declare class OrgDaemon {
|
|
|
235
257
|
/** @internal */ recallUsage: Map<string, Set<string>>;
|
|
236
258
|
/** @internal */ orgLearnedRuns: Set<string>;
|
|
237
259
|
/** @internal */ abandoned: Map<string, Set<string>>;
|
|
260
|
+
/** M1: role tool-provider tool-list cache and live provider processes. */
|
|
261
|
+
/** @internal */ toolProviders: ToolProviderHub;
|
|
238
262
|
constructor(
|
|
239
263
|
/** @internal */ root: string,
|
|
240
264
|
/** @internal */ opts?: DaemonOpts);
|
|
@@ -256,6 +280,10 @@ export declare class OrgDaemon {
|
|
|
256
280
|
/** Names of the orgs this daemon currently has running. Snapshot — safe to
|
|
257
281
|
* iterate while stopOrg() mutates the underlying map. */
|
|
258
282
|
listRunning(): string[];
|
|
283
|
+
/** M1: the chain trace a role's tool calls carry — from the most recent
|
|
284
|
+
* message delivered to it with a `[trace chn_… hop=N]` line, otherwise a
|
|
285
|
+
* fresh chain (hop 0) minted once and kept for the role. */
|
|
286
|
+
roleTrace(org: string, role: string): ChainTrace;
|
|
259
287
|
/** Hook for the SSE server — registers a listener for all bus events across all orgs. */
|
|
260
288
|
onBusEvent?: (fn: (e: BusEvent) => void) => void;
|
|
261
289
|
/** Snapshot of all running orgs for dashboard initial load. */
|
|
@@ -324,14 +352,14 @@ export declare class OrgDaemon {
|
|
|
324
352
|
writeHeartbeat(): void;
|
|
325
353
|
clearHeartbeat(): void;
|
|
326
354
|
private checkApproval;
|
|
327
|
-
setApproval(org: string, role: string, action: string, approved: boolean): Promise<{
|
|
355
|
+
setApproval(org: string, role: string, action: string, approved: boolean, opts?: approvalOps.ApprovalResolveOpts): Promise<{
|
|
328
356
|
ok: true;
|
|
329
357
|
} | {
|
|
330
358
|
ok: false;
|
|
331
359
|
error: string;
|
|
332
360
|
}>;
|
|
333
361
|
askHuman(org: string, role: string, question: string): Promise<string>;
|
|
334
|
-
answerQuestion(org: string, role: string, questionId: string, answer: string): Promise<{
|
|
362
|
+
answerQuestion(org: string, role: string, questionId: string, answer: string, resolvedBy?: string): Promise<{
|
|
335
363
|
ok: true;
|
|
336
364
|
} | {
|
|
337
365
|
ok: false;
|
|
@@ -365,7 +393,7 @@ export declare class OrgDaemon {
|
|
|
365
393
|
outcome: string;
|
|
366
394
|
}): void;
|
|
367
395
|
deliver(fromOrg: string, fromRole: string, to: string, subject: string, body: string): Promise<string>;
|
|
368
|
-
receiveRemote(toOrg: string, toRole: string, fromQualified: string, subject: string, body: string, fromCredential?: string): Promise<{
|
|
396
|
+
receiveRemote(toOrg: string, toRole: string, fromQualified: string, subject: string, body: string, fromCredential?: string, opts?: crossOrg.ReceiveRemoteOpts): Promise<{
|
|
369
397
|
ok: true;
|
|
370
398
|
receipt: string;
|
|
371
399
|
} | {
|