@monoes/monomindcli 2.11.9 → 2.11.11

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 (116) hide show
  1. package/.claude/skills/mastermind/SKILL.md +13 -0
  2. package/README.md +1 -1
  3. package/bin/cli.js +17 -8
  4. package/dist/src/commands/crash-reporting.d.ts +3 -1
  5. package/dist/src/commands/crash-reporting.d.ts.map +1 -1
  6. package/dist/src/commands/crash-reporting.js +26 -10
  7. package/dist/src/commands/crash-reporting.js.map +1 -1
  8. package/dist/src/commands/doctor-env-checks.d.ts +9 -0
  9. package/dist/src/commands/doctor-env-checks.d.ts.map +1 -1
  10. package/dist/src/commands/doctor-env-checks.js +31 -0
  11. package/dist/src/commands/doctor-env-checks.js.map +1 -1
  12. package/dist/src/commands/doctor-monoes-checks.d.ts +12 -0
  13. package/dist/src/commands/doctor-monoes-checks.d.ts.map +1 -1
  14. package/dist/src/commands/doctor-monoes-checks.js +142 -1
  15. package/dist/src/commands/doctor-monoes-checks.js.map +1 -1
  16. package/dist/src/commands/doctor.d.ts.map +1 -1
  17. package/dist/src/commands/doctor.js +11 -3
  18. package/dist/src/commands/doctor.js.map +1 -1
  19. package/dist/src/commands/mcp.d.ts.map +1 -1
  20. package/dist/src/commands/mcp.js +16 -0
  21. package/dist/src/commands/mcp.js.map +1 -1
  22. package/dist/src/commands/org-observe.d.ts.map +1 -1
  23. package/dist/src/commands/org-observe.js +29 -4
  24. package/dist/src/commands/org-observe.js.map +1 -1
  25. package/dist/src/commands/org.d.ts.map +1 -1
  26. package/dist/src/commands/org.js +12 -3
  27. package/dist/src/commands/org.js.map +1 -1
  28. package/dist/src/init/executor.d.ts.map +1 -1
  29. package/dist/src/init/executor.js +17 -0
  30. package/dist/src/init/executor.js.map +1 -1
  31. package/dist/src/init/mcp-generator.d.ts +2 -7
  32. package/dist/src/init/mcp-generator.d.ts.map +1 -1
  33. package/dist/src/init/mcp-generator.js +15 -17
  34. package/dist/src/init/mcp-generator.js.map +1 -1
  35. package/dist/src/init/write-claude.d.ts.map +1 -1
  36. package/dist/src/init/write-claude.js +9 -0
  37. package/dist/src/init/write-claude.js.map +1 -1
  38. package/dist/src/init/write-runtime-config.d.ts +8 -0
  39. package/dist/src/init/write-runtime-config.d.ts.map +1 -1
  40. package/dist/src/init/write-runtime-config.js +69 -14
  41. package/dist/src/init/write-runtime-config.js.map +1 -1
  42. package/dist/src/mcp/monoes-mcp-entry.mjs +152 -0
  43. package/dist/src/mcp/monoes-proxy.d.ts +48 -0
  44. package/dist/src/mcp/monoes-proxy.d.ts.map +1 -0
  45. package/dist/src/mcp/monoes-proxy.js +240 -0
  46. package/dist/src/mcp/monoes-proxy.js.map +1 -0
  47. package/dist/src/orgrt/completion-gate.d.ts +58 -0
  48. package/dist/src/orgrt/completion-gate.d.ts.map +1 -0
  49. package/dist/src/orgrt/completion-gate.js +86 -0
  50. package/dist/src/orgrt/completion-gate.js.map +1 -0
  51. package/dist/src/orgrt/daemon.d.ts +15 -0
  52. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  53. package/dist/src/orgrt/daemon.js +194 -12
  54. package/dist/src/orgrt/daemon.js.map +1 -1
  55. package/dist/src/orgrt/file-roots.d.ts +57 -0
  56. package/dist/src/orgrt/file-roots.d.ts.map +1 -0
  57. package/dist/src/orgrt/file-roots.js +100 -0
  58. package/dist/src/orgrt/file-roots.js.map +1 -0
  59. package/dist/src/orgrt/policy-git.d.ts.map +1 -1
  60. package/dist/src/orgrt/policy-git.js +122 -4
  61. package/dist/src/orgrt/policy-git.js.map +1 -1
  62. package/dist/src/orgrt/policy.d.ts +13 -1
  63. package/dist/src/orgrt/policy.d.ts.map +1 -1
  64. package/dist/src/orgrt/policy.js +60 -11
  65. package/dist/src/orgrt/policy.js.map +1 -1
  66. package/dist/src/orgrt/reporting.d.ts +56 -0
  67. package/dist/src/orgrt/reporting.d.ts.map +1 -1
  68. package/dist/src/orgrt/reporting.js +42 -3
  69. package/dist/src/orgrt/reporting.js.map +1 -1
  70. package/dist/src/orgrt/role-sandbox.d.ts.map +1 -1
  71. package/dist/src/orgrt/role-sandbox.js +19 -49
  72. package/dist/src/orgrt/role-sandbox.js.map +1 -1
  73. package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
  74. package/dist/src/orgrt/scheduler-integration.js +4 -2
  75. package/dist/src/orgrt/scheduler-integration.js.map +1 -1
  76. package/dist/src/orgrt/session.d.ts +5 -2
  77. package/dist/src/orgrt/session.d.ts.map +1 -1
  78. package/dist/src/orgrt/session.js +51 -7
  79. package/dist/src/orgrt/session.js.map +1 -1
  80. package/dist/src/orgrt/task-dag.d.ts +11 -0
  81. package/dist/src/orgrt/task-dag.d.ts.map +1 -1
  82. package/dist/src/orgrt/task-dag.js +19 -0
  83. package/dist/src/orgrt/task-dag.js.map +1 -1
  84. package/dist/src/orgrt/types.d.ts +6 -0
  85. package/dist/src/orgrt/types.d.ts.map +1 -1
  86. package/dist/src/orgrt/types.js +10 -0
  87. package/dist/src/orgrt/types.js.map +1 -1
  88. package/dist/src/prompt.d.ts.map +1 -1
  89. package/dist/src/prompt.js +14 -0
  90. package/dist/src/prompt.js.map +1 -1
  91. package/dist/src/services/crash-consent.d.ts +35 -0
  92. package/dist/src/services/crash-consent.d.ts.map +1 -0
  93. package/dist/src/services/crash-consent.js +100 -0
  94. package/dist/src/services/crash-consent.js.map +1 -0
  95. package/dist/src/services/crash-lock.d.ts +22 -0
  96. package/dist/src/services/crash-lock.d.ts.map +1 -0
  97. package/dist/src/services/crash-lock.js +86 -0
  98. package/dist/src/services/crash-lock.js.map +1 -0
  99. package/dist/src/services/crash-race-timeout.d.ts +13 -0
  100. package/dist/src/services/crash-race-timeout.d.ts.map +1 -0
  101. package/dist/src/services/crash-race-timeout.js +15 -0
  102. package/dist/src/services/crash-race-timeout.js.map +1 -0
  103. package/dist/src/services/crash-reporter.d.ts +12 -4
  104. package/dist/src/services/crash-reporter.d.ts.map +1 -1
  105. package/dist/src/services/crash-reporter.js +105 -129
  106. package/dist/src/services/crash-reporter.js.map +1 -1
  107. package/dist/src/ui/dashboard.html +122 -0
  108. package/dist/src/ui/mastermind-diagram-fallback.html +14 -0
  109. package/dist/src/ui/orgs.html +12 -0
  110. package/dist/src/ui/routes-monoes.mjs +105 -21
  111. package/dist/src/utils/redaction.d.ts +17 -0
  112. package/dist/src/utils/redaction.d.ts.map +1 -1
  113. package/dist/src/utils/redaction.js +52 -7
  114. package/dist/src/utils/redaction.js.map +1 -1
  115. package/dist/tsconfig.tsbuildinfo +1 -1
  116. package/package.json +4 -4
