@monoes/monomindcli 2.10.29 → 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.
Files changed (122) hide show
  1. package/.claude/helpers/graphify-freshen.cjs +11 -12
  2. package/.claude/helpers/handlers/capture-handler.cjs +1 -1
  3. package/dist/src/commands/analyze-diff.d.ts.map +1 -1
  4. package/dist/src/commands/analyze-diff.js +6 -0
  5. package/dist/src/commands/analyze-diff.js.map +1 -1
  6. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  7. package/dist/src/commands/doctor-project-checks.js +73 -2
  8. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  9. package/dist/src/commands/init.d.ts.map +1 -1
  10. package/dist/src/commands/init.js.map +1 -1
  11. package/dist/src/commands/mcp.d.ts.map +1 -1
  12. package/dist/src/commands/mcp.js.map +1 -1
  13. package/dist/src/commands/org-observe.d.ts +15 -7
  14. package/dist/src/commands/org-observe.d.ts.map +1 -1
  15. package/dist/src/commands/org-observe.js +208 -63
  16. package/dist/src/commands/org-observe.js.map +1 -1
  17. package/dist/src/commands/org.d.ts.map +1 -1
  18. package/dist/src/commands/org.js +57 -4
  19. package/dist/src/commands/org.js.map +1 -1
  20. package/dist/src/commands/status.d.ts.map +1 -1
  21. package/dist/src/commands/status.js +11 -2
  22. package/dist/src/commands/status.js.map +1 -1
  23. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
  24. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  25. package/dist/src/memory/memory-kg.d.ts.map +1 -1
  26. package/dist/src/memory/memory-kg.js +10 -2
  27. package/dist/src/memory/memory-kg.js.map +1 -1
  28. package/dist/src/orgrt/agent-exec.d.ts.map +1 -1
  29. package/dist/src/orgrt/agent-exec.js +18 -9
  30. package/dist/src/orgrt/agent-exec.js.map +1 -1
  31. package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
  32. package/dist/src/orgrt/antigravity-runner.js +32 -7
  33. package/dist/src/orgrt/antigravity-runner.js.map +1 -1
  34. package/dist/src/orgrt/approvals.d.ts +15 -1
  35. package/dist/src/orgrt/approvals.d.ts.map +1 -1
  36. package/dist/src/orgrt/approvals.js +76 -11
  37. package/dist/src/orgrt/approvals.js.map +1 -1
  38. package/dist/src/orgrt/broker.d.ts +10 -2
  39. package/dist/src/orgrt/broker.d.ts.map +1 -1
  40. package/dist/src/orgrt/broker.js +20 -5
  41. package/dist/src/orgrt/broker.js.map +1 -1
  42. package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
  43. package/dist/src/orgrt/checkpoint.js.map +1 -1
  44. package/dist/src/orgrt/cross-org.d.ts +15 -2
  45. package/dist/src/orgrt/cross-org.d.ts.map +1 -1
  46. package/dist/src/orgrt/cross-org.js +169 -16
  47. package/dist/src/orgrt/cross-org.js.map +1 -1
  48. package/dist/src/orgrt/daemon.d.ts +39 -4
  49. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  50. package/dist/src/orgrt/daemon.js +135 -21
  51. package/dist/src/orgrt/daemon.js.map +1 -1
  52. package/dist/src/orgrt/decisions.d.ts.map +1 -1
  53. package/dist/src/orgrt/decisions.js +13 -1
  54. package/dist/src/orgrt/decisions.js.map +1 -1
  55. package/dist/src/orgrt/endpoint-roles.d.ts +86 -0
  56. package/dist/src/orgrt/endpoint-roles.d.ts.map +1 -0
  57. package/dist/src/orgrt/endpoint-roles.js +364 -0
  58. package/dist/src/orgrt/endpoint-roles.js.map +1 -0
  59. package/dist/src/orgrt/hermes-runner.d.ts +17 -0
  60. package/dist/src/orgrt/hermes-runner.d.ts.map +1 -0
  61. package/dist/src/orgrt/hermes-runner.js +324 -0
  62. package/dist/src/orgrt/hermes-runner.js.map +1 -0
  63. package/dist/src/orgrt/inbox.d.ts +18 -0
  64. package/dist/src/orgrt/inbox.d.ts.map +1 -1
  65. package/dist/src/orgrt/inbox.js +73 -0
  66. package/dist/src/orgrt/inbox.js.map +1 -1
  67. package/dist/src/orgrt/migrate.d.ts.map +1 -1
  68. package/dist/src/orgrt/migrate.js +3 -0
  69. package/dist/src/orgrt/migrate.js.map +1 -1
  70. package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
  71. package/dist/src/orgrt/opencode-runner.js +24 -8
  72. package/dist/src/orgrt/opencode-runner.js.map +1 -1
  73. package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -1
  74. package/dist/src/orgrt/pi-rpc-runner.js +145 -10
  75. package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
  76. package/dist/src/orgrt/policy.d.ts +22 -1
  77. package/dist/src/orgrt/policy.d.ts.map +1 -1
  78. package/dist/src/orgrt/policy.js +36 -4
  79. package/dist/src/orgrt/policy.js.map +1 -1
  80. package/dist/src/orgrt/questions.d.ts +3 -1
  81. package/dist/src/orgrt/questions.d.ts.map +1 -1
  82. package/dist/src/orgrt/questions.js +19 -3
  83. package/dist/src/orgrt/questions.js.map +1 -1
  84. package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -1
  85. package/dist/src/orgrt/qwen-rpc-runner.js +22 -8
  86. package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -1
  87. package/dist/src/orgrt/role-slot.d.ts +1 -2
  88. package/dist/src/orgrt/role-slot.d.ts.map +1 -1
  89. package/dist/src/orgrt/role-slot.js +3 -1
  90. package/dist/src/orgrt/role-slot.js.map +1 -1
  91. package/dist/src/orgrt/runner-registry.d.ts.map +1 -1
  92. package/dist/src/orgrt/runner-registry.js +45 -9
  93. package/dist/src/orgrt/runner-registry.js.map +1 -1
  94. package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
  95. package/dist/src/orgrt/scheduler-integration.js +8 -1
  96. package/dist/src/orgrt/scheduler-integration.js.map +1 -1
  97. package/dist/src/orgrt/server.d.ts.map +1 -1
  98. package/dist/src/orgrt/server.js +43 -8
  99. package/dist/src/orgrt/server.js.map +1 -1
  100. package/dist/src/orgrt/session.d.ts +12 -1
  101. package/dist/src/orgrt/session.d.ts.map +1 -1
  102. package/dist/src/orgrt/session.js +20 -3
  103. package/dist/src/orgrt/session.js.map +1 -1
  104. package/dist/src/orgrt/tool-providers.d.ts +110 -0
  105. package/dist/src/orgrt/tool-providers.d.ts.map +1 -0
  106. package/dist/src/orgrt/tool-providers.js +617 -0
  107. package/dist/src/orgrt/tool-providers.js.map +1 -0
  108. package/dist/src/orgrt/types.d.ts +75 -0
  109. package/dist/src/orgrt/types.d.ts.map +1 -1
  110. package/dist/src/orgrt/types.js +58 -0
  111. package/dist/src/orgrt/types.js.map +1 -1
  112. package/dist/src/protocol-capabilities.d.ts +7 -1
  113. package/dist/src/protocol-capabilities.d.ts.map +1 -1
  114. package/dist/src/protocol-capabilities.js +15 -1
  115. package/dist/src/protocol-capabilities.js.map +1 -1
  116. package/dist/src/ui/routes-org.mjs +9 -7
  117. package/dist/src/utils/native-error.d.ts +12 -0
  118. package/dist/src/utils/native-error.d.ts.map +1 -1
  119. package/dist/src/utils/native-error.js +30 -6
  120. package/dist/src/utils/native-error.js.map +1 -1
  121. package/dist/tsconfig.tsbuildinfo +1 -1
  122. package/package.json +2 -2
