orbitmap 0.4.0-next.0 → 0.4.1

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 (55) hide show
  1. package/README.md +148 -45
  2. package/dist/adapters/cloud.d.ts +36 -3
  3. package/dist/adapters/cloud.js +79 -17
  4. package/dist/adapters/cloud.js.map +1 -1
  5. package/dist/adapters/factory.d.ts +8 -4
  6. package/dist/adapters/factory.js +9 -5
  7. package/dist/adapters/factory.js.map +1 -1
  8. package/dist/adapters/local/context.d.ts +4 -3
  9. package/dist/adapters/local/context.js +4 -3
  10. package/dist/adapters/local/context.js.map +1 -1
  11. package/dist/commands/assign.js +9 -4
  12. package/dist/commands/assign.js.map +1 -1
  13. package/dist/commands/create.js +1 -6
  14. package/dist/commands/create.js.map +1 -1
  15. package/dist/commands/ideas.js +1 -6
  16. package/dist/commands/ideas.js.map +1 -1
  17. package/dist/commands/init.d.ts +28 -0
  18. package/dist/commands/init.js +248 -132
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/issues.js +1 -6
  21. package/dist/commands/issues.js.map +1 -1
  22. package/dist/commands/setup-agent.d.ts +16 -0
  23. package/dist/commands/setup-agent.js +38 -5
  24. package/dist/commands/setup-agent.js.map +1 -1
  25. package/dist/commands/setup-mcp.js +13 -42
  26. package/dist/commands/setup-mcp.js.map +1 -1
  27. package/dist/commands/task.js +3 -13
  28. package/dist/commands/task.js.map +1 -1
  29. package/dist/config.d.ts +69 -17
  30. package/dist/config.js +206 -32
  31. package/dist/config.js.map +1 -1
  32. package/dist/doc-cache.d.ts +21 -1
  33. package/dist/doc-cache.js +72 -12
  34. package/dist/doc-cache.js.map +1 -1
  35. package/dist/id-resolve.d.ts +61 -0
  36. package/dist/id-resolve.js +87 -0
  37. package/dist/id-resolve.js.map +1 -0
  38. package/dist/index.js +26 -12
  39. package/dist/index.js.map +1 -1
  40. package/dist/mcp-config.d.ts +36 -0
  41. package/dist/mcp-config.js +51 -0
  42. package/dist/mcp-config.js.map +1 -0
  43. package/dist/oauth.d.ts +8 -0
  44. package/dist/oauth.js +54 -15
  45. package/dist/oauth.js.map +1 -1
  46. package/dist/paths.d.ts +97 -0
  47. package/dist/paths.js +178 -0
  48. package/dist/paths.js.map +1 -0
  49. package/dist/project-config.d.ts +75 -0
  50. package/dist/project-config.js +55 -0
  51. package/dist/project-config.js.map +1 -0
  52. package/dist/workspace-resolve.d.ts +56 -24
  53. package/dist/workspace-resolve.js +106 -25
  54. package/dist/workspace-resolve.js.map +1 -1
  55. package/package.json +1 -1
@@ -10,7 +10,20 @@ const AGENTS = {
10
10
  windsurf: { label: 'Windsurf', file: '.windsurfrules' },
11
11
  generic: { label: 'Other / Generic', file: 'AGENTS.md' },
12
12
  };
13
- const MENU_ORDER = ['claude', 'gemini', 'codex', 'cursor', 'windsurf', 'generic'];
13
+ /**
14
+ * Menu order for "which agent are you using?" — shared with `init`, which asks the same
15
+ * question through its own readline interface (see the note on {@link pickAgent}).
16
+ * The first entry is also the documented default when a caller needs one.
17
+ */
18
+ export const AGENT_MENU_ORDER = [
19
+ 'claude',
20
+ 'gemini',
21
+ 'codex',
22
+ 'cursor',
23
+ 'windsurf',
24
+ 'generic',
25
+ ];
26
+ const MENU_ORDER = [...AGENT_MENU_ORDER];
14
27
  // Where the Claude skills are installed (project-level skill directory).
