@nodesify/astria 1.0.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.
- package/LICENSE +21 -0
- package/README.md +65 -0
- package/dist/commands/add.d.ts +8 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +34 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/affected.d.ts +6 -0
- package/dist/commands/affected.d.ts.map +1 -0
- package/dist/commands/affected.js +30 -0
- package/dist/commands/affected.js.map +1 -0
- package/dist/commands/cluster.d.ts +2 -0
- package/dist/commands/cluster.d.ts.map +1 -0
- package/dist/commands/cluster.js +51 -0
- package/dist/commands/cluster.js.map +1 -0
- package/dist/commands/diagnose.d.ts +5 -0
- package/dist/commands/diagnose.d.ts.map +1 -0
- package/dist/commands/diagnose.js +20 -0
- package/dist/commands/diagnose.js.map +1 -0
- package/dist/commands/diff.d.ts +2 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +36 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/explain.d.ts +4 -0
- package/dist/commands/explain.d.ts.map +1 -0
- package/dist/commands/explain.js +38 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/export.d.ts +7 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +33 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/feedback.d.ts +12 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +41 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/global.d.ts +7 -0
- package/dist/commands/global.d.ts.map +1 -0
- package/dist/commands/global.js +61 -0
- package/dist/commands/global.js.map +1 -0
- package/dist/commands/history.d.ts +5 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +28 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/hook-guard.d.ts +2 -0
- package/dist/commands/hook-guard.d.ts.map +1 -0
- package/dist/commands/hook-guard.js +145 -0
- package/dist/commands/hook-guard.js.map +1 -0
- package/dist/commands/hook.d.ts +3 -0
- package/dist/commands/hook.d.ts.map +1 -0
- package/dist/commands/hook.js +53 -0
- package/dist/commands/hook.js.map +1 -0
- package/dist/commands/install.d.ts +3 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +40 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/map.d.ts +6 -0
- package/dist/commands/map.d.ts.map +1 -0
- package/dist/commands/map.js +16 -0
- package/dist/commands/map.js.map +1 -0
- package/dist/commands/mcp.d.ts +4 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +15 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/merge.d.ts +2 -0
- package/dist/commands/merge.d.ts.map +1 -0
- package/dist/commands/merge.js +51 -0
- package/dist/commands/merge.js.map +1 -0
- package/dist/commands/migrate.d.ts +4 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +75 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/path.d.ts +6 -0
- package/dist/commands/path.d.ts.map +1 -0
- package/dist/commands/path.js +19 -0
- package/dist/commands/path.js.map +1 -0
- package/dist/commands/prs.d.ts +5 -0
- package/dist/commands/prs.d.ts.map +1 -0
- package/dist/commands/prs.js +133 -0
- package/dist/commands/prs.js.map +1 -0
- package/dist/commands/query.d.ts +10 -0
- package/dist/commands/query.d.ts.map +1 -0
- package/dist/commands/query.js +22 -0
- package/dist/commands/query.js.map +1 -0
- package/dist/commands/run.d.ts +10 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +69 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/stats.d.ts +4 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +18 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/status.d.ts +4 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +57 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/tree.d.ts +6 -0
- package/dist/commands/tree.d.ts.map +1 -0
- package/dist/commands/tree.js +53 -0
- package/dist/commands/tree.js.map +1 -0
- package/dist/commands/update.d.ts +7 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +66 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/watch.d.ts +4 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +114 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/commands/wiki.d.ts +7 -0
- package/dist/commands/wiki.d.ts.map +1 -0
- package/dist/commands/wiki.js +60 -0
- package/dist/commands/wiki.js.map +1 -0
- package/dist/graphify.node +4 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +251 -0
- package/dist/index.js.map +1 -0
- package/dist/install/hooks.d.ts +12 -0
- package/dist/install/hooks.d.ts.map +1 -0
- package/dist/install/hooks.js +307 -0
- package/dist/install/hooks.js.map +1 -0
- package/dist/install/index.d.ts +3 -0
- package/dist/install/index.d.ts.map +1 -0
- package/dist/install/index.js +362 -0
- package/dist/install/index.js.map +1 -0
- package/dist/install/markdown-inject.d.ts +7 -0
- package/dist/install/markdown-inject.d.ts.map +1 -0
- package/dist/install/markdown-inject.js +178 -0
- package/dist/install/markdown-inject.js.map +1 -0
- package/dist/install/platforms.d.ts +13 -0
- package/dist/install/platforms.d.ts.map +1 -0
- package/dist/install/platforms.js +130 -0
- package/dist/install/platforms.js.map +1 -0
- package/dist/install/settings-inject.d.ts +18 -0
- package/dist/install/settings-inject.d.ts.map +1 -0
- package/dist/install/settings-inject.js +425 -0
- package/dist/install/settings-inject.js.map +1 -0
- package/dist/native.d.ts +32 -0
- package/dist/native.d.ts.map +1 -0
- package/dist/native.js +107 -0
- package/dist/native.js.map +1 -0
- package/package.json +72 -0
- package/skills/skill-aider.md +40 -0
- package/skills/skill-codex.md +46 -0
- package/skills/skill-copilot.md +46 -0
- package/skills/skill-cursor.md +39 -0
- package/skills/skill-gemini.md +46 -0
- package/skills/skill-kiro.md +39 -0
- package/skills/skill-opencode.md +44 -0
- package/skills/skill-trae.md +46 -0
- package/skills/skill.md +266 -0
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.installPlatform = installPlatform;
|
|
37
|
+
exports.uninstallPlatform = uninstallPlatform;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const os = __importStar(require("os"));
|
|
41
|
+
const platforms_1 = require("./platforms");
|
|
42
|
+
const markdown_inject_1 = require("./markdown-inject");
|
|
43
|
+
const settings_inject_1 = require("./settings-inject");
|
|
44
|
+
function sectionMessage(result, added, updated, unchanged) {
|
|
45
|
+
return result === 'added' ? added : result === 'updated' ? updated : unchanged;
|
|
46
|
+
}
|
|
47
|
+
const MCP_LABELS = {
|
|
48
|
+
zcode: { name: 'ZCode MCP server', file: '.zcode/config.json' },
|
|
49
|
+
claude: { name: 'Claude MCP server', file: '.mcp.json' },
|
|
50
|
+
cursor: { name: 'Cursor MCP server', file: '.cursor/mcp.json' },
|
|
51
|
+
gemini: { name: 'Gemini MCP server', file: '.gemini/settings.json' },
|
|
52
|
+
};
|
|
53
|
+
function getSkillDir() {
|
|
54
|
+
return path.resolve(__dirname, '..', '..', 'skills');
|
|
55
|
+
}
|
|
56
|
+
/// CLAUDE_CONFIG_DIR is read exactly once, at load, and sanitized to a
|
|
57
|
+
/// normalized absolute path without traversal segments (or undefined). No
|
|
58
|
+
/// other code path reads it, so env input can never reach a filesystem
|
|
59
|
+
/// write unvalidated.
|
|
60
|
+
const CLAUDE_CONFIG_DIR = (() => {
|
|
61
|
+
const raw = process.env.CLAUDE_CONFIG_DIR;
|
|
62
|
+
if (!raw)
|
|
63
|
+
return undefined;
|
|
64
|
+
const resolved = path.resolve(raw);
|
|
65
|
+
return raw === resolved && !raw.includes('..') && path.isAbsolute(raw)
|
|
66
|
+
? resolved
|
|
67
|
+
: undefined;
|
|
68
|
+
})();
|
|
69
|
+
function copySkillFile(platform, cfg) {
|
|
70
|
+
const messages = [];
|
|
71
|
+
if (!cfg.skillFile)
|
|
72
|
+
return messages;
|
|
73
|
+
// skillDst comes from the static platform table; refuse traversal
|
|
74
|
+
// segments anyway so no runtime value can redirect the install target.
|
|
75
|
+
if (cfg.skillDst.split(/[\\/]/).includes('..')) {
|
|
76
|
+
messages.push(`Refusing unsafe skill destination: ${cfg.skillDst}`);
|
|
77
|
+
return messages;
|
|
78
|
+
}
|
|
79
|
+
const src = path.join(getSkillDir(), cfg.skillFile);
|
|
80
|
+
if (!fs.existsSync(src)) {
|
|
81
|
+
messages.push(`Skill file not found: ${src}`);
|
|
82
|
+
return messages;
|
|
83
|
+
}
|
|
84
|
+
const homeDir = os.homedir();
|
|
85
|
+
const dst = path.join(homeDir, cfg.skillDst);
|
|
86
|
+
if (platform === 'claude' && CLAUDE_CONFIG_DIR) {
|
|
87
|
+
const overrideDst = path.join(CLAUDE_CONFIG_DIR, 'skills', 'astria', 'SKILL.md');
|
|
88
|
+
copyFile(src, overrideDst);
|
|
89
|
+
messages.push(`Skill file -> ${overrideDst}`);
|
|
90
|
+
return messages;
|
|
91
|
+
}
|
|
92
|
+
copyFile(src, dst);
|
|
93
|
+
messages.push(`Skill file -> ${dst}`);
|
|
94
|
+
return messages;
|
|
95
|
+
}
|
|
96
|
+
function copyFile(src, dst) {
|
|
97
|
+
// Sink guard: only normalized absolute destinations without traversal
|
|
98
|
+
// segments may be written, regardless of how the caller derived them.
|
|
99
|
+
if (!path.isAbsolute(dst) || dst.split(/[\\/]/).includes('..')) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const dir = path.dirname(dst);
|
|
103
|
+
if (!fs.existsSync(dir)) {
|
|
104
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
105
|
+
}
|
|
106
|
+
fs.copyFileSync(src, dst);
|
|
107
|
+
}
|
|
108
|
+
function writeInstallStamp(dir) {
|
|
109
|
+
const stampPath = path.join(dir, '.astria_version');
|
|
110
|
+
// Same guard as copyFile, applied to the exact value that is written:
|
|
111
|
+
// only a normalized absolute path without traversal segments may reach
|
|
112
|
+
// the filesystem, regardless of how the caller derived it.
|
|
113
|
+
if (!path.isAbsolute(stampPath) || stampPath.split(/[\\/]/).includes('..')) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
try {
|
|
117
|
+
fs.writeFileSync(stampPath, require('../../package.json').version + '\n', 'utf-8');
|
|
118
|
+
}
|
|
119
|
+
catch { /* ignore */ }
|
|
120
|
+
}
|
|
121
|
+
/// Pre-1.0 installs wrote skills under `skills/graphify/`. The path carries
|
|
122
|
+
/// exactly one `astria` segment (the skill dir name), so the legacy
|
|
123
|
+
/// destination is derivable by swapping that segment.
|
|
124
|
+
function legacySkillDst(cfg) {
|
|
125
|
+
return cfg.skillDst.replace(/([\\/])astria([\\/])/, '$1graphify$2');
|
|
126
|
+
}
|
|
127
|
+
/// Removes the pre-1.0 skill file (and its now-empty folder) so a stale
|
|
128
|
+
/// graphify skill is never left behind after install or uninstall.
|
|
129
|
+
function removeLegacySkillFile(platform, cfg) {
|
|
130
|
+
const messages = [];
|
|
131
|
+
if (!cfg.skillFile)
|
|
132
|
+
return messages;
|
|
133
|
+
const targets = [path.join(os.homedir(), legacySkillDst(cfg))];
|
|
134
|
+
if (platform === 'claude' && CLAUDE_CONFIG_DIR) {
|
|
135
|
+
targets.push(path.join(CLAUDE_CONFIG_DIR, 'skills', 'graphify', 'SKILL.md'));
|
|
136
|
+
}
|
|
137
|
+
for (const legacy of targets) {
|
|
138
|
+
const dir = path.dirname(legacy);
|
|
139
|
+
const hadDir = fs.existsSync(dir);
|
|
140
|
+
if (fs.existsSync(legacy)) {
|
|
141
|
+
try {
|
|
142
|
+
fs.unlinkSync(legacy);
|
|
143
|
+
messages.push(`Legacy skill file removed: ${legacy}`);
|
|
144
|
+
}
|
|
145
|
+
catch { /* unreadable — leave it */ }
|
|
146
|
+
}
|
|
147
|
+
if (!hadDir)
|
|
148
|
+
continue;
|
|
149
|
+
// Install stamps from both eras; a folder holding only these is removed
|
|
150
|
+
// outright so no stale skill directory lingers.
|
|
151
|
+
for (const stamp of ['.astria_version', '.graphify_version']) {
|
|
152
|
+
try {
|
|
153
|
+
fs.unlinkSync(path.join(dir, stamp));
|
|
154
|
+
}
|
|
155
|
+
catch { /* absent */ }
|
|
156
|
+
}
|
|
157
|
+
try {
|
|
158
|
+
fs.rmdirSync(dir);
|
|
159
|
+
}
|
|
160
|
+
catch { /* not empty — leave */ }
|
|
161
|
+
}
|
|
162
|
+
return messages;
|
|
163
|
+
}
|
|
164
|
+
function installPlatform(platform, projectDir) {
|
|
165
|
+
const messages = [];
|
|
166
|
+
if (platform === 'cursor') {
|
|
167
|
+
if ((0, settings_inject_1.injectCursorRule)(projectDir)) {
|
|
168
|
+
messages.push('Cursor rule -> .cursor/rules/astria.mdc');
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
messages.push('Cursor rule: already installed');
|
|
172
|
+
}
|
|
173
|
+
messages.push((0, settings_inject_1.injectAgentMcp)(projectDir, 'cursor')
|
|
174
|
+
? 'Cursor MCP server -> .cursor/mcp.json'
|
|
175
|
+
: 'Cursor MCP server: already registered');
|
|
176
|
+
return messages;
|
|
177
|
+
}
|
|
178
|
+
if (platform === 'kiro') {
|
|
179
|
+
const cfg = platforms_1.PLATFORMS.kiro;
|
|
180
|
+
messages.push(...copySkillFile('kiro', cfg));
|
|
181
|
+
messages.push(...removeLegacySkillFile('kiro', cfg));
|
|
182
|
+
if ((0, settings_inject_1.injectKiroSteering)(projectDir)) {
|
|
183
|
+
messages.push('Kiro steering -> .kiro/steering/astria.md');
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
messages.push('Kiro steering: already installed');
|
|
187
|
+
}
|
|
188
|
+
return messages;
|
|
189
|
+
}
|
|
190
|
+
const cfg = platforms_1.PLATFORMS[platform];
|
|
191
|
+
if (!cfg) {
|
|
192
|
+
messages.push(`Unknown platform: ${platform}. Available: ${Object.keys(platforms_1.PLATFORMS).join(', ')}`);
|
|
193
|
+
return messages;
|
|
194
|
+
}
|
|
195
|
+
messages.push(...copySkillFile(platform, cfg));
|
|
196
|
+
messages.push(...removeLegacySkillFile(platform, cfg));
|
|
197
|
+
if (cfg.claudeMd) {
|
|
198
|
+
const claudeMdPath = path.join(os.homedir(), '.claude', 'CLAUDE.md');
|
|
199
|
+
const registration = (0, markdown_inject_1.injectSection)(claudeMdPath, markdown_inject_1.SKILL_REGISTRATION);
|
|
200
|
+
messages.push(sectionMessage(registration, 'User CLAUDE.md: skill registration added', 'User CLAUDE.md: skill registration updated', 'User CLAUDE.md: already registered'));
|
|
201
|
+
}
|
|
202
|
+
const projectMd = path.join(projectDir, 'CLAUDE.md');
|
|
203
|
+
if (cfg.claudeMd || cfg.agentsMd || cfg.geminiMd) {
|
|
204
|
+
if (cfg.claudeMd) {
|
|
205
|
+
const result = (0, markdown_inject_1.injectSection)(projectMd, markdown_inject_1.PROJECT_MD_SECTION);
|
|
206
|
+
messages.push(sectionMessage(result, 'Project CLAUDE.md: astria section added', 'Project CLAUDE.md: astria section updated', 'Project CLAUDE.md: astria section unchanged'));
|
|
207
|
+
}
|
|
208
|
+
if (cfg.agentsMd) {
|
|
209
|
+
const agentsMd = path.join(projectDir, 'AGENTS.md');
|
|
210
|
+
const result = (0, markdown_inject_1.injectSection)(agentsMd, markdown_inject_1.PROJECT_MD_SECTION);
|
|
211
|
+
messages.push(sectionMessage(result, 'Project AGENTS.md: astria section added', 'Project AGENTS.md: astria section updated', 'Project AGENTS.md: astria section unchanged'));
|
|
212
|
+
}
|
|
213
|
+
if (cfg.geminiMd) {
|
|
214
|
+
const geminiMd = path.join(projectDir, 'GEMINI.md');
|
|
215
|
+
const result = (0, markdown_inject_1.injectSection)(geminiMd, markdown_inject_1.PROJECT_MD_SECTION);
|
|
216
|
+
messages.push(sectionMessage(result, 'Project GEMINI.md: astria section added', 'Project GEMINI.md: astria section updated', 'Project GEMINI.md: astria section unchanged'));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
switch (cfg.settingsHook) {
|
|
220
|
+
case 'claude':
|
|
221
|
+
if ((0, settings_inject_1.injectClaudeHook)(projectDir)) {
|
|
222
|
+
messages.push('Claude PreToolUse hook -> .claude/settings.json');
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
messages.push('Claude PreToolUse hook: already installed');
|
|
226
|
+
}
|
|
227
|
+
break;
|
|
228
|
+
case 'codex':
|
|
229
|
+
if ((0, settings_inject_1.injectCodexHook)(projectDir)) {
|
|
230
|
+
messages.push('Codex PreToolUse hook -> .codex/hooks.json');
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
messages.push('Codex PreToolUse hook: already installed');
|
|
234
|
+
}
|
|
235
|
+
break;
|
|
236
|
+
case 'gemini':
|
|
237
|
+
if ((0, settings_inject_1.injectGeminiHook)(projectDir)) {
|
|
238
|
+
messages.push('Gemini BeforeTool hook -> .gemini/settings.json');
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
messages.push('Gemini BeforeTool hook: already installed');
|
|
242
|
+
}
|
|
243
|
+
break;
|
|
244
|
+
case 'opencode':
|
|
245
|
+
if ((0, settings_inject_1.injectOpenCodePlugin)(projectDir)) {
|
|
246
|
+
messages.push('OpenCode plugin -> .opencode/plugins/astria.js');
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
messages.push('OpenCode plugin: already installed');
|
|
250
|
+
}
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
if (cfg.mcp) {
|
|
254
|
+
const label = MCP_LABELS[cfg.mcp];
|
|
255
|
+
messages.push((0, settings_inject_1.injectAgentMcp)(projectDir, cfg.mcp)
|
|
256
|
+
? `${label.name} -> ${label.file}`
|
|
257
|
+
: `${label.name}: already registered`);
|
|
258
|
+
}
|
|
259
|
+
return messages;
|
|
260
|
+
}
|
|
261
|
+
function uninstallPlatform(platform, projectDir) {
|
|
262
|
+
const messages = [];
|
|
263
|
+
if (platform === 'cursor') {
|
|
264
|
+
if ((0, settings_inject_1.removeCursorRule)(projectDir)) {
|
|
265
|
+
messages.push('Cursor rule: removed');
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
messages.push('Cursor rule: not found');
|
|
269
|
+
}
|
|
270
|
+
messages.push((0, settings_inject_1.removeAgentMcp)(projectDir, 'cursor')
|
|
271
|
+
? 'Cursor MCP server: removed'
|
|
272
|
+
: 'Cursor MCP server: not found');
|
|
273
|
+
return messages;
|
|
274
|
+
}
|
|
275
|
+
if (platform === 'kiro') {
|
|
276
|
+
const cfg = platforms_1.PLATFORMS.kiro;
|
|
277
|
+
if (cfg.skillFile) {
|
|
278
|
+
const homeDir = os.homedir();
|
|
279
|
+
const dst = path.join(homeDir, cfg.skillDst);
|
|
280
|
+
try {
|
|
281
|
+
fs.unlinkSync(dst);
|
|
282
|
+
messages.push(`Skill file removed: ${dst}`);
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
messages.push('Skill file: not found');
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
messages.push(...removeLegacySkillFile('kiro', cfg));
|
|
289
|
+
if ((0, settings_inject_1.removeKiroSteering)(projectDir)) {
|
|
290
|
+
messages.push('Kiro steering: removed');
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
messages.push('Kiro steering: not found');
|
|
294
|
+
}
|
|
295
|
+
return messages;
|
|
296
|
+
}
|
|
297
|
+
const cfg = platforms_1.PLATFORMS[platform];
|
|
298
|
+
if (!cfg) {
|
|
299
|
+
messages.push(`Unknown platform: ${platform}`);
|
|
300
|
+
return messages;
|
|
301
|
+
}
|
|
302
|
+
if (cfg.skillFile) {
|
|
303
|
+
const homeDir = os.homedir();
|
|
304
|
+
let dst = path.join(homeDir, cfg.skillDst);
|
|
305
|
+
if (platform === 'claude') {
|
|
306
|
+
const configDir = process.env.CLAUDE_CONFIG_DIR;
|
|
307
|
+
if (configDir)
|
|
308
|
+
dst = path.join(configDir, 'skills', 'astria', 'SKILL.md');
|
|
309
|
+
}
|
|
310
|
+
try {
|
|
311
|
+
fs.unlinkSync(dst);
|
|
312
|
+
messages.push(`Skill file removed: ${dst}`);
|
|
313
|
+
}
|
|
314
|
+
catch {
|
|
315
|
+
messages.push('Skill file: not found');
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
messages.push(...removeLegacySkillFile(platform, cfg));
|
|
319
|
+
if (cfg.claudeMd) {
|
|
320
|
+
const claudeMdPath = path.join(os.homedir(), '.claude', 'CLAUDE.md');
|
|
321
|
+
(0, markdown_inject_1.removeSection)(claudeMdPath);
|
|
322
|
+
messages.push('User CLAUDE.md: astria section removed');
|
|
323
|
+
}
|
|
324
|
+
if (cfg.claudeMd) {
|
|
325
|
+
(0, markdown_inject_1.removeSection)(path.join(projectDir, 'CLAUDE.md'));
|
|
326
|
+
messages.push('Project CLAUDE.md: astria section removed');
|
|
327
|
+
}
|
|
328
|
+
if (cfg.agentsMd) {
|
|
329
|
+
(0, markdown_inject_1.removeSection)(path.join(projectDir, 'AGENTS.md'));
|
|
330
|
+
messages.push('Project AGENTS.md: astria section removed');
|
|
331
|
+
}
|
|
332
|
+
if (cfg.geminiMd) {
|
|
333
|
+
(0, markdown_inject_1.removeSection)(path.join(projectDir, 'GEMINI.md'));
|
|
334
|
+
messages.push('Project GEMINI.md: astria section removed');
|
|
335
|
+
}
|
|
336
|
+
switch (cfg.settingsHook) {
|
|
337
|
+
case 'claude':
|
|
338
|
+
(0, settings_inject_1.removeClaudeHook)(projectDir);
|
|
339
|
+
messages.push('Claude PreToolUse hook: removed');
|
|
340
|
+
break;
|
|
341
|
+
case 'codex':
|
|
342
|
+
(0, settings_inject_1.removeCodexHook)(projectDir);
|
|
343
|
+
messages.push('Codex PreToolUse hook: removed');
|
|
344
|
+
break;
|
|
345
|
+
case 'gemini':
|
|
346
|
+
(0, settings_inject_1.removeGeminiHook)(projectDir);
|
|
347
|
+
messages.push('Gemini BeforeTool hook: removed');
|
|
348
|
+
break;
|
|
349
|
+
case 'opencode':
|
|
350
|
+
(0, settings_inject_1.removeOpenCodePlugin)(projectDir);
|
|
351
|
+
messages.push('OpenCode plugin: removed');
|
|
352
|
+
break;
|
|
353
|
+
}
|
|
354
|
+
if (cfg.mcp) {
|
|
355
|
+
const label = MCP_LABELS[cfg.mcp];
|
|
356
|
+
messages.push((0, settings_inject_1.removeAgentMcp)(projectDir, cfg.mcp)
|
|
357
|
+
? `${label.name}: removed`
|
|
358
|
+
: `${label.name}: not found`);
|
|
359
|
+
}
|
|
360
|
+
return messages;
|
|
361
|
+
}
|
|
362
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/install/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type SectionResult = 'added' | 'updated' | 'unchanged';
|
|
2
|
+
export declare const SECTION_MARKER = "<!-- astria:managed -->";
|
|
3
|
+
export declare function injectSection(filePath: string, content: string): SectionResult;
|
|
4
|
+
export declare function removeSection(filePath: string): boolean;
|
|
5
|
+
export declare const PROJECT_MD_SECTION = "## astria\n\nThis project has an astria knowledge graph at .astria/.\nAccess it through whichever path your agent has:\n- MCP (when an astria MCP server is connected): repo_map, query_graph, explain,\n get_neighbors, shortest_path, affected.\n- CLI (works everywhere): astria map, query, explain, path, affected.\n\nAlways-on behaviors:\n1. Prefer the graph over repeated text searches for architecture questions, feature\n location, cross-file logic flow, and change impact; orient with repo_map (or map,\n or .astria/graph_report.md), and run affected <node> before changing a shared symbol.\n2. Before running grep/ripgrep to locate code, try astria query first --\n it answers with file:line provenance in one call against the already-built graph.\n3. After modifying code, run astria update . (AST-only, no API cost) so the\n graph stays fresh; queries then report accurate staleness metadata.";
|
|
6
|
+
export declare const SKILL_REGISTRATION = "\n# astria\n- **astria** (`~/.claude/skills/astria/SKILL.md`) - any input to knowledge graph. Trigger: `/astria`\nWhen the user types `/astria`, invoke the Skill tool with `skill: \"astria\"` before doing anything else.\n";
|
|
7
|
+
//# sourceMappingURL=markdown-inject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-inject.d.ts","sourceRoot":"","sources":["../../src/install/markdown-inject.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AAQ9D,eAAO,MAAM,cAAc,4BAA4B,CAAC;AA8DxD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAwC9E;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAqBvD;AAED,eAAO,MAAM,kBAAkB,g5BAewC,CAAC;AAExE,eAAO,MAAM,kBAAkB,kOAI9B,CAAC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SKILL_REGISTRATION = exports.PROJECT_MD_SECTION = exports.SECTION_MARKER = void 0;
|
|
37
|
+
exports.injectSection = injectSection;
|
|
38
|
+
exports.removeSection = removeSection;
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
// Managed sections carry this marker so later installs can refresh them
|
|
42
|
+
// wholesale. Sections are recognized two ways: by this marker, or by a
|
|
43
|
+
// legacy fingerprint. Pre-1.0 installs wrote `## graphify` sections under
|
|
44
|
+
// the old `nodesify-graphify:managed` marker — install upgrades them in
|
|
45
|
+
// place and uninstall removes them. Anything else containing a heading is
|
|
46
|
+
// treated as user-owned and left untouched.
|
|
47
|
+
exports.SECTION_MARKER = '<!-- astria:managed -->';
|
|
48
|
+
// Section written by this version of the CLI.
|
|
49
|
+
const HEADERS = ['## astria', '# astria'];
|
|
50
|
+
// Sections written by pre-1.0 nodesify-graphify installs.
|
|
51
|
+
const LEGACY_HEADERS = ['## graphify', '# graphify'];
|
|
52
|
+
const LEGACY_SECTION_MARKER = '<!-- nodesify-graphify:managed -->';
|
|
53
|
+
const LEGACY_SECTION_SNIPPETS = [
|
|
54
|
+
// Current managed sections carry the old marker only; these fingerprints
|
|
55
|
+
// catch unmarked generated sections from earlier eras.
|
|
56
|
+
// "optional ... opt-in" wording (0.7.x-era)
|
|
57
|
+
'optional nodesify-graphify knowledge graph',
|
|
58
|
+
'maintained automatically after edits when the platform supports PostToolUse hooks',
|
|
59
|
+
// "MUST read" rules wording (early releases)
|
|
60
|
+
'MUST read .graphify/graph_report.md before searching files',
|
|
61
|
+
// "CRITICAL RULES / FORBIDDEN" wording
|
|
62
|
+
'**FORBIDDEN** from using native search tools',
|
|
63
|
+
];
|
|
64
|
+
function headingLevel(header) {
|
|
65
|
+
return (header.match(/^#+/) || ['#'])[0].length;
|
|
66
|
+
}
|
|
67
|
+
// Locate a section headed by `header` (matched at line start) and bounded
|
|
68
|
+
// by the next heading at the same or higher level, or EOF.
|
|
69
|
+
function findSection(existing, header) {
|
|
70
|
+
let start = existing.indexOf('\n' + header);
|
|
71
|
+
if (start === -1) {
|
|
72
|
+
if (!existing.startsWith(header))
|
|
73
|
+
return null;
|
|
74
|
+
start = 0;
|
|
75
|
+
}
|
|
76
|
+
const level = headingLevel(header);
|
|
77
|
+
const boundary = new RegExp(`\\n#{1,${level}} `);
|
|
78
|
+
const match = existing.slice(start + 1).match(boundary);
|
|
79
|
+
const end = match?.index !== undefined ? start + 1 + match.index : existing.length;
|
|
80
|
+
return { start, end };
|
|
81
|
+
}
|
|
82
|
+
function stripMarker(sectionText) {
|
|
83
|
+
return sectionText
|
|
84
|
+
.split('\n')
|
|
85
|
+
.filter((line) => {
|
|
86
|
+
const t = line.trim();
|
|
87
|
+
return t !== exports.SECTION_MARKER && t !== LEGACY_SECTION_MARKER;
|
|
88
|
+
})
|
|
89
|
+
.join('\n')
|
|
90
|
+
.trim();
|
|
91
|
+
}
|
|
92
|
+
function isManaged(sectionText) {
|
|
93
|
+
return (sectionText.includes(exports.SECTION_MARKER) ||
|
|
94
|
+
sectionText.includes(LEGACY_SECTION_MARKER) ||
|
|
95
|
+
LEGACY_SECTION_SNIPPETS.some((snippet) => sectionText.includes(snippet)));
|
|
96
|
+
}
|
|
97
|
+
function withMarker(content) {
|
|
98
|
+
return content.trimEnd() + '\n' + exports.SECTION_MARKER;
|
|
99
|
+
}
|
|
100
|
+
function injectSection(filePath, content) {
|
|
101
|
+
const dir = path.dirname(filePath);
|
|
102
|
+
if (!fs.existsSync(dir)) {
|
|
103
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
104
|
+
}
|
|
105
|
+
const existing = fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf-8') : '';
|
|
106
|
+
// Refresh an existing astria section in place.
|
|
107
|
+
for (const h of HEADERS) {
|
|
108
|
+
const bounds = findSection(existing, h);
|
|
109
|
+
if (!bounds)
|
|
110
|
+
continue;
|
|
111
|
+
const sectionText = existing.slice(bounds.start, bounds.end);
|
|
112
|
+
if (stripMarker(sectionText) === content.trim())
|
|
113
|
+
return 'unchanged';
|
|
114
|
+
if (!isManaged(sectionText))
|
|
115
|
+
return 'unchanged';
|
|
116
|
+
fs.writeFileSync(filePath, existing.slice(0, bounds.start) + withMarker(content) + existing.slice(bounds.end), 'utf-8');
|
|
117
|
+
return 'updated';
|
|
118
|
+
}
|
|
119
|
+
// Upgrade a managed pre-1.0 graphify section to the astria wording. A
|
|
120
|
+
// user-customized graphify section is left untouched (treated as owned).
|
|
121
|
+
for (const h of LEGACY_HEADERS) {
|
|
122
|
+
const bounds = findSection(existing, h);
|
|
123
|
+
if (!bounds)
|
|
124
|
+
continue;
|
|
125
|
+
const sectionText = existing.slice(bounds.start, bounds.end);
|
|
126
|
+
if (!isManaged(sectionText))
|
|
127
|
+
return 'unchanged';
|
|
128
|
+
fs.writeFileSync(filePath, existing.slice(0, bounds.start) + withMarker(content) + existing.slice(bounds.end), 'utf-8');
|
|
129
|
+
return 'updated';
|
|
130
|
+
}
|
|
131
|
+
fs.writeFileSync(filePath, existing.replace(/\n*$/, '\n\n') + withMarker(content) + '\n', 'utf-8');
|
|
132
|
+
return 'added';
|
|
133
|
+
}
|
|
134
|
+
function removeSection(filePath) {
|
|
135
|
+
if (!fs.existsSync(filePath))
|
|
136
|
+
return false;
|
|
137
|
+
let content = fs.readFileSync(filePath, 'utf-8');
|
|
138
|
+
let changed = false;
|
|
139
|
+
for (const header of [...HEADERS, ...LEGACY_HEADERS]) {
|
|
140
|
+
let bounds = findSection(content, header);
|
|
141
|
+
while (bounds) {
|
|
142
|
+
content = content.slice(0, bounds.start) + content.slice(bounds.end);
|
|
143
|
+
changed = true;
|
|
144
|
+
bounds = findSection(content, header);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (!changed)
|
|
148
|
+
return false;
|
|
149
|
+
if (content.trim().length === 0) {
|
|
150
|
+
fs.unlinkSync(filePath);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
fs.writeFileSync(filePath, content, 'utf-8');
|
|
154
|
+
}
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
exports.PROJECT_MD_SECTION = `## astria
|
|
158
|
+
|
|
159
|
+
This project has an astria knowledge graph at .astria/.
|
|
160
|
+
Access it through whichever path your agent has:
|
|
161
|
+
- MCP (when an astria MCP server is connected): repo_map, query_graph, explain,
|
|
162
|
+
get_neighbors, shortest_path, affected.
|
|
163
|
+
- CLI (works everywhere): astria map, query, explain, path, affected.
|
|
164
|
+
|
|
165
|
+
Always-on behaviors:
|
|
166
|
+
1. Prefer the graph over repeated text searches for architecture questions, feature
|
|
167
|
+
location, cross-file logic flow, and change impact; orient with repo_map (or map,
|
|
168
|
+
or .astria/graph_report.md), and run affected <node> before changing a shared symbol.
|
|
169
|
+
2. Before running grep/ripgrep to locate code, try astria query first --
|
|
170
|
+
it answers with file:line provenance in one call against the already-built graph.
|
|
171
|
+
3. After modifying code, run astria update . (AST-only, no API cost) so the
|
|
172
|
+
graph stays fresh; queries then report accurate staleness metadata.`;
|
|
173
|
+
exports.SKILL_REGISTRATION = `
|
|
174
|
+
# astria
|
|
175
|
+
- **astria** (\`~/.claude/skills/astria/SKILL.md\`) - any input to knowledge graph. Trigger: \`/astria\`
|
|
176
|
+
When the user types \`/astria\`, invoke the Skill tool with \`skill: "astria"\` before doing anything else.
|
|
177
|
+
`;
|
|
178
|
+
//# sourceMappingURL=markdown-inject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-inject.js","sourceRoot":"","sources":["../../src/install/markdown-inject.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface PlatformConfig {
|
|
2
|
+
skillFile: string;
|
|
3
|
+
skillDst: string;
|
|
4
|
+
claudeMd: boolean;
|
|
5
|
+
agentsMd: boolean;
|
|
6
|
+
geminiMd: boolean;
|
|
7
|
+
settingsHook: 'claude' | 'codex' | 'gemini' | 'opencode' | 'none';
|
|
8
|
+
/** Register the astria MCP server in this platform's project-scoped config. */
|
|
9
|
+
mcp?: 'zcode' | 'claude' | 'cursor' | 'gemini';
|
|
10
|
+
}
|
|
11
|
+
export declare const PLATFORMS: Record<string, PlatformConfig>;
|
|
12
|
+
export declare const PLATFORM_NAMES: string[];
|
|
13
|
+
//# sourceMappingURL=platforms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platforms.d.ts","sourceRoot":"","sources":["../../src/install/platforms.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAClE,+EAA+E;IAC/E,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAChD;AAED,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAyFpD,CAAC;AAEF,eAAO,MAAM,cAAc,UAAyB,CAAC"}
|