@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
@@ -25,3 +25,16 @@ Use Monograph before broad repository search when the platform exposes the
25
25
  Monomind MCP server. Without native skills, run
26
26
  `monomind mastermind run <skill> --print` and follow the printed procedure.
27
27
  Platform tool mappings are in [references/](references/).
28
+ # Mastermind
29
+
30
+ Load only the workflow that matches the current task:
31
+ - `mastermind` — Route a request to the relevant Mastermind workflow.
32
+ - `mastermind-plan` — Write a detailed implementation plan before changing code.
33
+ - `mastermind-review` — Review code, content, strategy, or security work.
34
+ - `mastermind-debug` — Investigate a failure or unexpected behavior before fixing it.
35
+ - `mastermind-research` — Research an open question before making a decision.
36
+ - `mastermind-execute` — Execute a written implementation plan step by step.
37
+ - `mastermind-org` — Create, run, inspect, and manage a Mastermind organization.
38
+ - `mastermind-memory` — Store, retrieve, and maintain persistent organization knowledge.
39
+
40
+ If skills cannot be loaded natively, run `monomind mastermind run <skill> --print`.
package/README.md CHANGED
@@ -96,7 +96,7 @@ Use `monomind init --target codex` (or `--codex`) to initialize only Codex. See
96
96
  | Concern | Answer |
97
97
  |---|---|
98
98
  | **License** | [Apache 2.0](LICENSE) — use it however you want |
99
- | **Data privacy** | Your code and memory store stay local. Monomind does make outbound network calls, all to third-party services — never to a monoes-controlled server: crash reporting (on by default, `monomind crash-reporting disable` to opt out) files a GitHub issue via the GitHub API on a hard crash; `security cve` queries the OSV vulnerability database; `update` checks the npm registry for new versions; the embedding model is downloaded from the HuggingFace CDN on first use. Neural pattern export/import (`hooks intelligence export`/`import`) is local-file-only. |
99
+ | **Data privacy** | Your code and memory store stay local. Monomind does make outbound network calls, all to third-party services — never to a monoes-controlled server: crash reporting asks once, the first time an interactive crash happens, whether to file a GitHub issue via the GitHub API (showing the local report path before asking, defaulting to No). Until you've answered, a non-interactive crash — CI, agents, most real runs — never asks and only saves the crash locally; once you've explicitly chosen (`monomind crash-reporting enable`/`disable`), that answer is used every time, interactive or not. `monomind doctor` shows the current state. `security cve` queries the OSV vulnerability database; `update` checks the npm registry for new versions; the embedding model is downloaded from the HuggingFace CDN on first use. Neural pattern export/import (`hooks intelligence export`/`import`) is local-file-only. |
100
100
  | **Dependencies** | Standard npm packages (tree-sitter, better-sqlite3, sql.js, zod). tree-sitter and better-sqlite3 are native (prebuilt) Node addons, not pure JS/WASM — sql.js is WASM. No post-install scripts that download code. |
101
101
  | **Permissions** | Registers as an MCP server — Claude Code controls what tools are available and prompts you before executing anything sensitive. |
