@nodesify/astria 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +65 -65
  3. package/dist/commands/add.d.ts +7 -7
  4. package/dist/commands/add.js +33 -33
  5. package/dist/commands/affected.d.ts +5 -5
  6. package/dist/commands/affected.js +29 -29
  7. package/dist/commands/cluster.d.ts +1 -1
  8. package/dist/commands/cluster.js +50 -50
  9. package/dist/commands/diagnose.d.ts +4 -4
  10. package/dist/commands/diagnose.js +19 -19
  11. package/dist/commands/diff.d.ts +1 -1
  12. package/dist/commands/diff.js +35 -35
  13. package/dist/commands/explain.d.ts +3 -3
  14. package/dist/commands/explain.js +37 -37
  15. package/dist/commands/export.d.ts +6 -6
  16. package/dist/commands/export.js +32 -32
  17. package/dist/commands/feedback.d.ts +11 -11
  18. package/dist/commands/feedback.js +40 -40
  19. package/dist/commands/global.d.ts +6 -6
  20. package/dist/commands/global.js +60 -60
  21. package/dist/commands/history.d.ts +4 -4
  22. package/dist/commands/history.js +27 -27
  23. package/dist/commands/hook-guard.d.ts +1 -1
  24. package/dist/commands/hook-guard.js +144 -144
  25. package/dist/commands/hook.d.ts +2 -2
  26. package/dist/commands/hook.js +52 -52
  27. package/dist/commands/install.d.ts +2 -2
  28. package/dist/commands/install.js +39 -39
  29. package/dist/commands/map.d.ts +5 -5
  30. package/dist/commands/map.js +15 -15
  31. package/dist/commands/mcp.d.ts +3 -3
  32. package/dist/commands/mcp.js +14 -14
  33. package/dist/commands/merge.d.ts +1 -1
  34. package/dist/commands/merge.js +50 -50
  35. package/dist/commands/migrate.d.ts +3 -3
  36. package/dist/commands/migrate.js +74 -74
  37. package/dist/commands/path.d.ts +5 -5
  38. package/dist/commands/path.js +18 -18
  39. package/dist/commands/prs.d.ts +4 -4
  40. package/dist/commands/prs.js +132 -132
  41. package/dist/commands/query.d.ts +9 -9
  42. package/dist/commands/query.js +21 -21
  43. package/dist/commands/run.d.ts +9 -9
  44. package/dist/commands/run.js +68 -68
  45. package/dist/commands/stats.d.ts +3 -3
  46. package/dist/commands/stats.js +17 -17
  47. package/dist/commands/status.d.ts +3 -3
  48. package/dist/commands/status.js +56 -56
  49. package/dist/commands/tree.d.ts +5 -5
  50. package/dist/commands/tree.js +52 -52
  51. package/dist/commands/update.d.ts +6 -6
  52. package/dist/commands/update.js +65 -65
  53. package/dist/commands/watch.d.ts +3 -3
  54. package/dist/commands/watch.js +113 -113
  55. package/dist/commands/wiki.d.ts +6 -6
  56. package/dist/commands/wiki.js +59 -59
  57. package/dist/index.d.ts +4 -4
  58. package/dist/index.js +249 -249
  59. package/dist/install/hooks.d.ts +11 -11
  60. package/dist/install/hooks.js +306 -306
  61. package/dist/install/index.d.ts +2 -2
  62. package/dist/install/index.js +361 -361
  63. package/dist/install/markdown-inject.d.ts +6 -6
  64. package/dist/install/markdown-inject.js +177 -177
  65. package/dist/install/platforms.d.ts +12 -12
  66. package/dist/install/platforms.js +129 -129
  67. package/dist/install/settings-inject.d.ts +17 -17
  68. package/dist/install/settings-inject.js +424 -424
  69. package/dist/native.d.ts +31 -31
  70. package/dist/native.js +106 -106
  71. package/package.json +72 -72
  72. package/skills/skill-aider.md +40 -40
  73. package/skills/skill-codex.md +46 -46
  74. package/skills/skill-copilot.md +46 -46
  75. package/skills/skill-cursor.md +39 -39
  76. package/skills/skill-gemini.md +46 -46
  77. package/skills/skill-kiro.md +39 -39
  78. package/skills/skill-opencode.md +44 -44
  79. package/skills/skill-trae.md +46 -46
  80. package/skills/skill.md +266 -266
  81. package/dist/graphify.node +0 -4
