@monoes/monomindcli 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/.claude/commands/mastermind/runorg.md +4 -0
  2. package/.claude/helpers/control-start.cjs +50 -5
  3. package/.claude/helpers/event-logger.cjs +109 -6
  4. package/.claude/helpers/graphify-freshen.cjs +19 -17
  5. package/.claude/helpers/handlers/agent-start-handler.cjs +60 -28
  6. package/.claude/helpers/handlers/capture-handler.cjs +75 -18
  7. package/.claude/helpers/handlers/edit-handler.cjs +27 -9
  8. package/.claude/helpers/handlers/gates-handler.cjs +16 -7
  9. package/.claude/helpers/handlers/loops-status-handler.cjs +1 -1
  10. package/.claude/helpers/handlers/route-handler.cjs +4 -4
  11. package/.claude/helpers/handlers/session-handler.cjs +40 -22
  12. package/.claude/helpers/handlers/session-restore-handler.cjs +0 -12
  13. package/.claude/helpers/handlers/task-handler.cjs +53 -22
  14. package/.claude/helpers/hook-handler.cjs +54 -4
  15. package/.claude/helpers/intelligence.cjs +94 -15
  16. package/.claude/helpers/session.cjs +6 -1
  17. package/.claude/helpers/statusline.cjs +10 -10
  18. package/.claude/helpers/token-tracker.cjs +3 -3
  19. package/.claude/helpers/utils/agent-registrations.cjs +41 -0
  20. package/.claude/helpers/utils/fs-helpers.cjs +183 -0
  21. package/.claude/helpers/utils/micro-agents.cjs +10 -6
  22. package/.claude/helpers/utils/telemetry.cjs +35 -19
  23. package/bin/cli.js +10 -1
  24. package/dist/src/commands/agent-ops.d.ts.map +1 -1
  25. package/dist/src/commands/agent-ops.js +9 -15
  26. package/dist/src/commands/agent-ops.js.map +1 -1
  27. package/dist/src/commands/cleanup.d.ts.map +1 -1
  28. package/dist/src/commands/cleanup.js +20 -4
  29. package/dist/src/commands/cleanup.js.map +1 -1
  30. package/dist/src/commands/completions.d.ts.map +1 -1
  31. package/dist/src/commands/completions.js +66 -261
  32. package/dist/src/commands/completions.js.map +1 -1
  33. package/dist/src/commands/doctor.d.ts.map +1 -1
  34. package/dist/src/commands/doctor.js +7 -2
  35. package/dist/src/commands/doctor.js.map +1 -1
  36. package/dist/src/commands/hooks-workers.d.ts.map +1 -1
  37. package/dist/src/commands/hooks-workers.js +7 -0
  38. package/dist/src/commands/hooks-workers.js.map +1 -1
  39. package/dist/src/commands/index.d.ts.map +1 -1
  40. package/dist/src/commands/index.js +3 -0
  41. package/dist/src/commands/index.js.map +1 -1
  42. package/dist/src/commands/mcp.d.ts.map +1 -1
  43. package/dist/src/commands/mcp.js +11 -6
  44. package/dist/src/commands/mcp.js.map +1 -1
  45. package/dist/src/commands/memory-admin.d.ts.map +1 -1
  46. package/dist/src/commands/memory-admin.js +12 -6
  47. package/dist/src/commands/memory-admin.js.map +1 -1
  48. package/dist/src/commands/memory-transfer.d.ts.map +1 -1
  49. package/dist/src/commands/memory-transfer.js +6 -13
  50. package/dist/src/commands/memory-transfer.js.map +1 -1
  51. package/dist/src/commands/monograph.js +3 -3
  52. package/dist/src/commands/monograph.js.map +1 -1
  53. package/dist/src/commands/org.d.ts +3 -1
  54. package/dist/src/commands/org.d.ts.map +1 -1
  55. package/dist/src/commands/org.js +306 -129
  56. package/dist/src/commands/org.js.map +1 -1
  57. package/dist/src/commands/start.d.ts.map +1 -1
  58. package/dist/src/commands/start.js +142 -37
  59. package/dist/src/commands/start.js.map +1 -1
  60. package/dist/src/commands/tokens.d.ts.map +1 -1
  61. package/dist/src/commands/tokens.js +21 -3
  62. package/dist/src/commands/tokens.js.map +1 -1
  63. package/dist/src/config-adapter.d.ts.map +1 -1
  64. package/dist/src/config-adapter.js +37 -17
  65. package/dist/src/config-adapter.js.map +1 -1
  66. package/dist/src/index.d.ts.map +1 -1
  67. package/dist/src/index.js +64 -28
  68. package/dist/src/index.js.map +1 -1
  69. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  70. package/dist/src/init/claudemd-generator.js +44 -11
  71. package/dist/src/init/claudemd-generator.js.map +1 -1
  72. package/dist/src/init/executor.d.ts.map +1 -1
  73. package/dist/src/init/executor.js +63 -49
  74. package/dist/src/init/executor.js.map +1 -1
  75. package/dist/src/mcp-client.d.ts +8 -3
  76. package/dist/src/mcp-client.d.ts.map +1 -1
  77. package/dist/src/mcp-client.js +37 -3
  78. package/dist/src/mcp-client.js.map +1 -1
  79. package/dist/src/mcp-server.d.ts.map +1 -1
  80. package/dist/src/mcp-server.js +8 -2
  81. package/dist/src/mcp-server.js.map +1 -1
  82. package/dist/src/mcp-tools/agent-tools.d.ts +20 -0
  83. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  84. package/dist/src/mcp-tools/agent-tools.js +10 -5
  85. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  86. package/dist/src/mcp-tools/github-tools.d.ts.map +1 -1
  87. package/dist/src/mcp-tools/github-tools.js +30 -8
  88. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  89. package/dist/src/mcp-tools/graphify-tools.d.ts.map +1 -1
  90. package/dist/src/mcp-tools/graphify-tools.js +11 -2
  91. package/dist/src/mcp-tools/graphify-tools.js.map +1 -1
  92. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
  93. package/dist/src/mcp-tools/hive-mind-tools.js +51 -34
  94. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  95. package/dist/src/mcp-tools/knowledge-tools.d.ts.map +1 -1
  96. package/dist/src/mcp-tools/knowledge-tools.js +9 -1
  97. package/dist/src/mcp-tools/knowledge-tools.js.map +1 -1
  98. package/dist/src/mcp-tools/monograph-compat.d.ts.map +1 -1
  99. package/dist/src/mcp-tools/monograph-compat.js +56 -14
  100. package/dist/src/mcp-tools/monograph-compat.js.map +1 -1
  101. package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
  102. package/dist/src/mcp-tools/monograph-tools.js +65 -43
  103. package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
  104. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
  105. package/dist/src/mcp-tools/swarm-tools.js +6 -4
  106. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  107. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
  108. package/dist/src/mcp-tools/system-tools.js +4 -4
  109. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  110. package/dist/src/mcp-tools/types.d.ts +20 -0
  111. package/dist/src/mcp-tools/types.d.ts.map +1 -1
  112. package/dist/src/mcp-tools/types.js +36 -1
  113. package/dist/src/mcp-tools/types.js.map +1 -1
  114. package/dist/src/memory/hnsw-operations.d.ts +13 -1
  115. package/dist/src/memory/hnsw-operations.d.ts.map +1 -1
  116. package/dist/src/memory/hnsw-operations.js +66 -14
  117. package/dist/src/memory/hnsw-operations.js.map +1 -1
  118. package/dist/src/memory/intelligence.d.ts.map +1 -1
  119. package/dist/src/memory/intelligence.js +99 -3
  120. package/dist/src/memory/intelligence.js.map +1 -1
  121. package/dist/src/memory/memory-bridge.d.ts +7 -0
  122. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  123. package/dist/src/memory/memory-bridge.js +20 -0
  124. package/dist/src/memory/memory-bridge.js.map +1 -1
  125. package/dist/src/orgrt/broker.d.ts +24 -0
  126. package/dist/src/orgrt/broker.d.ts.map +1 -0
  127. package/dist/src/orgrt/broker.js +68 -0
  128. package/dist/src/orgrt/broker.js.map +1 -0
  129. package/dist/src/orgrt/daemon.d.ts +30 -0
  130. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  131. package/dist/src/orgrt/daemon.js +96 -7
  132. package/dist/src/orgrt/daemon.js.map +1 -1
  133. package/dist/src/orgrt/forwarder.d.ts +10 -5
  134. package/dist/src/orgrt/forwarder.d.ts.map +1 -1
  135. package/dist/src/orgrt/forwarder.js +105 -8
  136. package/dist/src/orgrt/forwarder.js.map +1 -1
  137. package/dist/src/orgrt/live.html +56 -0
  138. package/dist/src/orgrt/provider.d.ts.map +1 -1
  139. package/dist/src/orgrt/provider.js +1 -0
  140. package/dist/src/orgrt/provider.js.map +1 -1
  141. package/dist/src/orgrt/scheduler.d.ts +13 -0
  142. package/dist/src/orgrt/scheduler.d.ts.map +1 -0
  143. package/dist/src/orgrt/scheduler.js +48 -0
  144. package/dist/src/orgrt/scheduler.js.map +1 -0
  145. package/dist/src/orgrt/server.d.ts +8 -0
  146. package/dist/src/orgrt/server.d.ts.map +1 -0
  147. package/dist/src/orgrt/server.js +72 -0
  148. package/dist/src/orgrt/server.js.map +1 -0
  149. package/dist/src/orgrt/test-loop.d.ts +12 -0
  150. package/dist/src/orgrt/test-loop.d.ts.map +1 -0
  151. package/dist/src/orgrt/test-loop.js +108 -0
  152. package/dist/src/orgrt/test-loop.js.map +1 -0
  153. package/dist/src/output.d.ts.map +1 -1
  154. package/dist/src/output.js +12 -5
  155. package/dist/src/output.js.map +1 -1
  156. package/dist/src/parser.d.ts +32 -0
  157. package/dist/src/parser.d.ts.map +1 -1
  158. package/dist/src/parser.js +130 -5
  159. package/dist/src/parser.js.map +1 -1
  160. package/dist/src/routing/embed-worker.js +13 -1
  161. package/dist/src/routing/embed-worker.js.map +1 -1
  162. package/dist/src/routing/route-layer-factory.d.ts.map +1 -1
  163. package/dist/src/routing/route-layer-factory.js +31 -0
  164. package/dist/src/routing/route-layer-factory.js.map +1 -1
  165. package/dist/src/services/config-file-manager.d.ts +21 -0
  166. package/dist/src/services/config-file-manager.d.ts.map +1 -1
  167. package/dist/src/services/config-file-manager.js +60 -7
  168. package/dist/src/services/config-file-manager.js.map +1 -1
  169. package/dist/src/services/crash-reporter.d.ts.map +1 -1
  170. package/dist/src/services/crash-reporter.js +2 -1
  171. package/dist/src/services/crash-reporter.js.map +1 -1
  172. package/dist/src/ui/dashboard.html +40 -40
  173. package/dist/src/ui/orgs.html +110 -11
  174. package/dist/src/ui/server.mjs +304 -133
  175. package/dist/src/utils/input-guards.d.ts +9 -0
  176. package/dist/src/utils/input-guards.d.ts.map +1 -1
  177. package/dist/src/utils/input-guards.js +39 -5
  178. package/dist/src/utils/input-guards.js.map +1 -1
  179. package/dist/tsconfig.tsbuildinfo +1 -1
  180. package/package.json +6 -2