102
102
  | **Source** | Fully open. Read every line at [github.com/monoes/monomind](https://github.com/monoes/monomind). |
package/bin/cli.js CHANGED
@@ -296,13 +296,20 @@ if (isMCPMode) {
296
296
  // filesystem paths. Sanitize before logging and exit non-zero.
297
297
  const safeMsg = (m) =>
298
298
  String(m == null ? '' : m).replace(/[\x00-\x1f\x7f-\x9f]/g, '?').slice(0, 1000);
299
- // Crash reporting: files a GitHub issue on monoes/monomind for uncaught
300
- // crashes (on by default, `monomind crash-reporting disable` to opt out).
299
+ // Crash reporting: asks once whether to file a GitHub issue on
300
+ // monoes/monomind for an interactive crash (`monomind crash-reporting
301
+ // disable`/`enable` to change your answer); a non-interactive crash (CI,
302
+ // agents) always saves locally only and never asks.
301
303
  // Bounded so a crash handler can't hang the process indefinitely on a
302
- // stalled network call — best-effort only, never blocks exit past 10s.
304
+ // stalled network call or an unanswered prompt — best-effort only, never
305
+ // blocks exit past 10s. Raised to 30s only when stdin is a TTY, so the
306
+ // consent prompt (itself bounded at 15s, see crash-reporter.ts) has room
307
+ // to be answered; the non-TTY path never prompts, so it keeps the
308
+ // original 10s bound untouched.
303
309
  const reportAndExit = async (title, stack) => {
304
310
  try {
305
311
  const { reportCrash } = await import('../dist/src/services/crash-reporter.js');
312
+ const { getCrashRaceTimeoutMs } = await import('../dist/src/services/crash-race-timeout.js');
306
313
  const body = [
307
314
  `Uncaught crash in \`monomind\` CLI.`,
308
315
  ``,
@@ -312,9 +319,10 @@ if (isMCPMode) {
312
319
  stack || title,
313
320
  '```',
314
321
  ].join('\n');
322
+ const crashRaceTimeoutMs = getCrashRaceTimeoutMs(Boolean(process.stdin.isTTY));
315
323
  const result = await Promise.race([
316
324
  reportCrash({ repo: 'monoes/monomind', title: `crash: ${title}`, body }),
317
- new Promise((resolve) => setTimeout(() => resolve({ status: 'error', message: 'crash report timed out after 10s' }), 10_000)),
325
+ new Promise((resolve) => setTimeout(() => resolve({ status: 'error', message: `crash report timed out after ${crashRaceTimeoutMs / 1000}s` }), crashRaceTimeoutMs)),
318
326
  ]);
319
327
  if (result && result.message) console.error(`[${new Date().toISOString()}] INFO [monomind] crash-report: ${result.message}`);
320
328
  } catch {
@@ -409,12 +417,13 @@ if (isMCPMode) {
409
417
  // does, so it force-exited every MCP server exactly 5 seconds after it
410
418
  // printed "MCP Server started", the detached `--daemon` child included
411
419
  // (issue #267). The `-d` parent is excluded: it only spawns that child and
412
- // must hand the terminal straight back.
420
+ // must hand the terminal straight back. `mcp monoes-proxy` is a stdio MCP
421
+ // server too: without it here, Claude Code saw monoes connect and then fail
422
+ // 5 seconds later.
413
423
  const isMcpServerHost =
414
424
  cliArgs[0] === 'mcp' &&
415
- cliArgs[1] === 'start' &&
416
- !cliArgs.includes('-d') &&
417
- !cliArgs.includes('--daemon');
425
+ ((cliArgs[1] === 'start' && !cliArgs.includes('-d') && !cliArgs.includes('--daemon')) ||
426
+ cliArgs[1] === 'monoes-proxy');
418
427
  cli.run().then(() => {
419
428
  if (!isDaemonChild && !isMcpServerHost) {
420
429
  // Do NOT call process.exit() here. See
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * `monomind crash-reporting` — opt-out switch for the crash reporter used by
3
- * monomind, mono-agent, monotask, and mono-clip. On by default.
3
+ * monomind, mono-agent, monotask, and mono-clip. You're asked once, on the
4
+ * first interactive crash. Until then, a non-interactive crash (CI, agents)
5
+ * never asks and only saves locally.
4
6
  */
5
7
  import type { Command } from '../types.js';
6
8
  export declare const crashReportingCommand: Command;
@@ -1 +1 @@
1
- {"version":3,"file":"crash-reporting.d.ts","sourceRoot":"","sources":["../../../src/commands/crash-reporting.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAoC1E,eAAO,MAAM,qBAAqB,EAAE,OAuBnC,CAAC;eAEa,qBAAqB"}
1
+ {"version":3,"file":"crash-reporting.d.ts","sourceRoot":"","sources":["../../../src/commands/crash-reporting.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAgD1E,eAAO,MAAM,qBAAqB,EAAE,OAqBnC,CAAC;eAEa,qBAAqB"}
@@ -1,9 +1,25 @@
1
1
  /**
2
2
  * `monomind crash-reporting` — opt-out switch for the crash reporter used by
3
- * monomind, mono-agent, monotask, and mono-clip. On by default.
3
+ * monomind, mono-agent, monotask, and mono-clip. You're asked once, on the
4
+ * first interactive crash. Until then, a non-interactive crash (CI, agents)
5
+ * never asks and only saves locally.
4
6
  */
5
7
  import { output } from '../output.js';
6
- import { isEnabled, setEnabled } from '../services/crash-reporter.js';
8
+ import { getConsentState, setEnabled } from '../services/crash-reporter.js';
9
+ /** Renders the tri-state consent as a line, so a user who was never asked
10
+ * can't be told "enabled" — a boolean can't distinguish "explicitly on"
11
+ * from "never chosen". */
12
+ function renderState() {
13
+ const state = getConsentState();
14
+ if (state === 'enabled')
15
+ return { state, line: `Crash reporting: ${output.success('enabled')}` };
16
+ if (state === 'disabled')
17
+ return { state, line: `Crash reporting: ${output.warning('disabled')}` };
18
+ return {
19
+ state,
20
+ line: `Crash reporting: ${output.dim('unanswered')} (asked once on your next interactive crash; non-interactive crashes always save locally)`,
21
+ };
22
+ }
7
23
  const enableCommand = {
8
24
  name: 'enable',
9
25
  description: 'Turn crash reporting back on',
@@ -24,16 +40,16 @@ const disableCommand = {
24
40
  };
25
41
  const statusCommand = {
26
42
  name: 'status',
27
- description: 'Show whether crash reporting is on or off',
43
+ description: 'Show whether crash reporting is on, off, or unanswered',
28
44
  action: async () => {
29
- const enabled = isEnabled();
30
- output.writeln(`Crash reporting: ${enabled ? output.success('enabled') : output.warning('disabled')}`);
31
- return { success: true, data: { enabled } };
45
+ const { state, line } = renderState();
46
+ output.writeln(line);
47
+ return { success: true, data: { state, enabled: state === 'enabled' } };
32
48
  },
33
49
  };
34
50
  export const crashReportingCommand = {
35
51
  name: 'crash-reporting',
36
- description: "Enable/disable automatic crash reporting (on by default). When a monoes tool crashes, it files a GitHub issue on the tool's own repo — redacted, deduplicated, and skipped entirely if disabled.",
52
+ description: "Enable/disable automatic crash reporting. When a monoes tool crashes interactively, it asks once whether to file a GitHub issue on the tool's own repo — redacted, deduplicated, and skipped entirely if disabled. Until answered, a non-interactive crash (CI, agents) never asks and only saves locally.",
37
53
  subcommands: [enableCommand, disableCommand, statusCommand],
38
54
  examples: [
39
55
  {
@@ -46,10 +62,10 @@ export const crashReportingCommand = {
46
62
  },
47
63
  ],
48
64
  action: async (_ctx) => {
49
- const enabled = isEnabled();
50
- output.writeln(`Crash reporting: ${enabled ? output.success('enabled') : output.warning('disabled')}`);
65
+ const { state, line } = renderState();
66
+ output.writeln(line);
51
67
  output.writeln(output.dim('Use "monomind crash-reporting enable|disable" to change this.'));
52
- return { success: true, data: { enabled } };
68
+ return { success: true, data: { state, enabled: state === 'enabled' } };
53
69
  },
54
70
  };
55
71
  export default crashReportingCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"crash-reporting.js","sourceRoot":"","sources":["../../../src/commands/crash-reporting.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGtE,MAAM,aAAa,GAAY;IAC7B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,8BAA8B;IAC3C,MAAM,EAAE,KAAK,IAA4B,EAAE;QACzC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;QAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC;AAEF,MAAM,cAAc,GAAY;IAC9B,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,8CAA8C;IAC3D,MAAM,EAAE,KAAK,IAA4B,EAAE;QACzC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,MAAM,CAAC,YAAY,CACjB,2GAA2G,CAC5G,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC;AAEF,MAAM,aAAa,GAAY;IAC7B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,2CAA2C;IACxD,MAAM,EAAE,KAAK,IAA4B,EAAE;QACzC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,OAAO,CACZ,oBAAoB,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CACvF,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;IAC9C,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAY;IAC5C,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,kMAAkM;IACpM,WAAW,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC;IAC3D,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,iCAAiC;YAC1C,WAAW,EAAE,qCAAqC;SACnD;QACD;YACE,OAAO,EAAE,kCAAkC;YAC3C,WAAW,EAAE,sCAAsC;SACpD;KACF;IACD,MAAM,EAAE,KAAK,EAAE,IAAoB,EAA0B,EAAE;QAC7D,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,OAAO,CACZ,oBAAoB,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CACvF,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC,CAAC;QAC5F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;IAC9C,CAAC;CACF,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"crash-reporting.js","sourceRoot":"","sources":["../../../src/commands/crash-reporting.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG5E;;0BAE0B;AAC1B,SAAS,WAAW;IAClB,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;IACjG,IAAI,KAAK,KAAK,UAAU;QACtB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;IAC3E,OAAO;QACL,KAAK;QACL,IAAI,EAAE,oBAAoB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,2FAA2F;KAC9I,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAY;IAC7B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,8BAA8B;IAC3C,MAAM,EAAE,KAAK,IAA4B,EAAE;QACzC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;QAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC;AAEF,MAAM,cAAc,GAAY;IAC9B,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,8CAA8C;IAC3D,MAAM,EAAE,KAAK,IAA4B,EAAE;QACzC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,MAAM,CAAC,YAAY,CACjB,2GAA2G,CAC5G,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC;AAEF,MAAM,aAAa,GAAY;IAC7B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,wDAAwD;IACrE,MAAM,EAAE,KAAK,IAA4B,EAAE;QACzC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,EAAE,CAAC;IAC1E,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAY;IAC5C,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,4SAA4S;IAC9S,WAAW,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC;IAC3D,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,iCAAiC;YAC1C,WAAW,EAAE,qCAAqC;SACnD;QACD;YACE,OAAO,EAAE,kCAAkC;YAC3C,WAAW,EAAE,sCAAsC;SACpD;KACF;IACD,MAAM,EAAE,KAAK,EAAE,IAAoB,EAA0B,EAAE;QAC7D,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC,CAAC;QAC5F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,EAAE,CAAC;IAC1E,CAAC;CACF,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -23,5 +23,14 @@ export declare function checkDiskSpace(): Promise<HealthCheck>;
23
23
  export declare function checkBuildTools(): Promise<HealthCheck>;
24
24
  export declare function checkVersionFreshness(): Promise<HealthCheck>;
25
25
  export declare function checkClaudeCode(): Promise<HealthCheck>;
26
+ /**
27
+ * i-055-cli: crash reporting had no in-product surfacing at all, and its
28
+ * opt-out command (`monomind crash-reporting disable`) is undiscoverable
29
+ * without this — `doctor` must state the current state and the exact
30
+ * command to change it. Registered in doctor.ts's alwaysOnChecks and
31
+ * componentMap (deferred until i-066 released that registry — see
32
+ * i-055-doctor-followup).
33
+ */
34
+ export declare function checkCrashReporting(): Promise<HealthCheck>;
26
35
  export declare function installClaudeCode(): Promise<boolean>;
27
36
  //# sourceMappingURL=doctor-env-checks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-env-checks.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor-env-checks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,eAAO,MAAM,oBAAoB,QAAc,CAAC;AAChD,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AACxD,eAAO,MAAM,0BAA0B,QAAa,CAAC;AACrD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AACvD,eAAO,MAAM,+BAA+B,QAAY,CAAC;AAIzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CASnF;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC,CAwB7D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAyC5D;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAYrD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAYzD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CA+B3D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CA6B5D;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,WAAW,CAAC,CAuFlE;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAa5D;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAY1D"}
1
+ {"version":3,"file":"doctor-env-checks.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor-env-checks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,eAAO,MAAM,oBAAoB,QAAc,CAAC;AAChD,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AACxD,eAAO,MAAM,0BAA0B,QAAa,CAAC;AACrD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AACvD,eAAO,MAAM,+BAA+B,QAAY,CAAC;AAIzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CASnF;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC,CAwB7D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAyC5D;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAYrD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAYzD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CA+B3D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CA6B5D;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,WAAW,CAAC,CAuFlE;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAa5D;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,CAwBhE;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAY1D"}
@@ -8,6 +8,7 @@ import { dirname, join } from 'node:path';
8
8
  import { fileURLToPath } from 'node:url';
9
9
  import { promisify } from 'node:util';
10
10
  import { output } from '../output.js';
11
+ import { getConsentState } from '../services/crash-reporter.js';
11
12
  export const MAX_DOCTOR_PKG_BYTES = 1024 * 1024; // 1 MB
12
13
  export const MAX_DOCTOR_CONFIG_BYTES = 10 * 1024 * 1024; // 10 MB
13
14
  export const MAX_DOCTOR_GITIGNORE_BYTES = 512 * 1024; // 512 KB
@@ -288,6 +289,36 @@ export async function checkClaudeCode() {
288
289
  };
289
290
  }
290
291
  }
292
+ /**
293
+ * i-055-cli: crash reporting had no in-product surfacing at all, and its
294
+ * opt-out command (`monomind crash-reporting disable`) is undiscoverable
295
+ * without this — `doctor` must state the current state and the exact
296
+ * command to change it. Registered in doctor.ts's alwaysOnChecks and
297
+ * componentMap (deferred until i-066 released that registry — see
298
+ * i-055-doctor-followup).
299
+ */
300
+ export async function checkCrashReporting() {
301
+ const state = getConsentState();
302
+ if (state === 'enabled') {
303
+ return {
304
+ name: 'Crash Reporting',
305
+ status: 'pass',
306
+ message: 'enabled — crashes are filed as public GitHub issues on monoes/monomind. Change with: monomind crash-reporting disable',
307
+ };
308
+ }
309
+ if (state === 'disabled') {
310
+ return {
311
+ name: 'Crash Reporting',
312
+ status: 'pass',
313
+ message: 'disabled — crashes are neither filed nor saved. Change with: monomind crash-reporting enable',
314
+ };
315
+ }
316
+ return {
317
+ name: 'Crash Reporting',
318
+ status: 'info',
319
+ message: "unanswered — you'll be asked on your next interactive crash; until then, a non-interactive crash (CI, agents) never asks and only saves locally. Change with: monomind crash-reporting enable or monomind crash-reporting disable",
320
+ };
321
+ }
291
322
  export async function installClaudeCode() {
292
323
  try {
293
324
  output.writeln();
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-env-checks.js","sourceRoot":"","sources":["../../../src/commands/doctor-env-checks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-env-checks.js","sourceRoot":"","sources":["../../../src/commands/doctor-env-checks.ts"],"names":[],"mappings":"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"}
@@ -8,5 +8,17 @@
8
8
  */
9
9
  import type { HealthCheck } from './doctor-env-checks.js';
10
10
  export declare function checkMonoesTools(): Promise<HealthCheck>;
11
+ /**
12
+ * i-066: verifies the monoes.me OAuth token isn't exposed to git — neither
13
+ * as a literal bearer value still sitting in `.mcp.json` (pre-fix state, or
14
+ * hand-edited back in) nor as an untracked-but-unprotected or git-tracked
15
+ * `monoes-connection.json`.
16
+ *
17
+ * Deliberately reports PRESENCE only, never the token VALUE — a doctor
18
+ * check that echoed the offending line would re-leak the secret into
19
+ * terminal scrollback and CI logs, exactly the places people paste from
20
+ * when asking for help.
21
+ */
22
+ export declare function checkMonoesTokenExposure(): Promise<HealthCheck>;
11
23
  export declare function fixMonoesTools(): Promise<boolean>;
12
24
  //# sourceMappingURL=doctor-monoes-checks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-monoes-checks.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor-monoes-checks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AA0H1D,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC,CAuB7D;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CA8BvD"}
1
+ {"version":3,"file":"doctor-monoes-checks.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor-monoes-checks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAoK1D,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC,CAuB7D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,WAAW,CAAC,CAyFrE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CA8BvD"}
@@ -7,9 +7,50 @@
7
7
  * issues discovered while installing them via /monoes:install.
8
8
  */
9
9
  import { execSync } from 'node:child_process';
10
- import { existsSync } from 'node:fs';
10
+ import { existsSync, readFileSync } from 'node:fs';
11
+ import { join } from 'node:path';
11
12
  import { output } from '../output.js';
12
13
  import { runCommand } from './doctor-env-checks.js';
14
+ // i-055 doctor follow-up, finding 4b (revised per review finding 13): fixed
15
+ // literals only, no interpolation — a caught error or token value must
16
+ // never reach either of these (see checkMonoesTokenExposure() below for
17
+ // how they're selected). Keyed on WHAT WAS FOUND, not on whether a
18
+ // connection file happens to exist: a literal bearer token sitting in a
19
+ // (possibly team-committed) .mcp.json is a real credential exposure
20
+ // regardless of whether THIS user has ever connected — "they never used
21
+ // Disconnect -> Connect" is irrelevant to whether the token itself must be
22
+ // revoked. REVOKE_LINE therefore applies to every failure; DISCONNECT_LINE
23
+ // is additive, only when an actual connection file was found flagged by
24
+ // git (there's a live app connection to disconnect from). There is
25
+ // deliberately no "your connection file is unreadable" sentence — this
26
+ // function never reads that file's content at all (only existsSync plus
27
+ // git tracked/ignored status), so it can never truthfully claim that.
28
+ const REVOKE_LINE = 'Treat this token as compromised: revoke it at https://monoes.me (Settings -> Connected apps). If it reached git history, rewriting the file does not remove it.';
29
+ const DISCONNECT_LINE = 'Run `monomind ui`, then monoes.me -> Disconnect -> Connect.';
30
+ /**
31
+ * True if `.mcp.json`'s raw text contains a literal bearer token, checked
32
+ * at the specific path this item's writers ever wrote one
33
+ * (`mcpServers.monoes.headers.Authorization`) rather than a whole-file
34
+ * regex. i-066 reviewer finding 6: a whole-file scan trips on any other MCP
35
+ * server the project has configured with an unrelated bearer header, and
36
+ * claims a hit at a JSON key it never actually looked at. Falls back to the
37
+ * raw regex only when the file fails to parse (a hand-corrupted file
38
+ * shouldn't silently hide a real leak). Presence-only either way — the
39
+ * value itself is never read into a variable that could be logged.
40
+ * Deliberately duplicated rather than imported from
41
+ * mcp/monoes-mcp-entry.mjs's identical `_hasLegacyBearerEntry` — two call
42
+ * sites is not a shared abstraction (dev-lead, i-066 plan §3.6).
43
+ */
44
+ function hasLegacyMonoesBearerEntry(raw) {
45
+ try {
46
+ const parsed = JSON.parse(raw);
47
+ const auth = parsed?.mcpServers?.monoes?.headers?.Authorization;
48
+ return typeof auth === 'string' && /^Bearer\s+\S+/.test(auth);
49
+ }
50
+ catch {
51
+ return /"Authorization"\s*:\s*"Bearer\s+[^"]+"/.test(raw);
52
+ }
53
+ }
13
54
  async function commandExists(cmd) {
14
55
  try {
15
56
  await runCommand(`command -v ${cmd}`);
@@ -139,6 +180,106 @@ export async function checkMonoesTools() {
139
180
  fix: issues.map((i) => i.fixCommand).join(' | '),
140
181
  };
141
182
  }
183
+ /**
184
+ * i-066: verifies the monoes.me OAuth token isn't exposed to git — neither
185
+ * as a literal bearer value still sitting in `.mcp.json` (pre-fix state, or
186
+ * hand-edited back in) nor as an untracked-but-unprotected or git-tracked
187
+ * `monoes-connection.json`.
188
+ *
189
+ * Deliberately reports PRESENCE only, never the token VALUE — a doctor
190
+ * check that echoed the offending line would re-leak the secret into
191
+ * terminal scrollback and CI logs, exactly the places people paste from
192
+ * when asking for help.
193
+ */
194
+ export async function checkMonoesTokenExposure() {
195
+ const cwd = process.cwd();
196
+ const issues = [];
197
+ // Tracks WHAT KIND of issue was found, independent of each other, so the
198
+ // closing remediation can be keyed on the actual exposure rather than on
199
+ // an unrelated fact (whether a connection file happens to exist — see
200
+ // review finding 13, which caught the previous version of this function
201
+ // doing exactly that).
202
+ let hasConnectionFileIssue = false;
203
+ const mcpJsonPath = join(cwd, '.mcp.json');
204
+ if (existsSync(mcpJsonPath)) {
205
+ try {
206
+ const raw = readFileSync(mcpJsonPath, 'utf8');
207
+ if (hasLegacyMonoesBearerEntry(raw)) {
208
+ issues.push('.mcp.json contains a literal bearer token');
209
+ }
210
+ }
211
+ catch {
212
+ // unreadable — nothing to check
213
+ }
214
+ }
215
+ const connectionRelPath = '.monomind/monoes-connection.json';
216
+ const connectionPath = join(cwd, connectionRelPath);
217
+ if (existsSync(connectionPath)) {
218
+ // i-066 reviewer finding 5: outside a git work tree, `git check-ignore`
219
+ // and `git ls-files` both exit non-zero for reasons that have nothing
220
+ // to do with exposure (there is no git to leak through at all) — the
221
+ // old code read that as tracked=false, ignored=false and failed a
222
+ // zero-exposure user in a non-git project. Probe for a real work tree
223
+ // first; if there isn't one, this check simply doesn't apply.
224
+ let insideWorkTree = false;
225
+ try {
226
+ await runCommand('git rev-parse --is-inside-work-tree');
227
+ insideWorkTree = true;
228
+ }
229
+ catch {
230
+ insideWorkTree = false;
231
+ }
232
+ if (insideWorkTree) {
233
+ let ignored = false;
234
+ try {
235
+ await runCommand(`git check-ignore "${connectionRelPath}"`);
236
+ ignored = true;
237
+ }
238
+ catch {
239
+ ignored = false;
240
+ }
241
+ let tracked = false;
242
+ try {
243
+ await runCommand(`git ls-files --error-unmatch "${connectionRelPath}"`);
244
+ tracked = true;
245
+ }
246
+ catch {
247
+ tracked = false;
248
+ }
249
+ if (tracked) {
250
+ issues.push(`${connectionRelPath} is tracked by git — treat the token as compromised`);
251
+ hasConnectionFileIssue = true;
252
+ }
253
+ else if (!ignored) {
254
+ issues.push(`${connectionRelPath} exists but is not covered by .gitignore`);
255
+ hasConnectionFileIssue = true;
256
+ }
257
+ }
258
+ }
259
+ if (issues.length === 0) {
260
+ return {
261
+ name: 'monoes Token Exposure',
262
+ status: 'pass',
263
+ message: 'No monoes.me token exposure detected',
264
+ };
265
+ }
266
+ // Fixed literals only, never interpolated — this message can reach a
267
+ // terminal or CI log, so it must never echo a caught error or a token
268
+ // value. REVOKE_LINE applies to every failure here: a literal bearer
269
+ // token in .mcp.json is a real credential exposure independent of
270
+ // whether THIS user ever connected (a teammate's commit, an older
271
+ // install, a pulled branch can all put it there) — a token you didn't
272
+ // create and can't rotate yourself is more urgent to escalate, not less.
273
+ // DISCONNECT_LINE is additive, only when an actual connection file was
274
+ // found and flagged by git — that's the only case where there's a live
275
+ // app connection to disconnect from at all.
276
+ const remediation = hasConnectionFileIssue ? `${REVOKE_LINE} ${DISCONNECT_LINE}` : REVOKE_LINE;
277
+ return {
278
+ name: 'monoes Token Exposure',
279
+ status: 'fail',
280
+ message: `${issues.join('; ')}. ${remediation}`,
281
+ };
282
+ }
142
283
  export async function fixMonoesTools() {
143
284
  output.writeln();
144
285
  output.writeln(output.bold('Applying monoes tools fixes...'));
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-monoes-checks.js","sourceRoot":"","sources":["../../../src/commands/doctor-monoes-checks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-monoes-checks.js","sourceRoot":"","sources":["../../../src/commands/doctor-monoes-checks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAoD1E,eAAO,MAAM,aAAa,EAAE,OA6W3B,CAAC;eAEa,aAAa"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAyD1E,eAAO,MAAM,aAAa,EAAE,OAqX3B,CAAC;eAEa,aAAa"}
@@ -7,8 +7,8 @@
7
7
  import * as path from 'node:path';
8
8
  import { output } from '../output.js';
9
9
  import { runPlatformsDoctor } from '../platform-adapters/operations.js';
10
- import { checkBuildTools, checkClaudeCode, checkDiskSpace, checkGit, checkGitRepo, checkNodeVersion, checkNpmVersion, checkVersionFreshness, installClaudeCode, } from './doctor-env-checks.js';
11
- import { checkMonoesTools, fixMonoesTools } from './doctor-monoes-checks.js';
10
+ import { checkBuildTools, checkClaudeCode, checkCrashReporting, checkDiskSpace, checkGit, checkGitRepo, checkNodeVersion, checkNpmVersion, checkVersionFreshness, installClaudeCode, } from './doctor-env-checks.js';
11
+ import { checkMonoesTokenExposure, checkMonoesTools, fixMonoesTools, } from './doctor-monoes-checks.js';
12
12
  import { checkNativeBindings } from './doctor-native-checks.js';
13
13
  import { checkAgentRegistry, checkApiKeys, checkAppleDoubleSidecars, checkConfigFile, checkDocumentExtractors, checkGitignoreCoverage, checkGuidanceGates, checkHelpersFresh, checkMcpServers, checkMemoryDatabase, checkMemoryKnowledgeGraph, checkMemoryProficiency, checkMetricsFreshness, checkMonoesIntegration, checkMonoesMemory, checkMonograph, checkMonographFreshness, checkSecondBrainModel, checkSecurityAuditFindings, fixAppleDoubleSidecars, fixGitignoreCoverage, fixStaleHelpers, } from './doctor-project-checks.js';
14
14
  function formatCheck(check) {
@@ -42,7 +42,7 @@ export const doctorCommand = {
42
42
  {
43
43
  name: 'component',
44
44
  short: 'c',
45
- description: 'Check specific component (version, node, npm, config, memory, api, git, mcp, claude, disk, typescript, monograph, graph-freshness, memory-pkg, helpers, monoes, gates, gitignore, registry, memory-proficiency, monoes-tools, metrics-freshness, security-audit, documents, platforms)',
45
+ description: 'Check specific component (version, node, npm, config, memory, api, git, mcp, claude, disk, native, typescript, monograph, graph-freshness, memory-pkg, helpers, monoes, gates, gitignore, registry, memory-proficiency, monoes-tools, monoes-token, metrics-freshness, security-audit, documents, platforms, crash-reporting)',
46
46
  type: 'string',
47
47
  },
48
48
  { name: 'verbose', short: 'v', description: 'Verbose output', type: 'boolean', default: false },
@@ -116,6 +116,11 @@ export const doctorCommand = {
116
116
  checkMemoryKnowledgeGraph,
117
117
  checkAppleDoubleSidecars,
118
118
  checkDocumentExtractors,
119
+ // i-055-cli's consent gate applies to every project regardless of
120
+ // whether it has code (a document/media-only project can still crash
121
+ // and needs to know its crash-reporting state) — alwaysOnChecks, not
122
+ // codeOnlyChecks.
123
+ checkCrashReporting,
119
124
  ];
120
125
  const codeOnlyChecks = [
121
126
  checkGitRepo,
@@ -124,6 +129,7 @@ export const doctorCommand = {
124
129
  checkBuildTools,
125
130
  checkMonographFreshness,
126
131
  checkGitignoreCoverage,
132
+ checkMonoesTokenExposure,
127
133
  checkPlatforms,
128
134
  ];
129
135
  const allChecks = isCodeProject
@@ -158,11 +164,13 @@ export const doctorCommand = {
158
164
  registry: checkAgentRegistry,
159
165
  'memory-proficiency': checkMemoryProficiency,
160
166
  'monoes-tools': checkMonoesTools,
167
+ 'monoes-token': checkMonoesTokenExposure,
161
168
  'metrics-freshness': checkMetricsFreshness,
162
169
  'security-audit': checkSecurityAuditFindings,
163
170
  documents: checkDocumentExtractors,
164
171
  'doc-extractors': checkDocumentExtractors,
165
172
  platforms: checkPlatforms,
173
+ 'crash-reporting': checkCrashReporting,
166
174
  };
167
175
  if (component && !componentMap[component]) {
168
176
  output.writeln(output.error(`Unknown component: "${component}"`));