@nodesify/astria 1.1.1 → 1.2.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/README.md +2 -2
- package/dist/commands/change-review.d.ts +73 -0
- package/dist/commands/change-review.d.ts.map +1 -0
- package/dist/commands/change-review.js +15 -0
- package/dist/commands/change-review.js.map +1 -0
- package/dist/commands/doctor.d.ts +6 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +139 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/global.d.ts.map +1 -1
- package/dist/commands/global.js +3 -1
- package/dist/commands/global.js.map +1 -1
- package/dist/commands/indexing-profile.d.ts +14 -0
- package/dist/commands/indexing-profile.d.ts.map +1 -0
- package/dist/commands/indexing-profile.js +74 -0
- package/dist/commands/indexing-profile.js.map +1 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +52 -53
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/merge-driver.d.ts.map +1 -1
- package/dist/commands/merge-driver.js +23 -11
- package/dist/commands/merge-driver.js.map +1 -1
- package/dist/commands/merge-gate.d.ts.map +1 -1
- package/dist/commands/merge-gate.js +10 -7
- package/dist/commands/merge-gate.js.map +1 -1
- package/dist/commands/prs.d.ts.map +1 -1
- package/dist/commands/prs.js +139 -278
- package/dist/commands/prs.js.map +1 -1
- package/dist/commands/query.d.ts.map +1 -1
- package/dist/commands/query.js +13 -3
- package/dist/commands/query.js.map +1 -1
- package/dist/commands/risk.d.ts +2 -3
- package/dist/commands/risk.d.ts.map +1 -1
- package/dist/commands/risk.js +5 -12
- package/dist/commands/risk.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +2 -9
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +45 -100
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/update.d.ts +3 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +3 -10
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/watch.d.ts +1 -0
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +64 -21
- package/dist/commands/watch.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -4
- package/dist/index.js.map +1 -1
- package/dist/install/atomic.d.ts +3 -0
- package/dist/install/atomic.d.ts.map +1 -1
- package/dist/install/atomic.js +59 -20
- package/dist/install/atomic.js.map +1 -1
- package/dist/install/hooks.d.ts +2 -2
- package/dist/install/hooks.d.ts.map +1 -1
- package/dist/install/hooks.js +5 -3
- package/dist/install/hooks.js.map +1 -1
- package/dist/install/index.d.ts +5 -3
- package/dist/install/index.d.ts.map +1 -1
- package/dist/install/index.js +173 -222
- package/dist/install/index.js.map +1 -1
- package/dist/install/platforms.d.ts +2 -3
- package/dist/install/platforms.d.ts.map +1 -1
- package/dist/install/platforms.js +1 -4
- package/dist/install/platforms.js.map +1 -1
- package/dist/install/settings-inject.d.ts +11 -4
- package/dist/install/settings-inject.d.ts.map +1 -1
- package/dist/install/settings-inject.js +60 -37
- package/dist/install/settings-inject.js.map +1 -1
- package/dist/install/state.d.ts +12 -0
- package/dist/install/state.d.ts.map +1 -0
- package/dist/install/state.js +85 -0
- package/dist/install/state.js.map +1 -0
- package/dist/native.d.ts +3 -0
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js +22 -18
- package/dist/native.js.map +1 -1
- package/package.json +10 -7
package/README.md
CHANGED
|
@@ -10,8 +10,6 @@ npm install -g @nodesify/astria
|
|
|
10
10
|
|
|
11
11
|
Requires Node.js >= 22. No Rust toolchain needed — ships prebuilt native binaries for macOS, Linux, and Windows.
|
|
12
12
|
|
|
13
|
-
> **Migrating from `@nodesify/graphify`?** Run `astria migrate` once (renames `.graphify/` → `.astria/` and the global store), then `astria install` to refresh AI-tool skills and hooks. `GRAPHIFY_*` env vars keep working; `ASTRIA_*` takes precedence.
|
|
14
|
-
|
|
15
13
|
## Usage
|
|
16
14
|
|
|
17
15
|
```bash
|
|
@@ -71,3 +69,5 @@ Place a `.astriaignore` file in your project root (gitignore syntax) to exclude
|
|
|
71
69
|
## License
|
|
72
70
|
|
|
73
71
|
MIT
|
|
72
|
+
|
|
73
|
+
Installation defaults to project scope: `astria install --platform codex --scope project`. Use `--scope user` explicitly for user-wide integrations. Run `astria doctor` after setup or upgrades. See the [installation lifecycle guide](https://nodesify.github.io/astria/docs/guides/installation-lifecycle) for supported platforms, upgrade, backup/restore and complete removal.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export interface ChangedDeclaration {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
file: string;
|
|
5
|
+
line: number;
|
|
6
|
+
endLine: number;
|
|
7
|
+
kind: string;
|
|
8
|
+
snapshot: 'before' | 'after';
|
|
9
|
+
change: string;
|
|
10
|
+
owners: string[];
|
|
11
|
+
ownerSource: string | null;
|
|
12
|
+
}
|
|
13
|
+
export interface ChangeConsumer {
|
|
14
|
+
id: string;
|
|
15
|
+
label: string;
|
|
16
|
+
file: string;
|
|
17
|
+
line: number | null;
|
|
18
|
+
snapshot: 'before' | 'after';
|
|
19
|
+
changedId: string;
|
|
20
|
+
depth: number;
|
|
21
|
+
evidence: string;
|
|
22
|
+
stillPresent: boolean;
|
|
23
|
+
isTest: boolean;
|
|
24
|
+
owners: string[];
|
|
25
|
+
ownerSource: string | null;
|
|
26
|
+
path: Array<{
|
|
27
|
+
from: string;
|
|
28
|
+
to: string;
|
|
29
|
+
relation: string;
|
|
30
|
+
evidence: string;
|
|
31
|
+
file: string;
|
|
32
|
+
line: number | null;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
export interface ChangeReview {
|
|
36
|
+
schemaVersion: 1;
|
|
37
|
+
score: number | null;
|
|
38
|
+
level: string;
|
|
39
|
+
scope: string;
|
|
40
|
+
baseCommit: string;
|
|
41
|
+
requestedBaseCommit: string;
|
|
42
|
+
headCommit: string | null;
|
|
43
|
+
beforeIdentity: string;
|
|
44
|
+
afterIdentity: string;
|
|
45
|
+
changedFiles: Array<{
|
|
46
|
+
status: string;
|
|
47
|
+
oldPath: string | null;
|
|
48
|
+
newPath: string | null;
|
|
49
|
+
}>;
|
|
50
|
+
declarations: ChangedDeclaration[];
|
|
51
|
+
consumers: ChangeConsumer[];
|
|
52
|
+
impacted: number;
|
|
53
|
+
directConsumers: number;
|
|
54
|
+
inferredConsumers: number;
|
|
55
|
+
testConsumers: number;
|
|
56
|
+
coverageComplete: boolean;
|
|
57
|
+
coverageIssues: string[];
|
|
58
|
+
unresolvedBefore: number;
|
|
59
|
+
unresolvedAfter: number;
|
|
60
|
+
filesIndexedBefore: number;
|
|
61
|
+
filesIndexedAfter: number;
|
|
62
|
+
indexingMs: number;
|
|
63
|
+
text: string;
|
|
64
|
+
}
|
|
65
|
+
export interface ReviewOptions {
|
|
66
|
+
graph: string;
|
|
67
|
+
staged?: boolean;
|
|
68
|
+
base?: string;
|
|
69
|
+
head?: string;
|
|
70
|
+
}
|
|
71
|
+
/** One native engine serves local review, merge gates, and the PR dashboard. */
|
|
72
|
+
export declare function changeReview(opts: ReviewOptions): ChangeReview;
|
|
73
|
+
//# sourceMappingURL=change-review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-review.d.ts","sourceRoot":"","sources":["../../src/commands/change-review.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IACvE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAC3D,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7D,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IACjF,YAAY,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACrF,IAAI,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CAClH;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,CAAC,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IACnD,UAAU,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3E,cAAc,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAC9C,YAAY,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACxF,YAAY,EAAE,kBAAkB,EAAE,CAAC;IAAC,SAAS,EAAE,cAAc,EAAE,CAAC;IAChE,QAAQ,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAC5F,gBAAgB,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IACpD,gBAAgB,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAClD,kBAAkB,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAC1E,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AAEhG,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CAM9D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.changeReview = changeReview;
|
|
4
|
+
const native_1 = require("../native");
|
|
5
|
+
/** One native engine serves local review, merge gates, and the PR dashboard. */
|
|
6
|
+
function changeReview(opts) {
|
|
7
|
+
if (opts.head && !opts.base)
|
|
8
|
+
throw new Error('--head requires --base');
|
|
9
|
+
if (opts.staged && opts.base)
|
|
10
|
+
throw new Error('--staged cannot be combined with --base');
|
|
11
|
+
const result = (0, native_1.riskReport)(opts.graph, opts.staged === true, opts.base, opts.base ? (opts.head ?? 'HEAD') : undefined);
|
|
12
|
+
const report = JSON.parse(result.reportJson);
|
|
13
|
+
return { ...report, text: result.text };
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=change-review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-review.js","sourceRoot":"","sources":["../../src/commands/change-review.ts"],"names":[],"mappings":";;;AAAA,sCAAuC;AA+BvC,gFAAgF;AAChF,sBAA6B,IAAmB;IAC9C,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACvE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtH,MAAM,MAAM,GAAiB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3D,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAwBA,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAuD1F"}
|
|
@@ -0,0 +1,139 @@
|
|
|
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.doctorCommand = doctorCommand;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const native_1 = require("../native");
|
|
40
|
+
const state_1 = require("../install/state");
|
|
41
|
+
const platforms_1 = require("../install/platforms");
|
|
42
|
+
const settings_inject_1 = require("../install/settings-inject");
|
|
43
|
+
const hooks_1 = require("../install/hooks");
|
|
44
|
+
const crypto_1 = require("crypto");
|
|
45
|
+
function executableOnPath(name) {
|
|
46
|
+
const extensions = process.platform === 'win32' ? (process.env.PATHEXT ?? '.EXE;.CMD;.BAT').split(';') : [''];
|
|
47
|
+
for (const dir of (process.env.PATH ?? '').split(path.delimiter)) {
|
|
48
|
+
if (!dir)
|
|
49
|
+
continue;
|
|
50
|
+
for (const extension of extensions) {
|
|
51
|
+
const file = path.join(dir.replace(/^"|"$/g, ''), name + extension);
|
|
52
|
+
try {
|
|
53
|
+
fs.accessSync(file, process.platform === 'win32' ? fs.constants.R_OK : fs.constants.X_OK);
|
|
54
|
+
if (fs.statSync(file).isFile())
|
|
55
|
+
return file;
|
|
56
|
+
}
|
|
57
|
+
catch { /* Try next PATH entry. */ }
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
function doctorCommand(opts) {
|
|
63
|
+
const checks = [];
|
|
64
|
+
const add = (name, status, detail) => checks.push({ name, status, detail });
|
|
65
|
+
const check = (name, work) => { try {
|
|
66
|
+
work();
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
add(name, 'error', error.message);
|
|
70
|
+
} };
|
|
71
|
+
check('node', () => add('node', Number(process.versions.node.split('.')[0]) >= 22 ? 'ok' : 'error', `${process.version} at ${process.execPath}; requires Node 22+`));
|
|
72
|
+
check('native', () => {
|
|
73
|
+
const embed = (0, native_1.embeddingsSupported)();
|
|
74
|
+
add('native', 'ok', `Loaded ${(0, native_1.getPlatformSuffix)()}`);
|
|
75
|
+
add('embeddings', embed ? 'ok' : 'warning', embed ? 'Local embeddings supported; doctor does not download the model' : 'This build has no local embedding runtime; omit --embed');
|
|
76
|
+
});
|
|
77
|
+
const executable = executableOnPath('astria');
|
|
78
|
+
add('executable', executable ? 'ok' : 'error', executable ? `PATH resolves to ${executable}; check the editor uses this same PATH and restart it after upgrades` : 'astria is absent from PATH; install globally or expose the local node_modules/.bin directory to the editor');
|
|
79
|
+
check('installation', () => {
|
|
80
|
+
const scope = (0, state_1.parseScope)(opts.scope);
|
|
81
|
+
const root = (0, state_1.installRoot)(opts.graph, scope);
|
|
82
|
+
const state = (0, state_1.readInstallState)(opts.graph, scope);
|
|
83
|
+
add('installation', state.platforms.length ? 'ok' : 'warning', `${scope}: ${state.platforms.join(', ') || 'no recorded integrations'}`);
|
|
84
|
+
for (const platform of state.platforms.length ? state.platforms : platforms_1.PLATFORM_NAMES) {
|
|
85
|
+
const cfg = platforms_1.PLATFORMS[platform];
|
|
86
|
+
if (!cfg) {
|
|
87
|
+
add(platform, 'error', 'Unknown platform in installation record');
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (cfg.mcp && (scope === 'project' || platform === 'codex'))
|
|
91
|
+
check(`${platform} MCP`, () => {
|
|
92
|
+
const result = (0, settings_inject_1.inspectAgentMcp)(root, cfg.mcp);
|
|
93
|
+
if (!result.present && !state.platforms.includes(platform))
|
|
94
|
+
return;
|
|
95
|
+
add(`${platform} MCP`, !result.present ? 'error' : result.managed ? 'ok' : 'warning', `${result.file}: ${result.present ? (result.managed ? 'registered' : 'customized; inspect command and arguments') : 'missing; rerun install'}`);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
for (const [file, expected] of Object.entries(state.files))
|
|
99
|
+
check('managed file', () => {
|
|
100
|
+
const actual = (0, crypto_1.createHash)('sha256').update(fs.readFileSync(file, 'utf8')).digest('hex');
|
|
101
|
+
add('managed file', actual === expected ? 'ok' : 'warning', `${file}: ${actual === expected ? 'intact' : 'customized; install/uninstall will preserve it and request manual resolution'}`);
|
|
102
|
+
});
|
|
103
|
+
let existing = root;
|
|
104
|
+
while (!fs.existsSync(existing) && path.dirname(existing) !== existing)
|
|
105
|
+
existing = path.dirname(existing);
|
|
106
|
+
fs.accessSync(existing, fs.constants.W_OK);
|
|
107
|
+
for (const file of Object.keys(state.files)) {
|
|
108
|
+
let target = file;
|
|
109
|
+
while (!fs.existsSync(target) && path.dirname(target) !== target)
|
|
110
|
+
target = path.dirname(target);
|
|
111
|
+
fs.accessSync(target, fs.constants.W_OK);
|
|
112
|
+
}
|
|
113
|
+
add('permissions', 'ok', `${existing} is writable; editor sandbox permissions may differ`);
|
|
114
|
+
});
|
|
115
|
+
check('git hooks', () => {
|
|
116
|
+
const hooks = (0, hooks_1.statusGitHooks)(path.resolve(opts.graph));
|
|
117
|
+
add('git hooks', hooks.some(h => /unsafe|legacy|Not a git/.test(h)) ? 'warning' : 'ok', hooks.join('; '));
|
|
118
|
+
});
|
|
119
|
+
check('graph', () => {
|
|
120
|
+
if (!fs.existsSync(path.join(opts.graph, '.astria', 'db.sqlite'))) {
|
|
121
|
+
add('graph', 'warning', 'No graph; run astria run . --backend none');
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const info = (0, native_1.graphBuildInfo)(path.resolve(opts.graph));
|
|
125
|
+
const outdated = info.extractionHashVersion !== info.currentExtractionHashVersion;
|
|
126
|
+
add('graph', outdated ? 'warning' : 'ok', outdated ? 'Extraction rules changed; run astria update .' : `Graph built by Astria ${info.astriaVersion ?? 'unknown'}`);
|
|
127
|
+
if (info.staleExternalIndexes.length)
|
|
128
|
+
add('external indexes', 'warning', `Reimport: ${info.staleExternalIndexes.join(', ')}`);
|
|
129
|
+
});
|
|
130
|
+
const ok = !checks.some(c => c.status === 'error');
|
|
131
|
+
if (opts.json)
|
|
132
|
+
console.log(JSON.stringify({ ok, checks }, null, 2));
|
|
133
|
+
else
|
|
134
|
+
for (const c of checks)
|
|
135
|
+
console.log(`${c.status.toUpperCase()} ${c.name}: ${c.detail}`);
|
|
136
|
+
if (!ok)
|
|
137
|
+
process.exitCode = 1;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../src/commands/global.ts"],"names":[],"mappings":"AAEA,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,iBAYzE;AAED,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,iBAQpD;AAED,wBAAsB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../src/commands/global.ts"],"names":[],"mappings":"AAEA,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,iBAYzE;AAED,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,iBAQpD;AAED,wBAAsB,iBAAiB,kBAiBtC;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAYrE"}
|
package/dist/commands/global.js
CHANGED
|
@@ -36,7 +36,9 @@ async function globalListCommand() {
|
|
|
36
36
|
}
|
|
37
37
|
console.log('Global graph repos:');
|
|
38
38
|
for (const e of entries) {
|
|
39
|
-
console.log(` ${e.tag} — ${e.nodes} nodes, ${e.edges} edges`);
|
|
39
|
+
console.log(` ${e.tag} — ${e.nodes} nodes, ${e.edges} edges | ${e.state}`);
|
|
40
|
+
console.log(` commit: ${e.sourceCommit ?? 'unknown'} | generation: ${e.graphGeneration ?? 'unknown'}`);
|
|
41
|
+
console.log(` source: ${e.root || 'unavailable'} | built: ${e.graphBuiltAt ?? 'unknown'}`);
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/commands/global.ts"],"names":[],"mappings":";;;;;;AAAA,sCAA4E;AAErE,KAAK,2BAA2B,IAAY,EAAE,IAAqB;IACxE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,kBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,iCAAiC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CACT,UAAU,MAAM,CAAC,UAAU,aAAa,MAAM,CAAC,UAAU,KAAK;YAC5D,iBAAiB,MAAM,CAAC,aAAa,wBAAwB,MAAM,CAAC,kBAAkB,EAAE,CAC3F,CAAC;IACJ,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAEM,KAAK,8BAA8B,GAAW;IACnD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,qBAAY,EAAC,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,MAAM,OAAO,gCAAgC,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAEM,KAAK;IACV,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/commands/global.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface IndexingOptions {
|
|
2
|
+
dedup?: boolean;
|
|
3
|
+
backend?: string;
|
|
4
|
+
judge?: string;
|
|
5
|
+
model?: string;
|
|
6
|
+
embed?: boolean;
|
|
7
|
+
labelCommunities?: boolean;
|
|
8
|
+
deep?: boolean;
|
|
9
|
+
refreshPolicy?: boolean;
|
|
10
|
+
llmBudget?: string;
|
|
11
|
+
}
|
|
12
|
+
/** Updates reuse the project's policy, including an explicitly disabled backend. */
|
|
13
|
+
export declare function indexingOptions(root: string, opts: IndexingOptions, update: boolean): IndexingOptions;
|
|
14
|
+
//# sourceMappingURL=indexing-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexing-profile.d.ts","sourceRoot":"","sources":["../../src/commands/indexing-profile.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7C;AAQD,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,eAAe,CAkDrG"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.indexingOptions = indexingOptions;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const KEYS = ['LLM_BACKEND', 'LLM_MODEL', 'LLM_BASE_URL', 'LLM_JUDGE', 'KIMI_BASE_URL',
|
|
7
|
+
'AZURE_ENDPOINT', 'AZURE_DEPLOYMENT', 'AZURE_API_VERSION', 'AWS_REGION', 'LLM_BUDGET'];
|
|
8
|
+
/** Updates reuse the project's policy, including an explicitly disabled backend. */
|
|
9
|
+
function indexingOptions(root, opts, update) {
|
|
10
|
+
if (opts.refreshPolicy)
|
|
11
|
+
process.env.ASTRIA_REFRESH_POLICY = '1';
|
|
12
|
+
else
|
|
13
|
+
delete process.env.ASTRIA_REFRESH_POLICY;
|
|
14
|
+
const filename = (0, path_1.join)(root, '.astria', 'indexing-profile.json');
|
|
15
|
+
const profile = update && (0, fs_1.existsSync)(filename)
|
|
16
|
+
? JSON.parse((0, fs_1.readFileSync)(filename, 'utf8')) : undefined;
|
|
17
|
+
if (profile && profile.version !== 1)
|
|
18
|
+
throw new Error('Unsupported indexing profile version; rebuild with an explicit policy');
|
|
19
|
+
const incoming = Object.fromEntries(KEYS.map(k => [`ASTRIA_${k}`, process.env[`ASTRIA_${k}`]]));
|
|
20
|
+
if (profile) {
|
|
21
|
+
for (const key of KEYS) {
|
|
22
|
+
const name = `ASTRIA_${key}`;
|
|
23
|
+
if (profile.environment[name] !== undefined)
|
|
24
|
+
process.env[name] = profile.environment[name];
|
|
25
|
+
else
|
|
26
|
+
delete process.env[name];
|
|
27
|
+
}
|
|
28
|
+
// Only an explicit refresh opts into new shell-level routing settings.
|
|
29
|
+
if (opts.refreshPolicy)
|
|
30
|
+
for (const [key, value] of Object.entries(incoming)) {
|
|
31
|
+
if (value !== undefined)
|
|
32
|
+
process.env[key] = value;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else if (update && !opts.backend) {
|
|
36
|
+
process.env.ASTRIA_LLM_BACKEND = 'none';
|
|
37
|
+
delete process.env.ASTRIA_LLM_JUDGE;
|
|
38
|
+
}
|
|
39
|
+
if (opts.backend)
|
|
40
|
+
process.env.ASTRIA_LLM_BACKEND = opts.backend;
|
|
41
|
+
if (opts.backend?.trim().toLowerCase() === 'none')
|
|
42
|
+
delete process.env.ASTRIA_LLM_JUDGE;
|
|
43
|
+
if (opts.judge)
|
|
44
|
+
process.env.ASTRIA_LLM_JUDGE = opts.judge;
|
|
45
|
+
if (opts.model)
|
|
46
|
+
process.env.ASTRIA_LLM_MODEL = opts.model;
|
|
47
|
+
if (opts.llmBudget !== undefined) {
|
|
48
|
+
if (!/^[1-9]\d*$/.test(opts.llmBudget))
|
|
49
|
+
throw new Error('--llm-budget must be a positive integer');
|
|
50
|
+
process.env.ASTRIA_LLM_BUDGET = opts.llmBudget;
|
|
51
|
+
}
|
|
52
|
+
const effective = {
|
|
53
|
+
...opts,
|
|
54
|
+
dedup: opts.dedup ?? profile?.dedup ?? true,
|
|
55
|
+
embed: opts.embed ?? profile?.embed ?? false,
|
|
56
|
+
labelCommunities: opts.labelCommunities ?? (opts.backend?.trim().toLowerCase() === 'none' ? false : profile?.label_communities) ?? false,
|
|
57
|
+
deep: opts.deep ?? (opts.backend?.trim().toLowerCase() === 'none' ? false : profile?.deep) ?? false,
|
|
58
|
+
};
|
|
59
|
+
const backend = process.env.ASTRIA_LLM_BACKEND?.trim().toLowerCase();
|
|
60
|
+
const paid = Boolean(backend && backend !== 'none');
|
|
61
|
+
const changed = profile && (KEYS.filter(k => k !== 'LLM_BUDGET').some(k => profile.environment[`ASTRIA_${k}`] !== process.env[`ASTRIA_${k}`]) ||
|
|
62
|
+
profile.label_communities !== effective.labelCommunities || profile.deep !== effective.deep);
|
|
63
|
+
const previousPaid = profile && profile.environment.ASTRIA_LLM_BACKEND !== 'none';
|
|
64
|
+
if (update && (paid || previousPaid) && (changed || !profile || opts.refreshPolicy)) {
|
|
65
|
+
if (!opts.refreshPolicy)
|
|
66
|
+
throw new Error('Changing indexing policy requires --refresh-policy');
|
|
67
|
+
if (paid && !opts.llmBudget)
|
|
68
|
+
throw new Error('Changing paid indexing policy requires --llm-budget <positive tokens>');
|
|
69
|
+
}
|
|
70
|
+
if (opts.refreshPolicy && !opts.llmBudget && paid)
|
|
71
|
+
throw new Error('Paid refresh requires --llm-budget <positive tokens>');
|
|
72
|
+
return effective;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=indexing-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexing-profile.js","sourceRoot":"","sources":["../../src/commands/indexing-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAwCtD"}
|
package/dist/commands/install.js
CHANGED
|
@@ -3,71 +3,70 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.registerInstallCommand = registerInstallCommand;
|
|
4
4
|
const index_1 = require("../install/index");
|
|
5
5
|
const platforms_1 = require("../install/platforms");
|
|
6
|
+
const state_1 = require("../install/state");
|
|
7
|
+
const hooks_1 = require("../install/hooks");
|
|
8
|
+
const merge_driver_1 = require("./merge-driver");
|
|
9
|
+
function report(work) {
|
|
10
|
+
try {
|
|
11
|
+
for (const message of work())
|
|
12
|
+
console.log(message);
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
console.error(`Failed: ${error.message || error}`);
|
|
17
|
+
process.exitCode = 1;
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
6
21
|
function registerInstallCommand(program) {
|
|
7
|
-
program
|
|
8
|
-
.
|
|
9
|
-
.description(`Install astria skill + MCP for an AI platform (${platforms_1.PLATFORM_NAMES.join(', ')}) or all of them`)
|
|
22
|
+
program.command('install')
|
|
23
|
+
.description('Install Astria integrations in this project, or explicitly for the user')
|
|
10
24
|
.option('--platform <name>', `Platform: ${platforms_1.PLATFORM_NAMES.join(', ')}`, 'claude')
|
|
11
|
-
.option('--
|
|
12
|
-
.
|
|
25
|
+
.option('--scope <scope>', 'project or user', 'project')
|
|
26
|
+
.option('--all', 'Install for every supported project platform')
|
|
27
|
+
.action((opts) => {
|
|
13
28
|
try {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
const results = (0, index_1.installPlatform)(opts.platform, process.cwd());
|
|
23
|
-
for (const msg of results) {
|
|
24
|
-
console.log(msg);
|
|
29
|
+
const scope = (0, state_1.parseScope)(opts.scope);
|
|
30
|
+
if (opts.all && scope === 'user')
|
|
31
|
+
throw new Error('Choose one platform for --scope user; --all is project-only.');
|
|
32
|
+
for (const platform of opts.all ? platforms_1.PLATFORM_NAMES : [opts.platform]) {
|
|
33
|
+
report(() => (0, index_1.installPlatform)(platform, process.cwd(), scope));
|
|
25
34
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (opts.platform !== 'claude')
|
|
29
|
-
return;
|
|
30
|
-
const others = platforms_1.PLATFORM_NAMES.filter((p) => p !== 'claude');
|
|
31
|
-
console.log(`\nOther supported platforms: ${others.join(', ')}`);
|
|
32
|
-
console.log('Install for all of them with: astria install --all');
|
|
35
|
+
if (!process.exitCode)
|
|
36
|
+
console.log('Integration setup complete. Restart your assistant/MCP server, then run astria doctor.');
|
|
33
37
|
}
|
|
34
|
-
catch (
|
|
35
|
-
console.error(
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.error(error.message);
|
|
36
40
|
process.exitCode = 1;
|
|
37
41
|
}
|
|
38
42
|
});
|
|
39
|
-
program
|
|
40
|
-
.
|
|
41
|
-
.description('Uninstall astria skill for an AI platform (--purge removes everything: hooks, merge driver, graph data, global store)')
|
|
43
|
+
program.command('uninstall')
|
|
44
|
+
.description('Remove scoped integrations; data is kept unless separately selected for deletion')
|
|
42
45
|
.option('--platform <name>', `Platform: ${platforms_1.PLATFORM_NAMES.join(', ')}`, 'claude')
|
|
43
|
-
.option('--
|
|
44
|
-
.option('--
|
|
45
|
-
.
|
|
46
|
+
.option('--scope <scope>', 'project or user', 'project')
|
|
47
|
+
.option('--all', 'Remove every recorded integration in the selected scope')
|
|
48
|
+
.option('--purge-project', 'Also remove this project graph, git hooks and merge-driver wiring')
|
|
49
|
+
.option('--purge-global', 'Also delete the user-wide cross-repository store')
|
|
50
|
+
.action((opts) => {
|
|
46
51
|
try {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
for (const msg of (0, index_1.uninstallPlatform)(platform, process.cwd())) {
|
|
59
|
-
console.log(msg);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
const results = (0, index_1.uninstallPlatform)(opts.platform, process.cwd());
|
|
65
|
-
for (const msg of results) {
|
|
66
|
-
console.log(msg);
|
|
52
|
+
const scope = (0, state_1.parseScope)(opts.scope);
|
|
53
|
+
const platforms = opts.all ? (0, state_1.readInstallState)(process.cwd(), scope).platforms : [opts.platform];
|
|
54
|
+
let complete = true;
|
|
55
|
+
for (const platform of platforms)
|
|
56
|
+
complete = report(() => (0, index_1.uninstallPlatform)(platform, process.cwd(), scope)) && complete;
|
|
57
|
+
if (opts.purgeProject) {
|
|
58
|
+
complete = report(() => (0, hooks_1.uninstallGitHooks)(process.cwd())) && complete;
|
|
59
|
+
complete = report(() => (0, merge_driver_1.mergeDriverUninstall)(process.cwd())) && complete;
|
|
60
|
+
// Retain data when integration removal failed, so recovery remains possible.
|
|
61
|
+
if (complete)
|
|
62
|
+
complete = report(() => (0, index_1.purgeData)(process.cwd(), false));
|
|
67
63
|
}
|
|
64
|
+
if (opts.purgeGlobal && complete)
|
|
65
|
+
complete = report(() => (0, index_1.purgeData)(process.cwd(), true));
|
|
66
|
+
console.log(complete ? 'Selected cleanup completed. The npm package remains installed; see the lifecycle guide for package removal.' : 'Cleanup incomplete. Resolve the failures above and retry; remaining graph data was retained.');
|
|
68
67
|
}
|
|
69
|
-
catch (
|
|
70
|
-
console.error(
|
|
68
|
+
catch (error) {
|
|
69
|
+
console.error(error.message);
|
|
71
70
|
process.exitCode = 1;
|
|
72
71
|
}
|
|
73
72
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-driver.d.ts","sourceRoot":"","sources":["../../src/commands/merge-driver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"merge-driver.d.ts","sourceRoot":"","sources":["../../src/commands/merge-driver.ts"],"names":[],"mappings":"AAuBA,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAuChC,wBAAgB,aAAa,CAC3B,WAAW,EAAE,IAAI,EAAE,EACnB,WAAW,EAAE,IAAI,EAAE,EACnB,aAAa,EAAE,IAAI,EAAE,EACrB,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,MAAM,GAC7B,IAAI,EAAE,CAuBR;AAgCD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAgB7F;AAqED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAqE;AACrI,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAuE"}
|