mossbear 0.1.0-alpha.36 → 0.1.0-alpha.39

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 (113) hide show
  1. package/README.md +2 -0
  2. package/dist/commands/doctor.d.ts.map +1 -1
  3. package/dist/commands/doctor.js +52 -12
  4. package/dist/commands/doctor.js.map +1 -1
  5. package/dist/commands/guides/index.d.ts.map +1 -1
  6. package/dist/commands/guides/index.js +6 -1
  7. package/dist/commands/guides/index.js.map +1 -1
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +134 -36
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/pull.js +2 -2
  12. package/dist/commands/pull.js.map +1 -1
  13. package/dist/commands/session-start.js +1 -1
  14. package/dist/commands/status.js +1 -1
  15. package/dist/commands/status.js.map +1 -1
  16. package/dist/docs/bundle-by-name.d.ts +25 -2
  17. package/dist/docs/bundle-by-name.d.ts.map +1 -1
  18. package/dist/docs/bundle-by-name.js +20 -3
  19. package/dist/docs/bundle-by-name.js.map +1 -1
  20. package/dist/docs/committed.d.ts +24 -0
  21. package/dist/docs/committed.d.ts.map +1 -1
  22. package/dist/docs/committed.js +40 -0
  23. package/dist/docs/committed.js.map +1 -1
  24. package/dist/docs/guide-projection.d.ts +33 -0
  25. package/dist/docs/guide-projection.d.ts.map +1 -1
  26. package/dist/docs/guide-projection.js +46 -3
  27. package/dist/docs/guide-projection.js.map +1 -1
  28. package/dist/docs/repo-config.d.ts +57 -4
  29. package/dist/docs/repo-config.d.ts.map +1 -1
  30. package/dist/docs/repo-config.js +105 -12
  31. package/dist/docs/repo-config.js.map +1 -1
  32. package/dist/docs/sidecar.d.ts +11 -5
  33. package/dist/docs/sidecar.d.ts.map +1 -1
  34. package/dist/docs/sidecar.js +59 -13
  35. package/dist/docs/sidecar.js.map +1 -1
  36. package/dist/docs/sync-docs.d.ts +97 -8
  37. package/dist/docs/sync-docs.d.ts.map +1 -1
  38. package/dist/docs/sync-docs.js +79 -3
  39. package/dist/docs/sync-docs.js.map +1 -1
  40. package/dist/docs/sync-plan.d.ts +103 -0
  41. package/dist/docs/sync-plan.d.ts.map +1 -1
  42. package/dist/docs/sync-plan.js +205 -1
  43. package/dist/docs/sync-plan.js.map +1 -1
  44. package/dist/docs/workspace-declaration.d.ts +68 -0
  45. package/dist/docs/workspace-declaration.d.ts.map +1 -0
  46. package/dist/docs/workspace-declaration.js +58 -0
  47. package/dist/docs/workspace-declaration.js.map +1 -0
  48. package/dist/harness-formats/antigravity.d.ts +119 -0
  49. package/dist/harness-formats/antigravity.d.ts.map +1 -0
  50. package/dist/harness-formats/antigravity.js +209 -0
  51. package/dist/harness-formats/antigravity.js.map +1 -0
  52. package/dist/harness-manifest-schema.d.ts +64 -0
  53. package/dist/harness-manifest-schema.d.ts.map +1 -0
  54. package/dist/harness-manifest-schema.js +81 -0
  55. package/dist/harness-manifest-schema.js.map +1 -0
  56. package/dist/harness-writers.d.ts +12 -68
  57. package/dist/harness-writers.d.ts.map +1 -1
  58. package/dist/harness-writers.js +20 -83
  59. package/dist/harness-writers.js.map +1 -1
  60. package/dist/harnesses.d.ts +255 -49
  61. package/dist/harnesses.d.ts.map +1 -1
  62. package/dist/harnesses.js +315 -57
  63. package/dist/harnesses.js.map +1 -1
  64. package/dist/hook-bin.js +17 -1
  65. package/dist/hook-bin.js.map +1 -1
  66. package/dist/hook-logger.d.ts +2 -0
  67. package/dist/hook-logger.d.ts.map +1 -1
  68. package/dist/hook-logger.js +21 -6
  69. package/dist/hook-logger.js.map +1 -1
  70. package/dist/hooks-settings.d.ts +41 -9
  71. package/dist/hooks-settings.d.ts.map +1 -1
  72. package/dist/hooks-settings.js +54 -11
  73. package/dist/hooks-settings.js.map +1 -1
  74. package/dist/init/wire-harnesses.d.ts +51 -35
  75. package/dist/init/wire-harnesses.d.ts.map +1 -1
  76. package/dist/init/wire-harnesses.js +144 -113
  77. package/dist/init/wire-harnesses.js.map +1 -1
  78. package/dist/mcp/client.d.ts +11 -1
  79. package/dist/mcp/client.d.ts.map +1 -1
  80. package/dist/mcp/client.js +5 -1
  81. package/dist/mcp/client.js.map +1 -1
  82. package/dist/mcp/server.d.ts.map +1 -1
  83. package/dist/mcp/server.js +180 -71
  84. package/dist/mcp/server.js.map +1 -1
  85. package/dist/project-hooks.d.ts +35 -13
  86. package/dist/project-hooks.d.ts.map +1 -1
  87. package/dist/project-hooks.js +114 -49
  88. package/dist/project-hooks.js.map +1 -1
  89. package/dist/rules/bundled-skills.d.ts +18 -0
  90. package/dist/rules/bundled-skills.d.ts.map +1 -1
  91. package/dist/rules/bundled-skills.js +31 -0
  92. package/dist/rules/bundled-skills.js.map +1 -1
  93. package/dist/rules/discover.d.ts.map +1 -1
  94. package/dist/rules/discover.js +11 -1
  95. package/dist/rules/discover.js.map +1 -1
  96. package/dist/rules/import-client.d.ts +17 -0
  97. package/dist/rules/import-client.d.ts.map +1 -1
  98. package/dist/rules/import-client.js +3 -2
  99. package/dist/rules/import-client.js.map +1 -1
  100. package/dist/rules/init-import.d.ts +17 -0
  101. package/dist/rules/init-import.d.ts.map +1 -1
  102. package/dist/rules/init-import.js +40 -5
  103. package/dist/rules/init-import.js.map +1 -1
  104. package/dist/rules/manifest.d.ts.map +1 -1
  105. package/dist/rules/manifest.js +117 -2
  106. package/dist/rules/manifest.js.map +1 -1
  107. package/dist/update/version.d.ts +1 -1
  108. package/dist/update/version.js +1 -1
  109. package/package.json +4 -4
  110. package/dist/commands/guides/project.d.ts +0 -15
  111. package/dist/commands/guides/project.d.ts.map +0 -1
  112. package/dist/commands/guides/project.js +0 -74
  113. package/dist/commands/guides/project.js.map +0 -1