package/dist/native.d.ts CHANGED
@@ -1,32 +1,32 @@
1
- export declare const runPipeline: any;
2
- export declare const updatePipeline: any;
3
- export declare const graphStats: any;
4
- export declare const explainNode: any;
5
- export declare const exportJsonCmd: any;
6
- export declare const exportHtmlCmd: any;
7
- export declare const exportGraphmlCmd: any;
8
- export declare const exportCypherCmd: any;
9
- export declare const tokenBenchmark: any;
10
- export declare const queryGraph: any;
11
- export declare const repoMap: any;
12
- export declare const findPath: any;
13
- export declare const clusterOnly: any;
14
- export declare const mergeGraphs: any;
15
- export declare const diffGraphs: any;
16
- export declare const graphHistory: any;
17
- export declare const affectedNode: any;
18
- export declare const runMcpServer: any;
19
- export declare const exportTree: any;
20
- export declare const exportWiki: any;
21
- export declare const exportObsidian: any;
22
- export declare const ingestUrl: any;
23
- export declare const diagnoseGraph: any;
24
- export declare const saveQueryResult: any;
25
- export declare const reflectGraph: any;
26
- export declare const globalAdd: any;
27
- export declare const globalRemove: any;
28
- export declare const globalList: any;
29
- export declare const globalPath: any;
30
- export declare const ingestScip: any;
31
- export declare const ingestPostgres: any;
1
+ export declare const runPipeline: any;
2
+ export declare const updatePipeline: any;
3
+ export declare const graphStats: any;
4
+ export declare const explainNode: any;
5
+ export declare const exportJsonCmd: any;
6
+ export declare const exportHtmlCmd: any;
7
+ export declare const exportGraphmlCmd: any;
8
+ export declare const exportCypherCmd: any;
9
+ export declare const tokenBenchmark: any;
10
+ export declare const queryGraph: any;
11
+ export declare const repoMap: any;
12
+ export declare const findPath: any;
13
+ export declare const clusterOnly: any;
14
+ export declare const mergeGraphs: any;
15
+ export declare const diffGraphs: any;
16
+ export declare const graphHistory: any;
17
+ export declare const affectedNode: any;
18
+ export declare const runMcpServer: any;
19
+ export declare const exportTree: any;
20
+ export declare const exportWiki: any;
21
+ export declare const exportObsidian: any;
22
+ export declare const ingestUrl: any;
23
+ export declare const diagnoseGraph: any;
24
+ export declare const saveQueryResult: any;
25
+ export declare const reflectGraph: any;
26
+ export declare const globalAdd: any;
27
+ export declare const globalRemove: any;
28
+ export declare const globalList: any;
29
+ export declare const globalPath: any;
30
+ export declare const ingestScip: any;
31
+ export declare const ingestPostgres: any;
32
32
  //# sourceMappingURL=native.d.ts.map
