orbitmap 0.4.2 → 0.4.3
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.
- package/README.md +60 -13
- package/dist/adapters/cloud.d.ts +53 -21
- package/dist/adapters/cloud.js +95 -29
- package/dist/adapters/cloud.js.map +1 -1
- package/dist/adapters/factory.d.ts +3 -0
- package/dist/adapters/factory.js +8 -1
- package/dist/adapters/factory.js.map +1 -1
- package/dist/adapters/local/adapter.d.ts +0 -20
- package/dist/adapters/local/adapter.js +0 -18
- package/dist/adapters/local/adapter.js.map +1 -1
- package/dist/adapters/local/context.d.ts +1 -1
- package/dist/adapters/local/context.js +10 -2
- package/dist/adapters/local/context.js.map +1 -1
- package/dist/adapters/local/entities/tasks.d.ts +9 -1
- package/dist/adapters/local/entities/tasks.js +47 -5
- package/dist/adapters/local/entities/tasks.js.map +1 -1
- package/dist/adapters/local/entities/work-items.d.ts +14 -30
- package/dist/adapters/local/entities/work-items.js +63 -47
- package/dist/adapters/local/entities/work-items.js.map +1 -1
- package/dist/adapters/local/rules.d.ts +4 -4
- package/dist/adapters/local/rules.js +4 -19
- package/dist/adapters/local/rules.js.map +1 -1
- package/dist/adapters/local/shapes.d.ts +27 -7
- package/dist/adapters/local/shapes.js +41 -5
- package/dist/adapters/local/shapes.js.map +1 -1
- package/dist/adapters/local/store.d.ts +55 -6
- package/dist/adapters/local/store.js +122 -8
- package/dist/adapters/local/store.js.map +1 -1
- package/dist/adapters/local/types.d.ts +9 -2
- package/dist/adapters/local/types.js +9 -2
- package/dist/adapters/local/types.js.map +1 -1
- package/dist/adapters/types.d.ts +7 -20
- package/dist/agent-instructions.d.ts +21 -8
- package/dist/agent-instructions.js +91 -35
- package/dist/agent-instructions.js.map +1 -1
- package/dist/area-directories.d.ts +75 -0
- package/dist/area-directories.js +162 -0
- package/dist/area-directories.js.map +1 -0
- package/dist/area-grouping.d.ts +55 -0
- package/dist/area-grouping.js +72 -0
- package/dist/area-grouping.js.map +1 -0
- package/dist/commands/areas.js +30 -2
- package/dist/commands/areas.js.map +1 -1
- package/dist/commands/assign.d.ts +1 -0
- package/dist/commands/assign.js +2 -0
- package/dist/commands/assign.js.map +1 -1
- package/dist/commands/context.d.ts +95 -0
- package/dist/commands/context.js +104 -2
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/create.d.ts +1 -0
- package/dist/commands/create.js +19 -14
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/dep.js +5 -8
- package/dist/commands/dep.js.map +1 -1
- package/dist/commands/doc-import.d.ts +1 -0
- package/dist/commands/doc-import.js +8 -26
- package/dist/commands/doc-import.js.map +1 -1
- package/dist/commands/doc-patch.js +16 -52
- package/dist/commands/doc-patch.js.map +1 -1
- package/dist/commands/doc-share.js +4 -0
- package/dist/commands/doc-share.js.map +1 -1
- package/dist/commands/doc-update.js +4 -8
- package/dist/commands/doc-update.js.map +1 -1
- package/dist/commands/doc.js +7 -12
- package/dist/commands/doc.js.map +1 -1
- package/dist/commands/docs-cache.js +23 -10
- package/dist/commands/docs-cache.js.map +1 -1
- package/dist/commands/docs.js +29 -10
- package/dist/commands/docs.js.map +1 -1
- package/dist/commands/get.js +4 -10
- package/dist/commands/get.js.map +1 -1
- package/dist/commands/ideas.d.ts +3 -1
- package/dist/commands/ideas.js +26 -49
- package/dist/commands/ideas.js.map +1 -1
- package/dist/commands/init.d.ts +24 -1
- package/dist/commands/init.js +0 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/intent.js +10 -14
- package/dist/commands/intent.js.map +1 -1
- package/dist/commands/issues.d.ts +3 -1
- package/dist/commands/issues.js +47 -72
- package/dist/commands/issues.js.map +1 -1
- package/dist/commands/log.d.ts +1 -0
- package/dist/commands/log.js +18 -17
- package/dist/commands/log.js.map +1 -1
- package/dist/commands/mission.js +3 -12
- package/dist/commands/mission.js.map +1 -1
- package/dist/commands/orbit.d.ts +7 -1
- package/dist/commands/orbit.js +13 -24
- package/dist/commands/orbit.js.map +1 -1
- package/dist/commands/setup-agent.d.ts +97 -4
- package/dist/commands/setup-agent.js +265 -38
- package/dist/commands/setup-agent.js.map +1 -1
- package/dist/commands/setup-mcp.d.ts +2 -0
- package/dist/commands/setup-mcp.js +17 -40
- package/dist/commands/setup-mcp.js.map +1 -1
- package/dist/commands/start.d.ts +43 -0
- package/dist/commands/start.js +158 -3
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.js +5 -15
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/subtask.d.ts +1 -0
- package/dist/commands/subtask.js +9 -2
- package/dist/commands/subtask.js.map +1 -1
- package/dist/commands/task-edit-content.js +4 -8
- package/dist/commands/task-edit-content.js.map +1 -1
- package/dist/commands/task.d.ts +7 -0
- package/dist/commands/task.js +5 -2
- package/dist/commands/task.js.map +1 -1
- package/dist/commands/tasks.d.ts +35 -0
- package/dist/commands/tasks.js +45 -9
- package/dist/commands/tasks.js.map +1 -1
- package/dist/commands/vibes.d.ts +3 -1
- package/dist/commands/vibes.js +41 -31
- package/dist/commands/vibes.js.map +1 -1
- package/dist/config.d.ts +11 -0
- package/dist/config.js +14 -1
- package/dist/config.js.map +1 -1
- package/dist/doc-cache.d.ts +74 -5
- package/dist/doc-cache.js +106 -22
- package/dist/doc-cache.js.map +1 -1
- package/dist/enums.d.ts +26 -0
- package/dist/enums.js +53 -0
- package/dist/enums.js.map +1 -0
- package/dist/errors.d.ts +67 -0
- package/dist/errors.js +82 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.js +134 -56
- package/dist/index.js.map +1 -1
- package/dist/mcp-config.d.ts +42 -1
- package/dist/mcp-config.js +82 -2
- package/dist/mcp-config.js.map +1 -1
- package/dist/oauth.js +10 -10
- package/dist/output.d.ts +12 -0
- package/dist/output.js +39 -1
- package/dist/output.js.map +1 -1
- package/dist/paths.d.ts +40 -0
- package/dist/paths.js +174 -9
- package/dist/paths.js.map +1 -1
- package/dist/project-config.d.ts +42 -1
- package/dist/project-config.js +51 -0
- package/dist/project-config.js.map +1 -1
- package/dist/workspace-resolve.d.ts +179 -9
- package/dist/workspace-resolve.js +288 -20
- package/dist/workspace-resolve.js.map +1 -1
- package/dist/write-target.d.ts +56 -0
- package/dist/write-target.js +170 -0
- package/dist/write-target.js.map +1 -0
- package/package.json +1 -1
- package/dist/commands/create-project.d.ts +0 -6
- package/dist/commands/create-project.js +0 -28
- package/dist/commands/create-project.js.map +0 -1
- package/dist/commands/projects.d.ts +0 -3
- package/dist/commands/projects.js +0 -28
- package/dist/commands/projects.js.map +0 -1
|
@@ -1,11 +1,91 @@
|
|
|
1
1
|
export type AgentType = 'claude' | 'gemini' | 'codex' | 'cursor' | 'windsurf' | 'generic';
|
|
2
|
+
/**
|
|
3
|
+
* Where the OrbitMap agent instructions are installed.
|
|
4
|
+
*
|
|
5
|
+
* - `user` — the agent's personal configuration directory (`~/.claude`, `~/.gemini`,
|
|
6
|
+
* `~/.codex`). This is the DEFAULT, because agent skills do **not** traverse
|
|
7
|
+
* directories: a project-level `.claude/skills/` is invisible to a session
|
|
8
|
+
* started in a sibling or child repository, while `CLAUDE.md` *is* inherited
|
|
9
|
+
* downwards — so a project-scope install hands sub-directories a hook that
|
|
10
|
+
* tells them to load skills they cannot see. A workspace now legitimately
|
|
11
|
+
* spans several area directories (IN-rwb5qu), so one project-scope install
|
|
12
|
+
* would only ever cover one of them.
|
|
13
|
+
* - `project` — the current directory, as before. Still fully supported, but explicit.
|
|
14
|
+
*/
|
|
15
|
+
export type SkillScope = 'project' | 'user';
|
|
16
|
+
/** The documented default. Exported so `init` and the tests agree on one value. */
|
|
17
|
+
export declare const DEFAULT_SKILL_SCOPE: SkillScope;
|
|
18
|
+
export declare const SKILL_SCOPES: readonly SkillScope[];
|
|
2
19
|
/**
|
|
3
20
|
* Menu order for "which agent are you using?" — shared with `init`, which asks the same
|
|
4
21
|
* question through its own readline interface (see the note on {@link pickAgent}).
|
|
5
22
|
* The first entry is also the documented default when a caller needs one.
|
|
6
23
|
*/
|
|
7
24
|
export declare const AGENT_MENU_ORDER: readonly AgentType[];
|
|
25
|
+
/** Parse a user-supplied `--scope` value; `null` for anything unknown. */
|
|
26
|
+
export declare function parseSkillScope(value: string): SkillScope | null;
|
|
27
|
+
/** Every accepted `--scope` value, for help text and error messages. */
|
|
28
|
+
export declare function skillScopeNames(): string;
|
|
29
|
+
/**
|
|
30
|
+
* The resolved answer to "which files does this install touch?".
|
|
31
|
+
*
|
|
32
|
+
* `skillsDir` is `null` for agents with no skill ecosystem (everything is inlined into
|
|
33
|
+
* `configPath` instead). `scope` is the scope that was actually used, which may differ
|
|
34
|
+
* from the requested one — see {@link AgentDef.userDir}.
|
|
35
|
+
*/
|
|
36
|
+
export interface InstallTarget {
|
|
37
|
+
scope: SkillScope;
|
|
38
|
+
requestedScope: SkillScope;
|
|
39
|
+
/** Absolute directory that holds `<name>/SKILL.md`, or `null` for non-Claude agents. */
|
|
40
|
+
skillsDir: string | null;
|
|
41
|
+
/** Absolute path of the instruction file the marker block is written to. */
|
|
42
|
+
configPath: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Resolve where an install lands.
|
|
46
|
+
*
|
|
47
|
+
* User scope writes **only** under the agent's personal config directory — nothing is
|
|
48
|
+
* written into the project. That is the point: at user scope the skills and the hook
|
|
49
|
+
* that references them are both visible from every directory, so there is no reason to
|
|
50
|
+
* leave a second, narrower copy behind in one repository.
|
|
51
|
+
*/
|
|
52
|
+
export declare function resolveInstallTarget(agentType: AgentType, scope: SkillScope, cwd: string, homeDir?: string): InstallTarget;
|
|
8
53
|
export declare function detectAgent(cwdOverride?: string): AgentType | null;
|
|
54
|
+
/**
|
|
55
|
+
* What a previous project-scope install left behind in `cwd`.
|
|
56
|
+
*
|
|
57
|
+
* This is the upgrade hazard of moving the default to user scope: someone who ran the
|
|
58
|
+
* old `init` has skills in BOTH `./.claude/skills/` and `~/.claude/skills/`, and the
|
|
59
|
+
* project copy silently WINS in that directory. Without a signal they would keep running
|
|
60
|
+
* stale skill text forever, and every future `orbitmap` upgrade would refresh only the
|
|
61
|
+
* copy that is not being read.
|
|
62
|
+
*/
|
|
63
|
+
export interface StaleProjectInstall {
|
|
64
|
+
/** Absolute paths of the four skill directories this CLI wrote, that still exist. */
|
|
65
|
+
skillDirs: string[];
|
|
66
|
+
/** Absolute path of the agent config file that still carries our marker block, if any. */
|
|
67
|
+
configPath: string | null;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Find a previous project-scope install in `cwd`.
|
|
71
|
+
*
|
|
72
|
+
* Deliberately narrow: only the four skill directories this CLI creates by name, and only
|
|
73
|
+
* a config file that actually contains OUR marker block. A user's own skill in
|
|
74
|
+
* `.claude/skills/`, an unrelated `CLAUDE.md`, or a `.claude/` holding only settings are
|
|
75
|
+
* invisible here — which is what makes the cleanup below safe.
|
|
76
|
+
*/
|
|
77
|
+
export declare function detectProjectInstall(cwd: string, agentType: AgentType): StaleProjectInstall | null;
|
|
78
|
+
/**
|
|
79
|
+
* Remove a stale project-scope install — and nothing else.
|
|
80
|
+
*
|
|
81
|
+
* Only ever touches: the four skill directories named in {@link StaleProjectInstall}, and
|
|
82
|
+
* the marker-delimited block inside the config file. Text outside the markers is kept
|
|
83
|
+
* verbatim; the config file itself is deleted only when the block was its entire content
|
|
84
|
+
* (i.e. this CLI created it). Parent directories are removed only when they are already
|
|
85
|
+
* empty — a `.claude/` holding a user's own skills or `settings.json` survives intact.
|
|
86
|
+
* There is no recursive delete of `.claude` anywhere in this function.
|
|
87
|
+
*/
|
|
88
|
+
export declare function removeProjectInstall(stale: StaleProjectInstall): string[];
|
|
9
89
|
/** Human label for an agent type (for prompts in other commands, e.g. `init`). */
|
|
10
90
|
export declare function agentLabel(agentType: AgentType): string;
|
|
11
91
|
/** The config file an agent type's instruction block is written to (e.g. `CLAUDE.md`). */
|
|
@@ -20,11 +100,24 @@ export declare function agentTypeNames(): string;
|
|
|
20
100
|
export declare function parseAgentType(value: string): AgentType | null;
|
|
21
101
|
/**
|
|
22
102
|
* Install the OrbitMap skills for one agent, non-interactively and idempotently.
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
103
|
+
*
|
|
104
|
+
* At the default `user` scope: Claude Code → `~/.claude/skills/<name>/SKILL.md` × 4 +
|
|
105
|
+
* the hook block in `~/.claude/CLAUDE.md`; Gemini/Codex → the inlined block in
|
|
106
|
+
* `~/.gemini/GEMINI.md` / `~/.codex/AGENTS.md`. **Nothing is written into `cwd`.**
|
|
107
|
+
* At `project` scope everything lands in `cwd`, exactly as it used to.
|
|
108
|
+
*
|
|
109
|
+
* Safe to call repeatedly: identical input leaves the tree byte-identical, and the
|
|
110
|
+
* marker block is replaced in place rather than appended again.
|
|
111
|
+
*
|
|
112
|
+
* A user-scope install additionally reports (and can clean up) a leftover project-scope
|
|
113
|
+
* install in `cwd`, which would otherwise silently shadow it — see
|
|
114
|
+
* {@link handleStaleProjectInstall}.
|
|
26
115
|
*/
|
|
27
|
-
export declare function installAgentSkills(cwd: string, agentType: AgentType
|
|
116
|
+
export declare function installAgentSkills(cwd: string, agentType: AgentType, scope?: SkillScope, options?: {
|
|
117
|
+
cleanProject?: boolean;
|
|
118
|
+
}): Promise<InstallTarget>;
|
|
28
119
|
export declare function setupAgentCommand(options: {
|
|
29
120
|
agent?: string;
|
|
121
|
+
scope?: string;
|
|
122
|
+
cleanProject?: boolean;
|
|
30
123
|
}): Promise<void>;
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
|
+
import os from 'node:os';
|
|
2
3
|
import path from 'node:path';
|
|
3
4
|
import readline from 'node:readline';
|
|
4
5
|
import { SKILLS, MARKER_START, MARKER_END, buildSkillFile, buildClaudeHook, buildGenericBlock, } from '../agent-instructions.js';
|
|
6
|
+
/** The documented default. Exported so `init` and the tests agree on one value. */
|
|
7
|
+
export const DEFAULT_SKILL_SCOPE = 'user';
|
|
8
|
+
export const SKILL_SCOPES = ['user', 'project'];
|
|
5
9
|
const AGENTS = {
|
|
6
|
-
claude: { label: 'Claude Code', file: 'CLAUDE.md' },
|
|
7
|
-
gemini: { label: 'Gemini CLI', file: 'GEMINI.md' },
|
|
8
|
-
codex: { label: 'GPT Codex CLI', file: 'AGENTS.md' },
|
|
9
|
-
cursor: { label: 'Cursor', file: '.cursorrules' },
|
|
10
|
-
windsurf: { label: 'Windsurf', file: '.windsurfrules' },
|
|
11
|
-
generic: { label: 'Other / Generic', file: 'AGENTS.md' },
|
|
10
|
+
claude: { label: 'Claude Code', file: 'CLAUDE.md', userDir: '.claude' },
|
|
11
|
+
gemini: { label: 'Gemini CLI', file: 'GEMINI.md', userDir: '.gemini' },
|
|
12
|
+
codex: { label: 'GPT Codex CLI', file: 'AGENTS.md', userDir: '.codex' },
|
|
13
|
+
cursor: { label: 'Cursor', file: '.cursorrules', userDir: null },
|
|
14
|
+
windsurf: { label: 'Windsurf', file: '.windsurfrules', userDir: null },
|
|
15
|
+
generic: { label: 'Other / Generic', file: 'AGENTS.md', userDir: null },
|
|
12
16
|
};
|
|
13
17
|
/**
|
|
14
18
|
* Menu order for "which agent are you using?" — shared with `init`, which asks the same
|
|
@@ -24,11 +28,49 @@ export const AGENT_MENU_ORDER = [
|
|
|
24
28
|
'generic',
|
|
25
29
|
];
|
|
26
30
|
const MENU_ORDER = [...AGENT_MENU_ORDER];
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
/** Parse a user-supplied `--scope` value; `null` for anything unknown. */
|
|
32
|
+
export function parseSkillScope(value) {
|
|
33
|
+
const key = value.trim().toLowerCase();
|
|
34
|
+
return SKILL_SCOPES.includes(key) ? key : null;
|
|
35
|
+
}
|
|
36
|
+
/** Every accepted `--scope` value, for help text and error messages. */
|
|
37
|
+
export function skillScopeNames() {
|
|
38
|
+
return SKILL_SCOPES.join(', ');
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resolve where an install lands.
|
|
42
|
+
*
|
|
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
|
|
45
|
+
* that references them are both visible from every directory, so there is no reason to
|
|
46
|
+
* leave a second, narrower copy behind in one repository.
|
|
47
|
+
*/
|
|
48
|
+
export function resolveInstallTarget(agentType, scope, cwd, homeDir = os.homedir()) {
|
|
49
|
+
const def = AGENTS[agentType];
|
|
50
|
+
const useUser = scope === 'user' && def.userDir !== null;
|
|
51
|
+
const actual = useUser ? 'user' : 'project';
|
|
52
|
+
if (useUser) {
|
|
53
|
+
const root = path.join(homeDir, def.userDir);
|
|
54
|
+
return {
|
|
55
|
+
scope: actual,
|
|
56
|
+
requestedScope: scope,
|
|
57
|
+
skillsDir: agentType === 'claude' ? path.join(root, 'skills') : null,
|
|
58
|
+
configPath: path.join(root, def.file),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
scope: actual,
|
|
63
|
+
requestedScope: scope,
|
|
64
|
+
skillsDir: agentType === 'claude' ? path.join(cwd, '.claude', 'skills') : null,
|
|
65
|
+
configPath: path.join(cwd, def.file),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/** Render a path for the console: relative to `cwd` at project scope, absolute at user scope. */
|
|
69
|
+
function displayPath(target, cwd, file) {
|
|
70
|
+
if (target.scope === 'user')
|
|
71
|
+
return file;
|
|
72
|
+
const rel = path.relative(cwd, file);
|
|
73
|
+
return rel.startsWith('..') ? file : rel;
|
|
32
74
|
}
|
|
33
75
|
// --- Helpers ---
|
|
34
76
|
function prompt(question) {
|
|
@@ -77,11 +119,42 @@ async function pickAgent() {
|
|
|
77
119
|
console.log(`Please enter a number between 1 and ${MENU_ORDER.length}.`);
|
|
78
120
|
}
|
|
79
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Ask where the skills go — the same question `init` asks, for the same reason: a
|
|
124
|
+
* user-scope install writes into the user's HOME directory, which is a real side effect
|
|
125
|
+
* outside the project and not a choice to make silently on their behalf.
|
|
126
|
+
*
|
|
127
|
+
* `setup-agent` already prompts for the agent type when `--agent` is absent, so this fits
|
|
128
|
+
* the command's existing shape. It is only ever reached interactively and only when
|
|
129
|
+
* `--scope` was not given.
|
|
130
|
+
*/
|
|
131
|
+
async function askSkillScope() {
|
|
132
|
+
console.log('\nWhere should the OrbitMap skills be installed?');
|
|
133
|
+
console.log(' 1) Global (~/.claude) — every session and subagent sees them, in any directory;');
|
|
134
|
+
console.log(' writes into your home directory (recommended)');
|
|
135
|
+
console.log(' 2) Project (this dir) — only sessions started in this directory can load them');
|
|
136
|
+
for (let attempt = 0; attempt < 3; attempt += 1) {
|
|
137
|
+
const answer = (await prompt('Select (1-2, Enter = 1): ')).trim().toLowerCase();
|
|
138
|
+
if (answer === '')
|
|
139
|
+
return 'user';
|
|
140
|
+
if (answer === '1' || answer === 'g' || answer === 'global' || answer === 'u' || answer === 'user') {
|
|
141
|
+
return 'user';
|
|
142
|
+
}
|
|
143
|
+
if (answer === '2' || answer === 'p' || answer === 'project' || answer === 'l' || answer === 'local') {
|
|
144
|
+
return 'project';
|
|
145
|
+
}
|
|
146
|
+
console.log('Please enter 1 or 2.');
|
|
147
|
+
}
|
|
148
|
+
console.log('No usable answer — using the recommended global install.');
|
|
149
|
+
return 'user';
|
|
150
|
+
}
|
|
80
151
|
/**
|
|
81
152
|
* Write a marker-delimited block into a config file, replacing any existing block
|
|
82
153
|
* between the markers. Returns what happened so the caller can report it.
|
|
83
154
|
*/
|
|
84
155
|
function writeBlock(filePath, block) {
|
|
156
|
+
// At user scope the directory (`~/.claude`, `~/.gemini`, …) may not exist yet.
|
|
157
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
85
158
|
if (fs.existsSync(filePath)) {
|
|
86
159
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
87
160
|
const startIdx = content.indexOf(MARKER_START);
|
|
@@ -103,61 +176,173 @@ function writeBlock(filePath, block) {
|
|
|
103
176
|
return 'created';
|
|
104
177
|
}
|
|
105
178
|
/**
|
|
106
|
-
* Install every Claude skill file (
|
|
179
|
+
* Install every Claude skill file (`<skillsDir>/<name>/SKILL.md`).
|
|
107
180
|
* Writing is unconditional, so re-running is idempotent.
|
|
108
181
|
*/
|
|
109
|
-
function writeSkills(
|
|
182
|
+
function writeSkills(skillsDir) {
|
|
110
183
|
return SKILLS.map((skill) => {
|
|
111
|
-
const
|
|
112
|
-
const file = path.join(cwd, relFile);
|
|
184
|
+
const file = path.join(skillsDir, skill.name, 'SKILL.md');
|
|
113
185
|
const existed = fs.existsSync(file);
|
|
114
186
|
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
115
187
|
fs.writeFileSync(file, buildSkillFile(skill), 'utf-8');
|
|
116
|
-
return { name: skill.name, file
|
|
188
|
+
return { name: skill.name, file, action: existed ? 'updated' : 'created' };
|
|
117
189
|
});
|
|
118
190
|
}
|
|
119
191
|
// --- Per-agent installers ---
|
|
120
192
|
/**
|
|
121
193
|
* Claude: install the four on-demand skills + a thin always-on hook in CLAUDE.md.
|
|
122
194
|
* This mirrors the MCP split of system-instructions (always on) + tool catalogue (on demand).
|
|
195
|
+
*
|
|
196
|
+
* The hook and the skills always land in the *same* scope, so the hook can never promise
|
|
197
|
+
* skills that the reading session cannot load: at user scope both live under `~/.claude`
|
|
198
|
+
* (visible everywhere); at project scope both live in this directory, and the hook says so.
|
|
123
199
|
*/
|
|
124
|
-
function setupClaude(cwd) {
|
|
125
|
-
const skills = writeSkills(
|
|
126
|
-
const
|
|
127
|
-
const hookAction = writeBlock(hookPath, buildClaudeHook());
|
|
200
|
+
function setupClaude(cwd, target) {
|
|
201
|
+
const skills = writeSkills(target.skillsDir);
|
|
202
|
+
const hookAction = writeBlock(target.configPath, buildClaudeHook(target.scope));
|
|
128
203
|
for (const skill of skills) {
|
|
129
|
-
console.log(`${skill.action === 'created' ? 'Installed' : 'Updated'} the \`${skill.name}\` skill at
|
|
204
|
+
console.log(`${skill.action === 'created' ? 'Installed' : 'Updated'} the \`${skill.name}\` skill at ` +
|
|
205
|
+
`${displayPath(target, cwd, skill.file)}.`);
|
|
130
206
|
}
|
|
207
|
+
const hookFile = displayPath(target, cwd, target.configPath);
|
|
131
208
|
switch (hookAction) {
|
|
132
209
|
case 'created':
|
|
133
|
-
console.log(`Created ${
|
|
210
|
+
console.log(`Created ${hookFile} with the OrbitMap hook.`);
|
|
134
211
|
break;
|
|
135
212
|
case 'updated':
|
|
136
|
-
console.log(`Updated the OrbitMap hook in ${
|
|
213
|
+
console.log(`Updated the OrbitMap hook in ${hookFile}.`);
|
|
137
214
|
break;
|
|
138
215
|
case 'appended':
|
|
139
|
-
console.log(`Appended the OrbitMap hook to ${
|
|
216
|
+
console.log(`Appended the OrbitMap hook to ${hookFile}.`);
|
|
140
217
|
break;
|
|
141
218
|
}
|
|
142
219
|
console.log('The skills load on demand — your config stays lean.');
|
|
143
220
|
}
|
|
144
221
|
/** Non-Claude agents: inline the full markdown fallback (no skill ecosystem). */
|
|
145
|
-
function setupGeneric(cwd,
|
|
146
|
-
const
|
|
147
|
-
const
|
|
148
|
-
const action = writeBlock(filePath, buildGenericBlock());
|
|
222
|
+
function setupGeneric(cwd, target) {
|
|
223
|
+
const action = writeBlock(target.configPath, buildGenericBlock());
|
|
224
|
+
const file = displayPath(target, cwd, target.configPath);
|
|
149
225
|
switch (action) {
|
|
150
226
|
case 'created':
|
|
151
|
-
console.log(`Created ${
|
|
227
|
+
console.log(`Created ${file} with OrbitMap instructions.`);
|
|
152
228
|
break;
|
|
153
229
|
case 'updated':
|
|
154
|
-
console.log(`Updated OrbitMap instructions in ${
|
|
230
|
+
console.log(`Updated OrbitMap instructions in ${file}.`);
|
|
155
231
|
break;
|
|
156
232
|
case 'appended':
|
|
157
|
-
console.log(`Appended OrbitMap instructions to ${
|
|
233
|
+
console.log(`Appended OrbitMap instructions to ${file}.`);
|
|
158
234
|
break;
|
|
159
235
|
}
|
|
160
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Find a previous project-scope install in `cwd`.
|
|
239
|
+
*
|
|
240
|
+
* Deliberately narrow: only the four skill directories this CLI creates by name, and only
|
|
241
|
+
* a config file that actually contains OUR marker block. A user's own skill in
|
|
242
|
+
* `.claude/skills/`, an unrelated `CLAUDE.md`, or a `.claude/` holding only settings are
|
|
243
|
+
* invisible here — which is what makes the cleanup below safe.
|
|
244
|
+
*/
|
|
245
|
+
export function detectProjectInstall(cwd, agentType) {
|
|
246
|
+
const skillDirs = agentType === 'claude'
|
|
247
|
+
? SKILLS.map((s) => path.join(cwd, '.claude', 'skills', s.name)).filter((dir) => fs.existsSync(path.join(dir, 'SKILL.md')))
|
|
248
|
+
: [];
|
|
249
|
+
const configFile = path.join(cwd, AGENTS[agentType].file);
|
|
250
|
+
let configPath = null;
|
|
251
|
+
if (fs.existsSync(configFile)) {
|
|
252
|
+
const content = fs.readFileSync(configFile, 'utf-8');
|
|
253
|
+
if (content.includes(MARKER_START) && content.includes(MARKER_END))
|
|
254
|
+
configPath = configFile;
|
|
255
|
+
}
|
|
256
|
+
if (skillDirs.length === 0 && configPath === null)
|
|
257
|
+
return null;
|
|
258
|
+
return { skillDirs, configPath };
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Remove a stale project-scope install — and nothing else.
|
|
262
|
+
*
|
|
263
|
+
* Only ever touches: the four skill directories named in {@link StaleProjectInstall}, and
|
|
264
|
+
* the marker-delimited block inside the config file. Text outside the markers is kept
|
|
265
|
+
* verbatim; the config file itself is deleted only when the block was its entire content
|
|
266
|
+
* (i.e. this CLI created it). Parent directories are removed only when they are already
|
|
267
|
+
* empty — a `.claude/` holding a user's own skills or `settings.json` survives intact.
|
|
268
|
+
* There is no recursive delete of `.claude` anywhere in this function.
|
|
269
|
+
*/
|
|
270
|
+
export function removeProjectInstall(stale) {
|
|
271
|
+
const removed = [];
|
|
272
|
+
for (const dir of stale.skillDirs) {
|
|
273
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
274
|
+
removed.push(dir);
|
|
275
|
+
}
|
|
276
|
+
if (stale.configPath) {
|
|
277
|
+
const content = fs.readFileSync(stale.configPath, 'utf-8');
|
|
278
|
+
const startIdx = content.indexOf(MARKER_START);
|
|
279
|
+
const endIdx = content.indexOf(MARKER_END);
|
|
280
|
+
if (startIdx !== -1 && endIdx !== -1) {
|
|
281
|
+
const rest = content.slice(0, startIdx) + content.slice(endIdx + MARKER_END.length);
|
|
282
|
+
if (rest.trim() === '') {
|
|
283
|
+
// The block was the whole file — this CLI created it, so it goes too.
|
|
284
|
+
fs.rmSync(stale.configPath, { force: true });
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
fs.writeFileSync(stale.configPath, `${rest.trim()}\n`, 'utf-8');
|
|
288
|
+
}
|
|
289
|
+
removed.push(stale.configPath);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
// Prune the containers we created, but ONLY while they are empty.
|
|
293
|
+
for (const dir of stale.skillDirs.map((d) => path.dirname(d))) {
|
|
294
|
+
pruneIfEmpty(dir);
|
|
295
|
+
pruneIfEmpty(path.dirname(dir));
|
|
296
|
+
}
|
|
297
|
+
return removed;
|
|
298
|
+
}
|
|
299
|
+
/** `rmdir` a directory only if it exists and holds nothing. Never recursive. */
|
|
300
|
+
function pruneIfEmpty(dir) {
|
|
301
|
+
try {
|
|
302
|
+
if (fs.existsSync(dir) && fs.readdirSync(dir).length === 0)
|
|
303
|
+
fs.rmdirSync(dir);
|
|
304
|
+
}
|
|
305
|
+
catch {
|
|
306
|
+
// A racing writer or a permission problem here is not worth failing the install over.
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Report — and, when a human is watching, offer to clean up — a project-scope install
|
|
311
|
+
* that the just-completed user-scope install has now shadowed.
|
|
312
|
+
*
|
|
313
|
+
* Non-interactive runs never delete anything: a scripted `init` in CI must not remove
|
|
314
|
+
* files the repository may well have committed. It prints the exact paths and the exact
|
|
315
|
+
* command instead, so the signal is never silent.
|
|
316
|
+
*/
|
|
317
|
+
async function handleStaleProjectInstall(cwd, agentType, cleanProject) {
|
|
318
|
+
const stale = detectProjectInstall(cwd, agentType);
|
|
319
|
+
if (!stale)
|
|
320
|
+
return;
|
|
321
|
+
const paths = [...stale.skillDirs, ...(stale.configPath ? [stale.configPath] : [])];
|
|
322
|
+
console.log('');
|
|
323
|
+
console.log('Heads up: this directory also has an older PROJECT-scope install:');
|
|
324
|
+
for (const p of paths)
|
|
325
|
+
console.log(` ${path.relative(cwd, p) || p}`);
|
|
326
|
+
console.log('Project-level skills take precedence here, so that older copy is what');
|
|
327
|
+
console.log('this directory would actually load — not the freshly installed one.');
|
|
328
|
+
const interactive = !!process.stdin.isTTY;
|
|
329
|
+
if (!cleanProject && !interactive) {
|
|
330
|
+
console.log('Nothing was removed (not an interactive session).');
|
|
331
|
+
console.log(`Clean it up with: orbitmap setup-agent --agent ${agentType} --scope user --clean-project`);
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
if (!cleanProject) {
|
|
335
|
+
const answer = (await prompt('Remove the project-level copy? [Y/n] ')).trim().toLowerCase();
|
|
336
|
+
if (answer === 'n' || answer === 'no') {
|
|
337
|
+
console.log('Kept. Note that this directory will keep loading the project-level copy.');
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
const removed = removeProjectInstall(stale);
|
|
342
|
+
for (const p of removed)
|
|
343
|
+
console.log(`Removed ${path.relative(cwd, p) || p}.`);
|
|
344
|
+
console.log('This directory now uses the user-scope install.');
|
|
345
|
+
}
|
|
161
346
|
/** Human label for an agent type (for prompts in other commands, e.g. `init`). */
|
|
162
347
|
export function agentLabel(agentType) {
|
|
163
348
|
return AGENTS[agentType].label;
|
|
@@ -184,21 +369,56 @@ export function parseAgentType(value) {
|
|
|
184
369
|
}
|
|
185
370
|
/**
|
|
186
371
|
* Install the OrbitMap skills for one agent, non-interactively and idempotently.
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
372
|
+
*
|
|
373
|
+
* At the default `user` scope: Claude Code → `~/.claude/skills/<name>/SKILL.md` × 4 +
|
|
374
|
+
* the hook block in `~/.claude/CLAUDE.md`; Gemini/Codex → the inlined block in
|
|
375
|
+
* `~/.gemini/GEMINI.md` / `~/.codex/AGENTS.md`. **Nothing is written into `cwd`.**
|
|
376
|
+
* At `project` scope everything lands in `cwd`, exactly as it used to.
|
|
377
|
+
*
|
|
378
|
+
* Safe to call repeatedly: identical input leaves the tree byte-identical, and the
|
|
379
|
+
* marker block is replaced in place rather than appended again.
|
|
380
|
+
*
|
|
381
|
+
* A user-scope install additionally reports (and can clean up) a leftover project-scope
|
|
382
|
+
* install in `cwd`, which would otherwise silently shadow it — see
|
|
383
|
+
* {@link handleStaleProjectInstall}.
|
|
190
384
|
*/
|
|
191
|
-
export function installAgentSkills(cwd, agentType) {
|
|
385
|
+
export async function installAgentSkills(cwd, agentType, scope = DEFAULT_SKILL_SCOPE, options = {}) {
|
|
386
|
+
const target = resolveInstallTarget(agentType, scope, cwd);
|
|
387
|
+
if (target.requestedScope === 'user' && target.scope === 'project') {
|
|
388
|
+
console.log(`${AGENTS[agentType].label} has no personal (user-level) instructions file — ` +
|
|
389
|
+
`installing into this directory instead.`);
|
|
390
|
+
}
|
|
192
391
|
if (agentType === 'claude') {
|
|
193
|
-
setupClaude(cwd);
|
|
392
|
+
setupClaude(cwd, target);
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
setupGeneric(cwd, target);
|
|
396
|
+
}
|
|
397
|
+
if (target.scope === 'user') {
|
|
398
|
+
console.log('Installed at user scope — every session and subagent sees them, in any directory.');
|
|
399
|
+
console.log('Use `--scope project` to install into this directory only.');
|
|
400
|
+
await handleStaleProjectInstall(cwd, agentType, options.cleanProject === true);
|
|
194
401
|
}
|
|
195
402
|
else {
|
|
196
|
-
|
|
403
|
+
console.log('Installed at project scope — only sessions started in this directory (or below) ' +
|
|
404
|
+
'can load the skills.');
|
|
197
405
|
}
|
|
406
|
+
return target;
|
|
198
407
|
}
|
|
199
408
|
// --- Main command ---
|
|
200
409
|
export async function setupAgentCommand(options) {
|
|
201
410
|
let agentType;
|
|
411
|
+
// An explicit `--scope` wins outright and is validated before anything is asked.
|
|
412
|
+
let scope = null;
|
|
413
|
+
if (options.scope) {
|
|
414
|
+
const parsedScope = parseSkillScope(options.scope);
|
|
415
|
+
if (!parsedScope) {
|
|
416
|
+
console.error(`Error: Unknown scope "${options.scope}". Valid scopes: ${skillScopeNames()}`);
|
|
417
|
+
process.exitCode = 1;
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
scope = parsedScope;
|
|
421
|
+
}
|
|
202
422
|
if (options.agent) {
|
|
203
423
|
const parsed = parseAgentType(options.agent);
|
|
204
424
|
if (!parsed) {
|
|
@@ -223,6 +443,13 @@ export async function setupAgentCommand(options) {
|
|
|
223
443
|
agentType = await pickAgent();
|
|
224
444
|
}
|
|
225
445
|
}
|
|
226
|
-
|
|
446
|
+
// Asked only after the agent type is settled, and only when a human is watching;
|
|
447
|
+
// a scripted run takes the documented default and never blocks.
|
|
448
|
+
if (scope === null) {
|
|
449
|
+
scope = process.stdin.isTTY ? await askSkillScope() : DEFAULT_SKILL_SCOPE;
|
|
450
|
+
}
|
|
451
|
+
await installAgentSkills(process.cwd(), agentType, scope, {
|
|
452
|
+
cleanProject: options.cleanProject === true,
|
|
453
|
+
});
|
|
227
454
|
}
|
|
228
455
|
//# sourceMappingURL=setup-agent.js.map
|
|
@@ -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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"}
|