gennady 0.7.1 → 0.8.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/ai/directives/coding/result-conventions.xml +25 -7
- package/ai/directives/sdd/audit.directive.xml +1 -1
- package/ai/directives/sdd/critic-protocol.xml +78 -0
- package/ai/directives/sdd/critic.directive.xml +158 -0
- package/ai/directives/sdd/phase-execution-protocol.xml +11 -9
- package/ai/skills/alt-opinion/SKILL.md +79 -0
- package/ai/skills/alt-opinion/opinion.prompt.md +11 -0
- package/ai/skills/alt-opinion/synth.prompt.md +8 -0
- package/ai/skills/sdd-audit/SKILL.md +13 -0
- package/ai/skills/sdd-check/SKILL.md +139 -0
- package/ai/skills/sdd-continue/SKILL.md +13 -0
- package/ai/skills/sdd-critic/SKILL.md +12 -0
- package/ai/skills/sdd-discover/SKILL.md +13 -0
- package/ai/skills/sdd-execute/SKILL.md +205 -0
- package/ai/skills/sdd-execute/scripts/README.md +84 -0
- package/ai/skills/sdd-execute/scripts/check-blockers.sh +158 -0
- package/ai/skills/sdd-execute/scripts/classify-scripts.js +111 -0
- package/ai/skills/sdd-execute/scripts/classify-scripts.ts +133 -0
- package/ai/skills/sdd-execute/scripts/extract-section.sh +219 -0
- package/ai/skills/sdd-execute/scripts/lint-artifacts.sh +143 -0
- package/ai/skills/sdd-execute/scripts/scan.sh +385 -0
- package/ai/skills/sdd-execute/scripts/sdd +114 -0
- package/ai/skills/sdd-execute/scripts/verify.sh +139 -0
- package/ai/skills/sdd-execute-batch/SKILL.md +213 -0
- package/ai/skills/sdd-fix/SKILL.md +13 -0
- package/ai/skills/sdd-infra/SKILL.md +13 -0
- package/ai/skills/sdd-module-decomposition/SKILL.md +13 -0
- package/ai/skills/sdd-scaffold/SKILL.md +13 -0
- package/ai/skills/sdd-setup/SKILL.md +13 -0
- package/dist/ai/directives/coding/result-conventions.xml +25 -7
- package/dist/ai/directives/sdd/audit.directive.xml +1 -1
- package/dist/ai/directives/sdd/critic-protocol.xml +78 -0
- package/dist/ai/directives/sdd/critic.directive.xml +158 -0
- package/dist/ai/directives/sdd/phase-execution-protocol.xml +11 -9
- package/dist/ai/skills/alt-opinion/SKILL.md +79 -0
- package/dist/ai/skills/alt-opinion/opinion.prompt.md +11 -0
- package/dist/ai/skills/alt-opinion/synth.prompt.md +8 -0
- package/dist/ai/skills/sdd-audit/SKILL.md +13 -0
- package/dist/ai/skills/sdd-check/SKILL.md +139 -0
- package/dist/ai/skills/sdd-continue/SKILL.md +13 -0
- package/dist/ai/skills/sdd-critic/SKILL.md +12 -0
- package/dist/ai/skills/sdd-discover/SKILL.md +13 -0
- package/dist/ai/skills/sdd-execute/SKILL.md +205 -0
- package/dist/ai/skills/sdd-execute/scripts/README.md +84 -0
- package/dist/ai/skills/sdd-execute/scripts/check-blockers.sh +158 -0
- package/dist/ai/skills/sdd-execute/scripts/classify-scripts.js +111 -0
- package/dist/ai/skills/sdd-execute/scripts/classify-scripts.ts +133 -0
- package/dist/ai/skills/sdd-execute/scripts/extract-section.sh +219 -0
- package/dist/ai/skills/sdd-execute/scripts/lint-artifacts.sh +143 -0
- package/dist/ai/skills/sdd-execute/scripts/scan.sh +385 -0
- package/dist/ai/skills/sdd-execute/scripts/sdd +114 -0
- package/dist/ai/skills/sdd-execute/scripts/verify.sh +139 -0
- package/dist/ai/skills/sdd-execute-batch/SKILL.md +213 -0
- package/dist/ai/skills/sdd-fix/SKILL.md +13 -0
- package/dist/ai/skills/sdd-infra/SKILL.md +13 -0
- package/dist/ai/skills/sdd-module-decomposition/SKILL.md +13 -0
- package/dist/ai/skills/sdd-scaffold/SKILL.md +13 -0
- package/dist/ai/skills/sdd-setup/SKILL.md +13 -0
- package/dist/chunks/help-5qCaicff.js +6 -0
- package/dist/chunks/help-B2ETH0j6.js +6 -0
- package/dist/chunks/help-BCDURaCQ.js +6 -0
- package/dist/chunks/help-BvgYOSyQ.js +6 -0
- package/dist/chunks/help-CSPhOoI9.js +8 -0
- package/dist/chunks/help-CV1vpwrh.js +6 -0
- package/dist/chunks/help-CaBNA6Qr.js +12 -0
- package/dist/chunks/help-CjkR6SB9.js +6 -0
- package/dist/chunks/help-Coi1l5u9.js +8 -0
- package/dist/chunks/help-CsuLpZn-.js +8 -0
- package/dist/chunks/help-DL_QBMwy.js +8 -0
- package/dist/chunks/help-DqBZ2xcp.js +6 -0
- package/dist/chunks/help-_Y_TN4DZ.js +6 -0
- package/dist/chunks/{help.cmd-B_G7EWzF.js → help.cmd-BseRtoBF.js} +10 -2
- package/dist/chunks/{index-DeYzAoxF.js → index-BU1AXJGA.js} +7 -3
- package/dist/chunks/{index-CFd_iufb.js → index-BXWDYM_9.js} +1 -1
- package/dist/chunks/index-BgKyH0dB.js +658 -0
- package/dist/chunks/{index-BCqnKvNZ.js → index-BghL1-Nk.js} +2 -2
- package/dist/chunks/{index-BLsDffzZ.js → index-BlqEQEGy.js} +1 -1
- package/dist/chunks/{index-BrSutH7l.js → index-CDM74qdR.js} +3 -3
- package/dist/chunks/{index-O5kqC9i_.js → index-CGsIRefC.js} +2 -2
- package/dist/chunks/{index-Dc44ukmL.js → index-CIvkaAQ3.js} +2 -2
- package/dist/chunks/{index-BsD-J44e.js → index-CkczJ__m.js} +10 -10
- package/dist/chunks/index-CtJKSOL0.js +21 -0
- package/dist/chunks/index-DEzym4Ae.js +369 -0
- package/dist/chunks/{index-Bq4d25CK.js → index-DoaxOhQ8.js} +385 -378
- package/dist/chunks/index-Du1xR-qO.js +752 -0
- package/dist/chunks/{index-CAWs-GED.js → index-OtehG7uM.js} +1 -1
- package/dist/chunks/index-ZM_FonZj.js +156 -0
- package/dist/chunks/{index-BzBhCTHq.js → index-k0nToACp.js} +2 -2
- package/dist/chunks/{run-review-command.logic-CwxYeLby.js → run-review-command.logic-BeYQin-I.js} +9 -9
- package/dist/chunks/{services-Dnk3nB2x.js → services-IgZptnTi.js} +7 -7
- package/dist/chunks/shared-DL_1LG0K.js +753 -0
- package/dist/cli/cmd/agent-mon/help.d.ts +4 -0
- package/dist/cli/cmd/agents-rules/agents-rules.cmd.d.ts +8 -0
- package/dist/cli/cmd/agents-rules/index.d.ts +1 -0
- package/dist/cli/cmd/alt-opinion/help.d.ts +4 -0
- package/dist/cli/cmd/cat/help.d.ts +4 -0
- package/dist/cli/cmd/commit/help.d.ts +4 -0
- package/dist/cli/cmd/lint/checks/anchor-class-body.check.d.ts +11 -0
- package/dist/cli/cmd/lint/checks/invariant-count.check.d.ts +11 -0
- package/dist/cli/cmd/lint/checks/utils/glob-match.d.ts +15 -0
- package/dist/cli/cmd/lint/checks/utils/strip-strings-comments.d.ts +7 -0
- package/dist/cli/cmd/lint/help.d.ts +4 -0
- package/dist/cli/cmd/lint/lint.cmd.d.ts +1 -1
- package/dist/cli/cmd/lint/lint.types.d.ts +6 -0
- package/dist/cli/cmd/orient/core/build-index.d.ts +8 -0
- package/dist/cli/cmd/orient/core/damerau-levenshtein.d.ts +26 -0
- package/dist/cli/cmd/orient/core/extract-header.d.ts +8 -0
- package/dist/cli/cmd/orient/core/hints.d.ts +9 -0
- package/dist/cli/cmd/orient/core/query-consumer.d.ts +10 -0
- package/dist/cli/cmd/orient/core/query-entity.d.ts +11 -0
- package/dist/cli/cmd/orient/core/query-graph.d.ts +18 -0
- package/dist/cli/cmd/orient/core/query-keyword.d.ts +10 -0
- package/dist/cli/cmd/orient/core/query-spec.d.ts +15 -0
- package/dist/cli/cmd/orient/core/query-task.d.ts +8 -0
- package/dist/cli/cmd/orient/core/scan-files.d.ts +8 -0
- package/dist/cli/cmd/orient/help.d.ts +5 -0
- package/dist/cli/cmd/orient/index.d.ts +1 -0
- package/dist/cli/cmd/orient/orient.cmd.d.ts +7 -0
- package/dist/cli/cmd/orient/orient.types.d.ts +136 -0
- package/dist/cli/cmd/orient/render/render-detail.d.ts +10 -0
- package/dist/cli/cmd/orient/render/render-file-list.d.ts +15 -0
- package/dist/cli/cmd/orient/render/render-graph.d.ts +13 -0
- package/dist/cli/cmd/orient/render/render-search.d.ts +8 -0
- package/dist/cli/cmd/orient/render/render-specs.d.ts +13 -0
- package/dist/cli/cmd/orient/render/render-tree.d.ts +13 -0
- package/dist/cli/cmd/remote-console/help.d.ts +4 -0
- package/dist/cli/cmd/resolve-conflicts/help.d.ts +4 -0
- package/dist/cli/cmd/review/help.d.ts +4 -0
- package/dist/cli/cmd/review-issues/help.d.ts +4 -0
- package/dist/cli/cmd/review-verify/help.d.ts +4 -0
- package/dist/cli/cmd/sync/help.d.ts +4 -0
- package/dist/cli/cmd/sync/sync-core.d.ts +3 -2
- package/dist/cli/cmd/sync/sync-formatter.d.ts +8 -9
- package/dist/cli/cmd/sync/sync.cmd.d.ts +2 -21
- package/dist/cli/cmd/sync-skills/index.d.ts +1 -0
- package/dist/cli/cmd/sync-skills/sync-skills-core.d.ts +50 -0
- package/dist/cli/cmd/sync-skills/sync-skills-formatter.d.ts +13 -0
- package/dist/cli/cmd/sync-skills/sync-skills.cmd.d.ts +14 -0
- package/dist/cli/cmd/sync-skills/sync-skills.types.d.ts +56 -0
- package/dist/cli/cmd/vcs-reply/help.d.ts +4 -0
- package/dist/gennady.js +73 -18
- package/dist/index.js +3 -3
- package/dist/shared/common/sync/path-normalizer.d.ts +22 -0
- package/dist/shared/common/sync/sync-core.shared.d.ts +14 -0
- package/dist/shared/common/sync/sync-deps.type.d.ts +66 -0
- package/dist/shared/common/sync/sync-formatter.shared.d.ts +19 -0
- package/package.json +6 -5
- package/dist/chunks/index-DAU6h0aT.js +0 -178
- package/dist/chunks/index-Db09OODV.js +0 -176
- package/dist/chunks/index-TX0TmKeu.js +0 -540
- package/dist/chunks/shared-COpFaV-w.js +0 -665
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { readdirSync as D, statSync as S, mkdirSync as F, writeFileSync as k, readFileSync as O } from "node:fs";
|
|
2
|
+
import { join as d, sep as P } from "node:path";
|
|
3
|
+
import { fileURLToPath as U } from "node:url";
|
|
4
|
+
import { l as $ } from "./services-IgZptnTi.js";
|
|
5
|
+
import { n as x, b as T, r as A, S as b, p as z, f as I } from "./shared-DL_1LG0K.js";
|
|
6
|
+
class Y {
|
|
7
|
+
/** @purpose List of all synced file entries. */
|
|
8
|
+
entries;
|
|
9
|
+
/**
|
|
10
|
+
* @purpose Construct a SyncResult from a list of entries.
|
|
11
|
+
* @param entries File entries.
|
|
12
|
+
*/
|
|
13
|
+
constructor(e) {
|
|
14
|
+
this.entries = e;
|
|
15
|
+
}
|
|
16
|
+
/** @purpose Files with status "added". | @returns Array of added entries. */
|
|
17
|
+
get added() {
|
|
18
|
+
return this.entries.filter((e) => e.status === "added");
|
|
19
|
+
}
|
|
20
|
+
/** @purpose Files with status "updated". | @returns Array of updated entries. */
|
|
21
|
+
get updated() {
|
|
22
|
+
return this.entries.filter((e) => e.status === "updated");
|
|
23
|
+
}
|
|
24
|
+
/** @purpose Files with status "unchanged". | @returns Array of unchanged entries. */
|
|
25
|
+
get unchanged() {
|
|
26
|
+
return this.entries.filter((e) => e.status === "unchanged");
|
|
27
|
+
}
|
|
28
|
+
/** @purpose Human-readable summary of added/updated/unchanged counts. | @returns Summary string. */
|
|
29
|
+
get summary() {
|
|
30
|
+
const e = this.added.length, s = this.updated.length, o = this.unchanged.length;
|
|
31
|
+
return `Synced: ${e} added, ${s} updated, ${o} skipped (unchanged)`;
|
|
32
|
+
}
|
|
33
|
+
/** @purpose Dry-run summary message. | @returns Dry-run message. */
|
|
34
|
+
get dryRunSummary() {
|
|
35
|
+
return "Dry-run: no files written.";
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const v = "ERR_SYNC_SUBDIR_NOT_FOUND", B = "ERR_SYNC_SOURCE_NOT_FOUND", R = /* @__PURE__ */ new Set([
|
|
39
|
+
"architecture",
|
|
40
|
+
"dbc-audit.directive.xml",
|
|
41
|
+
"dev-review.directive.xml",
|
|
42
|
+
"semantic-change-extractor.directive.xml"
|
|
43
|
+
]);
|
|
44
|
+
function j(t, e = "ai/directives") {
|
|
45
|
+
return A(t, e);
|
|
46
|
+
}
|
|
47
|
+
function L(t, e) {
|
|
48
|
+
if (e && e.length > 0) {
|
|
49
|
+
const o = D(t).filter(
|
|
50
|
+
(r) => !R.has(r) && S(d(t, r)).isDirectory()
|
|
51
|
+
);
|
|
52
|
+
for (const r of e)
|
|
53
|
+
if (!o.includes(r)) {
|
|
54
|
+
const c = `[scanDirectives] ai/directives/${r}/ not found in package.
|
|
55
|
+
Available: ${o.join(", ")}`, i = new Error(c);
|
|
56
|
+
throw i.code = v, i;
|
|
57
|
+
}
|
|
58
|
+
const n = [];
|
|
59
|
+
for (const r of e)
|
|
60
|
+
p(d(t, r), r, n);
|
|
61
|
+
return n.sort();
|
|
62
|
+
}
|
|
63
|
+
const s = [];
|
|
64
|
+
return p(t, "", s), s.sort();
|
|
65
|
+
}
|
|
66
|
+
function p(t, e, s) {
|
|
67
|
+
let o;
|
|
68
|
+
try {
|
|
69
|
+
o = D(t);
|
|
70
|
+
} catch {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
for (const n of o) {
|
|
74
|
+
if (n.startsWith(".") || R.has(n)) continue;
|
|
75
|
+
const r = d(t, n), c = e ? d(e, n) : n, i = S(r, { throwIfNoEntry: !1 });
|
|
76
|
+
i && (i.isDirectory() ? p(r, c, s) : i.isFile() && s.push(c.split(P).join("/")));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function W(t, e) {
|
|
80
|
+
try {
|
|
81
|
+
t.stat(e.sourceDir);
|
|
82
|
+
} catch {
|
|
83
|
+
const n = `[collectAndCompare] Source directory not found: ${e.sourceDir}`, r = new Error(n);
|
|
84
|
+
throw r.code = B, r;
|
|
85
|
+
}
|
|
86
|
+
const s = L(e.sourceDir, e.subdirs), o = [];
|
|
87
|
+
for (const n of s) {
|
|
88
|
+
const r = d(e.sourceDir, n), c = d(e.targetDir, n), i = t.readFile(r), y = x(i.toString("utf-8"), b), l = Buffer.from(y, "utf-8"), f = l.length;
|
|
89
|
+
let u = null;
|
|
90
|
+
try {
|
|
91
|
+
u = t.readFile(c);
|
|
92
|
+
} catch {
|
|
93
|
+
}
|
|
94
|
+
let a;
|
|
95
|
+
u === null ? a = "added" : T(l, u) ? a = "updated" : a = "unchanged", o.push({
|
|
96
|
+
relativePath: n,
|
|
97
|
+
status: a,
|
|
98
|
+
sourceSize: f,
|
|
99
|
+
targetSize: u?.length
|
|
100
|
+
}), !e.dryRun && a !== "unchanged" && (t.mkdir(d(e.targetDir, n, ".."), { recursive: !0 }), t.writeFile(c, l));
|
|
101
|
+
}
|
|
102
|
+
return new Y(o);
|
|
103
|
+
}
|
|
104
|
+
function H(t, e, s, o) {
|
|
105
|
+
s.write(`Sync${e ? " (dry-run)" : ""}: ${o}
|
|
106
|
+
`);
|
|
107
|
+
const n = I(t, { dryRun: e });
|
|
108
|
+
for (const r of n)
|
|
109
|
+
s.write(r + `
|
|
110
|
+
`);
|
|
111
|
+
}
|
|
112
|
+
function w(t, e) {
|
|
113
|
+
const s = O, o = k, n = F, r = S, c = D, i = j, y = process.stdout, l = process.stderr, f = z(t, {
|
|
114
|
+
dryRun: ["dry-run"]
|
|
115
|
+
}), u = f.dryRun === !0 || f.dryRun === "true", a = f._.filter(
|
|
116
|
+
(g) => typeof g == "string" && g !== "sync"
|
|
117
|
+
), m = process.cwd(), _ = i(m, "ai/directives");
|
|
118
|
+
if (!_)
|
|
119
|
+
return l.write(`Error: gennady package not found. Install it locally: npm i -D gennady
|
|
120
|
+
`), 1;
|
|
121
|
+
const E = d(m, "ai", "directives"), N = {
|
|
122
|
+
sourceDir: _,
|
|
123
|
+
targetDir: E,
|
|
124
|
+
subdirs: a.length > 0 ? a : void 0,
|
|
125
|
+
dryRun: u
|
|
126
|
+
};
|
|
127
|
+
try {
|
|
128
|
+
const h = W({
|
|
129
|
+
readFile: s,
|
|
130
|
+
writeFile: o,
|
|
131
|
+
mkdir: n,
|
|
132
|
+
stat: (C) => r(C),
|
|
133
|
+
readdir: c,
|
|
134
|
+
cwd: m
|
|
135
|
+
}, N);
|
|
136
|
+
return H(h.entries, u, y, m), 0;
|
|
137
|
+
} catch (g) {
|
|
138
|
+
const h = g;
|
|
139
|
+
if (h.code === v)
|
|
140
|
+
return l.write(`Error: ${h.message}
|
|
141
|
+
`), 1;
|
|
142
|
+
throw h;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (process.argv[1]) {
|
|
146
|
+
const t = U(import.meta.url);
|
|
147
|
+
if (t === process.argv[1] || t.endsWith(process.argv[1]))
|
|
148
|
+
try {
|
|
149
|
+
const e = w(process.argv);
|
|
150
|
+
process.exit(e);
|
|
151
|
+
} catch (e) {
|
|
152
|
+
const s = new Error("[syncCmd] Self-execution failed", { cause: e });
|
|
153
|
+
$.error("[syncCmd#run] [self-executing → failed]", { error: s }), process.exit(1);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
process.exit(w(process.argv));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { p as $, s as e, a as k } from "./shared-
|
|
1
|
+
import { p as $, s as e, a as k } from "./shared-DL_1LG0K.js";
|
|
2
2
|
import I from "node:fs";
|
|
3
|
-
import { V as S } from "./services-
|
|
3
|
+
import { V as S } from "./services-IgZptnTi.js";
|
|
4
4
|
async function m(r = {}) {
|
|
5
5
|
const l = r.project, a = r.iid, f = !!r.dryRun, B = r.stdinJsonArray;
|
|
6
6
|
if (!l)
|
package/dist/chunks/{run-review-command.logic-CwxYeLby.js → run-review-command.logic-BeYQin-I.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as v, a as g,
|
|
2
|
-
import { V as A } from "./services-
|
|
1
|
+
import { p as v, a as g, h as R, i as b, l as j, j as y, k as _, s as u } from "./shared-DL_1LG0K.js";
|
|
2
|
+
import { V as A } from "./services-IgZptnTi.js";
|
|
3
3
|
function H(r) {
|
|
4
4
|
const e = v(r, {
|
|
5
5
|
branch: ["branch", "b"],
|
|
@@ -23,7 +23,7 @@ function E(r) {
|
|
|
23
23
|
if (!e)
|
|
24
24
|
throw new Error("Не найден удалённый репозиторий origin.");
|
|
25
25
|
return {
|
|
26
|
-
branch: r?.trim() ||
|
|
26
|
+
branch: r?.trim() || R(),
|
|
27
27
|
remote: e
|
|
28
28
|
};
|
|
29
29
|
}
|
|
@@ -128,7 +128,7 @@ function T(r, e) {
|
|
|
128
128
|
const t = r.author?.username ?? "";
|
|
129
129
|
return r.system ? "Skip" : r.body?.includes("🤖") ? "AI_Agent" : /group_|bot\d*/.test(t) ? "Skip" : t === e ? "Author" : "Reviewer";
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function k(r) {
|
|
132
132
|
if (!r) return "";
|
|
133
133
|
try {
|
|
134
134
|
const t = new URL(r).pathname.split("/").filter(Boolean);
|
|
@@ -137,7 +137,7 @@ function G(r) {
|
|
|
137
137
|
return "";
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
function
|
|
140
|
+
function G(r) {
|
|
141
141
|
if (!r) return "";
|
|
142
142
|
try {
|
|
143
143
|
return new URL(r).host ?? "";
|
|
@@ -145,8 +145,8 @@ function U(r) {
|
|
|
145
145
|
return "";
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
|
-
function
|
|
149
|
-
const o = r.author?.username, n =
|
|
148
|
+
function U(r, e, t = !1) {
|
|
149
|
+
const o = r.author?.username, n = k(r.web_url), s = G(r.web_url), a = e.map((i) => {
|
|
150
150
|
const c = i.notes?.[0];
|
|
151
151
|
if (!c || !t && (i.resolved || c.resolved))
|
|
152
152
|
return null;
|
|
@@ -197,8 +197,8 @@ function k(r, e, t = !1) {
|
|
|
197
197
|
};
|
|
198
198
|
}
|
|
199
199
|
function I(r, e, t = !1) {
|
|
200
|
-
const o =
|
|
201
|
-
return
|
|
200
|
+
const o = U(r, e, t);
|
|
201
|
+
return b(o);
|
|
202
202
|
}
|
|
203
203
|
async function $() {
|
|
204
204
|
return j("agent-review-verifier.xml");
|
|
@@ -1276,7 +1276,7 @@ class It {
|
|
|
1276
1276
|
};
|
|
1277
1277
|
}
|
|
1278
1278
|
}
|
|
1279
|
-
//
|
|
1279
|
+
// --- LINT_HELPERS
|
|
1280
1280
|
/**
|
|
1281
1281
|
* @purpose Walk all exported entities and their members, collecting lint errors.
|
|
1282
1282
|
* @param entities Exported entities from AST parse result.
|
|
@@ -1369,8 +1369,8 @@ class It {
|
|
|
1369
1369
|
});
|
|
1370
1370
|
return a;
|
|
1371
1371
|
}
|
|
1372
|
-
//
|
|
1373
|
-
//
|
|
1372
|
+
// --- END LINT_HELPERS
|
|
1373
|
+
// --- AUTOFIX_COLLECT
|
|
1374
1374
|
/** @purpose Internal record of a contract block with context for autofix. */
|
|
1375
1375
|
_ContractBlock = class {
|
|
1376
1376
|
text;
|
|
@@ -1395,8 +1395,8 @@ class It {
|
|
|
1395
1395
|
}
|
|
1396
1396
|
return t;
|
|
1397
1397
|
}
|
|
1398
|
-
//
|
|
1399
|
-
//
|
|
1398
|
+
// --- END AUTOFIX_COLLECT
|
|
1399
|
+
// --- AUTOFIX_CHAIN_METHODS
|
|
1400
1400
|
/**
|
|
1401
1401
|
* @purpose Expand single-line pipe contracts to multi-line for callable kinds or >3 tags.
|
|
1402
1402
|
* @param jsdocText Raw JSDoc comment text.
|
|
@@ -1705,7 +1705,7 @@ class It {
|
|
|
1705
1705
|
const n = e.replace(/^(\*?\s*)?@param\s+/, "").replace(/^\{[^}]*\}\s+/, "").match(/^(\S+)/);
|
|
1706
1706
|
return n ? n[1] : "";
|
|
1707
1707
|
}
|
|
1708
|
-
//
|
|
1708
|
+
// --- END AUTOFIX_CHAIN_METHODS
|
|
1709
1709
|
}
|
|
1710
1710
|
class St {
|
|
1711
1711
|
/** @purpose Lazy-initialized tree-sitter parser instance */
|
|
@@ -1746,7 +1746,7 @@ class St {
|
|
|
1746
1746
|
if (!this._parser) {
|
|
1747
1747
|
const [e, t] = await Promise.all([
|
|
1748
1748
|
import("tree-sitter"),
|
|
1749
|
-
import("
|
|
1749
|
+
import("tree-sitter-typescript")
|
|
1750
1750
|
]), r = e.default, n = t.default;
|
|
1751
1751
|
this._parser = new r();
|
|
1752
1752
|
const s = n.tsx ?? n;
|