@@ -0,0 +1,240 @@
1
+ /**
2
+ * monoes.me MCP stdio<->HTTP proxy.
3
+ *
4
+ * i-066: the `monoes` entry in `.mcp.json` runs this as a stdio command
5
+ * instead of embedding a bearer token. The Authorization header is resolved
6
+ * per request from the existing refresh-aware `getValidMonoesToken()` — the
7
+ * token never touches disk as part of this proxy, and refresh keeps
8
+ * working with zero user action (an exported env var would go stale at the
9
+ * next silent refresh and then 401 — see the plan's ADR for why that was
10
+ * rejected).
11
+ *
12
+ * FAIL FAST: this process sits in Claude Code's MCP *startup* path. A hang
13
+ * here degrades the user's entire Claude Code session, not just this
14
+ * integration — so auth is resolved once, bounded (~2s), before the stdio
15
+ * loop ever starts, and a startup failure exits non-zero immediately with a
16
+ * one-line, actionable message. No retry loop, ever. A never-connected user
17
+ * never gets this entry at all (see mcp-generator.ts / routes-monoes.mjs —
18
+ * they only emit it when a connection already exists), so "not connected"
19
+ * here means the connection was disconnected or corrupted out from under a
20
+ * previously-written entry.
21
+ *
22
+ * NEVER LOG THE TOKEN: no message this module writes (stdout, stderr, or a
23
+ * thrown/returned Error) may embed the resolved header or token value —
24
+ * the repo's `redact()` does NOT cover `Authorization: Bearer <opaque>` or
25
+ * `"accessToken": "..."` shapes (see plan). Every user-facing string below
26
+ * is a fixed literal, never an interpolated fetch/network error, precisely
27
+ * so a caught error object can never smuggle a header value into an Error
28
+ * message, a crash report, or terminal scrollback.
29
+ */
30
+ import fs from 'node:fs';
31
+ import path from 'node:path';
32
+ import readline from 'node:readline';
33
+ import { getValidMonoesToken } from '../ui/routes-monoes.mjs';
34
+ const AUTH_TIMEOUT_MS = 2000;
35
+ const REQUEST_TIMEOUT_MS = 15_000;
36
+ const REAUTH_HINT = 'Run `monomind ui`, then monoes.me -> Disconnect -> Connect to reconnect.';
37
+ /**
38
+ * Resolve MONOMIND_HOME the same way the dashboard server does: explicit
39
+ * env var, else walk up from cwd looking for `.monomind/control.json`,
40
+ * else cwd. Duplicated rather than imported from `ui/server.mjs` — that
41
+ * module boots an entire HTTP server as an import side effect, which is
42
+ * not safe to pull into a stdio MCP process.
43
+ */
44
+ export function resolveMonomindHome(cwd = process.cwd()) {
45
+ if (process.env.MONOMIND_HOME)
46
+ return path.resolve(process.env.MONOMIND_HOME);
47
+ let dir = path.resolve(cwd);
48
+ while (dir !== path.dirname(dir)) {
49
+ if (fs.existsSync(path.join(dir, '.monomind', 'control.json')))
50
+ return dir;
51
+ dir = path.dirname(dir);
52
+ }
53
+ return path.resolve(cwd);
54
+ }
55
+ function withTimeout(promise, ms) {
56
+ return new Promise((resolve, reject) => {
57
+ const timer = setTimeout(() => reject(new Error('timeout')), ms);
58
+ promise.then((value) => {
59
+ clearTimeout(timer);
60
+ resolve(value);
61
+ }, (err) => {
62
+ clearTimeout(timer);
63
+ reject(err);
64
+ });
65
+ });
66
+ }
67
+ /**
68
+ * Resolves a fresh Authorization header at request time. Never throws —
69
+ * every failure (no connection, corrupted connection file, network
70
+ * unreachable, refresh rejected, timeout) collapses to one of two fixed
71
+ * reasons so the underlying error — which could theoretically carry request
72
+ * details — never has to be inspected or surfaced by a caller.
73
+ */
74
+ export async function resolveAuthHeader(monomindHome, options = {}) {
75
+ const timeoutMs = options.timeoutMs ?? AUTH_TIMEOUT_MS;
76
+ const getToken = /* fn */ options.getToken ?? getValidMonoesToken;
77
+ let token;
78
+ try {
79
+ token = await withTimeout(getToken(monomindHome), timeoutMs);
80
+ }
81
+ catch {
82
+ return { ok: false, reason: 'timeout' };
83
+ }
84
+ if (!token)
85
+ return { ok: false, reason: 'not_connected' };
86
+ return { ok: true, headers: { Authorization: `Bearer ${token}` } };
87
+ }
88
+ export function formatAuthFailureMessage(reason) {
89
+ const detail = reason === 'timeout'
90
+ ? 'could not reach monoes.me (or the stored connection is corrupted) within 2s'
91
+ : 'not connected to monoes.me';
92
+ return `monoes MCP proxy: ${detail}. ${REAUTH_HINT}`;
93
+ }
94
+ /** JSON-RPC messages carried by an SSE body (`data:` lines, events split by a blank line). */
95
+ export function parseSseMessages(body) {
96
+ const messages = [];
97
+ for (const event of body.split(/\r?\n\r?\n/)) {
98
+ const data = event
99
+ .split(/\r?\n/)
100
+ .filter((line) => line.startsWith('data:'))
101
+ .map((line) => line.slice(5).replace(/^ /, ''))
102
+ .join('\n');
103
+ if (!data)
104
+ continue;
105
+ try {
106
+ messages.push(JSON.parse(data));
107
+ }
108
+ catch {
109
+ // A malformed event is skipped; the request still gets its own error below if nothing parsed.
110
+ }
111
+ }
112
+ return messages;
113
+ }
114
+ /**
115
+ * Forwards one stdio message over MCP Streamable HTTP and returns the
116
+ * messages to write back: none for a notification the server acknowledged
117
+ * (202), otherwise the JSON body or every message in an SSE body.
118
+ */
119
+ async function forwardMessage(monoesUrl, monomindHome, message, fetchImpl, timeoutMs, session, getToken) {
120
+ const rawId = message?.id;
121
+ const isNotification = rawId === undefined;
122
+ const id = rawId ?? null;
123
+ const auth = await resolveAuthHeader(monomindHome, { getToken });
124
+ if (!auth.ok) {
125
+ if (isNotification)
126
+ return [];
127
+ return [
128
+ {
129
+ jsonrpc: '2.0',
130
+ id,
131
+ error: { code: -32000, message: formatAuthFailureMessage(auth.reason) },
132
+ },
133
+ ];
134
+ }
135
+ try {
136
+ const res = await withTimeout(fetchImpl(monoesUrl, {
137
+ method: 'POST',
138
+ headers: {
139
+ 'Content-Type': 'application/json',
140
+ Accept: 'application/json, text/event-stream',
141
+ ...(session.id ? { 'Mcp-Session-Id': session.id } : {}),
142
+ ...auth.headers,
143
+ },
144
+ body: JSON.stringify(message),
145
+ }), timeoutMs);
146
+ const sessionId = res.headers?.get?.('mcp-session-id');
147
+ if (sessionId)
148
+ session.id = sessionId;
149
+ if (res.status === 202 || res.status === 204)
150
+ return [];
151
+ const contentType = res.headers?.get?.('content-type') ?? '';
152
+ if (contentType.includes('text/event-stream')) {
153
+ const messages = parseSseMessages(await withTimeout(res.text(), timeoutMs));
154
+ if (messages.length === 0)
155
+ throw new Error('empty event stream');
156
+ return messages;
157
+ }
158
+ return [await res.json()];
159
+ }
160
+ catch {
161
+ // Deliberately generic — never interpolate the caught error. Some fetch
162
+ // implementations attach the request init (including headers) to a
163
+ // thrown error's `cause`/message; string-building from it here would
164
+ // risk leaking the Authorization value into stdout.
165
+ if (isNotification)
166
+ return [];
167
+ return [
168
+ {
169
+ jsonrpc: '2.0',
170
+ id,
171
+ error: {
172
+ code: -32001,
173
+ message: 'monoes MCP proxy: request to monoes.me failed or timed out.',
174
+ },
175
+ },
176
+ ];
177
+ }
178
+ }
179
+ /**
180
+ * Entry point registered by `commands/mcp.ts`'s `monoes-proxy` subcommand.
181
+ */
182
+ export async function runMonoesProxy(options = {}) {
183
+ const stdin = options.stdin ?? process.stdin;
184
+ const stdout = options.stdout ?? process.stdout;
185
+ const stderr = options.stderr ?? process.stderr;
186
+ const exit = options.exit ?? ((code) => process.exit(code));
187
+ const fetchImpl = options.fetchImpl ?? fetch;
188
+ const monomindHome = options.monomindHome ?? resolveMonomindHome(options.cwd);
189
+ const monoesBaseUrl = process.env.MONOMIND_MONOES_URL || 'https://monoes.me';
190
+ const monoesUrl = options.monoesUrl ?? `${monoesBaseUrl}/api/mcp`;
191
+ const requestTimeoutMs = options.requestTimeoutMs ?? REQUEST_TIMEOUT_MS;
192
+ // Fail fast: resolve auth ONCE before ever starting the stdio loop, so a
193
+ // corrupted/revoked/offline connection gets an immediate, bounded, named
194
+ // failure instead of a hung or silently-broken MCP server blocking the
195
+ // rest of the user's Claude Code session.
196
+ const startupAuth = await resolveAuthHeader(monomindHome, {
197
+ timeoutMs: options.timeoutMs,
198
+ getToken: /* fn */ options.getToken,
199
+ });
200
+ if (!startupAuth.ok) {
201
+ stderr.write(`${formatAuthFailureMessage(startupAuth.reason)}\n`);
202
+ exit(1);
203
+ return;
204
+ }
205
+ const session = {};
206
+ const rl = readline.createInterface({ input: stdin, terminal: false });
207
+ rl.on('line', (line) => {
208
+ if (!line.trim())
209
+ return;
210
+ let message;
211
+ try {
212
+ message = JSON.parse(line);
213
+ }
214
+ catch {
215
+ stdout.write(`${JSON.stringify({ jsonrpc: '2.0', id: null, error: { code: -32700, message: 'Parse error' } })}\n`);
216
+ return;
217
+ }
218
+ forwardMessage(monoesUrl, monomindHome, message, fetchImpl, requestTimeoutMs, session, options.getToken)
219
+ .then((responses) => {
220
+ for (const response of responses)
221
+ stdout.write(`${JSON.stringify(response)}\n`);
222
+ })
223
+ .catch(() => {
224
+ // forwardMessage itself never rejects (it has its own try/catch),
225
+ // but stdout.write can throw — e.g. EPIPE once Claude Code has
226
+ // closed the pipe. Without this .catch, that throw becomes an
227
+ // unhandled rejection, which terminates the whole process under
228
+ // Node >= 15 — exactly the "one failure takes down the rest of the
229
+ // session" outcome this proxy exists to prevent. Fixed literal
230
+ // only; never the caught error (i-066 reviewer finding 7).
231
+ try {
232
+ stdout.write(`${JSON.stringify({ jsonrpc: '2.0', id: null, error: { code: -32002, message: 'monoes MCP proxy: failed to write the response.' } })}\n`);
233
+ }
234
+ catch {
235
+ // stdout itself is gone — nothing more this process can do about it.
236
+ }
237
+ });
238
+ });
239
+ }
240
+ //# sourceMappingURL=monoes-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monoes-proxy.js","sourceRoot":"","sources":["../../../src/mcp/monoes-proxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * #302: `org_complete` had no gate at all — a boss could end a run `partial`
3
+ * with a full backlog and no named reason, and nothing checked whether the
4
+ * claim was true. `checkCompletion` is the pure decision behind the gate:
5
+ * given already-gathered facts about the run (nothing it can invent for
6
+ * itself), it returns a refusal string or `null` (allow). The daemon gathers
7
+ * the facts (`daemon.ts`'s `onComplete`) and calls this; this module does no
8
+ * I/O and imports nothing from `daemon.ts`, so it is table-testable without
9
+ * booting a daemon.
10
+ *
11
+ * A free-text blocker is satisfiable by typing anything, so free text alone
12
+ * is out. But an enum is not honest either — a boss can pick 'time' as
13
+ * easily as it can type "time". The enum's real value is that it is
14
+ * MACHINE-CHECKABLE, which free text is not: `budget`/`human`/`time` are
15
+ * each cross-checked against runtime state the boss does not author.
16
+ * `external` is the deliberate escape hatch — not checkable, so its
17
+ * `blockerDetail` is required to be a real, substantive claim instead (it is
18
+ * recorded verbatim in the run history, attributed to the boss, so a human
19
+ * reads it).
20
+ *
21
+ * Safety property, load-bearing, asserted as test rows not just documented
22
+ * here: this module constrains ONLY `outcome: 'partial'` by default.
23
+ * `achieved` and `failed` are never refused by the default (`mode: 'boss'`)
24
+ * half — a boss can always end the run honestly, so the gate cannot trap an
25
+ * org in a run it is unable to finish. `mode: 'dag'` (opt-in via
26
+ * `run_config.completion`) is an ADDITIONAL, stronger constraint on top of
27
+ * that, not a replacement: it also refuses `achieved` while runnable work
28
+ * remains, which the default half never does.
29
+ */
30
+ export type CompletionOutcome = 'achieved' | 'partial' | 'failed';
31
+ export type CompletionBlocker = 'budget' | 'human' | 'external' | 'time';
32
+ export interface CompletionFacts {
33
+ outcome: CompletionOutcome;
34
+ blocker?: CompletionBlocker;
35
+ blockerDetail?: string;
36
+ /** 'boss' (default): only `outcome: 'partial'` is gated, via `blocker`.
37
+ * 'dag' (run_config.completion: 'dag', opt-in): additionally refuses
38
+ * `achieved`/`partial` while runnable work remains — see `hasPendingWork`. */
39
+ mode: 'boss' | 'dag';
40
+ /** Highest role spend / ceiling across tokens and USD, 0..1. */
41
+ maxBudgetFraction: number;
42
+ /** Unannswered `ask_human` questions plus pending decision gates. */
43
+ pendingHumanWaits: number;
44
+ /** `TaskDag.hasActiveBlock(now)` — every non-terminal task is blocked on a
45
+ * real-world time still in the future. False when there are no
46
+ * non-terminal tasks at all (see `hasPendingWork`'s doc). */
47
+ hasActiveBlock: boolean;
48
+ /** Some task in `org_tasks` is not yet terminal (done/failed/split/merged/
49
+ * cancelled). Must be checked ALONGSIDE `hasActiveBlock`, not instead of
50
+ * it: `hasActiveBlock` alone is false on an EMPTY dag too (nothing left to
51
+ * block on), which would wrongly refuse a run that legitimately finished
52
+ * every task. */
53
+ hasPendingWork: boolean;
54
+ }
55
+ /** Decide whether an `org_complete` call is honest, given already-gathered
56
+ * facts. Returns a refusal message, or `null` to allow. */
57
+ export declare function checkCompletion(f: CompletionFacts): string | null;
58
+ //# sourceMappingURL=completion-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion-gate.d.ts","sourceRoot":"","sources":["../../../src/orgrt/completion-gate.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;mFAE+E;IAC/E,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,gEAAgE;IAChE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;kEAE8D;IAC9D,cAAc,EAAE,OAAO,CAAC;IACxB;;;;sBAIkB;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAiDD;4DAC4D;AAC5D,wBAAgB,eAAe,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CASjE"}
@@ -0,0 +1,86 @@
1
+ // packages/@monomind/cli/src/orgrt/completion-gate.ts
2
+ /**
3
+ * #302: `org_complete` had no gate at all — a boss could end a run `partial`
4
+ * with a full backlog and no named reason, and nothing checked whether the
5
+ * claim was true. `checkCompletion` is the pure decision behind the gate:
6
+ * given already-gathered facts about the run (nothing it can invent for
7
+ * itself), it returns a refusal string or `null` (allow). The daemon gathers
8
+ * the facts (`daemon.ts`'s `onComplete`) and calls this; this module does no
9
+ * I/O and imports nothing from `daemon.ts`, so it is table-testable without
10
+ * booting a daemon.
11
+ *
12
+ * A free-text blocker is satisfiable by typing anything, so free text alone
13
+ * is out. But an enum is not honest either — a boss can pick 'time' as
14
+ * easily as it can type "time". The enum's real value is that it is
15
+ * MACHINE-CHECKABLE, which free text is not: `budget`/`human`/`time` are
16
+ * each cross-checked against runtime state the boss does not author.
17
+ * `external` is the deliberate escape hatch — not checkable, so its
18
+ * `blockerDetail` is required to be a real, substantive claim instead (it is
19
+ * recorded verbatim in the run history, attributed to the boss, so a human
20
+ * reads it).
21
+ *
22
+ * Safety property, load-bearing, asserted as test rows not just documented
23
+ * here: this module constrains ONLY `outcome: 'partial'` by default.
24
+ * `achieved` and `failed` are never refused by the default (`mode: 'boss'`)
25
+ * half — a boss can always end the run honestly, so the gate cannot trap an
26
+ * org in a run it is unable to finish. `mode: 'dag'` (opt-in via
27
+ * `run_config.completion`) is an ADDITIONAL, stronger constraint on top of
28
+ * that, not a replacement: it also refuses `achieved` while runnable work
29
+ * remains, which the default half never does.
30
+ */
31
+ /** A role at/above this fraction of its budget ceiling is a genuine
32
+ * budget blocker; below it, `blocker: 'budget'` is not a true claim. */
33
+ const BUDGET_THRESHOLD = 0.8;
34
+ /** `blockerDetail` shorter than this is refused even if not an exact
35
+ * placeholder match — "x" must not pass. */
36
+ const MIN_DETAIL_LEN = 10;
37
+ /** The issue's explicit ask: reject these placeholder claims outright,
38
+ * regardless of length. */
39
+ const EMPTY_DETAIL = /^(none|n\/a|na|-)$/i;
40
+ const NO_BLOCKER = "org_complete refused: outcome 'partial' requires a blocker naming why the run cannot continue (blocker: 'budget' | 'human' | 'external' | 'time'). If there is more work to do, dispatch it with org_task instead of ending the run. If a task is only waiting on a real-world time, call org_task_block(taskId, untilIso, reason) so a future run can pick back up automatically. If the run genuinely cannot continue, use outcome: 'failed' instead.";
41
+ function checkBlocker(f) {
42
+ if (!f.blocker)
43
+ return NO_BLOCKER;
44
+ switch (f.blocker) {
45
+ case 'external': {
46
+ const detail = (f.blockerDetail ?? '').trim();
47
+ if (!detail || EMPTY_DETAIL.test(detail) || detail.length < MIN_DETAIL_LEN) {
48
+ return `org_complete refused: blocker 'external' requires a real, substantive blockerDetail (at least ${MIN_DETAIL_LEN} characters — not empty, whitespace-only, or a placeholder like "none"/"n/a") because it cannot be checked against anything else; it is recorded verbatim in the run history, attributed to you, so a human can read the actual claim.`;
49
+ }
50
+ return null;
51
+ }
52
+ case 'budget': {
53
+ if (f.maxBudgetFraction < BUDGET_THRESHOLD) {
54
+ return `org_complete refused: blocker 'budget' claimed, but the highest role spend is only ${Math.round(f.maxBudgetFraction * 100)}% of its ceiling — that is not a budget blocker. Dispatch the next batch with org_task, or use outcome: 'failed' if the run genuinely cannot continue.`;
55
+ }
56
+ return null;
57
+ }
58
+ case 'human': {
59
+ if (f.pendingHumanWaits === 0) {
60
+ return `org_complete refused: blocker 'human' claimed, but there is no unanswered ask_human question or pending decision gate right now. Dispatch the next batch with org_task, or use outcome: 'failed' if the run genuinely cannot continue.`;
61
+ }
62
+ return null;
63
+ }
64
+ case 'time': {
65
+ if (!f.hasActiveBlock) {
66
+ return `org_complete refused: blocker 'time' claimed, but no task is blocked on a future real-world time. Call org_task_block(taskId, untilIso, reason) on the task that is actually waiting, so a future run can pick back up automatically.`;
67
+ }
68
+ return null;
69
+ }
70
+ }
71
+ }
72
+ const DAG_PENDING_WORK = "org_complete refused (run_config.completion: 'dag'): runnable work remains in org_tasks and nothing is blocked on a future time. Dispatch the next batch with org_task, or call org_task_block on a task that is genuinely waiting on a real-world time.";
73
+ /** Decide whether an `org_complete` call is honest, given already-gathered
74
+ * facts. Returns a refusal message, or `null` to allow. */
75
+ export function checkCompletion(f) {
76
+ if (f.outcome === 'partial') {
77
+ const refusal = checkBlocker(f);
78
+ if (refusal)
79
+ return refusal;
80
+ }
81
+ if (f.mode === 'dag' && f.outcome !== 'failed' && f.hasPendingWork && !f.hasActiveBlock) {
82
+ return DAG_PENDING_WORK;
83
+ }
84
+ return null;
85
+ }
86
+ //# sourceMappingURL=completion-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion-gate.js","sourceRoot":"","sources":["../../../src/orgrt/completion-gate.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA6BH;yEACyE;AACzE,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B;6CAC6C;AAC7C,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B;4BAC4B;AAC5B,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAE3C,MAAM,UAAU,GACd,ybAAyb,CAAC;AAE5b,SAAS,YAAY,CAAC,CAAkB;IACtC,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IAClC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,UAAU,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;gBAC3E,OAAO,iGAAiG,cAAc,wOAAwO,CAAC;YACjW,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,CAAC,iBAAiB,GAAG,gBAAgB,EAAE,CAAC;gBAC3C,OAAO,sFAAsF,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,GAAG,GAAG,CAAC,wJAAwJ,CAAC;YAC7R,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,iBAAiB,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,wOAAwO,CAAC;YAClP,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACtB,OAAO,uOAAuO,CAAC;YACjP,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GACpB,0PAA0P,CAAC;AAE7P;4DAC4D;AAC5D,MAAM,UAAU,eAAe,CAAC,CAAkB;IAChD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;QACxF,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -3,6 +3,7 @@ import type { AgentRunner } from './agent-runner.js';
3
3
  import * as approvalOps from './approvals.js';
4
4
  import { OrgBus } from './bus.js';
5
5
  import { type OrgCheckpoint, type RoleCheckpoint } from './checkpoint.js';
6
+ import { type CompletionFacts } from './completion-gate.js';
6
7
  import * as crossOrg from './cross-org.js';
7
8
  import { type EndpointWait } from './endpoint-roles.js';
8
9
  import { type RoleFence } from './fence.js';
@@ -165,12 +166,26 @@ export interface RunningOrg {
165
166
  lines: string[];
166
167
  timer: ReturnType<typeof setTimeout>;
167
168
  }>;
169
+ /** #304: why this run is stopping, set by stopOrg before the org is removed from
170
+ * `this.orgs`. Read by the role loop so a planned stop is logged with one stable
171
+ * wording instead of whichever abort string the SDK produced. */
172
+ closedBy?: string;
168
173
  }
