orbitmap 0.4.6 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +73 -10
  3. package/dist/adapters/cloud.d.ts +85 -10
  4. package/dist/adapters/cloud.js +118 -17
  5. package/dist/adapters/cloud.js.map +1 -1
  6. package/dist/adapters/factory.js +7 -0
  7. package/dist/adapters/factory.js.map +1 -1
  8. package/dist/adapters/local/adapter.d.ts +47 -8
  9. package/dist/adapters/local/adapter.js +37 -17
  10. package/dist/adapters/local/adapter.js.map +1 -1
  11. package/dist/adapters/local/context.d.ts +13 -1
  12. package/dist/adapters/local/context.js +7 -2
  13. package/dist/adapters/local/context.js.map +1 -1
  14. package/dist/adapters/local/entities/documents.d.ts +18 -4
  15. package/dist/adapters/local/entities/documents.js +46 -7
  16. package/dist/adapters/local/entities/documents.js.map +1 -1
  17. package/dist/adapters/local/entities/planning.d.ts +36 -7
  18. package/dist/adapters/local/entities/planning.js +245 -39
  19. package/dist/adapters/local/entities/planning.js.map +1 -1
  20. package/dist/adapters/local/entities/tasks.d.ts +16 -7
  21. package/dist/adapters/local/entities/tasks.js +55 -42
  22. package/dist/adapters/local/entities/tasks.js.map +1 -1
  23. package/dist/adapters/local/entities/work-items.d.ts +28 -7
  24. package/dist/adapters/local/entities/work-items.js +111 -39
  25. package/dist/adapters/local/entities/work-items.js.map +1 -1
  26. package/dist/adapters/local/lists.d.ts +139 -0
  27. package/dist/adapters/local/lists.js +230 -0
  28. package/dist/adapters/local/lists.js.map +1 -0
  29. package/dist/adapters/local/rules.d.ts +1 -1
  30. package/dist/adapters/local/rules.js +23 -0
  31. package/dist/adapters/local/rules.js.map +1 -1
  32. package/dist/adapters/local/shapes.d.ts +165 -22
  33. package/dist/adapters/local/shapes.js +338 -50
  34. package/dist/adapters/local/shapes.js.map +1 -1
  35. package/dist/adapters/local/types.d.ts +6 -1
  36. package/dist/adapters/local/types.js.map +1 -1
  37. package/dist/adapters/types.d.ts +72 -9
  38. package/dist/agent-instructions.d.ts +41 -11
  39. package/dist/agent-instructions.js +329 -128
  40. package/dist/agent-instructions.js.map +1 -1
  41. package/dist/commands/context.d.ts +62 -37
  42. package/dist/commands/context.js +105 -36
  43. package/dist/commands/context.js.map +1 -1
  44. package/dist/commands/docs.d.ts +4 -0
  45. package/dist/commands/docs.js +12 -5
  46. package/dist/commands/docs.js.map +1 -1
  47. package/dist/commands/emit-instructions.d.ts +26 -0
  48. package/dist/commands/emit-instructions.js +68 -0
  49. package/dist/commands/emit-instructions.js.map +1 -0
  50. package/dist/commands/ideas.d.ts +3 -0
  51. package/dist/commands/ideas.js +14 -7
  52. package/dist/commands/ideas.js.map +1 -1
  53. package/dist/commands/intent.d.ts +26 -0
  54. package/dist/commands/intent.js +117 -8
  55. package/dist/commands/intent.js.map +1 -1
  56. package/dist/commands/issues.d.ts +4 -0
  57. package/dist/commands/issues.js +15 -7
  58. package/dist/commands/issues.js.map +1 -1
  59. package/dist/commands/mission.d.ts +2 -0
  60. package/dist/commands/mission.js +9 -5
  61. package/dist/commands/mission.js.map +1 -1
  62. package/dist/commands/projects.d.ts +3 -0
  63. package/dist/commands/projects.js +28 -0
  64. package/dist/commands/projects.js.map +1 -0
  65. package/dist/commands/setup-agent.d.ts +101 -13
  66. package/dist/commands/setup-agent.js +377 -31
  67. package/dist/commands/setup-agent.js.map +1 -1
  68. package/dist/commands/start.d.ts +13 -0
  69. package/dist/commands/start.js +126 -13
  70. package/dist/commands/start.js.map +1 -1
  71. package/dist/commands/tasks.d.ts +23 -5
  72. package/dist/commands/tasks.js +46 -23
  73. package/dist/commands/tasks.js.map +1 -1
  74. package/dist/commands/vibes.d.ts +3 -0
  75. package/dist/commands/vibes.js +11 -5
  76. package/dist/commands/vibes.js.map +1 -1
  77. package/dist/errors.d.ts +23 -2
  78. package/dist/errors.js +31 -3
  79. package/dist/errors.js.map +1 -1
  80. package/dist/index.js +118 -38
  81. package/dist/index.js.map +1 -1
  82. package/dist/list-meta.d.ts +117 -0
  83. package/dist/list-meta.js +160 -0
  84. package/dist/list-meta.js.map +1 -0
  85. package/dist/list-options.d.ts +33 -0
  86. package/dist/list-options.js +70 -0
  87. package/dist/list-options.js.map +1 -0
  88. package/dist/workspace-resolve.d.ts +47 -1
  89. package/dist/workspace-resolve.js +74 -11
  90. package/dist/workspace-resolve.js.map +1 -1
  91. package/dist/write-target.d.ts +9 -0
  92. package/dist/write-target.js +11 -2
  93. package/dist/write-target.js.map +1 -1
  94. package/package.json +1 -1