package/README.md CHANGED
@@ -10,6 +10,8 @@ The CLI is the on-device half of the product: it hooks into your agent's lifecyc
10
10
  npm install -g mossbear
11
11
  ```
12
12
 
13
+ There is no stable release yet: this installs an alpha, and breaking changes can land on it without a deprecation window.
14
+
13
15
  A global install is required (not just `npx`). The hooks `mossbear init` registers run from your agent's session by name — `mossbear-hook` on every tool call, `mossbear sync` at the end of each turn and of the session — so both binaries must be on `PATH`. Node 20+ required.
14
16
 
15
17
  ## Staying up to date
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AA8DA,eAAO,MAAM,aAAa;;;;;;;;;;;;EA+XxB,CAAA"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AA6DA,eAAO,MAAM,aAAa;;;;;;;;;;;;EAyaxB,CAAA"}
@@ -4,8 +4,7 @@ import { describeDashboardHealth } from '../dashboard-health.js';
4
4
  import { describeGuideDelivery } from '../docs/delivery-check.js';
5
5
  import { classifyUnresolvedSubscription, repoBundleIds, unresolvedSubscriptionMessage, } from '../docs/delivery.js';
6
6
  import { collidesWithHomeConfig, readRepoDocsConfig } from '../docs/repo-config.js';
7
- import { CODEX_TRUST_NOTE } from '../harness-writers.js';
8
- import { harnessDefinition } from '../harnesses.js';
7
+ import { CODEX_TRUST_NOTE, harnessDefinition, loggerCommand } from '../harnesses.js';
9
8
  import { MOSSBEAR_HOOK_COMMAND, MOSSBEAR_SYNC_COMMAND, sessionStartHookAlreadyPulls, sessionStartHookUpdatesCli, sessionStartHookBootstraps, stopHookUploadsActions, } from '../hooks-settings.js';
10
9
  import { createContextClient } from '../mcp/client.js';
11
10
  import { resolveOnPath } from '../path-resolve.js';
@@ -60,19 +59,56 @@ export const doctorCommand = defineCommand({
60
59
  const wiredHarnesses = harnessWiring.filter((harness) => harness.logsActions);
61
60
  const codexWired = wiredHarnesses.some((harness) => harness.id === 'codex');
62
61
  // Names the event per harness rather than just the file, because the event
63
- // is the thing that differs between them — `PostToolUse`, `AfterTool` and
64
- // `post_tool_use` are the same hook under three names — and it is what a
65
- // user checks their own config against. The sibling checks below are
62
+ // is the thing that differs between them — Claude Code's `PostToolUse` and
63
+ // Codex's `post_tool_use` are the same hook under two names — and it is
64
+ // what a user checks their own config against. The sibling checks below are
66
65
  // Claude Code's alone and keep their own wording.
67
66
  const wiredHarnessDetail = wiredHarnesses
68
67
  .map((harness) => {
69
- const definition = harnessDefinition(harness.id);
70
- return `${definition.label} — ${definition.projectConfig} ${definition.loggerEvent} hook (${MOSSBEAR_HOOK_COMMAND})`;
68
+ const manifest = harnessDefinition(harness.id);
69
+ const outbound = manifest.outbound;
70
+ const detail = outbound
71
+ ? `${outbound.projectConfig} ${outbound.events.logger} hook (${loggerCommand(manifest)})`
72
+ : `${MOSSBEAR_HOOK_COMMAND} hook`;
73
+ // An entry that logs but names no field map is reported as the problem
74
+ // it is, not folded into the wired list: `mossbear-hook` would read
75
+ // this harness's payload with Claude Code's field names, resolve
76
+ // nothing, and log every session under `'unknown'` — one merged run
77
+ // per machine, graded as if it meant something.
78
+ const suffix = harness.fieldMapOk
79
+ ? ''
80
+ : ` — missing \`--harness ${manifest.id}\`, so its payload reads as empty; re-run \`mossbear init\``;
81
+ return `${manifest.label} — ${detail}${suffix}`;
71
82
  })