package/dist/native.js CHANGED
@@ -1,107 +1,107 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ingestPostgres = exports.ingestScip = exports.globalPath = exports.globalList = exports.globalRemove = exports.globalAdd = exports.reflectGraph = exports.saveQueryResult = exports.diagnoseGraph = exports.ingestUrl = exports.exportObsidian = exports.exportWiki = exports.exportTree = exports.runMcpServer = exports.affectedNode = exports.graphHistory = exports.diffGraphs = exports.mergeGraphs = exports.clusterOnly = exports.findPath = exports.repoMap = exports.queryGraph = exports.tokenBenchmark = exports.exportCypherCmd = exports.exportGraphmlCmd = exports.exportHtmlCmd = exports.exportJsonCmd = exports.explainNode = exports.graphStats = exports.updatePipeline = exports.runPipeline = void 0;
4
- const path_1 = require("path");
5
- const fs_1 = require("fs");
6
- const PLATFORM_SUFFIX = {
7
- 'win32-x64': 'win32-x64-msvc',
8
- 'darwin-x64': 'darwin-x64',
9
- 'darwin-arm64': 'darwin-arm64',
10
- 'linux-x64': 'linux-x64-gnu',
11
- 'linux-arm64': 'linux-arm64-gnu',
12
- };
13
- function isMusl() {
14
- try {
15
- const { execFileSync } = require('child_process');
16
- // execFileSync never invokes a shell: ldd runs with a fixed arg vector.
17
- const out = execFileSync('ldd', ['--version'], { encoding: 'utf-8' });
18
- return out.includes('musl');
19
- }
20
- catch {
21
- return false;
22
- }
23
- }
24
- function getPlatformSuffix() {
25
- if (process.platform === 'linux' && isMusl()) {
26
- return `linux-${process.arch}-musl`;
27
- }
28
- return PLATFORM_SUFFIX[`${process.platform}-${process.arch}`] || `${process.platform}-${process.arch}`;
29
- }
30
- /// Require the fallback platform package for a suffix. Module names are
31
- /// literal strings in the switch arms — nothing is constructed at runtime —
32
- /// so require() only ever sees fixed, known package names.
33
- function requirePlatformPackage(suffix) {
34
- switch (suffix) {
35
- case 'win32-x64-msvc':
36
- return require('@nodesify/astria-win32-x64-msvc');
37
- case 'darwin-x64':
38
- return require('@nodesify/astria-darwin-x64');
39
- case 'darwin-arm64':
40
- return require('@nodesify/astria-darwin-arm64');
41
- case 'linux-x64-gnu':
42
- return require('@nodesify/astria-linux-x64-gnu');
43
- case 'linux-arm64-gnu':
44
- return require('@nodesify/astria-linux-arm64-gnu');
45
- case 'linux-x64-musl':
46
- return require('@nodesify/astria-linux-x64-musl');
47
- case 'linux-arm64-musl':
48
- return require('@nodesify/astria-linux-arm64-musl');
49
- default:
50
- return undefined;
51
- }
52
- }
53
- /// Local candidates are fixed paths relative to this module; each require()
54
- /// below uses a literal relative specifier, guarded by existsSync so a
55
- /// missing binary never throws at load time.
56
- function loadNativeBinding() {
57
- const local = (0, path_1.join)(__dirname, '..', 'astria.node');
58
- if ((0, fs_1.existsSync)(local))
59
- return require('../astria.node');
60
- // tsx runs tests from src/, where CI's built binary lands in dist/
61
- const localDist = (0, path_1.join)(__dirname, '..', 'dist', 'astria.node');
62
- if ((0, fs_1.existsSync)(localDist))
63
- return require('../dist/astria.node');
64
- const localSrc = (0, path_1.join)(__dirname, 'astria.node');
65
- if ((0, fs_1.existsSync)(localSrc))
66
- return require('./astria.node');
67
- const platformBinding = requirePlatformPackage(getPlatformSuffix());
68
- if (platformBinding) {
69
- return platformBinding;
70
- }
71
- throw new Error(`@nodesify/astria: failed to load native module for ${process.platform}-${process.arch}.\n` +
72
- `Tried: local astria.node and the platform fallback package\n` +
73
- `Ensure the correct platform package is installed.`);
74
- }
75
- const binding = loadNativeBinding();
76
- exports.runPipeline = binding.runPipeline;
77
- exports.updatePipeline = binding.updatePipeline;
78
- exports.graphStats = binding.graphStats;
79
- exports.explainNode = binding.explainNode;
80
- exports.exportJsonCmd = binding.exportJsonCmd;
81
- exports.exportHtmlCmd = binding.exportHtmlCmd;
82
- exports.exportGraphmlCmd = binding.exportGraphmlCmd;
83
- exports.exportCypherCmd = binding.exportCypherCmd;
84
- exports.tokenBenchmark = binding.tokenBenchmark;
85
- exports.queryGraph = binding.queryGraph;
86
- exports.repoMap = binding.repoMap;
87
- exports.findPath = binding.findPath;
88
- exports.clusterOnly = binding.clusterOnly;
89
- exports.mergeGraphs = binding.mergeGraphs;
90
- exports.diffGraphs = binding.diffGraphs;
91
- exports.graphHistory = binding.graphHistory;
92
- exports.affectedNode = binding.affectedNode;
93
- exports.runMcpServer = binding.runMcpServer;
94
- exports.exportTree = binding.exportTree;
95
- exports.exportWiki = binding.exportWiki;
96
- exports.exportObsidian = binding.exportObsidian;
97
- exports.ingestUrl = binding.ingestUrl;
98
- exports.diagnoseGraph = binding.diagnoseGraph;
99
- exports.saveQueryResult = binding.saveQueryResult;
100
- exports.reflectGraph = binding.reflect;
101
- exports.globalAdd = binding.globalAdd;
102
- exports.globalRemove = binding.globalRemove;
103
- exports.globalList = binding.globalList;
104
- exports.globalPath = binding.globalPath;
105
- exports.ingestScip = binding.ingestScip;
106
- exports.ingestPostgres = binding.ingestPostgres;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ingestPostgres = exports.ingestScip = exports.globalPath = exports.globalList = exports.globalRemove = exports.globalAdd = exports.reflectGraph = exports.saveQueryResult = exports.diagnoseGraph = exports.ingestUrl = exports.exportObsidian = exports.exportWiki = exports.exportTree = exports.runMcpServer = exports.affectedNode = exports.graphHistory = exports.diffGraphs = exports.mergeGraphs = exports.clusterOnly = exports.findPath = exports.repoMap = exports.queryGraph = exports.tokenBenchmark = exports.exportCypherCmd = exports.exportGraphmlCmd = exports.exportHtmlCmd = exports.exportJsonCmd = exports.explainNode = exports.graphStats = exports.updatePipeline = exports.runPipeline = void 0;
4
+ const path_1 = require("path");
5
+ const fs_1 = require("fs");
6
+ const PLATFORM_SUFFIX = {
7
+ 'win32-x64': 'win32-x64-msvc',
8
+ 'darwin-x64': 'darwin-x64',
9
+ 'darwin-arm64': 'darwin-arm64',
10
+ 'linux-x64': 'linux-x64-gnu',
11
+ 'linux-arm64': 'linux-arm64-gnu',
12
+ };
13
+ function isMusl() {
14
+ try {
15
+ const { execFileSync } = require('child_process');
16
+ // execFileSync never invokes a shell: ldd runs with a fixed arg vector.
17
+ const out = execFileSync('ldd', ['--version'], { encoding: 'utf-8' });
18
+ return out.includes('musl');
19
+ }
20
+ catch {
21
+ return false;
22
+ }
23
+ }
24
+ function getPlatformSuffix() {
25
+ if (process.platform === 'linux' && isMusl()) {
26
+ return `linux-${process.arch}-musl`;
27
+ }
28
+ return PLATFORM_SUFFIX[`${process.platform}-${process.arch}`] || `${process.platform}-${process.arch}`;
29
+ }
30
+ /// Require the fallback platform package for a suffix. Module names are
31
+ /// literal strings in the switch arms — nothing is constructed at runtime —
32
+ /// so require() only ever sees fixed, known package names.
33
+ function requirePlatformPackage(suffix) {
34
+ switch (suffix) {
35
+ case 'win32-x64-msvc':
36
+ return require('@nodesify/astria-win32-x64-msvc');
37
+ case 'darwin-x64':
38
+ return require('@nodesify/astria-darwin-x64');
39
+ case 'darwin-arm64':
40
+ return require('@nodesify/astria-darwin-arm64');
41
+ case 'linux-x64-gnu':
42
+ return require('@nodesify/astria-linux-x64-gnu');
43
+ case 'linux-arm64-gnu':
44
+ return require('@nodesify/astria-linux-arm64-gnu');
45
+ case 'linux-x64-musl':
46
+ return require('@nodesify/astria-linux-x64-musl');
47
+ case 'linux-arm64-musl':
48
+ return require('@nodesify/astria-linux-arm64-musl');
49
+ default:
50
+ return undefined;
51
+ }
52
+ }
53
+ /// Local candidates are fixed paths relative to this module; each require()
54
+ /// below uses a literal relative specifier, guarded by existsSync so a
55
+ /// missing binary never throws at load time.
56
+ function loadNativeBinding() {
57
+ const local = (0, path_1.join)(__dirname, '..', 'astria.node');
58
+ if ((0, fs_1.existsSync)(local))
59
+ return require('../astria.node');
60
+ // tsx runs tests from src/, where CI's built binary lands in dist/
61
+ const localDist = (0, path_1.join)(__dirname, '..', 'dist', 'astria.node');
62
+ if ((0, fs_1.existsSync)(localDist))
63
+ return require('../dist/astria.node');
64
+ const localSrc = (0, path_1.join)(__dirname, 'astria.node');
65
+ if ((0, fs_1.existsSync)(localSrc))
66
+ return require('./astria.node');
67
+ const platformBinding = requirePlatformPackage(getPlatformSuffix());
68
+ if (platformBinding) {
69
+ return platformBinding;
70
+ }
71
+ throw new Error(`@nodesify/astria: failed to load native module for ${process.platform}-${process.arch}.\n` +
72
+ `Tried: local astria.node and the platform fallback package\n` +
73
+ `Ensure the correct platform package is installed.`);
74
+ }
75
+ const binding = loadNativeBinding();
76
+ exports.runPipeline = binding.runPipeline;
77
+ exports.updatePipeline = binding.updatePipeline;
78
+ exports.graphStats = binding.graphStats;
79
+ exports.explainNode = binding.explainNode;
80
+ exports.exportJsonCmd = binding.exportJsonCmd;
81
+ exports.exportHtmlCmd = binding.exportHtmlCmd;
82
+ exports.exportGraphmlCmd = binding.exportGraphmlCmd;
83
+ exports.exportCypherCmd = binding.exportCypherCmd;
84
+ exports.tokenBenchmark = binding.tokenBenchmark;
85
+ exports.queryGraph = binding.queryGraph;
86
+ exports.repoMap = binding.repoMap;
87
+ exports.findPath = binding.findPath;
88
+ exports.clusterOnly = binding.clusterOnly;
89
+ exports.mergeGraphs = binding.mergeGraphs;
90
+ exports.diffGraphs = binding.diffGraphs;
91
+ exports.graphHistory = binding.graphHistory;
92
+ exports.affectedNode = binding.affectedNode;
93
+ exports.runMcpServer = binding.runMcpServer;
94
+ exports.exportTree = binding.exportTree;
95
+ exports.exportWiki = binding.exportWiki;
96
+ exports.exportObsidian = binding.exportObsidian;
97
+ exports.ingestUrl = binding.ingestUrl;
98
+ exports.diagnoseGraph = binding.diagnoseGraph;
99
+ exports.saveQueryResult = binding.saveQueryResult;
100
+ exports.reflectGraph = binding.reflect;
101
+ exports.globalAdd = binding.globalAdd;
102
+ exports.globalRemove = binding.globalRemove;
103
+ exports.globalList = binding.globalList;
104
+ exports.globalPath = binding.globalPath;
105
+ exports.ingestScip = binding.ingestScip;
106
+ exports.ingestPostgres = binding.ingestPostgres;
107
107
  //# sourceMappingURL=native.js.map
