orbitmap 0.4.0-next.0 → 0.4.2

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 +260 -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
@@ -2,8 +2,12 @@ import { existsSync, readFileSync } from 'node:fs';
2
2
  import { dirname, isAbsolute, join, resolve } from 'node:path';
3
3
  import { loadConfig } from './config.js';
4
4
  import { OrbitMapAPIError } from './errors.js';
5
- /** Name of the per-project OrbitMap directory (`<project>/.orbitmap`). */
6
- export const ORBITMAP_DIR = '.orbitmap';
5
+ import { CONFIG_FILENAME, globalConfigReadPath, ORBITMAP_DIR } from './paths.js';
6
+ import { resolveProjectConfigField } from './project-config.js';
7
+ /** Name of the per-project OrbitMap directory (`<project>/.orbitmap`). Defined in
8
+ * `paths.ts` (which owns the project-config walk-up) and re-exported here, where most
9
+ * callers already look for it. */
10
+ export { ORBITMAP_DIR };
7
11
  /** Project-local pointer at a workspace living elsewhere on disk. */
8
12
  export const LINK_FILE = 'link.json';
9
13
  /** Marker file that identifies a directory as a local workspace. */
@@ -73,18 +77,32 @@ function readLinkFile(file) {
73
77
  }
74
78
  }
75
79
  /**
76
- * Mode resolution (§3.3) — **per project first, global config only as a fallback**,
77
- * first match wins:
80
+ * Mode resolution (ADR 0002, extending spec §3.3) — **per project first, global config
81
+ * only as a fallback**, first match wins:
78
82
  *
79
83
  * 1. `--workspace <path>` flag → local (explicit override, no further checks)
80
84
  * 2. `ORBITMAP_MODE=local|cloud` → that mode, for this invocation
81
- * 3. local auto-detect: nearest `.orbitmap/link.json` or `.orbitmap/workspace.yml`,
85
+ * 3. nearest `.orbitmap/config.json` **that sets `mode`** → that value **[ADR 0002]**
86
+ * 4. local auto-detect: nearest `.orbitmap/link.json` or `.orbitmap/workspace.yml`,
82
87
  * walking up from cwd to the filesystem root (as git looks for `.git`) → local
83
- * 4. global config `mode` (absent or unknown ⇒ `'cloud'`)
88
+ * 5. global config `mode` (absent or unknown ⇒ `'cloud'`)
84
89
  *
85
- * Rung 3 is what keeps projects independent: a directory that ran `orbitmap init` → local
86
- * is local from then on, and a directory that never did keeps resolving through its own
87
- * config — one project's choice can never flip another's.
90
+ * Rung 3 is resolved **per field** (`resolveProjectConfigField`), not "nearest file wins":
91
+ * a `packages/api/.orbitmap/config.json` that only pins an `agent` does not shadow the
92
+ * repository root's `mode`. See ADR 0002 §2.
93
+ *
94
+ * Rung 3 exists because the whole per-project scoping mechanism (link.json,
95
+ * workspace.yml-based auto-detect) was originally built only for *local* mode — a cloud
96
+ * project had no file of its own to declare itself cloud in, so it depended entirely on
97
+ * rung 5 never being flipped by another project. `.orbitmap/config.json` gives cloud
98
+ * projects that same voice, and it outranks rung 4 on purpose: a project that explicitly
99
+ * declares `mode: "cloud"` must not be dragged back into local mode by a leftover
100
+ * `link.json`/`workspace.yml` in the same directory.
101
+ *
102
+ * Rung 4 is what keeps *un-declared* projects independent: a directory that ran
103
+ * `orbitmap init` → local is local from then on via its own marker file, and a directory
104
+ * that never did keeps resolving through its own config — one project's choice can never
105
+ * flip another's.
88
106
  */