@@ -0,0 +1,364 @@
1
+ // packages/@monomind/cli/src/orgrt/endpoint-roles.ts
2
+ /**
3
+ * Endpoint roles (M2, capability `org-endpoint-roles`).
4
+ *
5
+ * A role with `kind: "endpoint"` is not an agent: it has no session, mailbox,
6
+ * policy engine, slot or budget. A message addressed to it is POSTed to
7
+ * `endpoint.url` (an automation — e.g. a mono-agent workflow), which replies
8
+ * later through `/api/xdeliver` as `<org>:<role>`.
9
+ *
10
+ * POST <endpoint.url>
11
+ * content-type: application/json
12
+ * authorization: Bearer <credential_file contents> (only if credential_file)
13
+ * {"orgName","run","from","to","subject","body","messageId"}
14
+ *
15
+ * 2xx = delivered. Anything else queues the message (`inbox.jsonl`,
16
+ * `endpoint: true`) and retries after 1 s, 5 s and 15 s; after the third
17
+ * failure an `endpoint-unreachable` audit event is emitted and the message
18
+ * stays queued. While the org runs, queued endpoint entries are re-attempted
19
+ * every 60 s, and `startOrg`'s drain delivers them too.
20
+ */
21
+ import { readFileSync, statSync } from 'node:fs';
22
+ import { isAbsolute } from 'node:path';
23
+ import { newMessageId, peekInbox, queueMessage, takeQueued } from './inbox.js';
24
+ export const ENDPOINT_POST_TIMEOUT_MS = 15_000;
25
+ export const DEFAULT_ENDPOINT_WAIT_MS = 600_000;
26
+ export const ENDPOINT_RETRY_MS = [1_000, 5_000, 15_000];
27
+ export const ENDPOINT_PERIODIC_RETRY_MS = 60_000;
28
+ /** Keys an endpoint role may not carry (it is not an agent). */
29
+ export const ENDPOINT_FORBIDDEN_KEYS = [
30
+ 'policy',
31
+ 'runtime',
32
+ 'adapter_config',
33
+ 'budget_tokens',
34
+ 'budget_usd',
35
+ 'tool_providers',
36
+ ];
37
+ export function isEndpointRole(role) {
38
+ return role?.kind === 'endpoint';
39
+ }
40
+ /** Roles that get sessions — everything except endpoint roles. */
41
+ export function agentRoles(roles) {
42
+ return roles.filter((r) => !isEndpointRole(r));
43
+ }
44
+ export function findEndpointRole(def, roleId) {
45
+ const role = def?.roles.find((r) => r.id === roleId);
46
+ return role && isEndpointRole(role) ? role : undefined;
47
+ }
48
+ /** `org validate` rules for endpoint roles. */
49
+ export function endpointStructureErrors(def) {
50
+ const errors = [];
51
+ for (const r of def.roles) {
52
+ if (!isEndpointRole(r))
53
+ continue;
54
+ const rec = r;
55
+ if (r.reports_to === null)
56
+ errors.push(`endpoint role "${r.id}" may not be the root role`);
57
+ if (!r.endpoint?.url)
58
+ errors.push(`endpoint role "${r.id}" needs endpoint.url`);
59
+ for (const k of ENDPOINT_FORBIDDEN_KEYS)
60
+ if (rec[k] !== undefined)
61
+ errors.push(`endpoint role "${r.id}" may not have "${k}"`);
62
+ const cred = r.endpoint?.credential_file;
63
+ if (cred !== undefined && !isAbsolute(cred))
64
+ errors.push(`endpoint role "${r.id}": endpoint.credential_file must be an absolute path`);
65
+ }
66
+ return errors;
67
+ }
68
+ /** Boss briefing: one line per endpoint role. */
69
+ export function endpointBriefingLines(def) {
70
+ if (!def)
71
+ return [];
72
+ return def.roles.filter(isEndpointRole).map((r) => {
73
+ const hint = r.endpoint?.input_hint?.trim();
74
+ return `- ${r.id} (${r.title || r.type}) is an automation, not an agent. Message it with org_send; it replies with its result.${hint ? ` ${hint}` : ''}`;
75
+ });
76
+ }
77
+ /** Read `credential_file` at delivery time (rotation needs no restart). It
78
+ * must be absolute, mode 0600 and owned by the daemon's user. */
79
+ export function readEndpointCredential(file) {
80
+ if (!file)
81
+ return { ok: true };
82
+ if (!isAbsolute(file))
83
+ return { ok: false, insecure: true, error: `credential_file ${file} is not an absolute path` };
84
+ let st;
85
+ try {
86
+ st = statSync(file);
87
+ }
88
+ catch (err) {
89
+ return {
90
+ ok: false,
91
+ insecure: false,
92
+ error: `credential_file unreadable: ${err instanceof Error ? err.message : String(err)}`,
93
+ };
94
+ }
95
+ if (process.platform !== 'win32') {
96
+ const mode = Number(st.mode) & 0o777;
97
+ if (mode !== 0o600)
98
+ return {
99
+ ok: false,
100
+ insecure: true,
101
+ error: `credential_file ${file} has mode ${mode.toString(8).padStart(4, '0')} (must be 0600)`,
102
+ };
103
+ const uid = typeof process.getuid === 'function' ? process.getuid() : undefined;
104
+ if (uid !== undefined && Number(st.uid) !== uid)
105
+ return {
106
+ ok: false,
107
+ insecure: true,
108
+ error: `credential_file ${file} is owned by uid ${st.uid}, not the daemon user (${uid})`,
109
+ };
110
+ }
111
+ try {
112
+ const value = readFileSync(file, 'utf8').trim();
113
+ return { ok: true, token: value };
114
+ }
115
+ catch (err) {
116
+ return {
117
+ ok: false,
118
+ insecure: false,
119
+ error: `credential_file unreadable: ${err instanceof Error ? err.message : String(err)}`,
120
+ };
121
+ }
122
+ }
123
+ export async function postToEndpoint(role, payload, timeoutMs = ENDPOINT_POST_TIMEOUT_MS) {
124
+ const url = role.endpoint?.url;
125
+ if (!url)
126
+ return { ok: false, error: `role "${role.id}" has no endpoint.url` };
127
+ const cred = readEndpointCredential(role.endpoint?.credential_file);
128
+ if (!cred.ok)
129
+ return cred;
130
+ try {
131
+ const res = await fetch(url, {
132
+ method: 'POST',
133
+ headers: {
134
+ 'content-type': 'application/json',
135
+ ...(cred.token ? { authorization: `Bearer ${cred.token}` } : {}),
136
+ },
137
+ body: JSON.stringify(payload),
138
+ signal: AbortSignal.timeout(timeoutMs),
139
+ });
140
+ // Drain the body so the connection is released.
141
+ await res.text().catch(() => '');
142
+ if (res.status >= 200 && res.status < 300)
143
+ return { ok: true, status: res.status };
144
+ return { ok: false, error: `HTTP ${res.status}` };
145
+ }
146
+ catch (err) {
147
+ return { ok: false, error: err instanceof Error ? err.message : String(err) };
148
+ }
149
+ }
150
+ export function recordEndpointWait(org, role, messageId) {
151
+ if (!org.endpointWaits)
152
+ org.endpointWaits = [];
153
+ org.endpointWaits.push({
154
+ role: role.id,
155
+ messageId,
156
+ until: Date.now() + (role.endpoint?.timeout_ms ?? DEFAULT_ENDPOINT_WAIT_MS),
157
+ });
158
+ }
159
+ /** A message from `<org>:<endpointRole>` (or `<endpointRole>`) clears that
160
+ * role's oldest wait. */
161
+ export function clearEndpointWait(org, orgName, from) {
162
+ const waits = org.endpointWaits;
163
+ if (!waits?.length)
164
+ return;
165
+ const role = from.startsWith(`${orgName}:`) ? from.slice(orgName.length + 1) : from;
166
+ const idx = waits.findIndex((w) => w.role === role);
167
+ if (idx !== -1)
168
+ waits.splice(idx, 1);
169
+ }
170
+ /** True while any endpoint wait is unexpired (expired ones are pruned). */
171
+ export function hasActiveEndpointWait(org, now = Date.now()) {
172
+ if (!org.endpointWaits?.length)
173
+ return false;
174
+ org.endpointWaits = org.endpointWaits.filter((w) => w.until > now);
175
+ return org.endpointWaits.length > 0;
176
+ }
177
+ const retryStates = new WeakMap();
178
+ function stateFor(daemon, org) {
179
+ let byOrg = retryStates.get(daemon);
180
+ if (!byOrg) {
181
+ byOrg = new Map();
182
+ retryStates.set(daemon, byOrg);
183
+ }
184
+ let st = byOrg.get(org);
185
+ if (!st) {
186
+ st = { timers: new Set(), scheduled: new Set(), insecureReported: new Set() };
187
+ byOrg.set(org, st);
188
+ }
189
+ return st;
190
+ }
191
+ function toQualified(orgName, roleId) {
192
+ return `${orgName}:${roleId}`;
193
+ }
194
+ /** One POST attempt; on success emits the delivery event(s) and records the
195
+ * watchdog wait; on an insecure credential emits the audit event. */
196
+ async function attempt(daemon, orgName, org, role, msg, emitTo, eventTo) {
197
+ const result = await postToEndpoint(role, {
198
+ orgName,
199
+ run: org.run,
200
+ from: msg.from,
201
+ to: toQualified(orgName, role.id),
202
+ subject: msg.subject,
203
+ body: msg.body,
204
+ messageId: msg.messageId,
205
+ }, daemon.opts.endpointPostTimeoutMs);
206
+ if (result.ok) {
207
+ const cross = msg.from.includes(':') && !msg.from.startsWith(`${orgName}:`);
208
+ for (const target of emitTo) {
209
+ target.bus.emit({
210
+ type: cross ? 'xorg' : 'message',
211
+ from: msg.from,
212
+ to: eventTo,
213
+ subject: msg.subject,
214
+ msg: msg.body,
215
+ data: { messageId: msg.messageId, endpoint: true },
216
+ });
217
+ }
218
+ recordEndpointWait(org, role, msg.messageId);
219
+ return result;
220
+ }
221
+ if (result.insecure) {
222
+ const st = stateFor(daemon, orgName);
223
+ if (!st.insecureReported.has(msg.messageId)) {
224
+ st.insecureReported.add(msg.messageId);
225
+ org.bus.emit({
226
+ type: 'audit',
227
+ from: role.id,
228
+ reason: 'endpoint-credential-insecure',
229
+ msg: `endpoint role "${role.id}": ${result.error} — not delivering, message queued`,
230
+ data: { role: role.id, messageId: msg.messageId, error: result.error },
231
+ });
232
+ }
233
+ }
234
+ return result;
235
+ }
236
+ /** deliver()/receiveRemote() leg for a target that is an endpoint role. */
237
+ export async function deliverToEndpoint(daemon, args) {
238
+ const { orgName, org, role, messageId } = args;
239
+ const to = toQualified(orgName, role.id);
240
+ const emitTo = args.src && args.src !== org ? [args.src, org] : [org];
241
+ const result = await attempt(daemon, orgName, org, role, { from: args.from, subject: args.subject, body: args.body, messageId }, emitTo, args.eventTo ?? to);
242
+ if (result.ok)
243
+ return `delivered to ${to} (endpoint)`;
244
+ const queued = queueMessage(daemon.root, orgName, {
245
+ fromQualified: args.from,
246
+ toRole: role.id,
247
+ subject: args.subject,
248
+ body: args.body,
249
+ ts: Date.now(),
250
+ messageId,
251
+ endpoint: true,
252
+ });
253
+ if (!queued)
254
+ return `ERROR: could not queue message for ${to} (disk full or permissions)`;
255
+ if (result.insecure)
256
+ return `queued for ${to} (endpoint credential insecure: ${result.error} — not delivered)`;
257
+ scheduleEndpointRetries(daemon, orgName, messageId, role.id);
258
+ return `queued for ${to} (endpoint unreachable: ${result.error} — retrying)`;
259
+ }
260
+ /** Take matching queued endpoint entries and POST them; failures are
261
+ * re-queued. Returns the last error per messageId that stayed queued. */
262
+ export async function retryQueuedEndpoints(daemon, orgName, predicate = () => true) {
263
+ const delivered = [];
264
+ const failed = new Map();
265
+ const org = daemon.orgs.get(orgName);
266
+ if (!org)
267
+ return { delivered, failed };
268
+ const isTarget = (m) => !!findEndpointRole(org.def, m.toRole) && predicate(m);
269
+ if (!peekInbox(daemon.root, orgName).some(isTarget))
270
+ return { delivered, failed };
271
+ const taken = takeQueued(daemon.root, orgName, isTarget);
272
+ for (const m of taken) {
273
+ const role = findEndpointRole(org.def, m.toRole);
274
+ const messageId = m.messageId ?? newMessageId();
275
+ const result = role
276
+ ? await attempt(daemon, orgName, org, role, { from: m.fromQualified, subject: m.subject, body: m.body, messageId }, [org], toQualified(orgName, m.toRole))
277
+ : { ok: false, error: 'role is no longer an endpoint role' };
278
+ if (result.ok) {
279
+ delivered.push(messageId);
280
+ }
281
+ else {
282
+ failed.set(messageId, result.error);
283
+ queueMessage(daemon.root, orgName, { ...m, messageId, endpoint: true });
284
+ }
285
+ }
286
+ return { delivered, failed };
287
+ }
288
+ /** 1 s / 5 s / 15 s retries for one queued message; after the last failure
289
+ * emit `endpoint-unreachable` and leave it queued for the periodic sweep. */
290
+ export function scheduleEndpointRetries(daemon, orgName, messageId, roleId) {
291
+ const st = stateFor(daemon, orgName);
292
+ if (st.scheduled.has(messageId))
293
+ return;
294
+ st.scheduled.add(messageId);
295
+ const delays = daemon.opts.endpointRetryMs ?? ENDPOINT_RETRY_MS;
296
+ const step = (i) => {
297
+ if (i >= delays.length)
298
+ return;
299
+ const t = setTimeout(async () => {
300
+ st.timers.delete(t);
301
+ if (!daemon.orgs.has(orgName)) {
302
+ st.scheduled.delete(messageId);
303
+ return;
304
+ }
305
+ const { delivered, failed } = await retryQueuedEndpoints(daemon, orgName, (m) => m.messageId === messageId);
306
+ if (delivered.includes(messageId) || !failed.has(messageId)) {
307
+ // Delivered, or no longer queued (another path took it).
308
+ st.scheduled.delete(messageId);
309
+ return;
310
+ }
311
+ if (i === delays.length - 1) {
312
+ st.scheduled.delete(messageId);
313
+ const error = failed.get(messageId);
314
+ daemon.orgs.get(orgName)?.bus.emit({
315
+ type: 'audit',
316
+ from: roleId,
317
+ reason: 'endpoint-unreachable',
318
+ msg: `endpoint role "${roleId}" unreachable after ${delays.length} retries (${error}) — message stays queued`,
319
+ data: { role: roleId, messageId, error },
320
+ });
321
+ return;
322
+ }
323
+ step(i + 1);
324
+ }, delays[i]);
325
+ t.unref?.();
326
+ st.timers.add(t);
327
+ };
328
+ step(0);
329
+ }
330
+ /** Periodic (60 s) re-attempt of queued endpoint entries while `org` runs.
331
+ * Entries still on their 1/5/15 s schedule are skipped. */
332
+ export function startEndpointRetryLoop(daemon, orgName) {
333
+ const st = stateFor(daemon, orgName);
334
+ if (st.periodic)
335
+ clearInterval(st.periodic);
336
+ st.periodic = setInterval(async () => {
337
+ if (st.sweeping || !daemon.orgs.has(orgName))
338
+ return;
339
+ st.sweeping = true;
340
+ try {
341
+ await retryQueuedEndpoints(daemon, orgName, (m) => !m.messageId || !st.scheduled.has(m.messageId));
342
+ }
343
+ catch {
344
+ /* best-effort — next sweep retries */
345
+ }
346
+ finally {
347
+ st.sweeping = false;
348
+ }
349
+ }, daemon.opts.endpointPeriodicRetryMs ?? ENDPOINT_PERIODIC_RETRY_MS);
350
+ st.periodic.unref?.();
351
+ }
352
+ /** Stop every retry timer for `org` (stopOrg). Queued entries stay queued. */
353
+ export function stopEndpointRetries(daemon, orgName) {
354
+ const byOrg = retryStates.get(daemon);
355
+ const st = byOrg?.get(orgName);
356
+ if (!st)
357
+ return;
358
+ if (st.periodic)
359
+ clearInterval(st.periodic);
360
+ for (const t of st.timers)
361
+ clearTimeout(t);
362
+ byOrg?.delete(orgName);
363
+ }
364
+ //# sourceMappingURL=endpoint-roles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-roles.js","sourceRoot":"","sources":["../../../src/orgrt/endpoint-roles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type AgentMessage, type AgentRunArgs, type AgentRunner } from './agent-runner.js';
2
+ export declare class HermesAgentRunner implements AgentRunner {
3
+ private hermesBin?;
4
+ constructor(hermesBin?: string | undefined);
5
+ run(args: AgentRunArgs): AsyncIterable<AgentMessage>;
6
+ /**
7
+ * Run one `hermes chat --oneshot` invocation. Yields exactly one liveness
8
+ * `tool_use` message the instant the subprocess spawns (see file header —
9
+ * hermes has no intermediate event stream to yield from, unlike codex),
10
+ * then drains stdout to completion. End-of-turn facts (exit code, stderr
11
+ * tail, warning-filtered stdout text, session id parsed from stderr) are
12
+ * written into `outcome`, which the caller reads after this generator
13
+ * completes.
14
+ */
15
+ private streamTurn;
16
+ }
17
+ //# sourceMappingURL=hermes-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes-runner.d.ts","sourceRoot":"","sources":["../../../src/orgrt/hermes-runner.ts"],"names":[],"mappings":"AA4GA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEjB,MAAM,mBAAmB,CAAC;AAuC3B,qBAAa,iBAAkB,YAAW,WAAW;IACvC,OAAO,CAAC,SAAS,CAAC;IAA9B,YAAoB,SAAS,CAAC,EAAE,MAAM,YAAA,EAAI;IAEnC,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CA4F1D;IAED;;;;;;;;OAQG;YACY,UAAU;CAwF1B"}