72
83
  .join('; ');
73
84
  const hooksConfigured = wiredHarnesses.length > 0;
85
+ // Claude Code's alone, and gated on Claude Code being wired rather than on
86
+ // *any* harness. `PostToolUseFailure` is a Claude Code event — no other
87
+ // harness has one — so in an Antigravity- or Codex-only repo this check was
88
+ // reporting a hook that cannot exist as missing, failing `doctor` with a
89
+ // remedy ("run `mossbear init` to add it") that could only be satisfied by
90
+ // wiring a different harness than the one the repo uses.
91
+ const claudeCodeWired = wiredHarnesses.some((harness) => harness.id === 'claude_code');
74
92
  const failureHookConfigured = detectLoggerHook(projectHooks, 'PostToolUseFailure') !== null;
75
- const uploadConfigured = detectUploadHook(projectHooks);
93
+ // The upload question is every harness's, so it is answered from every
94
+ // wired harness's own config rather than from `.claude/settings.json`.
95
+ // Reading only Claude Code's file told an Antigravity repo its actions were
96
+ // never uploaded while its `.agents/hooks.json` Stop hook was uploading
97
+ // them — a false red on the exact state `mossbear init --platform
98
+ // antigravity` produces.
99
+ const uploadConfigured = detectUploadHook(projectHooks) ||
100
+ wiredHarnesses.some((harness) => harness.uploadsRun);
101
+ // Named per harness so the reader can open the file the check just read.
102
+ // Claude Code is listed through `detectUploadHook` rather than its wiring
103
+ // row because that reader knows about `--no-actions`/`--dry-run` Stop
104
+ // hooks, which mention `mossbear sync` and upload nothing.
105
+ const uploadingConfigs = [
106
+ ...(detectUploadHook(projectHooks) ? ['.claude/settings.json'] : []),
107
+ ...wiredHarnesses
108
+ .filter((harness) => harness.uploadsRun && harness.id !== 'claude_code')
109
+ .map((harness) => harnessDefinition(harness.id).outbound?.projectConfig)
110
+ .filter((path) => path !== undefined),
111
+ ];
76
112
  // Reported rather than checked — see `describeSessionStart`. This hook is
