@madkid/relay-ctx 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/commands/checkpoint.d.ts +18 -0
  2. package/dist/commands/checkpoint.d.ts.map +1 -0
  3. package/dist/commands/checkpoint.js +130 -0
  4. package/dist/commands/checkpoint.js.map +1 -0
  5. package/dist/commands/hooks.d.ts +36 -0
  6. package/dist/commands/hooks.d.ts.map +1 -0
  7. package/dist/commands/hooks.js +226 -0
  8. package/dist/commands/hooks.js.map +1 -0
  9. package/dist/commands/init.d.ts +14 -0
  10. package/dist/commands/init.d.ts.map +1 -0
  11. package/dist/commands/init.js +228 -0
  12. package/dist/commands/init.js.map +1 -0
  13. package/dist/commands/inject.d.ts +20 -0
  14. package/dist/commands/inject.d.ts.map +1 -0
  15. package/dist/commands/inject.js +209 -0
  16. package/dist/commands/inject.js.map +1 -0
  17. package/dist/commands/list.d.ts +2 -0
  18. package/dist/commands/list.d.ts.map +1 -0
  19. package/dist/commands/list.js +174 -0
  20. package/dist/commands/list.js.map +1 -0
  21. package/dist/commands/sync.d.ts +17 -0
  22. package/dist/commands/sync.d.ts.map +1 -0
  23. package/dist/commands/sync.js +239 -0
  24. package/dist/commands/sync.js.map +1 -0
  25. package/dist/core/compressor.d.ts +16 -0
  26. package/dist/core/compressor.d.ts.map +1 -0
  27. package/dist/core/compressor.js +354 -0
  28. package/dist/core/compressor.js.map +1 -0
  29. package/dist/core/scanner.d.ts +40 -0
  30. package/dist/core/scanner.d.ts.map +1 -0
  31. package/dist/core/scanner.js +366 -0
  32. package/dist/core/scanner.js.map +1 -0
  33. package/dist/core/storage.d.ts +39 -0
  34. package/dist/core/storage.d.ts.map +1 -0
  35. package/dist/core/storage.js +122 -0
  36. package/dist/core/storage.js.map +1 -0
  37. package/dist/index.d.ts +3 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +57 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/test-relay.d.ts +2 -0
  42. package/dist/test-relay.d.ts.map +1 -0
  43. package/dist/test-relay.js +433 -0
  44. package/dist/test-relay.js.map +1 -0
  45. package/package.json +32 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compressor.js","sourceRoot":"","sources":["../../src/core/compressor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export interface GitContext {
2
+ isGitRepo: boolean;
3
+ currentBranch: string | null;
4
+ recentCommits: Array<{
5
+ hash: string;
6
+ message: string;
7
+ timeAgo: string;
8
+ filesChanged: string[];
9
+ }>;
10
+ uncommittedChanges: Array<{
11
+ file: string;
12
+ status: string;
13
+ additions: number;
14
+ deletions: number;
15
+ }>;
16
+ stagedFiles: string[];
17
+ lastCommitHash: string | null;
18
+ }
19
+ /**
20
+ * Structured result of a project scan.
21
+ */
22
+ export interface ProjectScan {
23
+ name: string;
24
+ structure: string;
25
+ dependencies: string[];
26
+ techStack: string[];
27
+ recentlyModified: string[];
28
+ fileCount: Record<string, number>;
29
+ gitContext: GitContext;
30
+ }
31
+ /**
32
+ * Scan the current working directory and extract structured project info.
33
+ */
34
+ export declare function scanProject(cwd: string): Promise<ProjectScan>;
35
+ /**
36
+ * Reads live git data from the current working directory.
37
+ * Never throws or crashes if git is not installed or the directory is not a git repo.
38
+ */
39
+ export declare function scanGitContext(cwd: string): GitContext;
40
+ //# sourceMappingURL=scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/core/scanner.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACjG,kBAAkB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClG,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,UAAU,CAAC;CACxB;AAgKD;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAmEnE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CA0HtD"}
@@ -0,0 +1,366 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.scanProject = scanProject;
7
+ exports.scanGitContext = scanGitContext;
8
+ const path_1 = __importDefault(require("path"));
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const ignore_1 = __importDefault(require("ignore"));
11
+ const glob_1 = require("glob");
12
+ const child_process_1 = require("child_process");
13
+ /** Directories that are always skipped, regardless of .gitignore */
14
+ const ALWAYS_SKIP = new Set([
15
+ 'node_modules',
16
+ '.git',
17
+ 'dist',
18
+ 'build',
19
+ '.next',
20
+ '__pycache__',
21
+ '.venv',
22
+ 'venv',
23
+ '.tox',
24
+ 'coverage',
25
+ ]);
26
+ /**
27
+ * Load .gitignore patterns from the project root.
28
+ */
29
+ function loadGitignore(cwd) {
30
+ const ig = (0, ignore_1.default)();
31
+ const gitignorePath = path_1.default.join(cwd, '.gitignore');
32
+ if (fs_1.default.existsSync(gitignorePath)) {
33
+ const content = fs_1.default.readFileSync(gitignorePath, 'utf-8');
34
+ ig.add(content);
35
+ }
36
+ // Always ignore these regardless
37
+ ALWAYS_SKIP.forEach((dir) => ig.add(dir));
38
+ return ig;
39
+ }
40
+ /**
41
+ * Build a formatted folder tree string, 2 levels deep.
42
+ */
43
+ function buildTree(cwd, ig, maxDepth = 2) {
44
+ const lines = [];
45
+ function walk(dir, prefix, depth) {
46
+ if (depth > maxDepth)
47
+ return;
48
+ let entries;
49
+ try {
50
+ entries = fs_1.default.readdirSync(dir, { withFileTypes: true });
51
+ }
52
+ catch {
53
+ return;
54
+ }
55
+ // Sort: directories first, then files, both alphabetical
56
+ entries.sort((a, b) => {
57
+ if (a.isDirectory() && !b.isDirectory())
58
+ return -1;
59
+ if (!a.isDirectory() && b.isDirectory())
60
+ return 1;
61
+ return a.name.localeCompare(b.name);
62
+ });
63
+ const filtered = entries.filter((entry) => {
64
+ const rel = path_1.default.relative(cwd, path_1.default.join(dir, entry.name));
65
+ const relPosix = rel.split(path_1.default.sep).join('/');
66
+ if (ALWAYS_SKIP.has(entry.name))
67
+ return false;
68
+ if (ig.ignores(relPosix + (entry.isDirectory() ? '/' : '')))
69
+ return false;
70
+ return true;
71
+ });
72
+ filtered.forEach((entry, idx) => {
73
+ const isLast = idx === filtered.length - 1;
74
+ const connector = isLast ? '└── ' : '├── ';
75
+ const childPrefix = isLast ? ' ' : '│ ';
76
+ const icon = entry.isDirectory() ? '📁 ' : '';
77
+ lines.push(`${prefix}${connector}${icon}${entry.name}`);
78
+ if (entry.isDirectory()) {
79
+ walk(path_1.default.join(dir, entry.name), prefix + childPrefix, depth + 1);
80
+ }
81
+ });
82
+ }
83
+ lines.push(path_1.default.basename(cwd) + '/');
84
+ walk(cwd, '', 1);
85
+ return lines.join('\n');
86
+ }
87
+ /**
88
+ * Find all package.json files recursively and extract dependency names.
89
+ */
90
+ function extractDependencies(cwd, ig) {
91
+ const deps = new Set();
92
+ function walk(dir) {
93
+ let entries;
94
+ try {
95
+ entries = fs_1.default.readdirSync(dir, { withFileTypes: true });
96
+ }
97
+ catch {
98
+ return;
99
+ }
100
+ for (const entry of entries) {
101
+ if (ALWAYS_SKIP.has(entry.name))
102
+ continue;
103
+ const rel = path_1.default.relative(cwd, path_1.default.join(dir, entry.name));
104
+ const relPosix = rel.split(path_1.default.sep).join('/');
105
+ if (ig.ignores(relPosix + (entry.isDirectory() ? '/' : '')))
106
+ continue;
107
+ if (entry.isDirectory()) {
108
+ walk(path_1.default.join(dir, entry.name));
109
+ }
110
+ else if (entry.name === 'package.json') {
111
+ try {
112
+ const pkg = JSON.parse(fs_1.default.readFileSync(path_1.default.join(dir, entry.name), 'utf-8'));
113
+ for (const key of ['dependencies', 'devDependencies', 'peerDependencies']) {
114
+ if (pkg[key]) {
115
+ Object.keys(pkg[key]).forEach((d) => deps.add(d));
116
+ }
117
+ }
118
+ }
119
+ catch {
120
+ // Ignore invalid package.json
121
+ }
122
+ }
123
+ }
124
+ }
125
+ walk(cwd);
126
+ return Array.from(deps).sort();
127
+ }
128
+ /**
129
+ * Infer tech stack from dependencies and file extensions.
130
+ */
131
+ function inferTechStack(deps, fileExtensions) {
132
+ const stack = [];
133
+ // From dependencies
134
+ const depSet = new Set(deps.map((d) => d.toLowerCase()));
135
+ if (depSet.has('react') || depSet.has('react-dom'))
136
+ stack.push('React');
137
+ if (depSet.has('next'))
138
+ stack.push('Next.js');
139
+ if (depSet.has('vue'))
140
+ stack.push('Vue');
141
+ if (depSet.has('svelte'))
142
+ stack.push('Svelte');
143
+ if (depSet.has('express'))
144
+ stack.push('Express');
145
+ if (depSet.has('fastify'))
146
+ stack.push('Fastify');
147
+ if (depSet.has('commander'))
148
+ stack.push('Commander.js');
149
+ if (depSet.has('inquirer'))
150
+ stack.push('Inquirer');
151
+ if (depSet.has('chalk'))
152
+ stack.push('Chalk');
153
+ if (depSet.has('@types/vscode'))
154
+ stack.push('VS Code Extension API');
155
+ if (depSet.has('electron'))
156
+ stack.push('Electron');
157
+ if (depSet.has('tailwindcss'))
158
+ stack.push('Tailwind CSS');
159
+ if (depSet.has('@anthropic-ai/sdk'))
160
+ stack.push('Anthropic SDK');
161
+ if (depSet.has('openai'))
162
+ stack.push('OpenAI SDK');
163
+ if (depSet.has('prisma') || depSet.has('@prisma/client'))
164
+ stack.push('Prisma');
165
+ // From file types
166
+ if (fileExtensions['.ts'] || fileExtensions['.tsx'])
167
+ stack.push('TypeScript');
168
+ if (fileExtensions['.py'])
169
+ stack.push('Python');
170
+ if (fileExtensions['.rs'])
171
+ stack.push('Rust');
172
+ if (fileExtensions['.go'])
173
+ stack.push('Go');
174
+ if (fileExtensions['.java'])
175
+ stack.push('Java');
176
+ if (fileExtensions['.css'] || fileExtensions['.scss'])
177
+ stack.push('CSS');
178
+ // Deduplicate while preserving order
179
+ return [...new Set(stack)];
180
+ }
181
+ /**
182
+ * Scan the current working directory and extract structured project info.
183
+ */
184
+ async function scanProject(cwd) {
185
+ const ig = loadGitignore(cwd);
186
+ // Build folder tree (2 levels deep)
187
+ const structure = buildTree(cwd, ig);
188
+ // Extract dependencies from package.json files
189
+ const dependencies = extractDependencies(cwd, ig);
190
+ // Find all files, respecting .gitignore and skip list
191
+ const allFiles = await (0, glob_1.glob)('**/*', {
192
+ cwd,
193
+ nodir: true,
194
+ dot: false,
195
+ ignore: [...ALWAYS_SKIP].map((d) => `**/${d}/**`),
196
+ });
197
+ const filteredFiles = allFiles.filter((f) => !ig.ignores(f));
198
+ // Count files by extension
199
+ const fileCount = {};
200
+ for (const file of filteredFiles) {
201
+ const ext = path_1.default.extname(file) || '(no ext)';
202
+ fileCount[ext] = (fileCount[ext] || 0) + 1;
203
+ }
204
+ // Recently modified files (last 5 by mtime)
205
+ const withStats = filteredFiles
206
+ .map((file) => {
207
+ try {
208
+ const stat = fs_1.default.statSync(path_1.default.join(cwd, file));
209
+ return { file, mtime: stat.mtimeMs };
210
+ }
211
+ catch {
212
+ return null;
213
+ }
214
+ })
215
+ .filter((s) => s !== null);
216
+ withStats.sort((a, b) => b.mtime - a.mtime);
217
+ const recentlyModified = withStats.slice(0, 5).map((s) => s.file);
218
+ // Infer tech stack
219
+ const techStack = inferTechStack(dependencies, fileCount);
220
+ // Project name
221
+ const pkgPath = path_1.default.join(cwd, 'package.json');
222
+ let name = path_1.default.basename(cwd);
223
+ if (fs_1.default.existsSync(pkgPath)) {
224
+ try {
225
+ const pkg = JSON.parse(fs_1.default.readFileSync(pkgPath, 'utf-8'));
226
+ if (pkg.name) {
227
+ name = pkg.name.replace(/^@[^/]+\//, '');
228
+ }
229
+ }
230
+ catch {
231
+ // use folder name
232
+ }
233
+ }
234
+ return {
235
+ name,
236
+ structure,
237
+ dependencies,
238
+ techStack,
239
+ recentlyModified,
240
+ fileCount,
241
+ gitContext: scanGitContext(cwd),
242
+ };
243
+ }
244
+ /**
245
+ * Reads live git data from the current working directory.
246
+ * Never throws or crashes if git is not installed or the directory is not a git repo.
247
+ */
248
+ function scanGitContext(cwd) {
249
+ const fallback = {
250
+ isGitRepo: false,
251
+ currentBranch: null,
252
+ recentCommits: [],
253
+ uncommittedChanges: [],
254
+ stagedFiles: [],
255
+ lastCommitHash: null,
256
+ };
257
+ try {
258
+ // 1. Check if cwd is a git repo
259
+ (0, child_process_1.execSync)(`git -C "${cwd}" rev-parse --is-inside-work-tree`, { stdio: 'ignore' });
260
+ }
261
+ catch {
262
+ return fallback;
263
+ }
264
+ try {
265
+ // Branch
266
+ let currentBranch = null;
267
+ try {
268
+ currentBranch = (0, child_process_1.execSync)(`git -C "${cwd}" rev-parse --abbrev-ref HEAD`, { encoding: 'utf-8' }).trim();
269
+ }
270
+ catch {
271
+ // maybe detached HEAD or fresh repo
272
+ }
273
+ // Last commit hash
274
+ let lastCommitHash = null;
275
+ try {
276
+ lastCommitHash = (0, child_process_1.execSync)(`git -C "${cwd}" rev-parse HEAD`, { encoding: 'utf-8' }).trim();
277
+ }
278
+ catch {
279
+ // maybe no commits yet
280
+ }
281
+ // Recent commits (last 7)
282
+ const recentCommits = [];
283
+ if (lastCommitHash) {
284
+ try {
285
+ const logOut = (0, child_process_1.execSync)(`git -C "${cwd}" log --oneline --no-merges -7 --format="%h|||%s|||%ar|||%P"`, { encoding: 'utf-8' });
286
+ const logLines = logOut.split('\n').filter(Boolean);
287
+ for (const line of logLines) {
288
+ const parts = line.split('|||');
289
+ if (parts.length >= 3) {
290
+ const hash = parts[0].trim();
291
+ const message = parts[1].trim();
292
+ const timeAgo = parts[2].trim();
293
+ // Files changed per commit
294
+ let filesChanged = [];
295
+ try {
296
+ const diffTreeOut = (0, child_process_1.execSync)(`git -C "${cwd}" diff-tree --no-commit-id -r --name-only ${hash}`, { encoding: 'utf-8' });
297
+ const files = diffTreeOut.split('\n').filter(Boolean);
298
+ if (files.length > 5) {
299
+ filesChanged = files.slice(0, 4).concat([`and ${files.length - 4} more`]);
300
+ }
301
+ else {
302
+ filesChanged = files;
303
+ }
304
+ }
305
+ catch {
306
+ // ignore
307
+ }
308
+ recentCommits.push({ hash, message, timeAgo, filesChanged });
309
+ }
310
+ }
311
+ }
312
+ catch {
313
+ // ignore log error (e.g. no commits)
314
+ }
315
+ }
316
+ // Uncommitted changes
317
+ const uncommittedChanges = [];
318
+ if (lastCommitHash) {
319
+ try {
320
+ const diffOut = (0, child_process_1.execSync)(`git -C "${cwd}" diff --numstat HEAD`, { encoding: 'utf-8' });
321
+ const lines = diffOut.split('\n').filter(Boolean);
322
+ for (const line of lines) {
323
+ const parts = line.split('\t');
324
+ if (parts.length >= 3) {
325
+ let additions = parseInt(parts[0], 10);
326
+ let deletions = parseInt(parts[1], 10);
327
+ if (isNaN(additions))
328
+ additions = 0;
329
+ if (isNaN(deletions))
330
+ deletions = 0;
331
+ const file = parts[2].trim();
332
+ // Infer status
333
+ const status = deletions > 0 && additions === 0 ? 'deleted' : (additions > 0 && deletions === 0 ? 'added' : 'modified');
334
+ uncommittedChanges.push({ file, status, additions, deletions });
335
+ }
336
+ }
337
+ }
338
+ catch {
339
+ // ignore
340
+ }
341
+ }
342
+ // Staged files
343
+ let stagedFiles = [];
344
+ if (lastCommitHash) {
345
+ try {
346
+ const stagedOut = (0, child_process_1.execSync)(`git -C "${cwd}" diff --name-only --cached`, { encoding: 'utf-8' });
347
+ stagedFiles = stagedOut.split('\n').filter(Boolean);
348
+ }
349
+ catch {
350
+ // ignore
351
+ }
352
+ }
353
+ return {
354
+ isGitRepo: true,
355
+ currentBranch,
356
+ recentCommits,
357
+ uncommittedChanges,
358
+ stagedFiles,
359
+ lastCommitHash,
360
+ };
361
+ }
362
+ catch {
363
+ return fallback;
364
+ }
365
+ }
366
+ //# sourceMappingURL=scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/core/scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * OS-aware global storage path.
3
+ * Windows: %APPDATA%/relay
4
+ * Mac/Linux: ~/.relay
5
+ */
6
+ export declare function getRelayRoot(): string;
7
+ /**
8
+ * Detect current project name from package.json or folder name.
9
+ */
10
+ export declare function getProjectName(): string;
11
+ /**
12
+ * Get the storage path for the current project.
13
+ */
14
+ export declare function getProjectPath(): string;
15
+ /**
16
+ * Get the path to PROJECT.md for the current project.
17
+ */
18
+ export declare function getProjectMdPath(): string;
19
+ /**
20
+ * Read PROJECT.md for the current project.
21
+ * Returns empty string if it doesn't exist.
22
+ */
23
+ export declare function readProjectMd(): string;
24
+ /**
25
+ * Write PROJECT.md for the current project.
26
+ * Creates the project directory if it doesn't exist.
27
+ */
28
+ export declare function writeProjectMd(content: string): void;
29
+ /**
30
+ * Read global config (API key etc.).
31
+ * Returns empty object if config doesn't exist.
32
+ */
33
+ export declare function readConfig(): Record<string, string>;
34
+ /**
35
+ * Write global config.
36
+ * Creates the relay root directory if it doesn't exist.
37
+ */
38
+ export declare function writeConfig(config: Record<string, string>): void;
39
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/core/storage.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAKrC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CA0BvC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAMtC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIpD;AAWD;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUnD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAIhE"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getRelayRoot = getRelayRoot;
7
+ exports.getProjectName = getProjectName;
8
+ exports.getProjectPath = getProjectPath;
9
+ exports.getProjectMdPath = getProjectMdPath;
10
+ exports.readProjectMd = readProjectMd;
11
+ exports.writeProjectMd = writeProjectMd;
12
+ exports.readConfig = readConfig;
13
+ exports.writeConfig = writeConfig;
14
+ const path_1 = __importDefault(require("path"));
15
+ const os_1 = __importDefault(require("os"));
16
+ const fs_1 = __importDefault(require("fs"));
17
+ /**
18
+ * OS-aware global storage path.
19
+ * Windows: %APPDATA%/relay
20
+ * Mac/Linux: ~/.relay
21
+ */
22
+ function getRelayRoot() {
23
+ if (process.platform === 'win32') {
24
+ return path_1.default.join(process.env.APPDATA || os_1.default.homedir(), 'relay');
25
+ }
26
+ return path_1.default.join(os_1.default.homedir(), '.relay');
27
+ }
28
+ /**
29
+ * Detect current project name from package.json or folder name.
30
+ */
31
+ function getProjectName() {
32
+ const cwd = process.cwd();
33
+ const pkgPath = path_1.default.join(cwd, 'package.json');
34
+ if (fs_1.default.existsSync(pkgPath)) {
35
+ try {
36
+ const pkg = JSON.parse(fs_1.default.readFileSync(pkgPath, 'utf-8'));
37
+ if (pkg.name) {
38
+ // Strip org scope (e.g. @org/name → name)
39
+ const name = pkg.name.replace(/^@[^/]+\//, '');
40
+ return name;
41
+ }
42
+ }
43
+ catch {
44
+ // Fall through to folder name
45
+ }
46
+ }
47
+ const base = path_1.default.basename(cwd);
48
+ if (!base) {
49
+ const driveMatch = cwd.match(/^([A-Za-z]):\\$/);
50
+ if (driveMatch) {
51
+ return driveMatch[1];
52
+ }
53
+ return 'root';
54
+ }
55
+ return base;
56
+ }
57
+ /**
58
+ * Get the storage path for the current project.
59
+ */
60
+ function getProjectPath() {
61
+ return path_1.default.join(getRelayRoot(), 'projects', getProjectName());
62
+ }
63
+ /**
64
+ * Get the path to PROJECT.md for the current project.
65
+ */
66
+ function getProjectMdPath() {
67
+ return path_1.default.join(getProjectPath(), 'PROJECT.md');
68
+ }
69
+ /**
70
+ * Read PROJECT.md for the current project.
71
+ * Returns empty string if it doesn't exist.
72
+ */
73
+ function readProjectMd() {
74
+ const mdPath = getProjectMdPath();
75
+ if (!fs_1.default.existsSync(mdPath)) {
76
+ return '';
77
+ }
78
+ return fs_1.default.readFileSync(mdPath, 'utf-8');
79
+ }
80
+ /**
81
+ * Write PROJECT.md for the current project.
82
+ * Creates the project directory if it doesn't exist.
83
+ */
84
+ function writeProjectMd(content) {
85
+ const projectPath = getProjectPath();
86
+ fs_1.default.mkdirSync(projectPath, { recursive: true });
87
+ fs_1.default.writeFileSync(getProjectMdPath(), content, 'utf-8');
88
+ }
89
+ /**
90
+ * Get path to the global config file.
91
+ */
92
+ function getConfigPath() {
93
+ const p = path_1.default.join(getRelayRoot(), 'config.json');
94
+ console.log('getConfigPath resolved to:', p);
95
+ return p;
96
+ }
97
+ /**
98
+ * Read global config (API key etc.).
99
+ * Returns empty object if config doesn't exist.
100
+ */
101
+ function readConfig() {
102
+ const configPath = getConfigPath();
103
+ if (!fs_1.default.existsSync(configPath)) {
104
+ return {};
105
+ }
106
+ try {
107
+ return JSON.parse(fs_1.default.readFileSync(configPath, 'utf-8'));
108
+ }
109
+ catch {
110
+ return {};
111
+ }
112
+ }
113
+ /**
114
+ * Write global config.
115
+ * Creates the relay root directory if it doesn't exist.
116
+ */
117
+ function writeConfig(config) {
118
+ const relayRoot = getRelayRoot();
119
+ fs_1.default.mkdirSync(relayRoot, { recursive: true });
120
+ fs_1.default.writeFileSync(getConfigPath(), JSON.stringify(config, null, 2), 'utf-8');
121
+ }
122
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/core/storage.ts"],"names":[],"mappings":";;;;;AASA,oCAKC;AAKD,wCA0BC;AAKD,wCAEC;AAKD,4CAEC;AAMD,sCAMC;AAMD,wCAIC;AAeD,gCAUC;AAMD,kCAIC;AApHD,gDAAwB;AACxB,4CAAoB;AACpB,4CAAoB;AAEpB;;;;GAIG;AACH,SAAgB,YAAY;IAC1B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,YAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAE/C,IAAI,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,0CAA0C;gBAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC/C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,cAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAChD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,OAAO,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,cAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa;IAC3B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,YAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAC,OAAe;IAC5C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,YAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,YAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAS,aAAa;IACpB,MAAM,CAAC,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU;IACxB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,MAA8B;IACxD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,YAAE,CAAC,aAAa,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}