package/package.json CHANGED
@@ -1,72 +1,72 @@
1
- {
2
- "name": "@nodesify/astria",
3
- "version": "1.0.0",
4
- "description": "Turn any folder into a queryable knowledge graph",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "bin": {
8
- "astria": "dist/index.js"
9
- },
10
- "files": [
11
- "dist/**/*",
12
- "!dist/__tests__/**",
13
- "skills/**/*",
14
- "README.md",
15
- "LICENSE",
16
- "!dist/astria.node"
17
- ],
18
- "scripts": {
19
- "build": "tsc",
20
- "dev": "tsc --watch",
21
- "napi:build": "napi build --platform --release dist",
22
- "napi:dev": "napi build --platform dist",
23
- "napi:artifacts": "napi artifacts",
24
- "prepublishOnly": "napi prepublish -t npm",
25
- "test": "npx tsx src/__tests__/cli.test.ts && npx tsx src/__tests__/install.test.ts && npx tsx src/__tests__/hooks.test.ts && npx tsx src/__tests__/e2e.test.ts"
26
- },
27
- "keywords": [
28
- "knowledge-graph",
29
- "code-analysis",
30
- "tree-sitter",
31
- "ast",
32
- "code-intelligence"
33
- ],
34
- "license": "MIT",
35
- "repository": {
36
- "type": "git",
37
- "url": "git+https://github.com/Nodesify/astria.git"
38
- },
39
- "homepage": "https://github.com/Nodesify/astria#readme",
40
- "bugs": {
41
- "url": "https://github.com/Nodesify/astria/issues"
42
- },
43
- "dependencies": {
44
- "commander": "^12"
45
- },
46
- "devDependencies": {
47
- "tsx": "^4",
48
- "typescript": "^5",
49
- "@types/node": "^22",
50
- "@napi-rs/cli": "^2.18.4"
51
- },
52
- "engines": {
53
- "node": ">=20"
54
- },
55
- "napi": {
56
- "name": "astria",
57
- "triples": {
58
- "defaults": true,
59
- "additional": [
60
- "aarch64-apple-darwin",
61
- "aarch64-unknown-linux-gnu"
62
- ]
63
- }
64
- },
65
- "optionalDependencies": {
66
- "@nodesify/astria-win32-x64-msvc": "1.0.0",
67
- "@nodesify/astria-darwin-x64": "1.0.0",
68
- "@nodesify/astria-linux-x64-gnu": "1.0.0",
69
- "@nodesify/astria-darwin-arm64": "1.0.0",
70
- "@nodesify/astria-linux-arm64-gnu": "1.0.0"
71
- }
72
- }
1
+ {
2
+ "name": "@nodesify/astria",
3
+ "version": "1.0.1",
4
+ "description": "Turn any folder into a queryable knowledge graph",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "astria": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist/**/*",
12
+ "!dist/__tests__/**",
13
+ "skills/**/*",
14
+ "README.md",
15
+ "LICENSE",
16
+ "!dist/astria.node"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "dev": "tsc --watch",
21
+ "napi:build": "napi build --platform --release dist",
22
+ "napi:dev": "napi build --platform dist",
23
+ "napi:artifacts": "napi artifacts",
24
+ "prepublishOnly": "napi prepublish -t npm",
25
+ "test": "npx tsx src/__tests__/cli.test.ts && npx tsx src/__tests__/install.test.ts && npx tsx src/__tests__/hooks.test.ts && npx tsx src/__tests__/e2e.test.ts"
26
+ },
27
+ "keywords": [
28
+ "knowledge-graph",
29
+ "code-analysis",
30
+ "tree-sitter",
31
+ "ast",
32
+ "code-intelligence"
33
+ ],
34
+ "license": "MIT",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "git+https://github.com/Nodesify/astria.git"
38
+ },
39
+ "homepage": "https://github.com/Nodesify/astria#readme",
40
+ "bugs": {
41
+ "url": "https://github.com/Nodesify/astria/issues"
42
+ },
43
+ "dependencies": {
44
+ "commander": "^12"
45
+ },
46
+ "devDependencies": {
47
+ "tsx": "^4",
48
+ "typescript": "^5",
49
+ "@types/node": "^22",
50
+ "@napi-rs/cli": "^2.18.4"
51
+ },
52
+ "engines": {
53
+ "node": ">=20"
54
+ },
55
+ "napi": {
56
+ "name": "astria",
57
+ "triples": {
58
+ "defaults": true,
59
+ "additional": [
60
+ "aarch64-apple-darwin",
61
+ "aarch64-unknown-linux-gnu"
62
+ ]
63
+ }
64
+ },
65
+ "optionalDependencies": {
66
+ "@nodesify/astria-win32-x64-msvc": "1.0.1",
67
+ "@nodesify/astria-darwin-x64": "1.0.1",
68
+ "@nodesify/astria-linux-x64-gnu": "1.0.1",
69
+ "@nodesify/astria-darwin-arm64": "1.0.1",
70
+ "@nodesify/astria-linux-arm64-gnu": "1.0.1"
71
+ }
72
+ }
@@ -1,40 +1,40 @@
1
- ---
2
- name: astria
3
- description: Turn any directory into a queryable knowledge graph. Trigger: /astria
4
- ---
5
-
6
- # astria skill (Aider)
7
-
8
- When the user types `/astria`, run the astria knowledge graph pipeline.
9
-
10
- ## Step 1 - Build or update the graph
11
-
12
- Run in terminal:
13
- ```bash
14
- node -e "const fs=require('fs');if(!fs.existsSync('.astria/graph.json')){console.log('missing')}else{const age=Math.round((Date.now()-fs.statSync('.astria/graph.json').mtimeMs)/60000);console.log(age>30?'stale':'fresh')}"
15
- ```
16
-
17
- - `missing` → run `astria run .`
18
- - `stale` → run `astria update .`
19
- - `fresh` → skip to Step 2
20
-
21
- ## Step 2 - Read the report
22
-
23
- Read `.astria/graph_report.md` and summarize: hub nodes, communities, surprising connections.
24
- ## Prefer MCP tools when connected
25
-
26
- If the `astria` MCP server is connected (registered by `astria install` for claude, cursor, gemini, and zcode), prefer its native tools over shell commands: `repo_map` to orient, `query_graph` for a natural-language question, `explain`/`get_neighbors` for one symbol, `shortest_path` to trace a connection, `affected` before changing a shared symbol. Use the CLI commands below only when the server is not connected.
27
-
28
-
29
- ## Usage with Aider
30
-
31
- Aider focuses on code editing. Use astria to understand the codebase before making changes:
32
-
33
- ```bash
34
- astria query "authentication flow" # understand a feature
35
- astria explain "UserService" # see what a class does
36
- astria path "Config" "Database" # trace dependencies
37
- astria affected "UserService" # blast radius of a change
38
- ```
39
-
40
- After editing, run `astria update .` to keep the graph current.
1
+ ---
2
+ name: astria
3
+ description: Turn any directory into a queryable knowledge graph. Trigger: /astria
4
+ ---
5
+
6
+ # astria skill (Aider)
7
+
8
+ When the user types `/astria`, run the astria knowledge graph pipeline.
9
+
10
+ ## Step 1 - Build or update the graph
11
+
12
+ Run in terminal:
13
+ ```bash
14
+ node -e "const fs=require('fs');if(!fs.existsSync('.astria/graph.json')){console.log('missing')}else{const age=Math.round((Date.now()-fs.statSync('.astria/graph.json').mtimeMs)/60000);console.log(age>30?'stale':'fresh')}"
15
+ ```
16
+
17
+ - `missing` → run `astria run .`
18
+ - `stale` → run `astria update .`
19
+ - `fresh` → skip to Step 2
20
+
21
+ ## Step 2 - Read the report
22
+
23
+ Read `.astria/graph_report.md` and summarize: hub nodes, communities, surprising connections.
24
+ ## Prefer MCP tools when connected
25
+
26
+ If the `astria` MCP server is connected (registered by `astria install` for claude, cursor, gemini, and zcode), prefer its native tools over shell commands: `repo_map` to orient, `query_graph` for a natural-language question, `explain`/`get_neighbors` for one symbol, `shortest_path` to trace a connection, `affected` before changing a shared symbol. Use the CLI commands below only when the server is not connected.
27
+
28
+
29
+ ## Usage with Aider
30
+
31
+ Aider focuses on code editing. Use astria to understand the codebase before making changes:
32
+
33
+ ```bash
34
+ astria query "authentication flow" # understand a feature
35
+ astria explain "UserService" # see what a class does
36
+ astria path "Config" "Database" # trace dependencies
37
+ astria affected "UserService" # blast radius of a change
38
+ ```
39
+
40
+ After editing, run `astria update .` to keep the graph current.
@@ -1,46 +1,46 @@
1
- ---
2
- name: astria
3
- description: Turn any directory into a queryable knowledge graph. Trigger: /astria
4
- ---
5
-
6
- # astria skill (Codex)
7
-
8
- When the user types `/astria`, run the astria knowledge graph pipeline.
9
-
10
- ## Step 1 - Build or update the graph
11
-
12
- Run via Bash:
13
- ```bash
14
- node -e "const fs=require('fs');if(!fs.existsSync('.astria/graph.json')){console.log('missing')}else{const age=Math.round((Date.now()-fs.statSync('.astria/graph.json').mtimeMs)/60000);console.log(age>30?'stale':'fresh')}"
15
- ```
16
-
17
- - `missing` → run `astria run .`
18
- - `stale` → run `astria update .`
19
- - `fresh` → skip to Step 2
20
-
21
- ## Step 2 - Read the report
22
-
23
- Read `.astria/graph_report.md` and summarize: hub nodes, communities, surprising connections.
24
- ## Prefer MCP tools when connected
25
-
26
- If the `astria` MCP server is connected (registered by `astria install` for claude, cursor, gemini, and zcode), prefer its native tools over shell commands: `repo_map` to orient, `query_graph` for a natural-language question, `explain`/`get_neighbors` for one symbol, `shortest_path` to trace a connection, `affected` before changing a shared symbol. Use the CLI commands below only when the server is not connected.
27
-
28
-
29
- ## Enforcement Rules
30
-
31
- When `.astria/` exists, you MUST use astria commands BEFORE using Bash grep/find:
32
-
33
- | Question | Command |
34
- |----------|---------|
35
- | Where is X? | `astria query "X"` |
36
- | How does X connect to Y? | `astria path "X" "Y"` |
37
- | What breaks if X changes? | `astria affected "X"` |
38
- | How does X reach Y (call direction)? | `astria path "X" "Y" --directed` |
39
- | What does X do? | `astria explain "X"` |
40
- | Architecture overview? | Read `.astria/graph_report.md` |
41
-
42
- Only use native file tools AFTER the graph identified the exact files.
43
-
44
- ## After editing code
45
-
46
- Run `astria update .` to keep the graph current.
1
+ ---
2
+ name: astria
3
+ description: Turn any directory into a queryable knowledge graph. Trigger: /astria
4
+ ---
5
+
6
+ # astria skill (Codex)
7
+
8
+ When the user types `/astria`, run the astria knowledge graph pipeline.
9
+
10
+ ## Step 1 - Build or update the graph
11
+
12
+ Run via Bash:
13
+ ```bash
14
+ node -e "const fs=require('fs');if(!fs.existsSync('.astria/graph.json')){console.log('missing')}else{const age=Math.round((Date.now()-fs.statSync('.astria/graph.json').mtimeMs)/60000);console.log(age>30?'stale':'fresh')}"
15
+ ```
16
+
17
+ - `missing` → run `astria run .`
18
+ - `stale` → run `astria update .`
19
+ - `fresh` → skip to Step 2
20
+
21
+ ## Step 2 - Read the report
22
+
23
+ Read `.astria/graph_report.md` and summarize: hub nodes, communities, surprising connections.
24
+ ## Prefer MCP tools when connected
25
+
26
+ If the `astria` MCP server is connected (registered by `astria install` for claude, cursor, gemini, and zcode), prefer its native tools over shell commands: `repo_map` to orient, `query_graph` for a natural-language question, `explain`/`get_neighbors` for one symbol, `shortest_path` to trace a connection, `affected` before changing a shared symbol. Use the CLI commands below only when the server is not connected.
27
+
28
+
29
+ ## Enforcement Rules
30
+
31
+ When `.astria/` exists, you MUST use astria commands BEFORE using Bash grep/find:
32
+
33
+ | Question | Command |
34
+ |----------|---------|
35
+ | Where is X? | `astria query "X"` |
36
+ | How does X connect to Y? | `astria path "X" "Y"` |
37
+ | What breaks if X changes? | `astria affected "X"` |
38
+ | How does X reach Y (call direction)? | `astria path "X" "Y" --directed` |
39
+ | What does X do? | `astria explain "X"` |
40
+ | Architecture overview? | Read `.astria/graph_report.md` |
41
+
42
+ Only use native file tools AFTER the graph identified the exact files.
43
+
44
+ ## After editing code
45
+
46
+ Run `astria update .` to keep the graph current.