@monoes/monomindcli 2.10.10 → 2.10.14
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/commands/mastermind/brain.md +14 -14
- package/.claude/commands/mastermind/help.md +2 -2
- package/.claude/commands/mastermind/master.md +24 -19
- package/.claude/commands/mastermind/memory.md +8 -8
- package/.claude/commands/mastermind/monoswarm.md +4 -4
- package/.claude/commands/mastermind.md +7 -7
- package/.claude/commands/truth/start.md +3 -3
- package/.claude/helpers/handlers/gates-handler.cjs +13 -1
- package/.claude/skills/mastermind/SKILL.md +7 -16
- package/.claude/skills/mastermind-debug/SKILL.md +3 -3
- package/.claude/skills/mastermind-design/SKILL.md +2 -0
- package/.claude/skills/mastermind-execute/SKILL.md +66 -11
- package/.claude/skills/mastermind-idea/SKILL.md +9 -2
- package/.claude/skills/mastermind-intake/SKILL.md +31 -7
- package/.claude/skills/mastermind-issue-detail/SKILL.md +70 -16
- package/.claude/skills/mastermind-issues/SKILL.md +111 -16
- package/.claude/skills/mastermind-liveness/SKILL.md +96 -26
- package/.claude/skills/mastermind-my-issues/SKILL.md +40 -8
- package/.claude/skills/mastermind-org/SKILL.md +2 -0
- package/.claude/skills/mastermind-plan/SKILL.md +7 -16
- package/.claude/skills/mastermind-plan-to-tasks/SKILL.md +132 -24
- package/.claude/skills/mastermind-protocol/SKILL.md +33 -22
- package/.claude/skills/mastermind-runorg/SKILL.md +22 -3
- package/.claude/skills/mastermind-skill-builder/SKILL.md +1 -1
- package/.claude/skills/mastermind-tasks/SKILL.md +5 -0
- package/.claude/skills/mastermind-techport/SKILL.md +1 -1
- package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +56 -15
- package/.claude/skills/performance-analysis/SKILL.md +1 -1
- package/.claude/skills/verification-quality/SKILL.md +2 -3
- package/README.md +2 -2
- package/dist/src/commands/doc.js +2 -2
- package/dist/src/commands/doc.js.map +1 -1
- package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +45 -2
- package/dist/src/commands/doctor-project-checks.js.map +1 -1
- package/dist/src/commands/memory-crud.d.ts.map +1 -1
- package/dist/src/commands/memory-crud.js +13 -2
- package/dist/src/commands/memory-crud.js.map +1 -1
- package/dist/src/commands/memory.js +1 -1
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/monograph.d.ts.map +1 -1
- package/dist/src/commands/monograph.js +11 -4
- package/dist/src/commands/monograph.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +56 -6
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org.d.ts +26 -0
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +144 -28
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +10 -9
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/upgrade.d.ts.map +1 -1
- package/dist/src/init/upgrade.js +29 -0
- package/dist/src/init/upgrade.js.map +1 -1
- package/dist/src/init/write-codex.d.ts.map +1 -1
- package/dist/src/init/write-codex.js.map +1 -1
- package/dist/src/knowledge/document-pipeline.d.ts +5 -0
- package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
- package/dist/src/knowledge/document-pipeline.js +32 -16
- package/dist/src/knowledge/document-pipeline.js.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.d.ts +9 -0
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.js +12 -1
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
- package/dist/src/mcp-tools/knowledge-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/knowledge-tools.js +105 -13
- package/dist/src/mcp-tools/knowledge-tools.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts +13 -0
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +257 -31
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/health-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/health-tools.js +99 -42
- package/dist/src/mcp-tools/monograph/health-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/impact-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/impact-tools.js +123 -51
- package/dist/src/mcp-tools/monograph/impact-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/query-tools.js +113 -96
- package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/shared.d.ts +37 -4
- package/dist/src/mcp-tools/monograph/shared.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/shared.js +75 -56
- package/dist/src/mcp-tools/monograph/shared.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts +60 -1
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +172 -42
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-kg.d.ts +495 -28
- package/dist/src/memory/memory-kg.d.ts.map +1 -1
- package/dist/src/memory/memory-kg.js +2186 -251
- package/dist/src/memory/memory-kg.js.map +1 -1
- package/dist/src/memory/query-router.d.ts +51 -0
- package/dist/src/memory/query-router.d.ts.map +1 -1
- package/dist/src/memory/query-router.js +38 -2
- package/dist/src/memory/query-router.js.map +1 -1
- package/dist/src/orgrt/agent-exec.d.ts.map +1 -1
- package/dist/src/orgrt/agent-exec.js +7 -0
- package/dist/src/orgrt/agent-exec.js.map +1 -1
- package/dist/src/orgrt/agent-runner.d.ts +26 -1
- package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
- package/dist/src/orgrt/agent-runner.js +73 -22
- package/dist/src/orgrt/agent-runner.js.map +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
- package/dist/src/orgrt/antigravity-runner.js +36 -19
- package/dist/src/orgrt/antigravity-runner.js.map +1 -1
- package/dist/src/orgrt/approvals.d.ts +26 -2
- package/dist/src/orgrt/approvals.d.ts.map +1 -1
- package/dist/src/orgrt/approvals.js +67 -7
- package/dist/src/orgrt/approvals.js.map +1 -1
- package/dist/src/orgrt/broker.d.ts +21 -2
- package/dist/src/orgrt/broker.d.ts.map +1 -1
- package/dist/src/orgrt/broker.js +56 -8
- package/dist/src/orgrt/broker.js.map +1 -1
- package/dist/src/orgrt/bus.d.ts +8 -0
- package/dist/src/orgrt/bus.d.ts.map +1 -1
- package/dist/src/orgrt/bus.js +27 -0
- package/dist/src/orgrt/bus.js.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.js +15 -5
- package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
- package/dist/src/orgrt/checkpoint.d.ts +42 -4
- package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint.js +75 -4
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/codex-runner.d.ts +1 -1
- package/dist/src/orgrt/codex-runner.d.ts.map +1 -1
- package/dist/src/orgrt/codex-runner.js +50 -23
- package/dist/src/orgrt/codex-runner.js.map +1 -1
- package/dist/src/orgrt/copilot-runner.d.ts +24 -2
- package/dist/src/orgrt/copilot-runner.d.ts.map +1 -1
- package/dist/src/orgrt/copilot-runner.js +257 -157
- package/dist/src/orgrt/copilot-runner.js.map +1 -1
- package/dist/src/orgrt/cross-org.d.ts +10 -3
- package/dist/src/orgrt/cross-org.d.ts.map +1 -1
- package/dist/src/orgrt/cross-org.js +225 -10
- package/dist/src/orgrt/cross-org.js.map +1 -1
- package/dist/src/orgrt/crush-runner.d.ts +22 -2
- package/dist/src/orgrt/crush-runner.d.ts.map +1 -1
- package/dist/src/orgrt/crush-runner.js +227 -120
- package/dist/src/orgrt/crush-runner.js.map +1 -1
- package/dist/src/orgrt/daemon.d.ts +77 -7
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +989 -385
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts +2 -2
- package/dist/src/orgrt/decisions.d.ts.map +1 -1
- package/dist/src/orgrt/decisions.js +90 -18
- package/dist/src/orgrt/decisions.js.map +1 -1
- package/dist/src/orgrt/grok-runner.d.ts +29 -3
- package/dist/src/orgrt/grok-runner.d.ts.map +1 -1
- package/dist/src/orgrt/grok-runner.js +286 -150
- package/dist/src/orgrt/grok-runner.js.map +1 -1
- package/dist/src/orgrt/kimicode-runner.d.ts +5 -5
- package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/kimicode-runner.js +53 -32
- package/dist/src/orgrt/kimicode-runner.js.map +1 -1
- package/dist/src/orgrt/mailbox.d.ts +15 -0
- package/dist/src/orgrt/mailbox.d.ts.map +1 -1
- package/dist/src/orgrt/mailbox.js +29 -1
- package/dist/src/orgrt/mailbox.js.map +1 -1
- package/dist/src/orgrt/migrate.d.ts.map +1 -1
- package/dist/src/orgrt/migrate.js +8 -5
- package/dist/src/orgrt/migrate.js.map +1 -1
- package/dist/src/orgrt/opencode-runner.d.ts +1 -1
- package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/opencode-runner.js +29 -3
- package/dist/src/orgrt/opencode-runner.js.map +1 -1
- package/dist/src/orgrt/org-memory.d.ts +19 -3
- package/dist/src/orgrt/org-memory.d.ts.map +1 -1
- package/dist/src/orgrt/org-memory.js +110 -38
- package/dist/src/orgrt/org-memory.js.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.d.ts +3 -1
- package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.js +35 -3
- package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
- package/dist/src/orgrt/pi-runner.d.ts +25 -2
- package/dist/src/orgrt/pi-runner.d.ts.map +1 -1
- package/dist/src/orgrt/pi-runner.js +271 -152
- package/dist/src/orgrt/pi-runner.js.map +1 -1
- package/dist/src/orgrt/policy.d.ts +1 -0
- package/dist/src/orgrt/policy.d.ts.map +1 -1
- package/dist/src/orgrt/policy.js +199 -39
- package/dist/src/orgrt/policy.js.map +1 -1
- package/dist/src/orgrt/provider.d.ts +4 -0
- package/dist/src/orgrt/provider.d.ts.map +1 -1
- package/dist/src/orgrt/provider.js +16 -0
- package/dist/src/orgrt/provider.js.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.d.ts +3 -1
- package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.js +35 -3
- package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -1
- package/dist/src/orgrt/qwen-runner.d.ts +30 -3
- package/dist/src/orgrt/qwen-runner.d.ts.map +1 -1
- package/dist/src/orgrt/qwen-runner.js +282 -142
- package/dist/src/orgrt/qwen-runner.js.map +1 -1
- package/dist/src/orgrt/role-slot.d.ts +88 -0
- package/dist/src/orgrt/role-slot.d.ts.map +1 -0
- package/dist/src/orgrt/role-slot.js +133 -0
- package/dist/src/orgrt/role-slot.js.map +1 -0
- package/dist/src/orgrt/runtime-options.d.ts +17 -0
- package/dist/src/orgrt/runtime-options.d.ts.map +1 -0
- package/dist/src/orgrt/runtime-options.js +32 -0
- package/dist/src/orgrt/runtime-options.js.map +1 -0
- package/dist/src/orgrt/scheduler-integration.d.ts +11 -0
- package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
- package/dist/src/orgrt/scheduler-integration.js +75 -17
- package/dist/src/orgrt/scheduler-integration.js.map +1 -1
- package/dist/src/orgrt/scheduler.d.ts +4 -0
- package/dist/src/orgrt/scheduler.d.ts.map +1 -1
- package/dist/src/orgrt/scheduler.js +7 -1
- package/dist/src/orgrt/scheduler.js.map +1 -1
- package/dist/src/orgrt/server.d.ts +8 -3
- package/dist/src/orgrt/server.d.ts.map +1 -1
- package/dist/src/orgrt/server.js +48 -13
- package/dist/src/orgrt/server.js.map +1 -1
- package/dist/src/orgrt/session.d.ts +26 -2
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +98 -4
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/task-dag.d.ts +5 -0
- package/dist/src/orgrt/task-dag.d.ts.map +1 -1
- package/dist/src/orgrt/task-dag.js +41 -0
- package/dist/src/orgrt/task-dag.js.map +1 -1
- package/dist/src/orgrt/test-loop.js +2 -2
- package/dist/src/orgrt/test-loop.js.map +1 -1
- package/dist/src/orgrt/types.d.ts +14 -2
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +15 -1
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/orgrt/vercel-runner.d.ts.map +1 -1
- package/dist/src/orgrt/vercel-runner.js +4 -0
- package/dist/src/orgrt/vercel-runner.js.map +1 -1
- package/dist/src/ui/routes-org.mjs +27 -7
- package/dist/src/ui/server.mjs +82 -48
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/dist/src/ui/data/mastermind-sessions.json +0 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// packages/@monomind/cli/src/orgrt/cross-org.ts
|
|
2
2
|
// Extracted from daemon.ts — message delivery, cross-org routing, remote delivery.
|
|
3
|
+
import { timingSafeEqual } from 'node:crypto';
|
|
3
4
|
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
4
5
|
import { join } from 'node:path';
|
|
5
6
|
import { checkResources, waitForCapacity } from '../utils/resource-governor.js';
|
|
6
7
|
import { lookupOrg } from './broker.js';
|
|
8
|
+
import { activeRoleCount } from './daemon.js';
|
|
7
9
|
import { scanMessage } from './fence.js';
|
|
8
10
|
import { queueMessage } from './inbox.js';
|
|
9
11
|
import { ORG_DIR } from './types.js';
|
|
@@ -11,6 +13,51 @@ import { ORG_DIR } from './types.js';
|
|
|
11
13
|
const MAIL_BODY_MAX = 4096;
|
|
12
14
|
/** How much of an oversized body stays inline in the digest. */
|
|
13
15
|
const MAIL_DIGEST_CHARS = 1024;
|
|
16
|
+
/** BUG 1 FIX: roles genuinely "in flight" toward spawning — pendingRoles
|
|
17
|
+
* entry already consumed but the role not yet in `agents` (including the
|
|
18
|
+
* whole resource-pressure deferred-spawn window, which can run for up to
|
|
19
|
+
* ~30min via scheduler-integration's scheduleDeferredSpawn retry loop).
|
|
20
|
+
* Without this, a message arriving for such a role fell through to
|
|
21
|
+
* "unknown recipient" and was silently dropped — only the FIRST message
|
|
22
|
+
* that triggered the lazy spawn got queued.
|
|
23
|
+
*
|
|
24
|
+
* Deliberately module-scoped (not a RunningOrg field) so cross-org.ts owns
|
|
25
|
+
* the whole lifecycle — mark, self-heal, and TTL — without touching
|
|
26
|
+
* daemon.ts's RunningOrg type or scheduler-integration.ts. Keyed by
|
|
27
|
+
* "orgName:role"; value is the deferral timestamp used for TTL cleanup so a
|
|
28
|
+
* role that never spawns doesn't leak an entry forever. */
|
|
29
|
+
const deferredSpawns = new Map();
|
|
30
|
+
const DEFERRED_SPAWN_TTL_MS = 35 * 60_000; // scheduler-integration retries for ~30min before giving up
|
|
31
|
+
function deferredKey(orgName, role) {
|
|
32
|
+
return `${orgName}:${role}`;
|
|
33
|
+
}
|
|
34
|
+
/** Call once a role's spawn has been kicked off (pendingRoles entry consumed). */
|
|
35
|
+
function markDeferredSpawn(orgName, role) {
|
|
36
|
+
deferredSpawns.set(deferredKey(orgName, role), Date.now());
|
|
37
|
+
}
|
|
38
|
+
/** Call once a role's spawn completes synchronously (no deferral needed). */
|
|
39
|
+
function clearDeferredSpawn(orgName, role) {
|
|
40
|
+
deferredSpawns.delete(deferredKey(orgName, role));
|
|
41
|
+
}
|
|
42
|
+
/** True if `role` is still genuinely in-flight toward spawning. Self-heals:
|
|
43
|
+
* clears the entry if the role already made it into `agents`, or if it's
|
|
44
|
+
* been deferred past the TTL (treated as abandoned — stop queuing into a
|
|
45
|
+
* spawn that's never coming). */
|
|
46
|
+
function isDeferredSpawn(org, orgName, role) {
|
|
47
|
+
const key = deferredKey(orgName, role);
|
|
48
|
+
const deferredAt = deferredSpawns.get(key);
|
|
49
|
+
if (deferredAt === undefined)
|
|
50
|
+
return false;
|
|
51
|
+
if (org?.agents.has(role)) {
|
|
52
|
+
deferredSpawns.delete(key); // spawn completed since — stale flag
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
if (Date.now() - deferredAt >= DEFERRED_SPAWN_TTL_MS) {
|
|
56
|
+
deferredSpawns.delete(key); // never spawned within TTL — avoid leaking/queuing forever
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
14
61
|
/**
|
|
15
62
|
* Resolves an org_send `to` address ("role" for same-org, "org:role" for
|
|
16
63
|
* cross-org) into its parts. Centralizes the one addressing rule that
|
|
@@ -45,6 +92,34 @@ export function mailBody(root, orgName, org, header, body, id) {
|
|
|
45
92
|
return `${header}\n\n${body}`; // digest write failed — deliver in full rather than lose content
|
|
46
93
|
}
|
|
47
94
|
}
|
|
95
|
+
/** SEC: the ONE place an inter-agent message enters a role's mailbox. Every
|
|
96
|
+
* inbound path — live deliver(), inbound cross-process receiveRemote(), and
|
|
97
|
+
* the queued-inbox drains (startOrg, deferred spawns) — must go through here
|
|
98
|
+
* so a role with `scanMessages` on is fenced on all of them, not just the
|
|
99
|
+
* first. Returns false when the fence blocked the body (scanMessage already
|
|
100
|
+
* emitted the audit event) or the recipient can't take mail. */
|
|
101
|
+
export async function pushMessage(daemon, orgName, org, toRole, from, subject, body, id) {
|
|
102
|
+
const roleFence = org.fences?.get(toRole);
|
|
103
|
+
if (roleFence?.scanMessages) {
|
|
104
|
+
const safe = await scanMessage(roleFence.instance, body, roleFence.abortThreshold, org.bus, from);
|
|
105
|
+
if (!safe)
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
const mail = mailBody(daemon.root, orgName, org, `[message from ${from}] subject: ${subject}`, body, id);
|
|
109
|
+
// A slot mid-replacement has no live mailbox to deliver into safely —
|
|
110
|
+
// route into the slot's swap queue so the REPLACEMENT incarnation gets it
|
|
111
|
+
// instead of it landing in a mailbox about to be torn down (design step 6).
|
|
112
|
+
const slot = org.roleSlots?.get(toRole);
|
|
113
|
+
if (slot?.phase === 'draining') {
|
|
114
|
+
slot.queuedDuringSwap.push(mail);
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
const agent = org.agents.get(toRole);
|
|
118
|
+
if (!agent || agent.mailbox.isClosed)
|
|
119
|
+
return false;
|
|
120
|
+
agent.mailbox.push(mail);
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
48
123
|
/** Route a message. to = "role" (same org) or "org:role" (cross-org). Returns a receipt string. */
|
|
49
124
|
export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
50
125
|
const { cross, orgName: targetOrgName, role: targetRole, qualified: toQualified, } = resolveAddress(fromOrg, to);
|
|
@@ -60,7 +135,40 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
60
135
|
!spawning.has(targetRole)) {
|
|
61
136
|
const role = targetOrg.pendingRoles.get(targetRole);
|
|
62
137
|
targetOrg.pendingRoles.delete(targetRole);
|
|
138
|
+
markDeferredSpawn(targetOrgName, targetRole); // BUG 1 FIX: mark in-flight before any await
|
|
63
139
|
spawning.add(targetRole); // Mark as spawning before async work
|
|
140
|
+
// Bug 4: run_config.max_concurrent_agents caps how many roles can run at
|
|
141
|
+
// once — defer the same way the host-resource-pressure check below defers,
|
|
142
|
+
// instead of spawning past the ceiling unconditionally.
|
|
143
|
+
const concurrencyLimit = targetOrg.def.run_config.max_concurrent_agents;
|
|
144
|
+
if (concurrencyLimit != null && activeRoleCount(targetOrg) >= concurrencyLimit) {
|
|
145
|
+
spawning.delete(targetRole);
|
|
146
|
+
targetOrg.bus.emit({
|
|
147
|
+
type: 'audit',
|
|
148
|
+
from: targetRole,
|
|
149
|
+
reason: 'concurrency-limit',
|
|
150
|
+
msg: `deferring lazy spawn of "${targetRole}": org is at its max_concurrent_agents ceiling (${concurrencyLimit})`,
|
|
151
|
+
});
|
|
152
|
+
const queued = queueMessage(daemon.root, targetOrgName, {
|
|
153
|
+
fromQualified: cross ? `${fromOrg}:${fromRole}` : fromRole,
|
|
154
|
+
toRole: targetRole,
|
|
155
|
+
subject,
|
|
156
|
+
body,
|
|
157
|
+
ts: Date.now(),
|
|
158
|
+
});
|
|
159
|
+
if (!queued) {
|
|
160
|
+
src?.bus.emit({
|
|
161
|
+
type: 'audit',
|
|
162
|
+
from: fromRole,
|
|
163
|
+
to: toQualified,
|
|
164
|
+
msg: `queue failed: ${subject}`,
|
|
165
|
+
reason: 'queue-failed',
|
|
166
|
+
});
|
|
167
|
+
return `ERROR: could not queue message for ${toQualified} (disk full or permissions)`;
|
|
168
|
+
}
|
|
169
|
+
daemon.scheduleConcurrencyDeferredSpawn(targetOrgName, targetOrg, role, targetOrg.spawnRole);
|
|
170
|
+
return `queued for ${toQualified} (role starting — waiting for a concurrency slot)`;
|
|
171
|
+
}
|
|
64
172
|
const check = checkResources();
|
|
65
173
|
if (!check.ok) {
|
|
66
174
|
const waited = await waitForCapacity(60_000);
|
|
@@ -98,6 +206,7 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
98
206
|
}
|
|
99
207
|
}
|
|
100
208
|
targetOrg.spawnRole?.(role);
|
|
209
|
+
clearDeferredSpawn(targetOrgName, targetRole); // BUG 1 FIX: spawn completed — no longer in-flight
|
|
101
210
|
spawning.delete(targetRole); // Clear spawning flag after spawn completes
|
|
102
211
|
targetOrg.bus.emit({
|
|
103
212
|
type: 'status',
|
|
@@ -138,6 +247,30 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
138
247
|
daemon.autoWake(targetOrgName);
|
|
139
248
|
return `queued for ${toQualified} (org starting)`;
|
|
140
249
|
}
|
|
250
|
+
// BUG 1 FIX: the role's lazy spawn is genuinely in flight (deferred under
|
|
251
|
+
// resource pressure, pendingRoles already consumed) — queue this message
|
|
252
|
+
// like the first one that triggered the spawn, instead of falling
|
|
253
|
+
// through to "unknown recipient" and silently dropping it.
|
|
254
|
+
if (targetOrg && isDeferredSpawn(targetOrg, targetOrgName, targetRole)) {
|
|
255
|
+
const queued = queueMessage(daemon.root, targetOrgName, {
|
|
256
|
+
fromQualified: cross ? `${fromOrg}:${fromRole}` : fromRole,
|
|
257
|
+
toRole: targetRole,
|
|
258
|
+
subject,
|
|
259
|
+
body,
|
|
260
|
+
ts: Date.now(),
|
|
261
|
+
});
|
|
262
|
+
if (!queued) {
|
|
263
|
+
src?.bus.emit({
|
|
264
|
+
type: 'audit',
|
|
265
|
+
from: fromRole,
|
|
266
|
+
to: toQualified,
|
|
267
|
+
msg: `queue failed: ${subject}`,
|
|
268
|
+
reason: 'queue-failed',
|
|
269
|
+
});
|
|
270
|
+
return `ERROR: could not queue message for ${toQualified} (disk full or permissions)`;
|
|
271
|
+
}
|
|
272
|
+
return `queued for ${toQualified} (role starting — waiting for resources)`;
|
|
273
|
+
}
|
|
141
274
|
src?.bus.emit({
|
|
142
275
|
type: 'audit',
|
|
143
276
|
from: fromRole,
|
|
@@ -212,14 +345,9 @@ export async function deliver(daemon, fromOrg, fromRole, to, subject, body) {
|
|
|
212
345
|
const srcAgent = src?.agents.get(fromRole);
|
|
213
346
|
if (srcAgent && emitted)
|
|
214
347
|
srcAgent.lastMessageId = emitted.id;
|
|
215
|
-
const
|
|
216
|
-
if (
|
|
217
|
-
|
|
218
|
-
if (!safe) {
|
|
219
|
-
return `ERROR: message to ${toQualified} blocked by security fence`;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
targetAgent.mailbox.push(mailBody(daemon.root, targetOrgName, targetOrg, `[message from ${evt.from}] subject: ${subject}`, body, emitted?.id ?? `mail-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`));
|
|
348
|
+
const pushed = await pushMessage(daemon, targetOrgName, targetOrg, targetRole, evt.from, subject, body, emitted?.id ?? `mail-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`);
|
|
349
|
+
if (!pushed)
|
|
350
|
+
return `ERROR: message to ${toQualified} blocked by security fence`;
|
|
223
351
|
// ORG-1: a cross-org deliver() is a "handoff" — work/context crossing an org
|
|
224
352
|
// boundary — a natural decision point. Recorded here (not for every intra-org
|
|
225
353
|
// org_send, which would be too noisy) so `org decisions` shows real traces.
|
|
@@ -308,6 +436,12 @@ async function deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRol
|
|
|
308
436
|
return `ERROR: unknown recipient "${to}" (no local org, no process on this machine, and no SSH remote configured for "${targetOrgName}")`;
|
|
309
437
|
}
|
|
310
438
|
try {
|
|
439
|
+
// BUG 2 FIX: attach fromOrg's OWN registered credential as proof of
|
|
440
|
+
// sender identity — separate from the `x-monomind-cred` header above,
|
|
441
|
+
// which only proves the caller can reach the RECEIVING daemon, not who
|
|
442
|
+
// it claims to be. receiveRemote() looks this org up in the same broker
|
|
443
|
+
// registry and rejects the message if it doesn't match.
|
|
444
|
+
const fromEntry = lookupOrg(fromOrg, daemon.opts.brokerDir);
|
|
311
445
|
const res = await fetch(`${remote.url}/api/xdeliver`, {
|
|
312
446
|
method: 'POST',
|
|
313
447
|
headers: {
|
|
@@ -317,6 +451,7 @@ async function deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRol
|
|
|
317
451
|
body: JSON.stringify({
|
|
318
452
|
fromOrg,
|
|
319
453
|
fromRole,
|
|
454
|
+
fromCredential: fromEntry?.credential,
|
|
320
455
|
toOrg: targetOrgName,
|
|
321
456
|
toRole: targetRole,
|
|
322
457
|
subject,
|
|
@@ -350,10 +485,34 @@ async function deliverRemote(daemon, fromOrg, fromRole, targetOrgName, targetRol
|
|
|
350
485
|
return `ERROR: remote org "${targetOrgName}" unreachable: ${message}`;
|
|
351
486
|
}
|
|
352
487
|
}
|
|
488
|
+
/** SEC: constant-time credential compare (same shape as server.ts's safeEq) —
|
|
489
|
+
* a plain `!==` short-circuits on the first differing byte, which lets a
|
|
490
|
+
* caller time responses to recover the sender credential byte by byte. */
|
|
491
|
+
function credentialMatches(supplied, expected) {
|
|
492
|
+
const a = Buffer.from(String(supplied ?? ''));
|
|
493
|
+
const b = Buffer.from(expected);
|
|
494
|
+
if (a.length !== b.length)
|
|
495
|
+
return false;
|
|
496
|
+
return timingSafeEqual(a, b);
|
|
497
|
+
}
|
|
353
498
|
/** Inbound handler for cross-process delivery — called by the server's POST /api/xdeliver route
|
|
354
499
|
* when ANOTHER process's deliverRemote() reaches this daemon. Pushes straight into the target
|
|
355
500
|
* agent's mailbox; the agent picks it up on its own next turn (see Mailbox — never interrupts). */
|
|
356
|
-
export function receiveRemote(daemon, toOrg, toRole, fromQualified, subject, body) {
|
|
501
|
+
export async function receiveRemote(daemon, toOrg, toRole, fromQualified, subject, body, fromCredential) {
|
|
502
|
+
// BUG 2 FIX: the HTTP auth gate in server.ts only proves the caller knows a
|
|
503
|
+
// credential this daemon accepts (the target org's, or the operator's) — it
|
|
504
|
+
// says nothing about who the caller claims to be. Verify the claimed sender
|
|
505
|
+
// actually owns the credential registered for it in the broker before
|
|
506
|
+
// trusting anything else. Credentials are per-org, so a sibling org hosted
|
|
507
|
+
// by the same daemon can't reuse its own to pass as `fromOrg`.
|
|
508
|
+
const claimedFromOrg = fromQualified.split(':', 1)[0];
|
|
509
|
+
const fromEntry = lookupOrg(claimedFromOrg, daemon.opts.brokerDir);
|
|
510
|
+
if (!fromEntry?.credential || !credentialMatches(fromCredential, fromEntry.credential)) {
|
|
511
|
+
return {
|
|
512
|
+
ok: false,
|
|
513
|
+
error: `sender "${claimedFromOrg}" failed identity verification (unregistered or credential mismatch)`,
|
|
514
|
+
};
|
|
515
|
+
}
|
|
357
516
|
const org = daemon.orgs.get(toOrg);
|
|
358
517
|
if (!org) {
|
|
359
518
|
// Org not running — queue the message and auto-wake if the def exists
|
|
@@ -383,7 +542,38 @@ export function receiveRemote(daemon, toOrg, toRole, fromQualified, subject, bod
|
|
|
383
542
|
if (!org.agents.has(toRole) && org.pendingRoles?.has(toRole) && !spawning.has(toRole)) {
|
|
384
543
|
const role = org.pendingRoles.get(toRole);
|
|
385
544
|
org.pendingRoles.delete(toRole);
|
|
545
|
+
markDeferredSpawn(toOrg, toRole); // BUG 1 FIX: mark in-flight before any await
|
|
386
546
|
spawning.add(toRole); // Mark as spawning before async work
|
|
547
|
+
// Bug 4: same max_concurrent_agents gate as deliver() — checked before the
|
|
548
|
+
// host-resource-pressure gate below (prevents bypass in cross-process delivery).
|
|
549
|
+
const concurrencyLimit = org.def.run_config.max_concurrent_agents;
|
|
550
|
+
if (concurrencyLimit != null && activeRoleCount(org) >= concurrencyLimit) {
|
|
551
|
+
spawning.delete(toRole);
|
|
552
|
+
org.bus.emit({
|
|
553
|
+
type: 'audit',
|
|
554
|
+
from: toRole,
|
|
555
|
+
reason: 'concurrency-limit',
|
|
556
|
+
msg: `cross-process lazy spawn deferred: org is at its max_concurrent_agents ceiling (${concurrencyLimit})`,
|
|
557
|
+
});
|
|
558
|
+
const queued = queueMessage(daemon.root, toOrg, {
|
|
559
|
+
fromQualified,
|
|
560
|
+
toRole,
|
|
561
|
+
subject,
|
|
562
|
+
body,
|
|
563
|
+
ts: Date.now(),
|
|
564
|
+
});
|
|
565
|
+
if (!queued) {
|
|
566
|
+
return {
|
|
567
|
+
ok: false,
|
|
568
|
+
error: `could not queue message for ${toOrg}:${toRole} (disk full or permissions)`,
|
|
569
|
+
};
|
|
570
|
+
}
|
|
571
|
+
daemon.scheduleConcurrencyDeferredSpawn(toOrg, org, role, org.spawnRole);
|
|
572
|
+
return {
|
|
573
|
+
ok: true,
|
|
574
|
+
receipt: `queued for ${toOrg}:${toRole} (role starting — waiting for a concurrency slot)`,
|
|
575
|
+
};
|
|
576
|
+
}
|
|
387
577
|
// Resource gate check before spawning (prevents bypass in cross-process delivery)
|
|
388
578
|
const check = checkResources();
|
|
389
579
|
if (!check.ok) {
|
|
@@ -416,6 +606,7 @@ export function receiveRemote(daemon, toOrg, toRole, fromQualified, subject, bod
|
|
|
416
606
|
};
|
|
417
607
|
}
|
|
418
608
|
org.spawnRole?.(role);
|
|
609
|
+
clearDeferredSpawn(toOrg, toRole); // BUG 1 FIX: spawn completed — no longer in-flight
|
|
419
610
|
spawning.delete(toRole); // Clear spawning flag after spawn completes
|
|
420
611
|
org.bus.emit({
|
|
421
612
|
type: 'status',
|
|
@@ -423,6 +614,28 @@ export function receiveRemote(daemon, toOrg, toRole, fromQualified, subject, bod
|
|
|
423
614
|
msg: `lazy-spawned on remote delivery from ${fromQualified}`,
|
|
424
615
|
});
|
|
425
616
|
}
|
|
617
|
+
// BUG 1 FIX: same in-flight check as deliver() — a second cross-process
|
|
618
|
+
// message arriving while the role's spawn is deferred under resource
|
|
619
|
+
// pressure must queue, not report "role not found".
|
|
620
|
+
if (isDeferredSpawn(org, toOrg, toRole)) {
|
|
621
|
+
const queued = queueMessage(daemon.root, toOrg, {
|
|
622
|
+
fromQualified,
|
|
623
|
+
toRole,
|
|
624
|
+
subject,
|
|
625
|
+
body,
|
|
626
|
+
ts: Date.now(),
|
|
627
|
+
});
|
|
628
|
+
if (!queued) {
|
|
629
|
+
return {
|
|
630
|
+
ok: false,
|
|
631
|
+
error: `could not queue message for ${toOrg}:${toRole} (disk full or permissions)`,
|
|
632
|
+
};
|
|
633
|
+
}
|
|
634
|
+
return {
|
|
635
|
+
ok: true,
|
|
636
|
+
receipt: `queued for ${toOrg}:${toRole} (role starting — waiting for resources)`,
|
|
637
|
+
};
|
|
638
|
+
}
|
|
426
639
|
const agent = org.agents.get(toRole);
|
|
427
640
|
if (!agent)
|
|
428
641
|
return { ok: false, error: `role "${toRole}" not found in org "${toOrg}"` };
|
|
@@ -441,7 +654,9 @@ export function receiveRemote(daemon, toOrg, toRole, fromQualified, subject, bod
|
|
|
441
654
|
msg: body,
|
|
442
655
|
});
|
|
443
656
|
agent.lastMessageId = messageEvent.id; // Track last message ID for response threading
|
|
444
|
-
|
|
657
|
+
const pushed = await pushMessage(daemon, toOrg, org, toRole, fromQualified, subject, body, messageEvent.id);
|
|
658
|
+
if (!pushed)
|
|
659
|
+
return { ok: false, error: `message to ${toOrg}:${toRole} blocked by security fence` };
|
|
445
660
|
return { ok: true, receipt: `delivered to ${toOrg}:${toRole} (remote)` };
|
|
446
661
|
}
|
|
447
662
|
//# sourceMappingURL=cross-org.js.map
|
|
@@ -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,10 +1,22 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AgentMessage, type AgentRunArgs, type AgentRunner } from './agent-runner.js';
|
|
2
2
|
/** Strip tool_call fences and normalize whitespace on crush's plain-text
|
|
3
3
|
* stdout. Exported for unit testing (crush-runner.test.ts). */
|
|
4
4
|
export declare function parseCrushOutput(stdout: string): {
|
|
5
5
|
text: string;
|
|
6
6
|
rawText: string;
|
|
7
7
|
};
|
|
8
|
+
/**
|
|
9
|
+
* One incremental chunk of a streamed crush turn.
|
|
10
|
+
* - 'assistant': one line of plain-text output, outside any tool_call
|
|
11
|
+
* fence — yielded by run() as an assistant AgentMessage as it lands.
|
|
12
|
+
* - 'tool': liveness — either the spawn-time "turn started" yield, or a
|
|
13
|
+
* ```tool_call fence's opening line (the closest thing crush's plain-text
|
|
14
|
+
* output has to a tool-execution start boundary).
|
|
15
|
+
*/
|
|
16
|
+
export interface CrushStreamEvent {
|
|
17
|
+
kind: 'assistant' | 'tool';
|
|
18
|
+
text?: string;
|
|
19
|
+
}
|
|
8
20
|
export interface CrushAgentRunnerOptions {
|
|
9
21
|
crushBin?: string;
|
|
10
22
|
/** Enable usage-proxy accounting. Off by default since the base-URL env
|
|
@@ -22,6 +34,14 @@ export declare class CrushAgentRunner implements AgentRunner {
|
|
|
22
34
|
private usageProxyOpts?;
|
|
23
35
|
constructor(opts?: CrushAgentRunnerOptions);
|
|
24
36
|
run(args: AgentRunArgs): AsyncIterable<AgentMessage>;
|
|
25
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Run one `crush run` invocation and stream its plain-text stdout
|
|
39
|
+
* INCREMENTALLY: each line is yielded as soon as it arrives (see the
|
|
40
|
+
* header's "Streaming / liveness" note for why buffering until process
|
|
41
|
+
* close was a bug, #204). End-of-turn facts (exit code, stderr tail, raw
|
|
42
|
+
* text, hang/timeout flags) are written into `outcome`, which the caller
|
|
43
|
+
* reads after this generator completes.
|
|
44
|
+
*/
|
|
45
|
+
private streamTurn;
|
|
26
46
|
}
|
|
27
47
|
//# sourceMappingURL=crush-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crush-runner.d.ts","sourceRoot":"","sources":["../../../src/orgrt/crush-runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"crush-runner.d.ts","sourceRoot":"","sources":["../../../src/orgrt/crush-runner.ts"],"names":[],"mappings":"AA8EA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEjB,MAAM,mBAAmB,CAAC;AAmB3B;gEACgE;AAChE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAIlF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAcD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;uDAImD;IACnD,UAAU,CAAC,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE;AAED,qBAAa,gBAAiB,YAAW,WAAW;IAClD,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAC,CAAqD;IAE5E,YAAY,IAAI,GAAE,uBAA4B,EAQ7C;IAEM,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CA8H1D;IAED;;;;;;;OAOG;YACY,UAAU;CAsK1B"}
|