77
113
  // the one `mossbear init` lets a user decline, and its absence is
78
114
  // indistinguishable from having declined it.
@@ -206,7 +242,7 @@ export const doctorCommand = defineCommand({
206
242
  // inert case reported as healthy.
207
243
  //
208
244
  // Passes on *any* wired harness, not on Claude Code specifically: a
209
- // Gemini-only repo is correctly set up, and failing it here would be
245
+ // Codex-only repo is correctly set up, and failing it here would be
210
246
  // the check telling a working repo it is broken. Which harnesses those
211
247
  // are is the detail line's job.
212
248
  ok: hooksConfigured && runnerOk,
@@ -219,7 +255,7 @@ export const doctorCommand = defineCommand({
219
255
  // Only meaningful once the logger is wired: with no PostToolUse hook
220
256
  // there is nothing to upload, and the check above already says so. Two
221
257
  // failures for one cause would just make the output harder to act on.
222
- ...(hooksConfigured
258
+ ...(claudeCodeWired
223
259
  ? [
224
260
  {
225
261
  // PostToolUse fires only after a tool call succeeds; a failing
@@ -237,6 +273,10 @@ export const doctorCommand = defineCommand({
237
273
  ? `.claude/settings.json has PostToolUseFailure hook (${MOSSBEAR_HOOK_COMMAND})`
238
274
  : `${MOSSBEAR_HOOK_COMMAND} not on PATH — reinstall globally (npm install -g mossbear)`,
239
275
  },
276
+ ]
277
+ : []),
278
+ ...(hooksConfigured
279
+ ? [
240
280
  {
241
281
  label: 'Session uploads to the dashboard',
242
282
  // Configured is not the same as able to run. The runner check
@@ -246,10 +286,10 @@ export const doctorCommand = defineCommand({
246
286
  // case `missingHookPathWarning` already covers for init.
247
287
  ok: uploadConfigured && mossbearBinPath !== null,
248
288
  detail: !uploadConfigured
249
- ? `actions are being logged to ~/.mossbear/runs/ and never uploaded — run \`mossbear init\` to add the \`${MOSSBEAR_SYNC_COMMAND}\` Stop hook. If you upload some other way, this check will keep reporting.`
289
+ ? `actions are being logged to ~/.mossbear/runs/ and never uploaded — run \`mossbear init\` to add the \`${MOSSBEAR_SYNC_COMMAND}\` Stop hook to ${wiredHarnesses.map((harness) => harnessDefinition(harness.id).label).join(', ')}. If you upload some other way, this check will keep reporting.`
250
290
  : mossbearBinPath === null
251
291
  ? '`mossbear` is not on PATH, so the configured Stop hook fails with command-not-found and nothing uploads — reinstall globally (npm install -g mossbear)'
252
- : `.claude/settings.json has Stop hook (${MOSSBEAR_SYNC_COMMAND})`,
292
+ : `${uploadingConfigs.join(', ')} has a Stop hook (${MOSSBEAR_SYNC_COMMAND})`,
253
293
  },
254
294
  ]
255
295
  : []),
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/guides/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,qDAwBxB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/guides/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,qDA6BxB,CAAA"}
@@ -15,7 +15,12 @@ export const guidesCommand = defineCommand({
15
15
  // now, so a repo receives guides by subscribing to the bundles they are in
16
16
  // and the docs phase materializes them (`unified-item-sync-plan.md` → Slice
17
17
  // 5, goal criterion 5). `mossbear pull <bundle>` is the deliberate one-shot.
18
- project: () => import('./project.js').then((m) => m.guidesProjectCommand),
18
+ //
19
+ // No `project`. It rendered AGENTS.md and `.agents/` from hand-written
20
+ // agent-config JSON under `.mossbear/`, a third writer of AGENTS.md
21
+ // alongside `mossbear init` and the docs phase, and nothing in the product
22
+ // has produced that JSON since guides became the unit of guidance
23
+ // (`guidance-delivery-and-alias-review.md` → Decision 6).
19
24
  active: () => import('./active.js').then((m) => m.guidesActiveCommand),
20
25
  search: () => import('./search.js').then((m) => m.guidesSearchCommand),
21
26
  // The one verb here that reaches the network. `active` and `search` read the
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/guides/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;IACzC,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oCAAoC;KAClD;IACD,WAAW,EAAE;QACX,6EAA6E;QAC7E,uEAAuE;QACvE,yEAAyE;QACzE,uDAAuD;QACvD,EAAE;QACF,2EAA2E;QAC3E,6EAA6E;QAC7E,2EAA2E;QAC3E,4EAA4E;QAC5E,6EAA6E;QAC7E,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;QACzE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACtE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACtE,6EAA6E;QAC7E,4EAA4E;QAC5E,sDAAsD;QACtD,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;KAC1E;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/guides/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;IACzC,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oCAAoC;KAClD;IACD,WAAW,EAAE;QACX,6EAA6E;QAC7E,uEAAuE;QACvE,yEAAyE;QACzE,uDAAuD;QACvD,EAAE;QACF,2EAA2E;QAC3E,6EAA6E;QAC7E,2EAA2E;QAC3E,4EAA4E;QAC5E,6EAA6E;QAC7E,EAAE;QACF,uEAAuE;QACvE,oEAAoE;QACpE,2EAA2E;QAC3E,kEAAkE;QAClE,0DAA0D;QAC1D,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACtE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACtE,6EAA6E;QAC7E,4EAA4E;QAC5E,sDAAsD;QACtD,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;KAC1E;CACF,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAkOA,eAAO,MAAM,kBAAkB,+JAM9B,CAAA;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAw6CtB,CAAA"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAkPA,eAAO,MAAM,kBAAkB,+JAM9B,CAAA;AA+ED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA28CtB,CAAA"}
@@ -7,13 +7,14 @@ import { defineCommand } from 'citty';
7
7
  import { MOSSBEAR_CONFIG_MODE, DEFAULT_DASHBOARD_URL, MOSSBEAR_DASHBOARD_URL_ENV, ensureMossbearDir, normalizeDashboardUrl, readConfigDashboardUrl, readEnvDashboardUrl, readConfigDiscoverGlobal, removeConfigEvalSection, resolveDashboardUrl, resolveToken, writeConfigDashboardUrl, writeConfigDiscoverGlobal, writeConfigToken, readGlobalDeliveryConsent, writeGlobalDeliveryConsent, } from '../config.js';
8
8
  import { deliveryBundles, legacySubscribedSlugs, legacySubscriptionMessage, repoBundleIds, } from '../docs/delivery.js';
9
9
  import { globalSkillsRoot, namespaceDir } from '../docs/global-namespace.js';
10
- import { readRepoDocsConfig, readRepoProjectId } from '../docs/repo-config.js';
10
+ import { readRepoDocsConfig, readRepoProjectId, readRepoWorkspaceId, writeRepoWorkspaceId, } from '../docs/repo-config.js';
11
11
  import { resolveInitSubscriptionSelection, subscribeBundleSelections, } from '../docs/subscribe.js';
12
12
  import { formatDocsSyncLine, syncSubscribedDocs } from '../docs/sync-docs.js';
13
+ import { resolveWorkspaceDeclarationSelection, shareableWorkspaces, } from '../docs/workspace-declaration.js';
13
14
  import { errText } from '../err-text.js';
14
- import { detectHarnesses, harnessDefinition, parsePlatformFlag, resolveHarnessSelection, } from '../harnesses.js';
15
+ import { detectHarnesses, harnessDefinition, harnessOffers, loggerCommand, parseHarnessSelection, parsePlatformFlag, resolveHarnessSelection, } from '../harnesses.js';
15
16
  import { MOSSBEAR_HOOK_COMMAND, MOSSBEAR_SESSION_END_COMMAND, MOSSBEAR_SESSION_START_COMMAND, MOSSBEAR_SYNC_COMMAND, hookGroupsHaveCommand, mergeMossbearHookEntry, mergeMossbearLoggerHook, missingHookPathWarning, pruneStaleHooks, sessionStartHookAlreadyPulls, staleHookWarning, legacyFreshnessHookNote, supersededSessionStartWarning, SUPERSEDED_SESSION_START_COMMANDS, stopHookUploadsActions, } from '../hooks-settings.js';
16
- import { CODEX_TRUST_NOTE, wireCodex, wireGeminiCli } from '../init/wire-harnesses.js';
17
+ import { wireHarness } from '../init/wire-harnesses.js';
17
18
  import { createContextClient } from '../mcp/client.js';
18
19
  import { MOSSBEAR_CONFIG, MOSSBEAR_GLOBAL_DIR, MOSSBEAR_HOME, MOSSBEAR_RUNS_DIR, } from '../mossbear-paths.js';
19
20
  import { resolveOnPath } from '../path-resolve.js';
@@ -168,6 +169,72 @@ export const AGENTS_MD_TEMPLATE = `# AGENTS.md
168
169
  <!-- Add rules below. Adopt them with \`${ADOPT_VERB}\` and the dashboard
169
170
  grades each session's actions against them. -->
170
171
  `;
172
+ /**
173
+ * Ask which workspace this repo's guidance belongs to, and commit the answer.
174
+ *
175
+ * **Attended only, and asked only when it is a real question.** An account with
176
+ * no shared workspace has nothing to pick, and a repo that already declares one
177
+ * is not re-asked — re-prompting would invite someone to change a committed
178
+ * value they did not come here to change, and a bare Enter would then read as
179
+ * "leave it", which is not what the empty answer means anywhere else.
180
+ *
181
+ * Nothing here is fatal. The declaration narrows import resolution; without it
182
+ * imports resolve exactly as they did before this existed, so a failed listing
183
+ * or a failed write costs the repo convergence, not correctness.
184
+ */
185
+ async function offerWorkspaceDeclaration(client, cwd) {
186
+ let declared;
187
+ try {
188
+ declared = (await readRepoWorkspaceId(cwd)).workspaceId;
189
+ }
190
+ catch {
191
+ // Unreadable committed config — the bundle pick below reports that state on
192
+ // its own terms; there is nothing this step can add.
193
+ return;
194
+ }
195
+ if (declared !== null)
196
+ return;
197
+ let offered;
198
+ try {
199
+ offered = shareableWorkspaces((await client.listWorkspaces()).workspaces);
200
+ }
201
+ catch (err) {
202
+ console.warn(` warning: could not list your workspaces — ${errText(err)}. This repo's guidance stays in your personal workspace.`);
203
+ return;
204
+ }
205
+ if (offered.length === 0)
206
+ return;
207
+ console.log('\nWhich workspace does this repo\u2019s guidance belong to?');
208
+ console.log('Everyone in it shares one guide per file, instead of each keeping their own copy.');
209
+ offered.forEach((workspace, index) => {
210
+ console.log(` ${index + 1}. ${workspace.name} [${workspace.slug}]`);
211
+ });
212
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
213
+ let answer = '';
214
+ try {
215
+ answer = await rl.question('Number or slug [enter = keep it personal]: ');
216
+ }
217
+ finally {
218
+ rl.close();
219
+ }
220
+ const selection = resolveWorkspaceDeclarationSelection(answer, offered);
221
+ if (selection.kind === 'unrecognized') {
222
+ console.log(` No workspace here is called \u201c${selection.input}\u201d, so nothing was declared. Run \`mossbear init\` again to pick one.`);
223
+ return;
224
+ }
225
+ if (selection.kind === 'none')
226
+ return;
227
+ try {
228
+ const { removedToken } = await writeRepoWorkspaceId(cwd, selection.workspace.id);
229
+ console.log(` This repo\u2019s guidance belongs to ${selection.workspace.name} — commit .mossbear/config.json so teammates import into the same workspace`);
230
+ if (removedToken) {
231
+ console.warn(' warning: removed an API token from .mossbear/config.json — rotate it if that file was ever committed.');
232
+ }
233
+ }
234
+ catch (err) {
235
+ console.warn(` warning: could not record the workspace — ${errText(err)}`);
236
+ }
237
+ }
171
238
  export const initCommand = defineCommand({
172
239
  meta: {
173
240
  name: 'init',
@@ -211,7 +278,7 @@ export const initCommand = defineCommand({
211
278
  },
212
279
  platform: {
213
280
  type: 'string',
214
- description: 'Comma-separated harnesses to wire, overriding detection: claude_code, gemini_cli, codex. Required when there is no TTY and the repo has no harness config to detect',
281
+ description: 'Comma-separated harnesses to wire, overriding detection: claude_code, codex. Required when there is no TTY and the repo has no harness config to detect',
215
282
  valueHint: 'list',
216
283
  default: '',
217
284
  },
@@ -287,7 +354,7 @@ export const initCommand = defineCommand({
287
354
  // No eval-provider block: grading runs on the server against what `mossbear
288
355
  // sync` uploads, so nothing here needs an LLM key.
289
356
  // No `platform` field. It was written unconditionally as the string
290
- // `'claude_code'`, so the moment `init` wires a Gemini-only repo it would
357
+ // `'claude_code'`, so the moment `init` wires a Codex-only repo it would
291
358
  // name a harness that repo does not use — and a second copy of a fact the
292
359
  // hook files already hold is the dual-write CLAUDE.md's Simplicity section
293
360
  // names. `mossbear status` and `doctor` read the config files instead
@@ -501,17 +568,46 @@ export const initCommand = defineCommand({
501
568
  const resolution = resolveHarnessSelection({ detected, requested, interactive });
502
569
  let wiring = resolution.ids;
503
570
  if (resolution.confirm) {
504
- // Asked once for the whole set rather than once per harness: the question
505
- // is "is this the right list", and three prompts would be three chances
506
- // to answer a question the user did not come here to think about.
507
- const labels = wiring.map((id) => harnessDefinition(id).label).join(', ');
508
- const answer = await askLine(`\nWire Mossbear into ${labels}? [Y/n]: `);
509
- const trimmed = answer.trim().toLowerCase();
510
- // Default yes, unlike `confirmYesNo`: the user ran `init` to be set up,
511
- // and this offer names what detection already found in their repo.
512
- if (trimmed === 'n' || trimmed === 'no') {
571
+ // One numbered list, answered with one line, rather than a yes/no over
572
+ // the whole set. The yes/no could not express "wire Codex but not that
573
+ // other thing", and had nothing to say about a harness detection found
574
+ // and `init` cannot write. A numbered list also keeps the interaction
575
+ // inside `askLine` — `prompt.ts` has no multi-select primitive, and a
576
+ // raw-mode one would be untestable — and reads the same under `NO_COLOR`
577
+ // and in a pipe, where position carries the structure.
578
+ const offers = harnessOffers(resolution);
579
+ const width = Math.max(...offers.map((offer) => offer.label.length));
580
+ let printedMachineHeading = false;
581
+ console.log('\nDetected in this repo:');
582
+ offers.forEach((offer, index) => {
583
+ if (!offer.inRepo && !printedMachineHeading) {
584
+ console.log('Also installed on this machine:');
585
+ printedMachineHeading = true;
586
+ }
587
+ // A wireable row names the file it will write; a prompt-only row says
588
+ // there is nothing to write, because naming a path there would promise
589
+ // a file this run cannot produce.
590
+ const detail = offer.path
591
+ ? `→ ${offer.path}`
592
+ : ' prompt-only — nothing to write yet';
593
+ console.log(` ${index + 1}. ${offer.label.padEnd(width)} ${detail}`);
594
+ });
595
+ const preselected = offers
596
+ .map((offer, index) => (offer.preselected ? String(index + 1) : null))
597
+ .filter((label) => label !== null);
598
+ const answer = await askLine(`\nWire which? [${preselected.join(',')}] (Enter to accept, \`none\` to skip): `);
599
+ const selection = parseHarnessSelection(answer, offers);
600
+ if (!selection.ok) {
601
+ // Refused rather than reinterpreted: a user who typed `5` and silently
602
+ // got the default wired would have no way to tell that from having
603
+ // typed it correctly.
604
+ console.error(` ${selection.message}`);
605
+ process.exitCode = 1;
606
+ return;
607
+ }
608
+ wiring = selection.ids;
609
+ if (wiring.length === 0) {
513
610
  console.log(' skipped hook setup — `mossbear init --platform <harness>` to wire one');
514
- wiring = [];
515
611
  }
516
612
  }
517
613
  const wireClaudeCode = wiring.includes('claude_code');
@@ -525,8 +621,8 @@ export const initCommand = defineCommand({
525
621
  * **Two lists rather than one boolean**, because "no hooks were installed"
526
622
  * and "Claude Code's hooks were not installed" are different sentences and
527
623
  * the second one is often the true one: the harness loop below is not gated
528
- * on Claude Code succeeding, so a repo using Gemini as well still gets its
529
- * Gemini hooks when `.claude/settings.json` is corrupt. Claiming *nothing*
624
+ * on Claude Code succeeding, so a repo using Codex as well still gets its
625
+ * Codex hooks when `.claude/settings.json` is corrupt. Claiming *nothing*
530
626
  * will be recorded there is false, and it is false in the command's final
531
627
  * verdict, which is the worst place to be wrong.
532
628
  *
@@ -545,7 +641,7 @@ export const initCommand = defineCommand({
545
641
  // Bare command, resolved through PATH from the `mossbear-hook` bin. Nothing
546
642
  // machine-specific, so this file is identical everywhere and safe to
547
643
  // commit.
548
- command: MOSSBEAR_HOOK_COMMAND,
644
+ command: loggerCommand(harnessDefinition('claude_code')),
549
645
  timeout: 5,
550
646
  };
551
647
  try {
@@ -911,20 +1007,12 @@ export const initCommand = defineCommand({
911
1007
  if (id === 'claude_code')
912
1008
  continue;
913
1009
  try {
914
- // The same opt-out flags that gate Claude Code's optional entries.
915
- // `--no-session-start-hook` in particular is consent, not preference —
916
- // the entry it declines installs the current release before the first
917
- // turn in rebuilt environments — and Gemini's SessionStart entry runs
918
- // the identical command, so a flag that stopped applying when the
919
- // harness changed would be consent silently withdrawn.
920
- const optIns = {
921
- sessionStart: args['session-start-hook'] !== false,
922
- sessionEnd: args['session-end-hook'] !== false,
923
- sync: args['sync-hook'] !== false,
924
- };
925
- const written = id === 'gemini_cli'
926
- ? await wireGeminiCli(cwd, optIns)
927
- : await wireCodex(cwd, optIns);
1010
+ // The same opt-out flag that gates Claude Code's Stop entry. Codex
1011
+ // has no session-scoped event, so `--no-session-start-hook` and
1012
+ // `--no-session-end-hook` have nothing to decline here and are not
1013
+ // passed on — see `HookOptIns` in `init/wire-harnesses.ts`.
1014
+ const optIns = { sync: args['sync-hook'] !== false };
1015
+ const written = await wireHarness(cwd, harnessDefinition(id), optIns);
928
1016
  if (written.unreadable) {
929
1017
  console.warn(` ${written.unreadable}`);
930
1018
  hookWiringFailedFor.push(harnessDefinition(id).label);
@@ -935,9 +1023,12 @@ export const initCommand = defineCommand({
935
1023
  console.log(note(`${written.installed.length} hook${written.installed.length === 1 ? '' : 's'}: ${written.installed.join(', ')}`));
936
1024
  // Printed on the run that writes the file, for the same reason the
937
1025
  // SessionStart consent notice is: it names a step the user still owes,
938
- // and `doctor` reporting it later is a worse place to learn it.
939
- if (id === 'codex')
940
- console.log(note(CODEX_TRUST_NOTE));
1026
+ // and `doctor` reporting it later is a worse place to learn it. Read
1027
+ // off the manifest rather than branched on the id, so a harness with
1028
+ // its own outstanding step says so without an edit here.
1029
+ const writeNote = harnessDefinition(id).outbound?.writeNote;
1030
+ if (writeNote)
1031
+ console.log(note(writeNote));
941
1032
  }
942
1033
  if (written.present.length > 0) {
943
1034
  console.log(` kept ${written.present.join(', ')} in ${written.path}`);
@@ -948,7 +1039,7 @@ export const initCommand = defineCommand({
948
1039
  }
949
1040
  }
950
1041
  catch {
951
- console.warn(` warning: could not update ${harnessDefinition(id).projectConfig}`);
1042
+ console.warn(` warning: could not update ${harnessDefinition(id).outbound?.projectConfig ?? id}`);
952
1043
  // Same reasoning as the Claude Code catch above: a harness this run set
953
1044
  // out to wire and could not is a failed setup, whichever harness it is.
954
1045
  hookWiringFailedFor.push(harnessDefinition(id).label);
@@ -1015,6 +1106,13 @@ export const initCommand = defineCommand({
1015
1106
  const dashboardUrl = await resolveDashboardUrl(args['dashboard-url']);
1016
1107
  try {
1017
1108
  const client = createContextClient({ dashboardUrl, token });
1109
+ // Asked before the bundle pick, and only when it is a real question —
1110
+ // see `offerWorkspaceDeclaration`. It writes a different key of the same
1111
+ // committed file, so the two are adjacent rather than combined: one says
1112
+ // which bundles this repo receives, the other whose guidance it is.
1113
+ if (interactive && !forcedPull) {
1114
+ await offerWorkspaceDeclaration(client, cwd);
1115
+ }
1018
1116
  const offered = (await client.listBundles()).bundles.map((bundle) => ({
1019
1117
  id: bundle.id,
1020
1118
  slug: bundle.slug,