@@ -7,16 +7,21 @@ import { PolicyEngine } from './policy.js';
7
7
  import { Mailbox } from './mailbox.js';
8
8
  import { runAgentSession } from './session.js';
9
9
  import { attachForwarder } from './forwarder.js';
10
+ import { BrokerLease, lookupOrg } from './broker.js';
10
11
  import { OrgDefSchema, ORG_DIR } from './types.js';
11
12
  export class OrgDaemon {
12
13
  root;
13
14
  opts;
14
15
  orgs = new Map();
15
16
  globalSubscribers = new Set();
17
+ leases = new Map();
18
+ forwarders = new Map();
16
19
  constructor(root, opts = {}) {
17
20
  this.root = root;
18
21
  this.opts = opts;
19
22
  }
23
+ /** Publish this daemon's inbox so orgs started AFTER this call register with the broker. */
24
+ setInboxUrl(url) { this.opts.inboxUrl = url; }
20
25
  /** subscribe to events from ALL running orgs (dashboard server uses this) */
21
26
  subscribe(fn) {
22
27
  this.globalSubscribers.add(fn);
@@ -29,7 +34,9 @@ export class OrgDaemon {
29
34
  throw new Error(`org ${name} already running`);
30
35
  const defPath = join(this.root, ORG_DIR, `${name}.json`);
31
36
  const def = OrgDefSchema.parse(JSON.parse(readFileSync(defPath, 'utf8')));
32
- const run = `run-${new Date().toISOString().replace(/[-:T]/g, '').slice(0, 15)}`;
37
+ // random suffix: second-precision stamps collide across processes (two CLI
38
+ // invocations in the same second would share a run dir and its bus.jsonl)
39
+ const run = `run-${new Date().toISOString().replace(/[-:T]/g, '').slice(0, 14)}-${Math.random().toString(36).slice(2, 6)}`;
33
40
  const dir = join(this.root, ORG_DIR, name, run);
34
41
  mkdirSync(dir, { recursive: true });
35
42
  const cwd = join(this.root, ORG_DIR, name, 'workspace');
@@ -39,35 +46,63 @@ export class OrgDaemon {
39
46
  bus.subscribe(e => { collected.push(e); for (const fn of this.globalSubscribers)
40
47
  fn(e); });
41
48
  if (this.opts.forward !== false)
42
- attachForwarder(bus, this.opts.controlJson ?? join(this.root, '.monomind/control.json'));
49
+ this.forwarders.set(name, attachForwarder(bus, this.opts.controlJson ?? join(this.root, '.monomind/control.json')));
43
50
  const running = { def, run, bus, agents: new Map(), busEvents: () => [...collected] };
44
51
  this.orgs.set(name, running);
45
52
  const perRoleBudget = Math.floor((def.run_config.budget_tokens ?? 1_000_000) / def.roles.length);
46
53
  for (const role of def.roles) {
47
54
  const mailbox = new Mailbox();
48
55
  const policy = new PolicyEngine(role.id, { maxTokens: perRoleBudget, ...(role.policy ?? {}) }, bus, cwd);
49
- const done = runAgentSession({
56
+ const runtime = { mailbox, policy, status: 'running', done: Promise.resolve() };
57
+ runtime.done = runAgentSession({
50
58
  org: name, role, bus, policy, mailbox, cwd, def,
51
59
  maxTurns: def.run_config.max_turns_per_message,
52
60
  deliver: (from, to, subject, body) => this.deliver(name, from, to, subject, body),
53
61
  queryFn: this.opts.queryFn,
54
- }).catch(() => { });
55
- running.agents.set(role.id, { mailbox, policy, done });
62
+ }).then(() => { runtime.status = 'ended'; })
63
+ .catch((err) => {
64
+ const message = err instanceof Error ? err.message : String(err);
65
+ runtime.status = 'crashed';
66
+ runtime.error = message;
67
+ // runAgentSession already emits a 'status' event for the raw error; emit an
68
+ // 'audit' event too so dashboards/alerts that filter on actionable failures
69
+ // (not routine status chatter) can surface a dead agent instead of a run that
70
+ // silently never progresses.
71
+ bus.emit({
72
+ type: 'audit', from: role.id,
73
+ msg: `agent "${role.id}" crashed: ${message}`,
74
+ reason: 'agent-session-crash',
75
+ data: { agentId: role.id, error: message },
76
+ });
77
+ });
78
+ running.agents.set(role.id, runtime);
56
79
  }
57
80
  const boss = def.roles.find(r => r.type === 'boss' || r.reports_to === null) ?? def.roles[0];
58
81
  running.agents.get(boss.id).mailbox.push(`Org "${name}" started (run ${run}).\nGoal: ${taskOverride ?? def.goal}\n` +
59
82
  `Coordinate your team via org_send. Report completion by ending your turn.`);
60
83
  bus.emit({ type: 'status', msg: `org started (${def.roles.length} agents)`, data: { goal: taskOverride ?? def.goal } });
61
84
  this.persistState(name, 'running', run);
85
+ if (this.opts.crossProcess && this.opts.inboxUrl) {
86
+ const lease = new BrokerLease(name, this.opts.inboxUrl, this.opts.brokerDir);
87
+ lease.start();
88
+ this.leases.set(name, lease);
89
+ }
62
90
  return running;
63
91
  }
64
92
  /** Route a message. to = "role" (same org) or "org:role" (cross-org). Returns a receipt string. */
65
93
  async deliver(fromOrg, fromRole, to, subject, body) {
66
- const cross = to.includes(':');
67
- const [targetOrgName, targetRole] = cross ? to.split(':', 2) : [fromOrg, to];
94
+ let cross = to.includes(':');
95
+ let [targetOrgName, targetRole] = cross ? to.split(':', 2) : [fromOrg, to];
96
+ // "own-org:role" is intra-org — agents often self-prefix; don't tag it xorg
97
+ if (cross && targetOrgName === fromOrg) {
98
+ cross = false;
99
+ to = targetRole;
100
+ }
68
101
  const targetOrg = this.orgs.get(targetOrgName);
69
102
  const src = this.orgs.get(fromOrg);
70
103
  if (!targetOrg || !targetOrg.agents.has(targetRole)) {
104
+ if (cross && this.opts.crossProcess)
105
+ return this.deliverRemote(fromOrg, fromRole, targetOrgName, targetRole, to, subject, body, src);
71
106
  src?.bus.emit({ type: 'audit', from: fromRole, to, msg: `undeliverable: ${subject}`, reason: 'unknown recipient' });
72
107
  return `ERROR: unknown recipient "${to}" (known: ${[...(targetOrg?.agents.keys() ?? this.orgs.keys())].join(', ')})`;
73
108
  }
@@ -78,15 +113,69 @@ export class OrgDaemon {
78
113
  targetOrg.agents.get(targetRole).mailbox.push(`[message from ${evt.from}] subject: ${subject}\n\n${body}`);
79
114
  return `delivered to ${to}`;
80
115
  }
116
+ /** Cross-process leg of deliver(): ask the machine-local broker who hosts targetOrgName, then POST over HTTP. */
117
+ async deliverRemote(fromOrg, fromRole, targetOrgName, targetRole, to, subject, body, src) {
118
+ const remote = lookupOrg(targetOrgName, this.opts.brokerDir);
119
+ if (!remote) {
120
+ src?.bus.emit({ type: 'audit', from: fromRole, to, msg: `undeliverable: ${subject}`, reason: 'unknown recipient' });
121
+ return `ERROR: unknown recipient "${to}" (no local org, and no process on this machine has org "${targetOrgName}" registered)`;
122
+ }
123
+ try {
124
+ const res = await fetch(`${remote.url}/api/xdeliver`, {
125
+ method: 'POST',
126
+ headers: { 'Content-Type': 'application/json' },
127
+ body: JSON.stringify({ fromOrg, fromRole, toOrg: targetOrgName, toRole: targetRole, subject, body }),
128
+ signal: AbortSignal.timeout(10_000),
129
+ });
130
+ const data = await res.json().catch(() => ({}));
131
+ if (res.ok && data.ok) {
132
+ src?.bus.emit({ type: 'xorg', from: `${fromOrg}:${fromRole}`, to, subject, msg: body });
133
+ return data.receipt ?? `delivered to ${to} (remote)`;
134
+ }
135
+ src?.bus.emit({ type: 'audit', from: fromRole, to, msg: `remote delivery rejected: ${data.error ?? res.status}`, reason: 'remote-delivery-rejected' });
136
+ return `ERROR: remote org "${to}" rejected delivery: ${data.error ?? res.status}`;
137
+ }
138
+ catch (err) {
139
+ const message = err instanceof Error ? err.message : String(err);
140
+ src?.bus.emit({ type: 'audit', from: fromRole, to, msg: `remote delivery failed: ${message}`, reason: 'remote-delivery-failed' });
141
+ return `ERROR: remote org "${targetOrgName}" unreachable: ${message}`;
142
+ }
143
+ }
144
+ /** Inbound handler for cross-process delivery — called by the server's POST /api/xdeliver route
145
+ * when ANOTHER process's deliverRemote() reaches this daemon. Pushes straight into the target
146
+ * agent's mailbox; the agent picks it up on its own next turn (see Mailbox — never interrupts). */
147
+ receiveRemote(toOrg, toRole, fromQualified, subject, body) {
148
+ const org = this.orgs.get(toOrg);
149
+ if (!org)
150
+ return { ok: false, error: `org "${toOrg}" not hosted here` };
151
+ const agent = org.agents.get(toRole);
152
+ if (!agent)
153
+ return { ok: false, error: `role "${toRole}" not found in org "${toOrg}"` };
154
+ org.bus.emit({ type: 'xorg', from: fromQualified, to: `${toOrg}:${toRole}`, subject, msg: body });
155
+ agent.mailbox.push(`[message from ${fromQualified}] subject: ${subject}\n\n${body}`);
156
+ return { ok: true, receipt: `delivered to ${toOrg}:${toRole} (remote)` };
157
+ }
81
158
  async stopOrg(name) {
82
159
  const org = this.orgs.get(name);
83
160
  if (!org)
84
161
  return;
162
+ this.leases.get(name)?.stop();
163
+ this.leases.delete(name);
85
164
  for (const a of org.agents.values())
86
165
  a.mailbox.close();
87
166
  await Promise.allSettled([...org.agents.values()].map(a => a.done));
88
167
  org.bus.emit({ type: 'status', msg: 'org stopped' });
89
168
  await org.bus.flush();
169
+ // the "org stopped" event above triggers the forwarder's final org:complete /
170
+ // session:complete POST — without waiting for it here, the CLI process can exit
171
+ // (and kill the in-flight fetch) before that last event reaches the dashboard,
172
+ // leaving the run stuck showing "running" forever.
173
+ const forwarder = this.forwarders.get(name);
174
+ if (forwarder) {
175
+ await forwarder.settle();
176
+ forwarder.unsubscribe();
177
+ this.forwarders.delete(name);
178
+ }
90
179
  this.persistState(name, 'stopped', org.run);
91
180
  this.orgs.delete(name);
92
181
  }
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/orgrt/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/orgrt/daemon.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,16 @@
1
1
  import type { OrgBus } from './bus.js';
2
- /**
3
- * Forwards every bus event to the running mastermind control server
4
- * (dist/src/ui/server.mjs, POST /api/mastermind/event) so the existing
5
- * dashboard SSE stream shows org activity. Best-effort: failures are dropped.
6
- */
2
+ import type { BusEvent } from './types.js';
7
3
  export declare function attachForwarder(bus: OrgBus, controlJsonPath?: string): {
8
4
  settle: () => Promise<void>;
9
5
  unsubscribe: () => void;
10
6
  };
7
+ /**
8
+ * Companion dashboard events a single bus event needs beyond its primary
9
+ * translate() mapping. Currently: org-started -> session:start (registers
10
+ * the run in the client's session list) and org-stopped -> session:complete.
11
+ * Exported for tests.
12
+ */
13
+ export declare function companionEvents(e: BusEvent): Record<string, unknown>[];
14
+ /** BusEvent → dashboard-native mastermind event. Exported for tests. */
15
+ export declare function translate(e: BusEvent): Record<string, unknown>;
11
16
  //# sourceMappingURL=forwarder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"forwarder.d.ts","sourceRoot":"","sources":["../../../src/orgrt/forwarder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,SAA2B;;;EAyBtF"}
1
+ {"version":3,"file":"forwarder.d.ts","sourceRoot":"","sources":["../../../src/orgrt/forwarder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgC3C,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,SAA2B;;;EA6BtF;AASD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAYtE;AAED,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsC9D"}
@@ -1,10 +1,36 @@
1
1
  // packages/@monomind/cli/src/orgrt/forwarder.ts
2
2
  import { readFileSync, existsSync } from 'node:fs';
3
+ import { basename, extname } from 'node:path';
3
4
  /**
4
5
  * Forwards every bus event to the running mastermind control server
5
6
  * (dist/src/ui/server.mjs, POST /api/mastermind/event) so the existing
6
- * dashboard SSE stream shows org activity. Best-effort: failures are dropped.
7
+ * dashboard shows org activity. Best-effort: failures are dropped.
8
+ *
9
+ * Events are translated into the dashboard's native vocabulary
10
+ * (org:start / org:comms / org:agent:online|offline / org:artifact /
11
+ * org:checkpoint / org:complete) so the Orgs panel and Chat tab render
12
+ * them; every payload carries org + runId so the server routes it to the
13
+ * run file. Event kinds without a native rendering (tool/usage/audit) are
14
+ * forwarded as raw org:<type> — they still land in the run file and SSE.
15
+ *
16
+ * companionEvents() additionally emits session:start/session:complete: the
17
+ * dashboard's client-side Chat tab only lists a run in its session dropdown
18
+ * once it has seen a session:start for that session id — org:start alone is
19
+ * NOT enough (verified against dist/src/ui/orgs.html's handleMmEvent, which
20
+ * creates the chatSessions entry solely on session:start). Companions are
21
+ * sent before the primary translate() payload for the same bus event so the
22
+ * client-side session record exists before anything tries to append to it.
23
+ *
24
+ * sessionId() below joins org/run with "__", not ":" — server.mjs's
25
+ * per-session persistence (data/sessions/<id>.jsonl + _index.json, the store
26
+ * GET /api/mastermind/sessions reads on page load) validates the session id
27
+ * against /^(?!.*\.\.)[a-zA-Z0-9_][a-zA-Z0-9_.-]*$/, which rejects colons. A
28
+ * colon-joined id silently fails that check — the event still lands in the
29
+ * raw mastermind-events.jsonl log, but the run never persists to the session
30
+ * index, so a fresh dashboard load never lists it (only a client that was
31
+ * already connected via SSE when session:start fired would show it).
7
32
  */
33
+ function sessionId(org, run) { return `${org}__${run}`; }
8
34
  export function attachForwarder(bus, controlJsonPath = '.monomind/control.json') {
9
35
  let chain = Promise.resolve();
10
36
  const baseUrl = () => {
@@ -18,20 +44,91 @@ export function attachForwarder(bus, controlJsonPath = '.monomind/control.json')
18
44
  return null;
19
45
  }
20
46
  };
47
+ const post = async (url, payload) => {
48
+ await fetch(`${url}/api/mastermind/event`, {
49
+ method: 'POST',
50
+ headers: { 'Content-Type': 'application/json' },
51
+ body: JSON.stringify(payload),
52
+ signal: AbortSignal.timeout(3000),
53
+ }).then(r => { r.body?.cancel(); }).catch(() => { });
54
+ };
21
55
  const unsubscribe = bus.subscribe((e) => {
22
56
  chain = chain.then(async () => {
23
57
  const url = baseUrl();
24
58
  if (!url)
25
59
  return;
26
- const payload = { ...e, type: `org:${e.type}`, session: `${e.org}:${e.run}`, domain: 'ops' };
27
- await fetch(`${url}/api/mastermind/event`, {
28
- method: 'POST',
29
- headers: { 'Content-Type': 'application/json' },
30
- body: JSON.stringify(payload),
31
- signal: AbortSignal.timeout(3000),
32
- }).then(r => { r.body?.cancel(); }).catch(() => { });
60
+ for (const payload of companionEvents(e))
61
+ await post(url, payload);
62
+ await post(url, translate(e));
33
63
  }).catch(() => { });
34
64
  });
35
65
  return { settle: () => chain, unsubscribe };
36
66
  }
67
+ const TEXTUAL_EXT = new Set(['.md', '.txt', '.json', '.ts', '.tsx', '.js', '.jsx', '.mjs',
68
+ '.py', '.sh', '.yaml', '.yml', '.html', '.css', '.xml', '.log', '.csv']);
69
+ function guessMimeType(path) {
70
+ if (!path)
71
+ return 'application/octet-stream';
72
+ return TEXTUAL_EXT.has(extname(path).toLowerCase()) ? 'text/plain' : 'application/octet-stream';
73
+ }
74
+ /**
75
+ * Companion dashboard events a single bus event needs beyond its primary
76
+ * translate() mapping. Currently: org-started -> session:start (registers
77
+ * the run in the client's session list) and org-stopped -> session:complete.
78
+ * Exported for tests.
79
+ */
80
+ export function companionEvents(e) {
81
+ if (e.type !== 'status')
82
+ return [];
83
+ const base = { session: sessionId(e.org, e.run), org: e.org, ts: e.ts };
84
+ const msg = e.msg ?? '';
85
+ if (msg.startsWith('org started')) {
86
+ const goal = e.data?.goal;
87
+ return [{ ...base, type: 'session:start', prompt: goal && goal.length ? goal : e.org }];
88
+ }
89
+ if (msg === 'org stopped') {
90
+ return [{ ...base, type: 'session:complete', status: 'complete', domains: ['ops'] }];
91
+ }
92
+ return [];
93
+ }
94
+ /** BusEvent → dashboard-native mastermind event. Exported for tests. */
95
+ export function translate(e) {
96
+ const base = {
97
+ org: e.org,
98
+ runId: e.run,
99
+ session: sessionId(e.org, e.run),
100
+ domain: 'ops',
101
+ ts: e.ts,
102
+ };
103
+ switch (e.type) {
104
+ case 'chat':
105
+ return { ...base, type: 'org:comms', from: e.from, to: 'all', msg: e.msg };
106
+ case 'message':
107
+ case 'xorg':
108
+ return {
109
+ ...base, type: 'org:comms', from: e.from, to: e.to,
110
+ msg: e.subject ? `[${e.subject}] ${e.msg ?? ''}` : e.msg,
111
+ };
112
+ case 'asset':
113
+ return {
114
+ ...base, type: 'org:artifact', from: e.from,
115
+ artifact: { label: basename(e.path ?? 'asset'), type: 'file', path: e.path, mimeType: guessMimeType(e.path) },
116
+ };
117
+ case 'status': {
118
+ const msg = e.msg ?? '';
119
+ if (msg.startsWith('org started'))
120
+ return { ...base, type: 'org:start', goal: e.data?.goal ?? '' };
121
+ if (msg === 'org stopped')
122
+ return { ...base, type: 'org:complete' };
123
+ if (msg === 'session starting')
124
+ return { ...base, type: 'org:agent:online', role: e.from, title: e.from, agent_type: e.from };
125
+ if (msg === 'session ended' || msg.startsWith('session error'))
126
+ return { ...base, type: 'org:agent:offline', from: e.from, reason: msg };
127
+ return { ...base, type: 'org:checkpoint', progress: msg, from: e.from };
128
+ }
129
+ default:
130
+ // tool / usage / audit — no native widget; keep raw for run file + SSE
131
+ return { ...e, ...base, type: `org:${e.type}` };
132
+ }
133
+ }
37
134
  //# sourceMappingURL=forwarder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"forwarder.js","sourceRoot":"","sources":["../../../src/orgrt/forwarder.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAInD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,eAAe,GAAG,wBAAwB;IACrF,IAAI,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,GAAkB,EAAE;QAClC,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5D,OAAO,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QAClF,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAW,EAAE,EAAE;QAChD,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAC5B,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAC7F,MAAM,KAAK,CAAC,GAAG,GAAG,uBAAuB,EAAE;gBACzC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"forwarder.js","sourceRoot":"","sources":["../../../src/orgrt/forwarder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ <!-- packages/@monomind/cli/src/orgrt/live.html -->
2
+ <!doctype html>
3
+ <html><head><meta charset="utf-8"><title>org live</title>
4
+ <style>
5
+ :root { color-scheme: dark; }
6
+ body { margin:0; font:13px/1.5 ui-monospace,monospace; background:#0d1117; color:#e6edf3;
7
+ display:grid; grid-template-columns:220px 1fr 1fr; grid-template-rows:auto 1fr 1fr; gap:1px; height:100vh; }
8
+ header { grid-column:1/4; padding:8px 14px; background:#161b22; font-weight:700; }
9
+ section { background:#161b22; overflow:auto; padding:10px; }
10
+ h2 { font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:#7d8590; margin:0 0 8px; }
11
+ #agents { grid-row:2/4; }
12
+ .agent { padding:6px 8px; border-left:3px solid #2f81f7; margin-bottom:6px; background:#0d1117; }
13
+ .agent small { color:#7d8590; display:block; }
14
+ .row { padding:4px 6px; border-bottom:1px solid #21262d; word-break:break-word; }
15
+ .from { color:#2f81f7; font-weight:700; } .to { color:#a371f7; }
16
+ .deny { color:#f85149; } .allow { color:#3fb950; } .xorg { color:#d29922; font-weight:700; }
17
+ .ts { color:#484f58; font-size:11px; margin-right:6px; }
18
+ </style></head>
19
+ <body>
20
+ <header>org live — <span id="conn">connecting…</span></header>
21
+ <section id="agents"><h2>Agents</h2><div id="agents-list"></div></section>
22
+ <section id="chat"><h2>Chats &amp; Messages</h2><div id="chat-list"></div></section>
23
+ <section id="tools"><h2>Tool Activity &amp; Assets</h2><div id="tools-list"></div></section>
24
+ <script>
25
+ const $ = id => document.getElementById(id);
26
+ const fmt = ts => new Date(ts).toLocaleTimeString();
27
+ const add = (listId, html, cap = 500) => {
28
+ const el = document.createElement('div'); el.className = 'row'; el.innerHTML = html;
29
+ const list = $(listId); list.prepend(el);
30
+ while (list.children.length > cap) list.lastChild.remove();
31
+ };
32
+ const esc = s => String(s ?? '').replace(/[&<>]/g, c => ({'&':'&amp;','<':'&lt;','>':'&gt;'}[c]));
33
+ const decisionClass = d => (d === 'allow' || d === 'deny') ? d : 'unknown';
34
+ function render(e) {
35
+ const t = `<span class="ts">${fmt(e.ts)}</span>`;
36
+ if (e.type === 'chat') add('chat-list', `${t}<span class="from">${esc(e.org)}/${esc(e.from)}</span>: ${esc(e.msg)}`);
37
+ else if (e.type === 'message') add('chat-list', `${t}<span class="from">${esc(e.from)}</span> → <span class="to">${esc(e.to)}</span> [${esc(e.subject||'')}] ${esc(e.msg)}`);
38
+ else if (e.type === 'xorg') add('chat-list', `${t}<span class="xorg">⇄ ${esc(e.from)} → ${esc(e.to)}</span> [${esc(e.subject||'')}] ${esc(e.msg)}`);
39
+ else if (e.type === 'tool') add('tools-list', `${t}<span class="from">${esc(e.from)}</span> ${esc(e.tool)} <span class="${decisionClass(e.decision)}">${esc(e.decision)}</span>${e.reason ? ' — ' + esc(e.reason) : ''}`);
40
+ else if (e.type === 'asset') add('tools-list', `${t}<span class="from">${esc(e.from)}</span> 📄 <b>${esc(e.path)}</b>`);
41
+ else if (e.type === 'status' || e.type === 'usage') add('tools-list', `${t}<i>${esc(e.org)}/${esc(e.from ?? 'org')}: ${esc(e.msg ?? JSON.stringify(e.data))}</i>`);
42
+ }
43
+ async function refreshAgents() {
44
+ const orgs = await fetch('/api/orgs').then(r => r.json()).catch(() => []);
45
+ $('agents-list').innerHTML = orgs.map(o =>
46
+ `<div class="agent"><b>${esc(o.name)}</b><small>${esc(o.run)}</small>` +
47
+ o.agents.map(a => `<div>${a.closed ? '⚫' : '🟢'} ${esc(a.id)} <small>${esc(a.usage)} tok</small></div>`).join('') +
48
+ `</div>`).join('') || '<i>no running orgs</i>';
49
+ }
50
+ const ws = new WebSocket(`ws://${location.host}/ws`);
51
+ ws.onopen = () => { $('conn').textContent = 'live'; refreshAgents(); };
52
+ ws.onclose = () => { $('conn').textContent = 'disconnected'; };
53
+ ws.onmessage = ev => { render(JSON.parse(ev.data)); };
54
+ setInterval(refreshAgents, 5000);
55
+ </script>
56
+ </body></html>
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/orgrt/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,cAAc,GAAG,SAAS,EAC/B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAC1D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiCxB"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/orgrt/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,cAAc,GAAG,SAAS,EAC/B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAC1D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkCxB"}
@@ -23,6 +23,7 @@ export function resolveProviderEnv(cfg, parentEnv = process.env) {
23
23
  if (!key)
24
24
  throw new Error(`provider api-key: env var ${name} is not set`);
25
25
  env[KEY_VAR] = key;
26
+ delete env.ANTHROPIC_AUTH_TOKEN; // leftover parent token would override the key in the engine
26
27
  break;
27
28
  }
28
29
  case 'base-url': {
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/orgrt/provider.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAA+B,EAC/B,YAAgD,OAAO,CAAC,GAAG;IAE3D,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,IAAI,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,cAAc,CAAC;IAEzC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;YACpB,OAAO,GAAG,CAAC,kBAAkB,CAAC;YAC9B,OAAO,GAAG,CAAC,oBAAoB,CAAC;YAChC,MAAM;QACR,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,IAAI,GAAG,GAAG,EAAE,SAAS,IAAI,OAAO,CAAC;YACvC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,aAAa,CAAC,CAAC;YAC1E,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;YACnB,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,GAAG,EAAE,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC7E,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAAC;YACrC,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;YACpB,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACxC,IAAI,CAAC,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,YAAY,aAAa,CAAC,CAAC;gBACvF,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;YACjC,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,SAAS;YAAE,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC;YAAC,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;YAAC,OAAO,GAAG,CAAC,oBAAoB,CAAC;YAAC,MAAM;QAC/G,KAAK,QAAQ;YAAE,GAAG,CAAC,sBAAsB,GAAG,GAAG,CAAC;YAAC,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;YAAC,OAAO,GAAG,CAAC,oBAAoB,CAAC;YAAC,MAAM;IAC/G,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/orgrt/provider.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAA+B,EAC/B,YAAgD,OAAO,CAAC,GAAG;IAE3D,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,IAAI,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,cAAc,CAAC;IAEzC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;YACpB,OAAO,GAAG,CAAC,kBAAkB,CAAC;YAC9B,OAAO,GAAG,CAAC,oBAAoB,CAAC;YAChC,MAAM;QACR,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,IAAI,GAAG,GAAG,EAAE,SAAS,IAAI,OAAO,CAAC;YACvC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,aAAa,CAAC,CAAC;YAC1E,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;YACnB,OAAO,GAAG,CAAC,oBAAoB,CAAC,CAAC,6DAA6D;YAC9F,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,GAAG,EAAE,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC7E,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAAC;YACrC,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;YACpB,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACxC,IAAI,CAAC,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,YAAY,aAAa,CAAC,CAAC;gBACvF,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;YACjC,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,SAAS;YAAE,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC;YAAC,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;YAAC,OAAO,GAAG,CAAC,oBAAoB,CAAC;YAAC,MAAM;QAC/G,KAAK,QAAQ;YAAE,GAAG,CAAC,sBAAsB,GAAG,GAAG,CAAC;YAAC,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;YAAC,OAAO,GAAG,CAAC,oBAAoB,CAAC;YAAC,MAAM;IAC/G,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,13 @@
1
+ /** "15m" | "2h" | "45s" | minutes as number | null → interval ms or null */
2
+ export declare function parseSchedule(s: string | number | null | undefined): number | null;
3
+ /** Fires runFn(name, intervalMs) every intervalMs per org. Real timer loop — no ScheduleWakeup, no prompts. */
4
+ export declare class OrgScheduler {
5
+ private runFn;
6
+ private timers;
7
+ private running;
8
+ constructor(runFn: (name: string, intervalMs: number) => Promise<void>);
9
+ add(name: string, intervalMs: number): void;
10
+ remove(name: string): void;
11
+ stop(): void;
12
+ }
13
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/orgrt/scheduler.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAOlF;AAED,+GAA+G;AAC/G,qBAAa,YAAY;IAIX,OAAO,CAAC,KAAK;IAHzB,OAAO,CAAC,MAAM,CAAqD;IACnE,OAAO,CAAC,OAAO,CAAqB;gBAEhB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;IAE9E,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAW3C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM1B,IAAI,IAAI,IAAI;CACb"}
@@ -0,0 +1,48 @@
1
+ // packages/@monomind/cli/src/orgrt/scheduler.ts
2
+ /** "15m" | "2h" | "45s" | minutes as number | null → interval ms or null */
3
+ export function parseSchedule(s) {
4
+ if (s == null)
5
+ return null;
6
+ if (typeof s === 'number')
7
+ return s * 60_000;
8
+ const m = /^(\d+)\s*(s|m|h)$/.exec(s.trim());
9
+ if (!m)
10
+ return null;
11
+ const n = Number(m[1]);
12
+ return m[2] === 's' ? n * 1000 : m[2] === 'm' ? n * 60_000 : n * 3_600_000;
13
+ }
14
+ /** Fires runFn(name, intervalMs) every intervalMs per org. Real timer loop — no ScheduleWakeup, no prompts. */
15
+ export class OrgScheduler {
16
+ runFn;
17
+ timers = new Map();
18
+ running = new Set();
19
+ constructor(runFn) {
20
+ this.runFn = runFn;
21
+ }
22
+ add(name, intervalMs) {
23
+ this.remove(name);
24
+ this.timers.set(name, setInterval(async () => {
25
+ if (this.running.has(name))
26
+ return; // skip if previous iteration still running
27
+ this.running.add(name);
28
+ try {
29
+ await this.runFn(name, intervalMs);
30
+ }
31
+ catch (err) {
32
+ console.error(`[org-scheduler] ${name}: scheduled run failed:`, err);
33
+ }
34
+ finally {
35
+ this.running.delete(name);
36
+ }
37
+ }, intervalMs));
38
+ }
39
+ remove(name) {
40
+ const t = this.timers.get(name);
41
+ if (t)
42
+ clearInterval(t);
43
+ this.timers.delete(name);
44
+ }
45
+ stop() { for (const name of [...this.timers.keys()])
46
+ this.remove(name); }
47
+ }
48
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/orgrt/scheduler.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAAC,CAAqC;IACjE,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAC7C,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAC7E,CAAC;AAED,+GAA+G;AAC/G,MAAM,OAAO,YAAY;IAIH;IAHZ,MAAM,GAAG,IAAI,GAAG,EAA0C,CAAC;IAC3D,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,YAAoB,KAA0D;QAA1D,UAAK,GAAL,KAAK,CAAqD;IAAG,CAAC;IAElF,GAAG,CAAC,IAAY,EAAE,UAAkB;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE;YAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,2CAA2C;YAC/E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAAC,CAAC;YAC3C,OAAO,GAAG,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,yBAAyB,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;oBAC7E,CAAC;gBAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;QACxC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC;YAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,KAAW,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAChF"}
@@ -0,0 +1,8 @@
1
+ import type { OrgDaemon } from './daemon.js';
2
+ export interface OrgServer {
3
+ port: number;
4
+ close: () => void;
5
+ }
6
+ /** Daemon-owned live view: WS fanout of every bus event + tiny REST surface. */
7
+ export declare function startOrgServer(daemon: OrgDaemon, port: number): Promise<OrgServer>;
8
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/orgrt/server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAAE;AAE/D,gFAAgF;AAChF,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA+DxF"}