89
107
  export function resolveMode(options = {}) {
90
108
  if (options.workspace ?? workspaceFlag)
@@ -93,14 +111,15 @@ export function resolveMode(options = {}) {
93
111
  if (env === 'local' || env === 'cloud')
94
112
  return env;
95
113
  const cwd = resolve(options.cwd ?? process.cwd());
114
+ const projectMode = resolveProjectConfigField('mode', cwd)?.value;
115
+ if (projectMode)
116
+ return projectMode;
96
117
  const link = options.link !== undefined ? options.link : findLinkFile(cwd);
97
118
  if (link)
98
119
  return 'local';
99
120
  if (findWorkspaceDir(cwd))
100
121
  return 'local';
101
- return (options.config?.mode ?? '').toString().trim().toLowerCase() === 'local'
102
- ? 'local'
103
- : 'cloud';
122
+ return options.config?.mode === 'local' ? 'local' : 'cloud';
104
123
  }
105
124
  /**
106
125
  * Workspace directory resolution (§3.3), first match wins:
@@ -108,11 +127,21 @@ export function resolveMode(options = {}) {
108
127
  * 2. `ORBITMAP_WORKSPACE` env var
109
128
  * 3. nearest `.orbitmap/link.json` (walking up from cwd) → its `workspace` field
110
129
  * 4. nearest `.orbitmap/workspace.yml` (walking up from cwd) → that `.orbitmap`
111
- * 5. global config `workspace_path`
112
- * 6. otherwise: `OrbitMapAPIError` with code `WORKSPACE_NOT_FOUND`
130
+ * 5. the `.orbitmap/` directory of the nearest project config that sets `mode: "local"`,
131
+ * when that directory is itself a workspace **[ADR 0002]**
132
+ * 6. global config `workspace_path` — **must be absolute** (a relative value is ignored
133
+ * with a warning; see {@link OrbitMapConfig.workspace_path})
134
+ * 7. otherwise: `OrbitMapAPIError` with code `WORKSPACE_NOT_FOUND`
113
135
  *
114
- * The returned path is absolute; its existence is not verified (except for rung 4,
115
- * which is defined by the marker file).
136
+ * Rung 5 is what makes a committed `{"mode": "local"}` usable on its own: without it, a
137
+ * project config that declares local mode has nowhere to point and every command fails with
138
+ * `WORKSPACE_NOT_FOUND`. It usually resolves to the same directory as rung 4 — the point is
139
+ * that it does not *depend* on the auto-detect walk finding the marker first, and that it
140
+ * anchors on the config file that made this project local rather than on the current
141
+ * directory.
142
+ *
143
+ * The returned path is absolute; its existence is not verified (except for rungs 4 and 5,
144
+ * which are defined by the marker file).
116
145
  */
117
146
  export function resolveWorkspacePath(options = {}) {
118
147
  const cwd = resolve(options.cwd ?? process.cwd());
@@ -130,20 +159,50 @@ export function resolveWorkspacePath(options = {}) {
130
159
  const local = findWorkspaceDir(cwd);
131
160
  if (local)
132
161
  return local;
162
+ const declaredLocal = resolveProjectConfigField('mode', cwd);
163
+ if (declaredLocal?.value === 'local') {
164
+ const configDir = dirname(declaredLocal.file);
165
+ if (existsSync(join(configDir, WORKSPACE_FILE)))
166
+ return configDir;
167
+ }
133
168
  const configured = options.config?.workspace_path;
134
- if (configured)
135
- return resolve(cwd, configured);
169
+ if (configured) {
170
+ if (isAbsolute(configured))
171
+ return resolve(configured);
172
+ warnRelativeWorkspacePath(configured);
173
+ }
136
174
  throw OrbitMapAPIError.workspaceNotFound();
137
175
  }
176
+ let warnedRelativeWorkspacePath = false;
138
177
  /**
139
- * Area resolution (§3.3), explicit sources only:
140
- * `--area` → `ORBITMAP_AREA` → `link.json.area` → global config `area`.
178
+ * A relative global `workspace_path` is ignored, not resolved against `process.cwd()`.
179
+ *
180
+ * Resolving it against the current directory would make one machine-wide setting mean a
181
+ * different workspace in every project — the same cross-project leak ADR 0002 removes from
182
+ * `area`, and worse here because it silently points at a directory that does not exist
183
+ * rather than at someone else's data.
184
+ */
185
+ function warnRelativeWorkspacePath(configured) {
186
+ if (warnedRelativeWorkspacePath)
187
+ return;
188
+ warnedRelativeWorkspacePath = true;
189
+ console.warn(`[orbitmap] Ignoring "workspace_path": "${configured}" in the global config — it must ` +
190
+ 'be an absolute path. A relative one would mean a different directory in every ' +
191
+ 'project. Use --workspace or ORBITMAP_WORKSPACE for a per-invocation override.');
192
+ }
193
+ /**
194
+ * Area resolution (ADR 0002, extending spec §3.3), explicit sources only:
195
+ * `--area` → `ORBITMAP_AREA` → `link.json.area` → nearest `.orbitmap/config.json`
196
+ * **that sets `area`** **[ADR 0002]** → global config `area` (deprecated).
197
+ *
198
+ * The project-config rung is per-field (`resolveProjectConfigField`): a nested config that
199
+ * sets only `agent` does not hide an `area` pinned by the repository root.
141
200
  *
142
201
  * The two remaining rungs — the workspace's own `workspace.yml` `default_area` (which
143
- * sits *between* `link.json` and the global config) and "workspace has exactly one area →
144
- * auto-select it" — require reading the workspace tree and therefore live in the local
145
- * adapter (`createLocalContext`); this function stays synchronous and file-store-free so
146
- * that cloud mode never touches a workspace file. The `source` lets the adapter tell an
202
+ * sits *between* the project config and the global config) and "workspace has exactly one
203
+ * area → auto-select it" — require reading the workspace tree and therefore live in the
204
+ * local adapter (`createLocalContext`); this function stays synchronous and file-store-free
205
+ * so that cloud mode never touches a workspace file. The `source` lets the adapter tell an
147
206
  * explicit request apart from the machine-wide default.
148
207
  */
149
208
  export function resolveArea(options = {}) {
@@ -156,11 +215,33 @@ export function resolveArea(options = {}) {
156
215
  const found = options.link !== undefined ? options.link : findLinkFile(cwd);
157
216
  if (found?.link.area)
158
217
  return { area: found.link.area, source: 'link' };
218
+ const projectArea = resolveProjectConfigField('area', cwd)?.value;
219
+ if (projectArea)
220
+ return { area: projectArea, source: 'project-config' };
159
221
  const configured = options.config?.area;
160
- if (configured)
222
+ if (configured) {
223
+ warnDeprecatedGlobalArea();
161
224
  return { area: configured, source: 'config' };
225
+ }
162
226
  return {};
163
227
  }
228
+ let warnedDeprecatedGlobalArea = false;
229
+ /**
230
+ * Warn — once per process — that the deprecated machine-wide `area` rung was used.
231
+ *
232
+ * Deliberately raised from the rung itself rather than from `loadConfig()`: warning on
233
+ * every load nagged users whose global `area` is already shadowed by `ORBITMAP_AREA`, a
234
+ * project config or a `link.json` — i.e. people who have already done what the warning
235
+ * asks — and fired in local mode, where the rung is usually irrelevant.
236
+ */
237
+ function warnDeprecatedGlobalArea() {
238
+ if (warnedDeprecatedGlobalArea)
239
+ return;
240
+ warnedDeprecatedGlobalArea = true;
241
+ console.warn(`[orbitmap] The "area" in ${globalConfigReadPath()} is deprecated — move it to ` +
242
+ `${ORBITMAP_DIR}/${CONFIG_FILENAME} in the project it belongs to. Still honoured ` +
243
+ 'this version; see docs/adr/0002-project-scoped-config.md.');
244
+ }
164
245
  /** {@link resolveArea} without the rung — the historical signature. */
165
246
  export function resolveAreaSlug(options = {}) {
166
247
  return resolveArea(options).area;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-resolve.js","sourceRoot":"","sources":["../src/workspace-resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-resolve.js","sourceRoot":"","sources":["../src/workspace-resolve.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orbitmap",
3
- "version": "0.4.0-next.0",
3
+ "version": "0.4.2",
4
4
  "description": "Project management CLI for AI coding agents — works with Gemini CLI, GPT Codex, Claude Code, and any agent with shell access.",
5
5
  "type": "module",
6
6
  "bin": {