@@ -2,7 +2,7 @@ import fs from 'node:fs';
2
2
  import os from 'node:os';
3
3
  import path from 'node:path';
4
4
  import readline from 'node:readline';
5
- import { SKILLS, MARKER_START, MARKER_END, buildSkillFile, buildClaudeHook, buildGenericBlock, } from '../agent-instructions.js';
5
+ import { SKILLS, CLI_VERSION, MARKER_START_PREFIX, MARKER_END, buildSkillFile, buildClaudeBlock, buildGenericBlock, parseInstalledMarkerVersion, } from '../agent-instructions.js';
6
6
  /** The documented default. Exported so `init` and the tests agree on one value. */
7
7
  export const DEFAULT_SKILL_SCOPE = 'user';
8
8
  export const SKILL_SCOPES = ['user', 'project'];
@@ -41,7 +41,7 @@ export function skillScopeNames() {
41
41
  * Resolve where an install lands.
42
42
  *
43
43
  * User scope writes **only** under the agent's personal config directory — nothing is
44
- * written into the project. That is the point: at user scope the skills and the hook
44
+ * written into the project. That is the point: at user scope the skills and the block
45
45
  * that references them are both visible from every directory, so there is no reason to
46
46
  * leave a second, narrower copy behind in one repository.
47
47
  */
@@ -157,7 +157,9 @@ function writeBlock(filePath, block) {
157
157
  fs.mkdirSync(path.dirname(filePath), { recursive: true });
158
158
  if (fs.existsSync(filePath)) {
159
159
  const content = fs.readFileSync(filePath, 'utf-8');
160
- const startIdx = content.indexOf(MARKER_START);
160
+ // Prefix match, not the full (versioned) marker: a pre-versioning install wrote
161
+ // `<!-- ORBITMAP_START -->`, and a refresh must find and upgrade that block in place.
162
+ const startIdx = content.indexOf(MARKER_START_PREFIX);
161
163
  const endIdx = content.indexOf(MARKER_END);
162
164
  if (startIdx !== -1 && endIdx !== -1) {
163
165
  // Replace between markers (inclusive).
@@ -194,38 +196,252 @@ function writeSkills(skillsDir) {
194
196
  return { name: skill.name, file, action: existed ? 'updated' : 'created' };
195
197
  });
196
198
  }
199
+ // --- The relay hook (settings.json / hooks.json) — IN-pp967d -------------------
200
+ /**
201
+ * The command our PostToolUse hook entry runs (`src/commands/emit-instructions.ts`): it
202
+ * re-emits any `Instructions (…)` block from an orbitmap command's stdout as
203
+ * `additionalContext`, so the block lands at instruction tier instead of data tier.
204
+ *
205
+ * This string is also the entry's IDENTITY. JSON has no comments, so the
206
+ * `ORBITMAP_START`/`ORBITMAP_END` marker convention the markdown blocks rely on cannot be
207
+ * reproduced here — our entry is recognised by `command === EMIT_INSTRUCTIONS_COMMAND`,
208
+ * never by array position. Changing this string orphans every installed entry.
209
+ */
210
+ export const EMIT_INSTRUCTIONS_COMMAND = 'orbitmap emit-instructions';
211
+ /** Coarse tool filter — the relay only ever fires after Bash calls. */
212
+ const EMIT_HOOK_MATCHER = 'Bash';
213
+ /**
214
+ * Fine filter, evaluated by the agent BEFORE the hook process spawns, so non-matching
215
+ * Bash calls cost nothing. Deliberately simple: a cleverer pattern risks silently
216
+ * matching nothing, and a dead hook gives no signal.
217
+ */
218
+ const EMIT_HOOK_IF = 'Bash(orbitmap intent update *)';
219
+ function isRecord(value) {
220
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
221
+ }
222
+ /** Our hook entry, exactly as written into `hooks.PostToolUse[n].hooks`. */
223
+ function buildEmitHookEntry() {
224
+ return { type: 'command', if: EMIT_HOOK_IF, command: EMIT_INSTRUCTIONS_COMMAND };
225
+ }
226
+ /** True when `entry` is ours — identity is the command string, nothing else. */
227
+ function isOurHookEntry(entry) {
228
+ return isRecord(entry) && entry.command === EMIT_INSTRUCTIONS_COMMAND;
229
+ }
230
+ /**
231
+ * Where the hook entry lives for a resolved install target, or `null` when this agent
232
+ * has no hook mechanism this CLI knows how to write.
233
+ *
234
+ * - Claude Code: `settings.json` in the same `.claude/` directory as the skills — the
235
+ * hook always lands in the scope the rest of the install used (project install →
236
+ * `<project>/.claude/settings.json`, user install → `~/.claude/settings.json`).
237
+ * - Codex: `hooks.json` next to the `AGENTS.md` the instructions block went into —
238
+ * but only at user scope: Codex reads hooks from its `~/.codex` directory only, so a
239
+ * project-scope install writes none (and says so).
240
+ *
241
+ * Paths are derived from the {@link InstallTarget}, never from `os.homedir()` directly,
242
+ * so hermetic tests that pass an explicit home stay inside their sandbox.
243
+ */
244
+ export function resolveHookSettingsPath(agentType, target) {
245
+ if (agentType === 'claude') {
246
+ return path.join(path.dirname(target.skillsDir), 'settings.json');
247
+ }
248
+ if (agentType === 'codex' && target.scope === 'user') {
249
+ return path.join(path.dirname(target.configPath), 'hooks.json');
250
+ }
251
+ return null;
252
+ }
253
+ /**
254
+ * Install our PostToolUse hook entry into `settingsPath`, idempotently and in the spirit
255
+ * of {@link writeBlock}: every key we do not own is preserved verbatim, our entry is
256
+ * APPENDED beside any hooks the user already has, and a second run changes nothing
257
+ * (`unchanged` leaves the file byte-identical).
258
+ *
259
+ * A file that is not valid JSON (or not a JSON object) is never rewritten — that returns
260
+ * `skipped`, and the caller must say so out loud: a hook silently not installed is a
261
+ * dead channel with no signal.
262
+ */
263
+ export function writeEmitInstructionsHook(settingsPath) {
264
+ let root = {};
265
+ const existed = fs.existsSync(settingsPath);
266
+ if (existed) {
267
+ let parsed;
268
+ try {
269
+ parsed = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
270
+ }
271
+ catch {
272
+ return 'skipped';
273
+ }
274
+ if (!isRecord(parsed))
275
+ return 'skipped';
276
+ root = parsed;
277
+ }
278
+ if (root.hooks === undefined)
279
+ root.hooks = {};
280
+ const hooks = root.hooks;
281
+ if (!isRecord(hooks))
282
+ return 'skipped';
283
+ if (hooks.PostToolUse === undefined)
284
+ hooks.PostToolUse = [];
285
+ const postToolUse = hooks.PostToolUse;
286
+ if (!Array.isArray(postToolUse))
287
+ return 'skipped';
288
+ // Already installed and current? Do not touch the file at all.
289
+ const ours = [];
290
+ for (const group of postToolUse) {
291
+ if (!isRecord(group) || !Array.isArray(group.hooks))
292
+ continue;
293
+ for (const entry of group.hooks) {
294
+ if (isOurHookEntry(entry))
295
+ ours.push({ group, entry });
296
+ }
297
+ }
298
+ if (ours.length === 1) {
299
+ const { group, entry } = ours[0];
300
+ if (group.matcher === EMIT_HOOK_MATCHER &&
301
+ entry.type === 'command' &&
302
+ entry.if === EMIT_HOOK_IF) {
303
+ return 'unchanged';
304
+ }
305
+ }
306
+ // Stale, duplicated, or absent: converge on exactly one current entry.
307
+ stripOurHookEntries(postToolUse);
308
+ postToolUse.push({ matcher: EMIT_HOOK_MATCHER, hooks: [buildEmitHookEntry()] });
309
+ fs.mkdirSync(path.dirname(settingsPath), { recursive: true });
310
+ fs.writeFileSync(settingsPath, `${JSON.stringify(root, null, 2)}\n`, 'utf-8');
311
+ return existed ? 'updated' : 'created';
312
+ }
313
+ /**
314
+ * Drop every entry of ours from a `PostToolUse` array, in place. A matcher group that
315
+ * held ONLY our entry was created by this CLI, so it goes too; a user's group that we
316
+ * merely appear in keeps everything else it carries. Returns whether anything changed.
317
+ */
318
+ function stripOurHookEntries(postToolUse) {
319
+ let removed = false;
320
+ for (let i = postToolUse.length - 1; i >= 0; i -= 1) {
321
+ const group = postToolUse[i];
322
+ if (!isRecord(group) || !Array.isArray(group.hooks))
323
+ continue;
324
+ const kept = group.hooks.filter((entry) => !isOurHookEntry(entry));
325
+ if (kept.length === group.hooks.length)
326
+ continue;
327
+ removed = true;
328
+ if (kept.length === 0) {
329
+ postToolUse.splice(i, 1);
330
+ }
331
+ else {
332
+ group.hooks = kept;
333
+ }
334
+ }
335
+ return removed;
336
+ }
337
+ /**
338
+ * Remove our hook entry from `settingsPath` — and nothing else.
339
+ *
340
+ * Mirrors the guarantee of {@link removeProjectInstall}: a user's own hooks and every
341
+ * unrelated key survive verbatim, an unreadable file is left alone, and the file itself
342
+ * is deleted only when our entry was its entire content (i.e. this CLI created it).
343
+ * Returns whether anything was removed.
344
+ */
345
+ export function removeEmitInstructionsHook(settingsPath) {
346
+ if (!fs.existsSync(settingsPath))
347
+ return false;
348
+ let root;
349
+ try {
350
+ root = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
351
+ }
352
+ catch {
353
+ return false;
354
+ }
355
+ if (!isRecord(root))
356
+ return false;
357
+ const hooks = root.hooks;
358
+ if (!isRecord(hooks) || !Array.isArray(hooks.PostToolUse))
359
+ return false;
360
+ if (!stripOurHookEntries(hooks.PostToolUse))
361
+ return false;
362
+ if (hooks.PostToolUse.length === 0)
363
+ delete hooks.PostToolUse;
364
+ if (Object.keys(hooks).length === 0)
365
+ delete root.hooks;
366
+ if (Object.keys(root).length === 0) {
367
+ fs.rmSync(settingsPath, { force: true });
368
+ }
369
+ else {
370
+ fs.writeFileSync(settingsPath, `${JSON.stringify(root, null, 2)}\n`, 'utf-8');
371
+ }
372
+ return true;
373
+ }
374
+ /** Does this settings/hooks file carry our entry? `false` on anything unreadable. */
375
+ function settingsContainOurHook(settingsPath) {
376
+ if (!fs.existsSync(settingsPath))
377
+ return false;
378
+ try {
379
+ const root = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
380
+ if (!isRecord(root) || !isRecord(root.hooks) || !Array.isArray(root.hooks.PostToolUse)) {
381
+ return false;
382
+ }
383
+ return root.hooks.PostToolUse.some((group) => isRecord(group) && Array.isArray(group.hooks) && group.hooks.some(isOurHookEntry));
384
+ }
385
+ catch {
386
+ return false;
387
+ }
388
+ }
389
+ /** One console line per hook-write outcome — shared by the Claude and Codex installers. */
390
+ function reportHookWrite(result, file) {
391
+ switch (result) {
392
+ case 'created':
393
+ console.log(`Created ${file} with the OrbitMap PostToolUse hook ` +
394
+ `(relays Instructions from command output).`);
395
+ break;
396
+ case 'updated':
397
+ console.log(`Installed the OrbitMap PostToolUse hook in ${file}.`);
398
+ break;
399
+ case 'unchanged':
400
+ console.log(`The OrbitMap PostToolUse hook in ${file} is already current.`);
401
+ break;
402
+ case 'skipped':
403
+ console.log(`Warning: ${file} is not valid JSON — the OrbitMap PostToolUse hook was NOT ` +
404
+ `installed. Nothing in the file was changed; fix it and re-run ` +
405
+ `\`orbitmap setup-agent\`.`);
406
+ break;
407
+ }
408
+ }
197
409
  // --- Per-agent installers ---
198
410
  /**
199
- * Claude: install the five on-demand skills + a thin always-on hook in CLAUDE.md.
411
+ * Claude: install the five on-demand skills + a thin always-on instructions block in
412
+ * CLAUDE.md + the PostToolUse hook entry in the same scope's `settings.json`.
200
413
  * This mirrors the MCP split of system-instructions (always on) + tool catalogue (on demand).
201
414
  *
202
- * The hook and the skills always land in the *same* scope, so the hook can never promise
415
+ * The block and the skills always land in the *same* scope, so the block can never promise
203
416
  * skills that the reading session cannot load: at user scope both live under `~/.claude`
204
- * (visible everywhere); at project scope both live in this directory, and the hook says so.
417
+ * (visible everywhere); at project scope both live in this directory, and the block says so.
418
+ * The hook entry follows the same scope, for the same reason.
205
419
  */
206
420
  function setupClaude(cwd, target) {
207
421
  const skills = writeSkills(target.skillsDir);
208
- const hookAction = writeBlock(target.configPath, buildClaudeHook(target.scope));
422
+ const blockAction = writeBlock(target.configPath, buildClaudeBlock(target.scope));
209
423
  for (const skill of skills) {
210
424
  console.log(`${skill.action === 'created' ? 'Installed' : 'Updated'} the \`${skill.name}\` skill at ` +
211
425
  `${displayPath(target, cwd, skill.file)}.`);
212
426
  }
213
- const hookFile = displayPath(target, cwd, target.configPath);
214
- switch (hookAction) {
427
+ const blockFile = displayPath(target, cwd, target.configPath);
428
+ switch (blockAction) {
215
429
  case 'created':
216
- console.log(`Created ${hookFile} with the OrbitMap hook.`);
430
+ console.log(`Created ${blockFile} with the OrbitMap instructions block.`);
217
431
  break;
218
432
  case 'updated':
219
- console.log(`Updated the OrbitMap hook in ${hookFile}.`);
433
+ console.log(`Updated the OrbitMap instructions block in ${blockFile}.`);
220
434
  break;
221
435
  case 'appended':
222
- console.log(`Appended the OrbitMap hook to ${hookFile}.`);
436
+ console.log(`Appended the OrbitMap instructions block to ${blockFile}.`);
223
437
  break;
224
438
  }
439
+ const settingsPath = resolveHookSettingsPath('claude', target);
440
+ reportHookWrite(writeEmitInstructionsHook(settingsPath), displayPath(target, cwd, settingsPath));
225
441
  console.log('The skills load on demand — your config stays lean.');
226
442
  }
227
443
  /** Non-Claude agents: inline the full markdown fallback (no skill ecosystem). */
228
- function setupGeneric(cwd, target) {
444
+ function setupGeneric(cwd, agentType, target) {
229
445
  const action = writeBlock(target.configPath, buildGenericBlock());
230
446
  const file = displayPath(target, cwd, target.configPath);
231
447
  switch (action) {
@@ -239,14 +455,41 @@ function setupGeneric(cwd, target) {
239
455
  console.log(`Appended OrbitMap instructions to ${file}.`);
240
456
  break;
241
457
  }
458
+ if (agentType === 'codex')
459
+ setupCodexHook(cwd, target);
460
+ }
461
+ /**
462
+ * Codex: write the hook entry into `~/.codex/hooks.json` — and NEVER report it as live.
463
+ * Two steps cannot be automated from here (`[features] hooks = true` in
464
+ * `~/.codex/config.toml`, and trusting the hook via `/hooks` inside Codex), and a user
465
+ * believing the hook works when it does not is the worst outcome, so a Codex install
466
+ * always ends by printing what remains manual.
467
+ */
468
+ function setupCodexHook(cwd, target) {
469
+ const hooksPath = resolveHookSettingsPath('codex', target);
470
+ if (hooksPath === null) {
471
+ // Project scope: Codex reads hooks from ~/.codex only — say so instead of writing a
472
+ // file nothing will ever read.
473
+ console.log('The OrbitMap PostToolUse hook was NOT installed: Codex reads hooks from ~/.codex ' +
474
+ 'only. Re-run with `--scope user` to install it.');
475
+ return;
476
+ }
477
+ const result = writeEmitInstructionsHook(hooksPath);
478
+ reportHookWrite(result, displayPath(target, cwd, hooksPath));
479
+ if (result === 'skipped')
480
+ return;
481
+ console.log('The Codex hook is NOT active yet — two steps remain manual:');
482
+ console.log(' 1. Enable hooks in ~/.codex/config.toml: [features] hooks = true');
483
+ console.log(' 2. Trust the hook inside Codex: run /hooks and approve `orbitmap emit-instructions`.');
242
484
  }
243
485
  /**
244
486
  * Find a previous project-scope install in `cwd`.
245
487
  *
246
- * Deliberately narrow: only the five skill directories this CLI creates by name, and only
247
- * a config file that actually contains OUR marker block. A user's own skill in
248
- * `.claude/skills/`, an unrelated `CLAUDE.md`, or a `.claude/` holding only settings are
249
- * invisible here which is what makes the cleanup below safe.
488
+ * Deliberately narrow: only the five skill directories this CLI creates by name, only
489
+ * a config file that actually contains OUR marker block, and only a `settings.json`
490
+ * that actually contains OUR hook entry. A user's own skill in `.claude/skills/`, an
491
+ * unrelated `CLAUDE.md`, or a `.claude/settings.json` without our entry are invisible
492
+ * here — which is what makes the cleanup below safe.
250
493
  */
251
494
  export function detectProjectInstall(cwd, agentType) {
252
495
  const skillDirs = agentType === 'claude'
@@ -256,21 +499,26 @@ export function detectProjectInstall(cwd, agentType) {
256
499
  let configPath = null;
257
500
  if (fs.existsSync(configFile)) {
258
501
  const content = fs.readFileSync(configFile, 'utf-8');
259
- if (content.includes(MARKER_START) && content.includes(MARKER_END))
502
+ if (content.includes(MARKER_START_PREFIX) && content.includes(MARKER_END)) {
260
503
  configPath = configFile;
504
+ }
261
505
  }
262
- if (skillDirs.length === 0 && configPath === null)
506
+ // Only Claude gets a project-scope hook entry (Codex hooks are user-level only).
507
+ const settingsFile = path.join(cwd, '.claude', 'settings.json');
508
+ const settingsPath = agentType === 'claude' && settingsContainOurHook(settingsFile) ? settingsFile : null;
509
+ if (skillDirs.length === 0 && configPath === null && settingsPath === null)
263
510
  return null;
264
- return { skillDirs, configPath };
511
+ return { skillDirs, configPath, settingsPath };
265
512
  }
266
513
  /**
267
514
  * Remove a stale project-scope install — and nothing else.
268
515
  *
269
- * Only ever touches: the five skill directories named in {@link StaleProjectInstall}, and
270
- * the marker-delimited block inside the config file. Text outside the markers is kept
271
- * verbatim; the config file itself is deleted only when the block was its entire content
272
- * (i.e. this CLI created it). Parent directories are removed only when they are already
273
- * empty a `.claude/` holding a user's own skills or `settings.json` survives intact.
516
+ * Only ever touches: the five skill directories named in {@link StaleProjectInstall},
517
+ * the marker-delimited block inside the config file, and OUR hook entry inside
518
+ * `settings.json`. Text outside the markers and every settings key that is not our
519
+ * entry is kept verbatim; each file is deleted only when our content was its entire
520
+ * content (i.e. this CLI created it). Parent directories are removed only when they are
521
+ * already empty — a `.claude/` holding a user's own skills or settings survives intact.
274
522
  * There is no recursive delete of `.claude` anywhere in this function.
275
523
  */
276
524
  export function removeProjectInstall(stale) {
@@ -279,9 +527,13 @@ export function removeProjectInstall(stale) {
279
527
  fs.rmSync(dir, { recursive: true, force: true });
280
528
  removed.push(dir);
281
529
  }
530
+ if (stale.settingsPath && removeEmitInstructionsHook(stale.settingsPath)) {
531
+ removed.push(stale.settingsPath);
532
+ pruneIfEmpty(path.dirname(stale.settingsPath));
533
+ }
282
534
  if (stale.configPath) {
283
535
  const content = fs.readFileSync(stale.configPath, 'utf-8');
284
- const startIdx = content.indexOf(MARKER_START);
536
+ const startIdx = content.indexOf(MARKER_START_PREFIX);
285
537
  const endIdx = content.indexOf(MARKER_END);
286
538
  if (startIdx !== -1 && endIdx !== -1) {
287
539
  const rest = content.slice(0, startIdx) + content.slice(endIdx + MARKER_END.length);
@@ -324,7 +576,11 @@ async function handleStaleProjectInstall(cwd, agentType, cleanProject) {
324
576
  const stale = detectProjectInstall(cwd, agentType);
325
577
  if (!stale)
326
578
  return;
327
- const paths = [...stale.skillDirs, ...(stale.configPath ? [stale.configPath] : [])];
579
+ const paths = [
580
+ ...stale.skillDirs,
581
+ ...(stale.configPath ? [stale.configPath] : []),
582
+ ...(stale.settingsPath ? [stale.settingsPath] : []),
583
+ ];
328
584
  console.log('');
329
585
  console.log('Heads up: this directory also has an older PROJECT-scope install:');
330
586
  for (const p of paths)
@@ -377,8 +633,10 @@ export function parseAgentType(value) {
377
633
  * Install the OrbitMap skills for one agent, non-interactively and idempotently.
378
634
  *
379
635
  * At the default `user` scope: Claude Code → `~/.claude/skills/<name>/SKILL.md` × 4 +
380
- * the hook block in `~/.claude/CLAUDE.md`; Gemini/Codex the inlined block in
381
- * `~/.gemini/GEMINI.md` / `~/.codex/AGENTS.md`. **Nothing is written into `cwd`.**
636
+ * the instructions block in `~/.claude/CLAUDE.md` + the PostToolUse hook entry in
637
+ * `~/.claude/settings.json`; Gemini/Codex the inlined block in `~/.gemini/GEMINI.md` /
638
+ * `~/.codex/AGENTS.md` (Codex also gets the hook entry in `~/.codex/hooks.json`, with
639
+ * its two remaining manual steps printed). **Nothing is written into `cwd`.**
382
640
  * At `project` scope everything lands in `cwd`, exactly as it used to.
383
641
  *
384
642
  * Safe to call repeatedly: identical input leaves the tree byte-identical, and the
@@ -389,7 +647,7 @@ export function parseAgentType(value) {
389
647
  * {@link handleStaleProjectInstall}.
390
648
  */
391
649
  export async function installAgentSkills(cwd, agentType, scope = DEFAULT_SKILL_SCOPE, options = {}) {
392
- const target = resolveInstallTarget(agentType, scope, cwd);
650
+ const target = resolveInstallTarget(agentType, scope, cwd, options.homeDir ?? os.homedir());
393
651
  if (target.requestedScope === 'user' && target.scope === 'project') {
394
652
  console.log(`${AGENTS[agentType].label} has no personal (user-level) instructions file — ` +
395
653
  `installing into this directory instead.`);
@@ -398,7 +656,7 @@ export async function installAgentSkills(cwd, agentType, scope = DEFAULT_SKILL_S
398
656
  setupClaude(cwd, target);
399
657
  }
400
658
  else {
401
- setupGeneric(cwd, target);
659
+ setupGeneric(cwd, agentType, target);
402
660
  }
403
661
  if (target.scope === 'user') {
404
662
  console.log('Installed at user scope — every session and subagent sees them, in any directory.');
@@ -411,6 +669,94 @@ export async function installAgentSkills(cwd, agentType, scope = DEFAULT_SKILL_S
411
669
  }
412
670
  return target;
413
671
  }
672
+ /**
673
+ * Compare two dot-separated version strings numerically per segment.
674
+ * Returns a negative number when `a < b`, 0 when equal, positive when `a > b`.
675
+ * Non-numeric segments fall back to string comparison; missing segments count as 0.
676
+ */
677
+ function compareVersions(a, b) {
678
+ const as = a.split('.');
679
+ const bs = b.split('.');
680
+ const len = Math.max(as.length, bs.length);
681
+ for (let i = 0; i < len; i += 1) {
682
+ const rawA = as[i] ?? '0';
683
+ const rawB = bs[i] ?? '0';
684
+ const numA = Number.parseInt(rawA, 10);
685
+ const numB = Number.parseInt(rawB, 10);
686
+ if (Number.isNaN(numA) || Number.isNaN(numB)) {
687
+ if (rawA !== rawB)
688
+ return rawA < rawB ? -1 : 1;
689
+ continue;
690
+ }
691
+ if (numA !== numB)
692
+ return numA - numB;
693
+ }
694
+ return 0;
695
+ }
696
+ /**
697
+ * Detect whether the installed OrbitMap instruction block predates this binary.
698
+ *
699
+ * Locates the config file the way `setup-agent` does: `detectAgent(cwd)` names the agent,
700
+ * then the project-scope file is checked before the user-scope one (a project-level block
701
+ * shadows the user-level one in that directory, so it is the one actually being read).
702
+ * The first file that carries an OrbitMap block decides. Never writes anything.
703
+ *
704
+ * Returns `null` (silence) when: no agent is detectable, no config file carries a block,
705
+ * or the installed block's version is equal to or newer than `cliVersion`.
706
+ */
707
+ export function detectInstructionsDrift(cwd, cliVersion = CLI_VERSION, homeDir = os.homedir()) {
708
+ const agentType = detectAgent(cwd);
709
+ if (!agentType)
710
+ return null;
711
+ const candidates = [
712
+ resolveInstallTarget(agentType, 'project', cwd, homeDir).configPath,
713
+ resolveInstallTarget(agentType, 'user', cwd, homeDir).configPath,
714
+ ];
715
+ for (const configPath of [...new Set(candidates)]) {
716
+ let content;
717
+ try {
718
+ if (!fs.existsSync(configPath))
719
+ continue;
720
+ content = fs.readFileSync(configPath, 'utf-8');
721
+ }
722
+ catch {
723
+ continue;
724
+ }
725
+ const installed = parseInstalledMarkerVersion(content);
726
+ if (installed === undefined)
727
+ continue; // no block in this file — keep looking.
728
+ if (installed === null)
729
+ return { configPath, installedVersion: null };
730
+ return compareVersions(installed, cliVersion) < 0
731
+ ? { configPath, installedVersion: installed }
732
+ : null;
733
+ }
734
+ return null;
735
+ }
736
+ /** Printed at most once per process — `init` and `context` both call the warner. */
737
+ let instructionsDriftWarned = false;
738
+ /** Test hook: forget that a drift warning was already printed in this process. */
739
+ export function resetInstructionsDriftWarning() {
740
+ instructionsDriftWarned = false;
741
+ }
742
+ /**
743
+ * One stderr line when the installed instructions predate this binary — nothing else.
744
+ *
745
+ * Called from exactly two commands (`orbitmap init`, `orbitmap context`) so there is no
746
+ * per-command tax. Never rewrites anything, never blocks, prints at most once per
747
+ * invocation, and goes to stderr so `--json` stdout stays parseable.
748
+ */
749
+ export function warnIfInstructionsDrift(cwd = process.cwd(), cliVersion = CLI_VERSION, homeDir = os.homedir()) {
750
+ if (instructionsDriftWarned)
751
+ return;
752
+ const drift = detectInstructionsDrift(cwd, cliVersion, homeDir);
753
+ if (!drift)
754
+ return;
755
+ instructionsDriftWarned = true;
756
+ const installed = drift.installedVersion === null ? 'unversioned' : `v${drift.installedVersion}`;
757
+ console.error(`Installed OrbitMap instructions are ${installed}; this CLI ships v${cliVersion}. ` +
758
+ 'Run `orbitmap setup-agent` to refresh.');
759
+ }
414
760
  // --- Main command ---
415
761
  export async function setupAgentCommand(options) {
416
762
  let agentType;
@@ -1 +1 @@
1
- {"version":3,"file":"setup-agent.js","sourceRoot":"","sources":["../../src/commands/setup-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-agent.js","sourceRoot":"","sources":["../../src/commands/setup-agent.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,17 @@ export declare function startCommand(taskId: string | undefined, options: {
20
20
  json: boolean;
21
21
  area?: string;
22
22
  }): Promise<void>;
23
+ /**
24
+ * The question to ask about a refused start, or `undefined` when the error is something else.
25
+ *
26
+ * The 409 names the task, its title and its current owner precisely so a client can put the
27
+ * question verbatim; `OrbitMapAPIError.fromResponse` keeps those top-level `error` fields in
28
+ * `details`.
29
+ */
30
+ export declare function reassignQuestion(error: unknown, taskRef: string | undefined): {
31
+ question: string;
32
+ taskRef: string;
33
+ } | undefined;
23
34
  /** What `orbitmap start` (with no argument) concluded before touching anything. */
24
35
  export type WorkOutcome = {
25
36
  kind: 'selected';
@@ -31,6 +42,8 @@ export type WorkOutcome = {
31
42
  workspace: string | null;
32
43
  areas: string[];
33
44
  scope: string;
45
+ /** Startable work that exists but belongs to somebody else. */
46
+ heldByOthers: number;
34
47
  }
35
48
  /** The lookups themselves failed; the caller decides whether that is fatal. */
36
49
  | {