169
174
  /** Bug 4: number of roles for this org that are actually spawned and running
170
175
  * right now — the live count run_config.max_concurrent_agents caps. A role
171
176
  * that crashed or ended no longer counts, so a slot frees up automatically
172
177
  * the moment that happens; nothing needs to explicitly decrement a counter. */
173
178
  export declare function activeRoleCount(org: RunningOrg): number;
179
+ /** #302: the `org_complete` consent gate's emit-and-return logic, extracted
180
+ * (matching `resolvedIdleNudgeCount`'s and `runOutcomeResult`'s precedent)
181
+ * so it is unit-testable without a live daemon, a running org, or the SDK's
182
+ * own tool-calling loop — none of which a test can drive directly, since
183
+ * `queryFn` replaces the whole SDK `query()`, tool orchestration included.
184
+ * `onComplete` gathers the facts (needs `this`/`running`) and calls this;
185
+ * this does the one decision (`checkCompletion`) and its two possible
186
+ * side effects. Returns the refusal string, or `null` to allow — exactly
187
+ * what the org_complete tool handler (session.ts) relays as the result. */
188
+ export declare function resolveOrgComplete(bus: OrgBus, role: string, outcome: 'achieved' | 'partial' | 'failed', summary: string, blocker: 'budget' | 'human' | 'external' | 'time' | undefined, blockerDetail: string | undefined, runFacts: Pick<CompletionFacts, 'mode' | 'maxBudgetFraction' | 'pendingHumanWaits' | 'hasActiveBlock' | 'hasPendingWork'>): string | null;
174
189
  export interface DaemonOpts {
175
190
  queryFn?: typeof query;
176
191
  /** Explicit agent runner (takes precedence over everything). When unset,
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/orgrt/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/orgrt/daemon.ts"],"names":[],"mappings":"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"}