15
28
  const SKILLS_ROOT = path.join('.claude', 'skills');
16
29
  /** Relative path of a skill's SKILL.md, e.g. `.claude/skills/orbitmap/SKILL.md`. */
@@ -149,6 +162,26 @@ function setupGeneric(cwd, agentType) {
149
162
  export function agentLabel(agentType) {
150
163
  return AGENTS[agentType].label;
151
164
  }
165
+ /** The config file an agent type's instruction block is written to (e.g. `CLAUDE.md`). */
166
+ export function agentConfigFile(agentType) {
167
+ return AGENTS[agentType].file;
168
+ }
169
+ /** Every accepted `--agent` value, in menu order, for help text and error messages. */
170
+ export function agentTypeNames() {
171
+ return AGENT_MENU_ORDER.join(', ');
172
+ }
173
+ /**
174
+ * Parse a user-supplied `--agent` value. Returns `null` for anything unknown so the
175
+ * caller can print its own error — `init` and `setup-agent` both accept the flag and
176
+ * must reject the same set of values the same way.
177
+ */
178
+ export function parseAgentType(value) {
179
+ const key = value.trim().toLowerCase();
180
+ // `in` would also match inherited members, so `--agent constructor` (or `tostring`,
181
+ // `valueof`, `__proto__`) would parse as a valid type and then blow up in `path.join`
182
+ // with an `undefined` filename. Own properties only.
183
+ return Object.hasOwn(AGENTS, key) ? key : null;
184
+ }
152
185
  /**
153
186
  * Install the OrbitMap skills for one agent, non-interactively and idempotently.
154
187
  * Claude Code → `.claude/skills/<name>/SKILL.md` × 4 + the CLAUDE.md hook block;
@@ -167,13 +200,13 @@ export function installAgentSkills(cwd, agentType) {
167
200
  export async function setupAgentCommand(options) {
168
201
  let agentType;
169
202
  if (options.agent) {
170
- const key = options.agent.toLowerCase();
171
- if (!(key in AGENTS)) {
172
- console.error(`Error: Unknown agent type "${options.agent}". Valid types: ${Object.keys(AGENTS).join(', ')}`);
203
+ const parsed = parseAgentType(options.agent);
204
+ if (!parsed) {
205
+ console.error(`Error: Unknown agent type "${options.agent}". Valid types: ${agentTypeNames()}`);
173
206
  process.exitCode = 1;
174
207
  return;
175
208
  }
176
- agentType = key;
209
+ agentType = parsed;
177
210
  }
178
211
  else {
179
212
  const detected = detectAgent();
@@ -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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"}
@@ -1,10 +1,9 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import readline from 'node:readline';
4
- import { validateProfile, profileToPath } from '../oauth.js';
5
- const MCP_BASE_URL = 'https://mcp.orbitmap.ai';
6
- const MCP_FILE = '.mcp.json';
7
- const GITIGNORE_FILE = '.gitignore';
4
+ import { validateProfile } from '../oauth.js';
5
+ import { ensureGitignore } from '../doc-cache.js';
6
+ import { buildOrbitmapBlock, maskBlockForPrint, MCP_FILE, } from '../mcp-config.js';
8
7
  async function prompt(question, defaultValue) {
9
8
  const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
10
9
  return new Promise((resolve) => {
@@ -53,32 +52,6 @@ async function promptAuthMethod() {
53
52
  console.log('Please enter 1 or 2.');
54
53
  }
55
54
  }
56
- function buildMcpUrl(profile) {
57
- const profilePath = profileToPath(profile);
58
- return profilePath === '/' ? `${MCP_BASE_URL}/` : `${MCP_BASE_URL}${profilePath}`;
59
- }
60
- function buildOrbitmapBlock(params) {
61
- const url = buildMcpUrl(params.profile);
62
- if (params.token) {
63
- const headers = {
64
- Authorization: `Bearer ${params.token}`,
65
- };
66
- if (params.areaSlug) {
67
- headers['X-Orbitmap-Area'] = params.areaSlug;
68
- }
69
- return { type: 'http', url, headers };
70
- }
71
- return { type: 'http', url };
72
- }
73
- function maskBlockForPrint(block) {
74
- if (!block.headers)
75
- return block;
76
- const maskedHeaders = { ...block.headers };
77
- if (maskedHeaders.Authorization?.startsWith('Bearer ')) {
78
- maskedHeaders.Authorization = 'Bearer orbitmap_****';
79
- }
80
- return { ...block, headers: maskedHeaders };
81
- }
82
55
  function loadMcpConfig(filePath) {
83
56
  if (!fs.existsSync(filePath)) {
84
57
  return { config: { mcpServers: {} }, existed: false };
@@ -100,16 +73,6 @@ function loadMcpConfig(filePath) {
100
73
  }
101
74
  return { config, existed: true };
102
75
  }
103
- function gitignoreCoversMcpFile(cwd) {
104
- const gitignorePath = path.join(cwd, GITIGNORE_FILE);
105
- if (!fs.existsSync(gitignorePath))
106
- return false;
107
- const content = fs.readFileSync(gitignorePath, 'utf-8');
108
- return content
109
- .split(/\r?\n/)
110
- .map((line) => line.trim())
111
- .some((line) => line === MCP_FILE || line === `/${MCP_FILE}`);
112
- }
113
76
  export async function setupMcpCommand(options = {}) {
114
77
  if (options.token && options.oauth) {
115
78
  console.error('Error: --token and --oauth are mutually exclusive.');
@@ -193,8 +156,16 @@ export async function setupMcpCommand(options = {}) {
193
156
  console.log(`\nFile: ${mcpFilePath}`);
194
157
  console.log(`Profile: ${profile} | URL: ${block.url}`);
195
158
  console.log('\n"orbitmap": ' + JSON.stringify(maskBlockForPrint(block), null, 2));
196
- if (authMode === 'token' && !gitignoreCoversMcpFile(cwd)) {
197
- console.warn(`\n⚠ .mcp.json contains a Bearer token but is not in .gitignore`);
159
+ if (authMode === 'token') {
160
+ // .mcp.json now carries a Bearer token write it into .gitignore rather than just
161
+ // warning about it (the warning here used to be the whole mitigation, and it was
162
+ // routinely ignored: this same file pattern is committed with its token in
163
+ // orbitmap-mcp today). `ensureGitignore` is idempotent and reports what it actually
164
+ // wrote, so a re-run stays quiet instead of claiming an edit it did not make.
165
+ const added = ensureGitignore([MCP_FILE], cwd);
166
+ if (added.length > 0) {
167
+ console.log(`Added ${MCP_FILE} to .gitignore (it contains a Bearer token).`);
168
+ }
198
169
  }
199
170
  }
200
171
  //# sourceMappingURL=setup-mcp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../src/commands/setup-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../src/commands/setup-mcp.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,5 @@
1
1
  import { createAdapter } from '../adapters/factory.js';
2
2
  import { formatOutput, printError, formatTable } from '../output.js';
3
- function isObjectNumber(id) {
4
- return /^([A-Z]{2}-)?[a-z0-9]{6}$/.test(id);
5
- }
6
- function stripPrefix(id) {
7
- return id.replace(/^[A-Z]{2}-/, '');
8
- }
9
3
  function formatDocLine(d) {
10
4
  let line = `${d.title} (${d.type}`;
11
5
  if (d.sections_count !== undefined)
@@ -79,13 +73,9 @@ export function printTaskDetail(response) {
79
73
  export async function taskCommand(idOrNumber, options) {
80
74
  try {
81
75
  const client = await createAdapter(options.area);
82
- let response;
83
- if (isObjectNumber(idOrNumber)) {
84
- response = (await client.getTaskByNumber(stripPrefix(idOrNumber)));
85
- }
86
- else {
87
- response = (await client.getTask(idOrNumber));
88
- }
76
+ // `getTask` accepts a uuid, `TS-uw9yh5` or the bare code and routes a by-number reference
77
+ // to the by-number endpoint itself — one request either way (see `id-resolve.ts`).
78
+ const response = (await client.getTask(idOrNumber));
89
79
  if (options.json) {
90
80
  console.log(formatOutput(response, true));
91
81
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,22 +1,74 @@
1
- /** Storage backend for domain data. Absent in a config file means `'cloud'`. */
2
- export type OrbitMapMode = 'cloud' | 'local';
3
- export interface OrbitMapConfig {
4
- api_url?: string;
5
- api_key?: string;
6
- area?: string;
7
- /** `'cloud'` (default when absent) or `'local'`. */
8
- mode?: OrbitMapMode;
9
- /** Default local workspace directory (local mode only). */
10
- workspace_path?: string;
11
- /** Legacy key from pre-Area configs read as fallback, never written. */
12
- project_id?: string;
13
- }
1
+ import { type OrbitMapConfig } from './project-config.js';
2
+ /**
3
+ * The **global** `~/.orbitmap/config.json`: loading it, migrating it forward, saving it,
4
+ * and resolving cloud credentials from it. The config *schema* and the project-scoped
5
+ * `.orbitmap/config.json` walk-up live in `project-config.ts`; the paths themselves live in
6
+ * `paths.ts`. See `docs/adr/0002-project-scoped-config.md`.
7
+ */
8
+ export type { OrbitMapConfig, OrbitMapMode } from './project-config.js';
9
+ export { resolveProjectConfigField, type ResolvedProjectField } from './project-config.js';
10
+ /**
11
+ * Version stamped into every config file this module writes (ADR 0002). It is also the
12
+ * migration gate: a global config already carrying this version has been through
13
+ * {@link migrateGlobalConfig} and is never re-examined, on this run or any later one.
14
+ */
15
+ export declare const CURRENT_SCHEMA_VERSION = 1;
16
+ /**
17
+ * The only supported Agent API host. Every default in the CLI resolves here — do not
18
+ * hardcode a base URL anywhere else, and never ship a hosting-provider origin
19
+ * (it lets callers bypass whatever fronts the public domain).
20
+ */
21
+ export declare const DEFAULT_API_HOST = "https://app.orbitmap.ai";
22
+ /** Default Agent API base URL: {@link DEFAULT_API_HOST} + the `/api/agent` prefix. */
23
+ export declare const DEFAULT_API_URL = "https://app.orbitmap.ai/api/agent";
24
+ /** Reset the once-per-process migration latch. Tests only. */
25
+ export declare function resetConfigMigrationForTests(): void;
26
+ /** Load `~/.orbitmap/config.json` (or the XDG/legacy equivalent). Runs the one-time
27
+ * migration in {@link migrateGlobalConfig} as a side effect. */
14
28
  export declare function loadConfig(): Promise<OrbitMapConfig>;
15
- export declare function saveConfig(config: OrbitMapConfig): Promise<void>;
29
+ /**
30
+ * Write the global `~/.orbitmap/config.json` (or its relocated equivalent).
31
+ *
32
+ * A **merge**, not a replace: keys already in the file that `config` does not set are kept
33
+ * (see {@link mergeIntoFile}). Never writes `api_key` — route secrets through
34
+ * `saveAgentProfile` in `oauth.ts` instead.
35
+ */
36
+ export declare function saveGlobalConfig(config: OrbitMapConfig): Promise<string>;
37
+ /**
38
+ * Write `<dir>/.orbitmap/config.json` (`dir` defaults to `process.cwd()`) and return its
39
+ * path. Committable — never write `api_key` or any other secret here.
40
+ *
41
+ * A **merge**, like {@link saveGlobalConfig}: this file is meant to be committed, so a
42
+ * teammate re-running `orbitmap init` in a checkout must not silently drop the `mode` (or
43
+ * any future field) the repository already agreed on — a loss that would then propagate to
44
+ * everyone through git.
45
+ */
46
+ export declare function saveProjectConfig(config: OrbitMapConfig, dir?: string): Promise<string>;
16
47
  export interface ResolvedAuth {
17
48
  apiKey: string;
18
49
  apiUrl: string;
19
- area?: string;
20
50
  }
21
- export declare function resolveAuth(): Promise<ResolvedAuth>;
22
- export declare function resolveArea(explicit?: string, envOrConfig?: string): string | undefined;
51
+ export interface ResolveAuthOptions {
52
+ /** Directory the project-config walk-up starts from (defaults to `process.cwd()`). */
53
+ cwd?: string;
54
+ /** Pre-loaded global config, to avoid a second read of the same file. */
55
+ config?: OrbitMapConfig;
56
+ }
57
+ /**
58
+ * Resolve cloud-mode credentials. Per-field layering (ADR 0002), first match wins:
59
+ *
60
+ * - **API key**: `ORBITMAP_API_KEY` env → the resolved agent's profile in
61
+ * `~/.orbitmap/credentials.json` → a legacy `api_key` still sitting in the global config
62
+ * because {@link migrateGlobalConfig} could not write (see there).
63
+ * - **agent** (which profile to use, when the key isn't given directly by env):
64
+ * `ORBITMAP_AGENT` env → nearest `.orbitmap/config.json` that sets `agent` → global
65
+ * config `agent` → `"default"`.
66
+ * - **API URL**: `ORBITMAP_API_URL` env → {@link DEFAULT_API_URL}. There is deliberately no
67
+ * config-file override any more — a single supported host means nothing should be able to
68
+ * pin a stale one (see ADR 0002).
69
+ *
70
+ * **Area is deliberately not resolved here.** There is exactly one area ladder, `resolveArea`
71
+ * in `workspace-resolve.ts`; a second, shorter copy here used to disagree with it about the
72
+ * `link.json` rung. `createClient` applies the resolved area.
73
+ */
74
+ export declare function resolveAuth(options?: ResolveAuthOptions): Promise<ResolvedAuth>;
package/dist/config.js CHANGED
@@ -1,43 +1,217 @@
1
- import { readFile, writeFile, mkdir } from 'node:fs/promises';
2
- import { homedir } from 'node:os';
3
- import { join } from 'node:path';
4
- const CONFIG_DIR = join(homedir(), '.orbitmap');
5
- const CONFIG_FILE = join(CONFIG_DIR, 'config.json');
6
- export async function loadConfig() {
1
+ import { readFile, writeFile, rename, mkdir } from 'node:fs/promises';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import { CONFIG_FILENAME, credentialsPath, globalConfigReadPath, globalConfigWritePath, ORBITMAP_DIR, } from './paths.js';
4
+ import { parseConfig, resolveProjectConfigField, } from './project-config.js';
5
+ import { loadAgentProfile, saveAgentProfile } from './oauth.js';
6
+ export { resolveProjectConfigField } from './project-config.js';
7
+ /**
8
+ * Version stamped into every config file this module writes (ADR 0002). It is also the
9
+ * migration gate: a global config already carrying this version has been through
10
+ * {@link migrateGlobalConfig} and is never re-examined, on this run or any later one.
11
+ */
12
+ export const CURRENT_SCHEMA_VERSION = 1;
13
+ /** Agent profile a pre-ADR-0002 global `api_key` is migrated into. */
14
+ const LEGACY_AGENT_PROFILE = 'default';
15
+ /**
16
+ * The only supported Agent API host. Every default in the CLI resolves here — do not
17
+ * hardcode a base URL anywhere else, and never ship a hosting-provider origin
18
+ * (it lets callers bypass whatever fronts the public domain).
19
+ */
20
+ export const DEFAULT_API_HOST = 'https://app.orbitmap.ai';
21
+ /** Default Agent API base URL: {@link DEFAULT_API_HOST} + the `/api/agent` prefix. */
22
+ export const DEFAULT_API_URL = `${DEFAULT_API_HOST}/api/agent`;
23
+ // ── Raw file I/O ────────────────────────────────────────────────────────────
24
+ /** The file's JSON object exactly as written, or `undefined` when it is missing,
25
+ * unreadable or not a JSON object. Used to preserve keys this version does not know. */
26
+ async function readRawConfigFile(file) {
7
27
  try {
8
- const raw = await readFile(CONFIG_FILE, 'utf-8');
9
- return JSON.parse(raw);
28
+ const parsed = JSON.parse(await readFile(file, 'utf-8'));
29
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
30
+ return undefined;
31
+ return parsed;
10
32
  }
11
33
  catch {
12
- return {};
34
+ return undefined;
13
35
  }
14
36
  }
15
- export async function saveConfig(config) {
16
- await mkdir(CONFIG_DIR, { recursive: true });
17
- await writeFile(CONFIG_FILE, JSON.stringify(config, null, 2) + '\n', 'utf-8');
37
+ /**
38
+ * Write JSON to `file` atomically: a sibling temp file plus a rename, which is atomic on
39
+ * every filesystem the CLI targets. `loadConfig()` performs a write as a side effect of the
40
+ * ADR 0002 migration, so two CLI processes starting at once can both reach this — with a
41
+ * plain `writeFile` the loser could observe (and persist) a half-written file.
42
+ */
43
+ async function writeJsonAtomic(file, data) {
44
+ await mkdir(dirname(file), { recursive: true });
45
+ const temp = `${file}.${process.pid}.tmp`;
46
+ await writeFile(temp, JSON.stringify(data, null, 2) + '\n', 'utf-8');
47
+ await rename(temp, file);
18
48
  }
19
- export async function resolveAuth() {
20
- const config = await loadConfig();
21
- const apiKey = process.env['ORBITMAP_API_KEY'] || config.api_key;
22
- const apiUrl = process.env['ORBITMAP_API_URL'] ||
23
- config.api_url ||
24
- 'https://orbitmap-main-x5n6qz.laravel.cloud/api/agent';
25
- if (!apiKey) {
26
- throw new Error('Missing API key. Set ORBITMAP_API_KEY env var or run `orbitmap init`.');
49
+ /**
50
+ * Merge `patch` into whatever `file` already holds and write the result.
51
+ *
52
+ * Two rules, both about not destroying data the CLI did not write:
53
+ *
54
+ * - **Unknown keys survive.** The on-disk object is the base; only the keys `patch`
55
+ * actually sets are overwritten. A key from a future version (or a hand-written note)
56
+ * is never erased by a save least of all by the migration, which is triggered by what
57
+ * the user experiences as a read.
58
+ * - **`api_key` never survives.** It is the one key this module actively removes: ADR 0002
59
+ * moved it into `credentials.json`, and leaving a copy behind in a committable-shaped
60
+ * file is the failure mode the ADR exists to end.
61
+ *
62
+ * `fallbackFile` (optional) is read when `file` itself does not exist yet — used when the
63
+ * global config is read from the legacy `~/.orbitmap` location but written to a relocated
64
+ * one, so the relocated copy inherits the legacy file's unknown keys.
65
+ */
66
+ async function mergeIntoFile(file, patch, fallbackFile) {
67
+ const base = (await readRawConfigFile(file)) ??
68
+ (fallbackFile && fallbackFile !== file ? await readRawConfigFile(fallbackFile) : undefined) ??
69
+ {};
70
+ const merged = { ...base };
71
+ for (const [key, value] of Object.entries(patch)) {
72
+ if (value !== undefined)
73
+ merged[key] = value;
74
+ }
75
+ delete merged['api_key'];
76
+ merged['schema_version'] = CURRENT_SCHEMA_VERSION;
77
+ await writeJsonAtomic(file, merged);
78
+ }
79
+ // ── Global config ───────────────────────────────────────────────────────────
80
+ let globalMigrationAttempted = false;
81
+ /** Reset the once-per-process migration latch. Tests only. */
82
+ export function resetConfigMigrationForTests() {
83
+ globalMigrationAttempted = false;
84
+ }
85
+ /**
86
+ * One-time migration of the global config to {@link CURRENT_SCHEMA_VERSION} (ADR 0002).
87
+ *
88
+ * `api_key` used to live in the config file in plain text. It moves into
89
+ * `~/.orbitmap/credentials.json` under the `"default"` agent profile and is deleted from
90
+ * every config file it appears in — including the legacy `~/.orbitmap/config.json` when
91
+ * `ORBITMAP_CONFIG_HOME`/`XDG_CONFIG_HOME` moved the *written* file elsewhere, which would
92
+ * otherwise leave the plaintext secret sitting on disk forever under a message claiming it
93
+ * had been moved.
94
+ *
95
+ * The gate is the `schema_version` stamped by {@link mergeIntoFile}: once the file carries
96
+ * the current version, no later process looks at it again. The in-process flag only avoids
97
+ * repeating the work (and the warning) within a single run.
98
+ *
99
+ * Mutates `config` in place so the caller's already-parsed object reflects the migration.
100
+ * **On failure the legacy `api_key` is left in `config`** — `resolveAuth` falls back to it,
101
+ * so a machine where the write cannot happen (read-only `$HOME`, `credentials.json` owned
102
+ * by another user, a full disk) keeps working with the key it already has on disk instead
103
+ * of reporting "Missing API key" for a key that is right there.
104
+ */
105
+ async function migrateGlobalConfig(config) {
106
+ if ((config.schema_version ?? 0) >= CURRENT_SCHEMA_VERSION)
107
+ return;
108
+ if (globalMigrationAttempted)
109
+ return;
110
+ globalMigrationAttempted = true;
111
+ const legacyKey = config.api_key;
112
+ const readPath = globalConfigReadPath();
113
+ const writePath = globalConfigWritePath();
114
+ try {
115
+ if (legacyKey)
116
+ await saveAgentProfile(LEGACY_AGENT_PROFILE, { api_key: legacyKey });
117
+ delete config.api_key;
118
+ await mergeIntoFile(writePath, config, readPath);
119
+ // The relocated file is now authoritative, but the legacy one still holds the secret.
120
+ if (legacyKey && readPath !== writePath)
121
+ await mergeIntoFile(readPath, config);
122
+ if (legacyKey) {
123
+ const also = readPath !== writePath ? ` and removed from ${readPath}` : '';
124
+ console.warn(`[orbitmap] Migrated the agent API key out of ${writePath}${also} into ` +
125
+ `${credentialsPath()} (profile "${LEGACY_AGENT_PROFILE}"). ` +
126
+ 'See docs/adr/0002-project-scoped-config.md.');
127
+ }
27
128
  }
28
- const area = process.env['ORBITMAP_AREA'] ||
29
- config.area ||
30
- process.env['ORBITMAP_PROJECT_ID'] ||
31
- config.project_id;
32
- return { apiKey, apiUrl, area };
129
+ catch (error) {
130
+ // Retry on the next run; the version stamp never landed, so the gate is still open.
131
+ globalMigrationAttempted = false;
132
+ if (!legacyKey)
133
+ return; // Nothing was at risk — only the version stamp failed to land.
134
+ // Loud, not silent: the key stays readable this run (restored here), but the user has
135
+ // to know their config file still holds a plaintext secret.
136
+ config.api_key = legacyKey;
137
+ console.warn(`[orbitmap] Could not migrate the agent API key out of ${readPath}: ` +
138
+ `${error instanceof Error ? error.message : String(error)}. The key is still in ` +
139
+ 'plain text in that file and is being used from there for this run; fix the ' +
140
+ 'permissions (or set ORBITMAP_CONFIG_HOME to a writable directory) and re-run.');
141
+ }
142
+ }
143
+ /** Load `~/.orbitmap/config.json` (or the XDG/legacy equivalent). Runs the one-time
144
+ * migration in {@link migrateGlobalConfig} as a side effect. */
145
+ export async function loadConfig() {
146
+ const raw = await readRawConfigFile(globalConfigReadPath());
147
+ if (!raw)
148
+ return {};
149
+ const config = parseConfig(raw);
150
+ await migrateGlobalConfig(config);
151
+ return config;
33
152
  }
34
- export function resolveArea(explicit, envOrConfig) {
35
- return explicit || process.env['ORBITMAP_AREA'] || envOrConfig;
153
+ /**
154
+ * Write the global `~/.orbitmap/config.json` (or its relocated equivalent).
155
+ *
156
+ * A **merge**, not a replace: keys already in the file that `config` does not set are kept
157
+ * (see {@link mergeIntoFile}). Never writes `api_key` — route secrets through
158
+ * `saveAgentProfile` in `oauth.ts` instead.
159
+ */
160
+ export async function saveGlobalConfig(config) {
161
+ const file = globalConfigWritePath();
162
+ await mergeIntoFile(file, config, globalConfigReadPath());
163
+ return file;
164
+ }
165
+ // ── Project config ──────────────────────────────────────────────
166
+ /**
167
+ * Write `<dir>/.orbitmap/config.json` (`dir` defaults to `process.cwd()`) and return its
168
+ * path. Committable — never write `api_key` or any other secret here.
169
+ *
170
+ * A **merge**, like {@link saveGlobalConfig}: this file is meant to be committed, so a
171
+ * teammate re-running `orbitmap init` in a checkout must not silently drop the `mode` (or
172
+ * any future field) the repository already agreed on — a loss that would then propagate to
173
+ * everyone through git.
174
+ */
175
+ export async function saveProjectConfig(config, dir = process.cwd()) {
176
+ const file = join(resolve(dir), ORBITMAP_DIR, CONFIG_FILENAME);
177
+ await mergeIntoFile(file, config);
178
+ return file;
36
179
  }
37
- /*
38
- * Mode is NOT resolved here: every rung above the global config (§3.3) inspects the
39
- * filesystem, so the whole ladder lives in `workspace-resolve.ts` (`resolveMode`).
40
- * The `mode`/`workspace_path` fields above remain the ladder's last resort for projects
41
- * that were never initialised themselves.
180
+ /**
181
+ * Resolve cloud-mode credentials. Per-field layering (ADR 0002), first match wins:
182
+ *
183
+ * - **API key**: `ORBITMAP_API_KEY` env the resolved agent's profile in
184
+ * `~/.orbitmap/credentials.json` a legacy `api_key` still sitting in the global config
185
+ * because {@link migrateGlobalConfig} could not write (see there).
186
+ * - **agent** (which profile to use, when the key isn't given directly by env):
187
+ * `ORBITMAP_AGENT` env → nearest `.orbitmap/config.json` that sets `agent` → global
188
+ * config `agent` → `"default"`.
189
+ * - **API URL**: `ORBITMAP_API_URL` env → {@link DEFAULT_API_URL}. There is deliberately no
190
+ * config-file override any more — a single supported host means nothing should be able to
191
+ * pin a stale one (see ADR 0002).
192
+ *
193
+ * **Area is deliberately not resolved here.** There is exactly one area ladder, `resolveArea`
194
+ * in `workspace-resolve.ts`; a second, shorter copy here used to disagree with it about the
195
+ * `link.json` rung. `createClient` applies the resolved area.
42
196
  */
197
+ export async function resolveAuth(options = {}) {
198
+ const cwd = options.cwd ?? process.cwd();
199
+ const config = options.config ?? (await loadConfig());
200
+ const apiUrl = process.env['ORBITMAP_API_URL'] || DEFAULT_API_URL;
201
+ let apiKey = process.env['ORBITMAP_API_KEY'];
202
+ if (!apiKey) {
203
+ const agent = process.env['ORBITMAP_AGENT'] ||
204
+ resolveProjectConfigField('agent', cwd)?.value ||
205
+ config.agent ||
206
+ LEGACY_AGENT_PROFILE;
207
+ apiKey = (await loadAgentProfile(agent))?.api_key;
208
+ }
209
+ // Last resort: an unmigrated global config (the migration write failed — it warned).
210
+ if (!apiKey)
211
+ apiKey = config.api_key;
212
+ if (!apiKey) {
213
+ throw new Error('Missing API key. Set ORBITMAP_API_KEY env var or run `orbitmap init`.');
214
+ }
215
+ return { apiKey, apiUrl };
216
+ }
43
217
  //# sourceMappingURL=config.js.map