gennady 0.8.4-draft.2 → 0.8.4-draft.3
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/sdd-v2/root.directive.xml +36 -3
- package/ai/directives/sdd-v2/router.directive.xml +22 -1
- package/ai/kit/templates/sdd-v2/root.directive.hbs +11 -3
- package/ai/kit/templates/sdd-v2/router.directive.hbs +22 -1
- package/ai/skills/agent-inbox/SKILL.md +1 -1
- package/ai/skills/sdd/SKILL.md +5 -3
- package/ai/skills/sdd-audit/SKILL.md +5 -2
- package/ai/skills/sdd-check/SKILL.md +2 -2
- package/ai/skills/sdd-code-review/SKILL.md +4 -1
- package/ai/skills/sdd-critic/SKILL.md +5 -2
- package/ai/skills/sdd-execute/SKILL.md +5 -2
- package/ai/skills/sdd-reconcile/SKILL.md +5 -2
- package/ai/skills/sdd-scaffold/SKILL.md +5 -2
- package/dist/ai/directives/sdd-v2/root.directive.xml +36 -3
- package/dist/ai/directives/sdd-v2/router.directive.xml +22 -1
- package/dist/ai/kit/templates/sdd-v2/root.directive.hbs +11 -3
- package/dist/ai/kit/templates/sdd-v2/router.directive.hbs +22 -1
- package/dist/ai/skills/agent-inbox/SKILL.md +1 -1
- package/dist/ai/skills/sdd/SKILL.md +5 -3
- package/dist/ai/skills/sdd-audit/SKILL.md +5 -2
- package/dist/ai/skills/sdd-check/SKILL.md +2 -2
- package/dist/ai/skills/sdd-code-review/SKILL.md +4 -1
- package/dist/ai/skills/sdd-critic/SKILL.md +5 -2
- package/dist/ai/skills/sdd-execute/SKILL.md +5 -2
- package/dist/ai/skills/sdd-reconcile/SKILL.md +5 -2
- package/dist/ai/skills/sdd-scaffold/SKILL.md +5 -2
- package/dist/chunks/{classify-mr-stage.logic-BiCHTmPp.js → classify-mr-stage.logic-CazmQDwZ.js} +2 -2
- package/dist/chunks/{config-index-9VHWSDQD.js → config-index-DU8-FEjq.js} +1 -1
- package/dist/chunks/{devtools-b0DwO1x_.js → devtools-1JmXJjUG.js} +1 -1
- package/dist/chunks/{eval.cmd-CwNPaNJd.js → eval.cmd-CBANnOFG.js} +1 -1
- package/dist/chunks/{help-D5cXtdMI.js → help-DVloaFF5.js} +1 -1
- package/dist/chunks/{index-BVnJEutp.js → index-2xhpqJtd.js} +2 -2
- package/dist/chunks/{index-RR5OUxje.js → index-AxsLBUAx.js} +14 -14
- package/dist/chunks/{index-CUkeTGqM.js → index-B7sydB0W.js} +2 -2
- package/dist/chunks/{index-CMCn9ErF.js → index-BKxk4zOz.js} +2 -2
- package/dist/chunks/{index-Db13NlHh.js → index-BNMmX_Mv.js} +21 -21
- package/dist/chunks/{index-CmQO-RmM.js → index-BPzldG3a.js} +2 -2
- package/dist/chunks/{index-BOQl7F_Z.js → index-BQlFDvKW.js} +2 -2
- package/dist/chunks/{index-RzkvIfJQ.js → index-Baq7RL1L.js} +3 -3
- package/dist/chunks/index-BbPiwvY9.js +2 -0
- package/dist/chunks/{index-ClJLPEUB.js → index-BreGNLJ_.js} +1 -1
- package/dist/chunks/{index-DjSafAkN.js → index-BslPwGtM.js} +2 -2
- package/dist/chunks/{index-DiMFxS0z.js → index-BtCUN2fZ.js} +16 -16
- package/dist/chunks/{index-CS0VbiLD.js → index-C10-EOdB.js} +1 -1
- package/dist/chunks/{index-2BOEcJIa.js → index-C4JmZLaj.js} +2 -2
- package/dist/chunks/index-CA-JKLr4.js +2 -0
- package/dist/chunks/{index-43GiH--T.js → index-CG_jJZVu.js} +2 -2
- package/dist/chunks/{index-BdkFKsMm.js → index-CGyP2uDE.js} +3 -3
- package/dist/chunks/{index-BOKv0b01.js → index-CPl1s9XJ.js} +2 -2
- package/dist/chunks/{index-DIPrBH-4.js → index-CSxE4cEm.js} +9 -9
- package/dist/chunks/{index-Cm7U1-fU.js → index-CWR5EzXx.js} +2 -2
- package/dist/chunks/{index-BwN5llCR.js → index-Camql5kL.js} +2 -2
- package/dist/chunks/{index-Drh-J9O7.js → index-CdUiTipO.js} +7 -7
- package/dist/chunks/{index-Cn029KTN.js → index-Crg61pK5.js} +2 -2
- package/dist/chunks/{index-Dja2O-hV.js → index-Cv9ZYXso.js} +1 -1
- package/dist/chunks/{index-Ck8v_Gv7.js → index-D7ADMlG3.js} +1 -1
- package/dist/chunks/index-DNl2gC8l.js +158 -0
- package/dist/chunks/{index-BYIzl-Ut.js → index-DVJA0qVm.js} +36 -36
- package/dist/chunks/{index-BAEIZVx0.js → index-DcFJhkY1.js} +2 -2
- package/dist/chunks/{index-Dx5_CB2E.js → index-DdEd-L3x.js} +2 -2
- package/dist/chunks/{index-DVmqMmgb.js → index-DkGA1eW_.js} +32 -32
- package/dist/chunks/{index-3k7mPX1e.js → index-Dnwxlti3.js} +1 -1
- package/dist/chunks/{index-CrizvxOJ.js → index-DqdEJDi2.js} +2 -2
- package/dist/chunks/{index-BIPebtDl.js → index-DqiwmBt4.js} +1 -1
- package/dist/chunks/{index-DS4MhAw-.js → index-PfuqBWjY.js} +2 -2
- package/dist/chunks/{index-BmFT1Kx2.js → index-SVP6RfVl.js} +2 -2
- package/dist/chunks/{index-CDxV4b81.js → index-Y8wu48Q0.js} +1 -1
- package/dist/chunks/index-_ewSKppm.js +2 -0
- package/dist/chunks/{index-Ctcr_Qeu.js → index-aBVtCLIJ.js} +2 -2
- package/dist/chunks/index-dNdz9j6d.js +2 -0
- package/dist/chunks/{index-BFUkVkSo.js → index-gskOpu3H.js} +16 -16
- package/dist/chunks/{index-CXpkT25O.js → index-pBSLMn5Q.js} +3 -3
- package/dist/chunks/index-sqPhX5Io.js +2 -0
- package/dist/chunks/{index-BzmR4Es2.js → index-vfrjhUD1.js} +39 -39
- package/dist/chunks/{index-J2NvjjDV.js → index-xGF5XC_i.js} +2 -2
- package/dist/chunks/{run-review-command.logic-CA2Rjymb.js → run-review-command.logic-B9GoCxh-.js} +24 -24
- package/dist/chunks/{serve.cmd-RxYS6WoN.js → serve.cmd-UXkaeaPI.js} +2 -2
- package/dist/chunks/{services-Csd556Tv.js → services-BYCeGBlO.js} +4 -4
- package/dist/chunks/{shared-B5CTGvpG.js → shared-B3cXL2Np.js} +1178 -1117
- package/dist/chunks/{stats-index-BLztvK69.js → stats-index-AIAnnp9S.js} +2 -2
- package/dist/gennady.js +46 -46
- package/dist/index.js +4 -4
- package/dist/shared/sdd/ladder.d.ts +42 -0
- package/dist/shared/sdd/module-specs.d.ts +7 -0
- package/dist/shared/sdd/tracker.d.ts +9 -0
- package/package.json +1 -1
- package/dist/chunks/classify-mr-stage.logic-ClmhzQPQ.js +0 -53
- package/dist/chunks/config-index-RFeqlDWs.js +0 -104
- package/dist/chunks/devtools-p8tmPuLn.js +0 -79
- package/dist/chunks/eval.cmd-ewU5lcUY.js +0 -34
- package/dist/chunks/help-DzGnMNi2.js +0 -7
- package/dist/chunks/index--AXFi0ty.js +0 -89
- package/dist/chunks/index-64TSesTc.js +0 -186
- package/dist/chunks/index-9Gv5trS_.js +0 -125
- package/dist/chunks/index-B1DQIryA.js +0 -2
- package/dist/chunks/index-B1PiBeQ3.js +0 -2
- package/dist/chunks/index-B4rzuhkt.js +0 -183
- package/dist/chunks/index-B97HJjkg.js +0 -159
- package/dist/chunks/index-BF6qypm0.js +0 -131
- package/dist/chunks/index-BK84ZQsh.js +0 -128
- package/dist/chunks/index-BRVIirjj.js +0 -141
- package/dist/chunks/index-BXnryCGW.js +0 -96
- package/dist/chunks/index-BaZm7Otb.js +0 -2
- package/dist/chunks/index-Bhk746A2.js +0 -129
- package/dist/chunks/index-Bi-eY_dY.js +0 -164
- package/dist/chunks/index-BjumU69g.js +0 -2
- package/dist/chunks/index-BkWXcpXU.js +0 -16979
- package/dist/chunks/index-BlY4jQIA.js +0 -168
- package/dist/chunks/index-C0iy7GxD.js +0 -140
- package/dist/chunks/index-CCBTXczb.js +0 -56
- package/dist/chunks/index-CDAfkSrr.js +0 -2
- package/dist/chunks/index-CDHymWzC.js +0 -102
- package/dist/chunks/index-CNfXJAao.js +0 -2
- package/dist/chunks/index-CQsae1nq.js +0 -207
- package/dist/chunks/index-CVmd0prf.js +0 -2
- package/dist/chunks/index-CZuTNeNm.js +0 -2
- package/dist/chunks/index-CasNhhrL.js +0 -96
- package/dist/chunks/index-Ce7GWENF.js +0 -377
- package/dist/chunks/index-Cf-02TAg.js +0 -265
- package/dist/chunks/index-CfjQWSrh.js +0 -52
- package/dist/chunks/index-Chr7gBBz.js +0 -443
- package/dist/chunks/index-Ci875Zlg.js +0 -346
- package/dist/chunks/index-CwA6RzIB.js +0 -3793
- package/dist/chunks/index-D1dI63ej.js +0 -46
- package/dist/chunks/index-DCS32A2i.js +0 -663
- package/dist/chunks/index-DOFoNxvb.js +0 -131
- package/dist/chunks/index-DVkCEuws.js +0 -136
- package/dist/chunks/index-DkadaaXq.js +0 -658
- package/dist/chunks/index-Dn11CLtk.js +0 -7
- package/dist/chunks/index-Do3spFJT.js +0 -340
- package/dist/chunks/index-DrFRZ0Yg.js +0 -2
- package/dist/chunks/index-DvEQhXi2.js +0 -1054
- package/dist/chunks/index-GiS0x6jg.js +0 -90
- package/dist/chunks/index-NacvqeQ5.js +0 -69
- package/dist/chunks/index-RNJhFzdr.js +0 -227
- package/dist/chunks/index-R_vUB6CL.js +0 -2
- package/dist/chunks/index-TQft1s5H.js +0 -20
- package/dist/chunks/index-ZmQRP38W.js +0 -26969
- package/dist/chunks/index-jdOZ4AkD.js +0 -143
- package/dist/chunks/index-kNa21kUI.js +0 -279
- package/dist/chunks/index-v4AV9kAc.js +0 -108
- package/dist/chunks/run-review-command.logic-CU1Slmc_.js +0 -331
- package/dist/chunks/serve.cmd-dWu_k_G_.js +0 -162
- package/dist/chunks/services-CwvXl2MB.js +0 -46832
- package/dist/chunks/shared-DSZTUx5b.js +0 -4509
- package/dist/chunks/stats-index-H6ALcjxy.js +0 -66
|
@@ -16,9 +16,12 @@ compatibility: opencode
|
|
|
16
16
|
|
|
17
17
|
<ExecutionPlan>
|
|
18
18
|
<Step id="GATHER">
|
|
19
|
-
One parallel batch (do NOT serialize): run `npx
|
|
19
|
+
One parallel batch (do NOT serialize): run `npx gennady sdd-state`
|
|
20
20
|
(flow version · readiness · portal · scopes) AND read in full
|
|
21
|
-
|
|
21
|
+
`ai/directives/sdd-v2/scaffold.directive.xml`.
|
|
22
|
+
Resolve every `ai/directives/sdd-v2/<file>` below deterministically, project root first: if
|
|
23
|
+
missing, `node_modules/gennady/ai/directives/sdd-v2/<file>`; if neither exists, stop and tell
|
|
24
|
+
the operator to run `npx gennady sync` — never search for it.
|
|
22
25
|
</Step>
|
|
23
26
|
<Step id="PREFLIGHT">
|
|
24
27
|
Size the gate to this request's blast radius first: when the scaffolding target stays inside a single
|
package/dist/chunks/{classify-mr-stage.logic-BiCHTmPp.js → classify-mr-stage.logic-CazmQDwZ.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { b as d } from "./shared-
|
|
2
|
-
import { a as f } from "./services-
|
|
1
|
+
import { b as d } from "./shared-B3cXL2Np.js";
|
|
2
|
+
import { a as f } from "./services-BYCeGBlO.js";
|
|
3
3
|
function h(s, r) {
|
|
4
4
|
const a = s?.trim().replace(/^https?:\/\//, "").replace(/\/+$/, "");
|
|
5
5
|
if (a) return a;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync as w, statSync as v } from "node:fs";
|
|
2
2
|
import { isAbsolute as O } from "node:path";
|
|
3
3
|
import { createInterface as S } from "node:readline";
|
|
4
|
-
import { b as k, c as x, s as p, d as h, v as B } from "./services-
|
|
4
|
+
import { b as k, c as x, s as p, d as h, v as B } from "./services-BYCeGBlO.js";
|
|
5
5
|
function b(e) {
|
|
6
6
|
const o = /* @__PURE__ */ new Map();
|
|
7
7
|
for (let t = 0; t < e.length; t++) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { join as d } from "node:path";
|
|
2
|
-
import { l, S as f, E, D as x, q as h } from "./services-
|
|
2
|
+
import { l, S as f, E, D as x, q as h } from "./services-BYCeGBlO.js";
|
|
3
3
|
function c(o, r) {
|
|
4
4
|
const n = o.find((a) => a.startsWith(`${r}=`));
|
|
5
5
|
if (n) return n.slice(r.length + 1);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { s as o } from "./shared-
|
|
1
|
+
import { s as o } from "./shared-B3cXL2Np.js";
|
|
2
2
|
function n() {
|
|
3
3
|
console.info(o.bold("gennady inbox-context — атомарный сбор контекста MR")), console.info(""), console.info(" gennady inbox-context --ref <group/project!iid> [флаги]"), console.info(""), console.info(o.bold("Флаги:")), console.info(" --ref <ref> MR ref (обязателен)"), console.info(" --vcs-host=<host> GitLab host (автодетект из origin)"), console.info(" --skip-worktree Без клона — changeset и worktree пусты"), console.info(" --skip-threads Без обсуждений — threads/stage пусты"), console.info(" --repos-base=<dir> База поиска клонов (default ~/Developer)"), console.info(" --state-dir=<dir> Директория состояния (default ~/.gennady)"), console.info(" --json Вывод в JSON (по умолчанию)"), console.info(""), console.info(o.bold("Вывод (JSON):")), console.info(" ref, title, webUrl — идентификация MR"), console.info(" worktree — path, base, diffRefs, repoLayout"), console.info(" changeset — files [{path, status, plus, minus}], totals, byCategory"), console.info(" stage — review_needed | reply_needed | awaiting_reply | idle"), console.info(" openQuestions, lastAuthor — из обсуждений"), console.info(" threads — { all, drafts } — полные треды и черновики"), console.info(" package — role, author, reviewers, description, approvedBy");
|
|
4
4
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { mkdirSync as D, symlinkSync as W, readFileSync as x, readdirSync as P, existsSync as R } from "node:fs";
|
|
2
2
|
import { homedir as B } from "node:os";
|
|
3
3
|
import { join as C } from "node:path";
|
|
4
|
-
import { s as o, r as A, c as F } from "./shared-
|
|
5
|
-
import { b as M, N as j, y, Q as E, u as T, w as V, x as H, z as O, W as q, F as z, G, H as I } from "./services-
|
|
4
|
+
import { s as o, r as A, c as F } from "./shared-B3cXL2Np.js";
|
|
5
|
+
import { b as M, N as j, y, Q as E, u as T, w as V, x as H, z as O, W as q, F as z, G, H as I } from "./services-BYCeGBlO.js";
|
|
6
6
|
function a(e, r) {
|
|
7
7
|
const n = e.find((l) => l.startsWith(`${r}=`));
|
|
8
8
|
if (n) return n.slice(r.length + 1);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { readFileSync as _, readdirSync as
|
|
2
|
-
import { resolve as $, join as
|
|
3
|
-
import { l as b } from "./services-
|
|
4
|
-
import { p as
|
|
1
|
+
import { readFileSync as _, readdirSync as S } from "node:fs";
|
|
2
|
+
import { resolve as $, join as E } from "node:path";
|
|
3
|
+
import { l as b } from "./services-BYCeGBlO.js";
|
|
4
|
+
import { p as R, Q as l, $ as A, R as D, ae as T, S as y, H as j, I as v, af as C } from "./shared-B3cXL2Np.js";
|
|
5
5
|
const m = "ERR_CLI_SDD_TASK_FILE", g = "ERR_CLI_SDD_TASK_NOT_A_TICKET";
|
|
6
6
|
function O(t) {
|
|
7
7
|
return (t.split("/").pop() ?? t).replace(/\.xml$/, "").trim();
|
|
8
8
|
}
|
|
9
|
-
function
|
|
9
|
+
function w(t, i) {
|
|
10
10
|
const a = new Set(t.rules.map(O));
|
|
11
11
|
return i.filter((n) => n.requiredBy.some((s) => a.has(s)));
|
|
12
12
|
}
|
|
13
|
-
function
|
|
13
|
+
function F(t, i, a, n) {
|
|
14
14
|
const s = [];
|
|
15
15
|
if (s.push(`[sdd-task] ${t.taskId ?? "<unknown>"} — ${t.status ?? "<no status>"}`), t.purpose && s.push(`Purpose: ${t.purpose}`), s.push(`Scope/Module: ${t.scope ?? "—"} / ${t.module ?? "—"}`), s.push(`Dependencies: ${t.dependencies.length ? t.dependencies.join(", ") : "none"}`), t.specRefs.length) {
|
|
16
16
|
s.push("Spec References:");
|
|
@@ -31,7 +31,7 @@ function w(t, i, a, n) {
|
|
|
31
31
|
continue;
|
|
32
32
|
}
|
|
33
33
|
o.objective && s.push(` objective: ${o.objective}`), s.push(` READ rules: ${o.rules.length ? o.rules.join(", ") : "—"}`), s.push(` READ specs: ${c.length ? c.join(", ") : "—"}`), s.push(` READ ticket: PHASE_${e.id}, BDD, VERIFICATION`), s.push(` READ files: ${o.targetFiles.length ? o.targetFiles.join(", ") : "—"}`);
|
|
34
|
-
const r =
|
|
34
|
+
const r = w(o, n);
|
|
35
35
|
s.push(` gates: ${r.length ? r.map((d) => d.command).join(" · ") : "—"}`), s.push(` inputs: ${o.inputs ?? "none"}`), s.push(
|
|
36
36
|
" DO NOT READ: other phase bodies · code outside READ files · specs beyond the anchors above"
|
|
37
37
|
);
|
|
@@ -43,7 +43,7 @@ function w(t, i, a, n) {
|
|
|
43
43
|
return s.join(`
|
|
44
44
|
`);
|
|
45
45
|
}
|
|
46
|
-
function
|
|
46
|
+
function P(t) {
|
|
47
47
|
return {
|
|
48
48
|
ok: !1,
|
|
49
49
|
code: m,
|
|
@@ -73,13 +73,13 @@ const N = /* @__PURE__ */ new Set([
|
|
|
73
73
|
function I(t, i) {
|
|
74
74
|
let a;
|
|
75
75
|
try {
|
|
76
|
-
a =
|
|
76
|
+
a = S(t, { withFileTypes: !0 });
|
|
77
77
|
} catch {
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
80
|
for (const n of a) {
|
|
81
81
|
if (n.name.startsWith(".") || N.has(n.name) || n.isSymbolicLink()) continue;
|
|
82
|
-
const s =
|
|
82
|
+
const s = E(t, n.name);
|
|
83
83
|
if (n.isDirectory()) I(s, i);
|
|
84
84
|
else if (n.isFile() && n.name.endsWith(".md")) {
|
|
85
85
|
let c;
|
|
@@ -111,7 +111,7 @@ function K(t) {
|
|
|
111
111
|
`);
|
|
112
112
|
}
|
|
113
113
|
async function L(t) {
|
|
114
|
-
const n =
|
|
114
|
+
const n = R(t, {})._.filter(
|
|
115
115
|
(p) => typeof p == "string" && p !== "sdd-task"
|
|
116
116
|
)[0];
|
|
117
117
|
if (!n) {
|
|
@@ -122,18 +122,18 @@ async function L(t) {
|
|
|
122
122
|
try {
|
|
123
123
|
s = _($(n), "utf-8");
|
|
124
124
|
} catch {
|
|
125
|
-
return
|
|
125
|
+
return P(n);
|
|
126
126
|
}
|
|
127
127
|
const c = l(s, "META");
|
|
128
128
|
if (c.status !== "ok") return x(n);
|
|
129
|
-
const e =
|
|
129
|
+
const e = A(c.content), o = l(s, "PHASES_OVERVIEW"), r = o.status === "ok" ? D(o.content) : [], d = l(s, "VERIFICATION"), f = d.status === "ok" ? T(d.content) : [], h = {};
|
|
130
130
|
for (const p of r) {
|
|
131
131
|
const k = l(s, `PHASE_${p.id}`);
|
|
132
132
|
k.status === "ok" && (h[p.id] = y(k.content));
|
|
133
133
|
}
|
|
134
134
|
return b.debug(
|
|
135
135
|
`[SddTaskCommand#run] ${e.taskId ?? "?"}: ${r.length} phase(s), ${f.length} gate(s)`
|
|
136
|
-
), { ok: !0, text:
|
|
136
|
+
), { ok: !0, text: F(e, r, h, f) };
|
|
137
137
|
}
|
|
138
138
|
const u = await L(process.argv);
|
|
139
139
|
console.log(u.ok ? u.text : u.message);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as g, V as $, c as h, r as y } from "./shared-
|
|
2
|
-
import { l as n, V as w, a as C } from "./services-
|
|
1
|
+
import { p as g, V as $, c as h, r as y } from "./shared-B3cXL2Np.js";
|
|
2
|
+
import { l as n, V as w, a as C } from "./services-BYCeGBlO.js";
|
|
3
3
|
function v() {
|
|
4
4
|
return {
|
|
5
5
|
resolveVcsContext: y,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { V as k, a as m, l as c, b as y, J as I, I as b, K as R } from "./services-
|
|
2
|
-
import { p as $, r as w, s as t, b as x } from "./shared-
|
|
1
|
+
import { V as k, a as m, l as c, b as y, J as I, I as b, K as R } from "./services-BYCeGBlO.js";
|
|
2
|
+
import { p as $, r as w, s as t, b as x } from "./shared-B3cXL2Np.js";
|
|
3
3
|
function C(o) {
|
|
4
4
|
return o ? o.replace(/^https?:\/\//, "").replace(/\/+$/, "") : x()?.host;
|
|
5
5
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFileSync as f, writeFileSync as E, readdirSync as Y } from "node:fs";
|
|
2
2
|
import { resolve as m, relative as $, dirname as h, join as A } from "node:path";
|
|
3
|
-
import { l as
|
|
4
|
-
import { p as
|
|
3
|
+
import { l as F } from "./services-BYCeGBlO.js";
|
|
4
|
+
import { p as T, Q as v, ab as b, ac as S, ad as w, F as M } from "./shared-B3cXL2Np.js";
|
|
5
5
|
const x = "ERR_CLI_SDD_SYNC_BAD_INVOCATION", I = "ERR_CLI_SDD_SYNC_FILE", R = "ERR_CLI_SDD_SYNC_META", j = "ERR_CLI_SDD_SYNC_VERIFY";
|
|
6
6
|
function O(n) {
|
|
7
7
|
return {
|
|
@@ -62,9 +62,9 @@ function P(n) {
|
|
|
62
62
|
} catch {
|
|
63
63
|
continue;
|
|
64
64
|
}
|
|
65
|
-
const { text: r, updated: s } =
|
|
65
|
+
const { text: r, updated: s } = w(e, (i) => {
|
|
66
66
|
try {
|
|
67
|
-
return M(f(m(h(t),
|
|
67
|
+
return M(f(m(h(t), i), "utf-8"));
|
|
68
68
|
} catch {
|
|
69
69
|
return null;
|
|
70
70
|
}
|
|
@@ -77,7 +77,7 @@ function P(n) {
|
|
|
77
77
|
return d;
|
|
78
78
|
}
|
|
79
79
|
async function W(n) {
|
|
80
|
-
const t =
|
|
80
|
+
const t = T(n, {})._.filter(
|
|
81
81
|
(o) => typeof o == "string" && o !== "sdd-sync"
|
|
82
82
|
), e = t[0];
|
|
83
83
|
if (!e) return O("missing <ticket>");
|
|
@@ -87,41 +87,41 @@ async function W(n) {
|
|
|
87
87
|
} catch {
|
|
88
88
|
return V(e);
|
|
89
89
|
}
|
|
90
|
-
const s =
|
|
90
|
+
const s = v(r, "META");
|
|
91
91
|
if (s.status !== "ok") return D(e);
|
|
92
|
-
const { taskId: c, status:
|
|
93
|
-
if (!c || !
|
|
92
|
+
const { taskId: c, status: i } = b(s.content);
|
|
93
|
+
if (!c || !i) return D(e);
|
|
94
94
|
const p = t.length > 1 ? t.slice(1).map((o) => m(o)) : B(e);
|
|
95
|
-
|
|
96
|
-
const
|
|
97
|
-
let
|
|
95
|
+
F.debug(`[SddSyncCommand#run] ${c} → ${i}; ${p.length} index file(s)`);
|
|
96
|
+
const a = [];
|
|
97
|
+
let k = !1;
|
|
98
98
|
for (const o of p) {
|
|
99
99
|
const u = $(process.cwd(), o);
|
|
100
100
|
let y;
|
|
101
101
|
try {
|
|
102
102
|
y = f(o, "utf-8");
|
|
103
103
|
} catch {
|
|
104
|
-
|
|
104
|
+
a.push(` unreadable: ${u}`);
|
|
105
105
|
continue;
|
|
106
106
|
}
|
|
107
|
-
const _ = S(y, c,
|
|
107
|
+
const _ = S(y, c, i);
|
|
108
108
|
if (!_.ok) {
|
|
109
|
-
|
|
109
|
+
a.push(` ${_.reason === "task_not_found" ? "no-row" : "no-table"}: ${u}`);
|
|
110
110
|
continue;
|
|
111
111
|
}
|
|
112
112
|
if (!_.changed) {
|
|
113
|
-
|
|
113
|
+
a.push(` in-sync: ${u}`);
|
|
114
114
|
continue;
|
|
115
115
|
}
|
|
116
116
|
E(o, _.text, "utf-8");
|
|
117
|
-
const g = S(f(o, "utf-8"), c,
|
|
118
|
-
g.ok && !g.changed ?
|
|
117
|
+
const g = S(f(o, "utf-8"), c, i);
|
|
118
|
+
g.ok && !g.changed ? a.push(` updated: ${u}`) : (k = !0, a.push(` VERIFY-FAIL: ${u}`));
|
|
119
119
|
}
|
|
120
|
-
|
|
121
|
-
const N = `[sdd-sync] ${c} → ${
|
|
122
|
-
`),
|
|
120
|
+
a.push(...P(p));
|
|
121
|
+
const N = `[sdd-sync] ${c} → ${i}`, L = p.length === 0 ? " (no *.3-tasks.md index files found)" : a.join(`
|
|
122
|
+
`), C = `${N}
|
|
123
123
|
${L}`;
|
|
124
|
-
return
|
|
124
|
+
return k ? { ok: !1, code: j, exitCode: 1, message: C } : { ok: !0, text: C };
|
|
125
125
|
}
|
|
126
126
|
const l = await W(process.argv);
|
|
127
127
|
console.log(l.ok ? l.text : l.message);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFileSync as x, writeFileSync as N } from "node:fs";
|
|
2
2
|
import { resolve as G } from "node:path";
|
|
3
|
-
import { l as A } from "./services-
|
|
4
|
-
import { p as y,
|
|
3
|
+
import { l as A } from "./services-BYCeGBlO.js";
|
|
4
|
+
import { p as y, aa as T } from "./shared-B3cXL2Np.js";
|
|
5
5
|
const k = "ERR_CLI_SDD_LOG_BAD_INVOCATION", C = "ERR_CLI_SDD_LOG_FILE", $ = "ERR_CLI_SDD_LOG_NO_LOG_SECTION", h = "ERR_CLI_SDD_LOG_PLACEHOLDER", I = "ERR_CLI_SDD_LOG_MISSING_FLAG", j = /<[^>\s]+>/;
|
|
6
6
|
function a(e) {
|
|
7
7
|
return j.test(e);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { p as V, V as x, c as b, r as k } from "./shared-
|
|
1
|
+
import { p as V, V as x, c as b, r as k } from "./shared-B3cXL2Np.js";
|
|
2
2
|
import { execFile as A } from "node:child_process";
|
|
3
3
|
import { promisify as $ } from "node:util";
|
|
4
|
-
import { l as p } from "./services-
|
|
4
|
+
import { l as p } from "./services-BYCeGBlO.js";
|
|
5
5
|
const j = $(A);
|
|
6
6
|
function I() {
|
|
7
7
|
return {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { s as n } from "./shared-
|
|
2
|
-
import { b as x, f as P, c as W, l as q, a as C } from "./classify-mr-stage.logic-
|
|
3
|
-
import { b as G, z as F, y as _, W as J, A as B, B as Q, C as V, P as K, ah as z, J as k, ai as Y, N as X, d as Z, c as ee, v as te, I as se, aj as re, ak as I, K as ne, al as oe, am as ae } from "./services-
|
|
1
|
+
import { s as n } from "./shared-B3cXL2Np.js";
|
|
2
|
+
import { b as x, f as P, c as W, l as q, a as C } from "./classify-mr-stage.logic-CazmQDwZ.js";
|
|
3
|
+
import { b as G, z as F, y as _, W as J, A as B, B as Q, C as V, P as K, ah as z, J as k, ai as Y, N as X, d as Z, c as ee, v as te, I as se, aj as re, ak as I, K as ne, al as oe, am as ae } from "./services-BYCeGBlO.js";
|
|
4
4
|
const ie = {
|
|
5
5
|
reviewer: "Ждут моё ревью",
|
|
6
6
|
author: "Мои MR",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as b, c as p, V as j, r as w } from "./shared-
|
|
2
|
-
import { l as r } from "./services-
|
|
1
|
+
import { p as b, c as p, V as j, r as w } from "./shared-B3cXL2Np.js";
|
|
2
|
+
import { l as r } from "./services-BYCeGBlO.js";
|
|
3
3
|
function v() {
|
|
4
4
|
return {
|
|
5
5
|
resolveVcsContext: w,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { p as D,
|
|
1
|
+
import { p as D, a4 as o, aD as H, b as M, aE as B, aF as U, aG as F, aH as O, s as k } from "./shared-B3cXL2Np.js";
|
|
2
2
|
import a from "node:fs";
|
|
3
|
-
import
|
|
4
|
-
function
|
|
3
|
+
import P from "node:path";
|
|
4
|
+
function C(e) {
|
|
5
5
|
const t = D(e, {
|
|
6
6
|
branch: ["branch", "b"],
|
|
7
7
|
incoming: ["incoming"]
|
|
@@ -71,7 +71,7 @@ function I(e) {
|
|
|
71
71
|
const t = e.lastIndexOf(" -> ");
|
|
72
72
|
return t > 0 ? e.slice(t + 4) : e;
|
|
73
73
|
}
|
|
74
|
-
function
|
|
74
|
+
function G(e) {
|
|
75
75
|
const t = /* @__PURE__ */ new Map();
|
|
76
76
|
for (const n of e.split(`
|
|
77
77
|
`)) {
|
|
@@ -86,8 +86,8 @@ function X(e) {
|
|
|
86
86
|
}
|
|
87
87
|
return t;
|
|
88
88
|
}
|
|
89
|
-
function
|
|
90
|
-
const n =
|
|
89
|
+
function X(e, t) {
|
|
90
|
+
const n = P.join(process.cwd(), e), i = h[t] ?? "unknown";
|
|
91
91
|
try {
|
|
92
92
|
if (!a.statSync(n).isFile())
|
|
93
93
|
return {
|
|
@@ -118,7 +118,7 @@ function z(e, t) {
|
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
|
-
function
|
|
121
|
+
function z(e) {
|
|
122
122
|
if (!o("git rev-parse --git-dir 2>/dev/null").trim())
|
|
123
123
|
throw new Error("Текущая директория не является git-репозиторием.");
|
|
124
124
|
const n = y("MERGE_HEAD");
|
|
@@ -147,12 +147,12 @@ function G(e) {
|
|
|
147
147
|
`).map((s) => s.trim()).filter(Boolean);
|
|
148
148
|
if (m.length === 0)
|
|
149
149
|
throw new Error("Конфликтующие файлы не найдены (`git diff --diff-filter=U` пуст).");
|
|
150
|
-
const E = o("git status --porcelain --untracked-files=no 2>/dev/null"), b =
|
|
150
|
+
const E = o("git status --porcelain --untracked-files=no 2>/dev/null"), b = G(E), g = x("MERGE_MSG").trim(), v = e.incoming?.trim() || T(g) || $(r) || r, w = e.branch?.trim() || H(), _ = M(), A = d(
|
|
151
151
|
o(`git rev-list --count ${r}..HEAD 2>/dev/null`)
|
|
152
152
|
), S = d(
|
|
153
153
|
o(`git rev-list --count HEAD..${r} 2>/dev/null`)
|
|
154
154
|
), R = m.map(
|
|
155
|
-
(s) =>
|
|
155
|
+
(s) => X(s, b.get(s) ?? "UU")
|
|
156
156
|
);
|
|
157
157
|
return {
|
|
158
158
|
currentBranch: w,
|
|
@@ -161,9 +161,9 @@ function G(e) {
|
|
|
161
161
|
incomingHead: r,
|
|
162
162
|
mergeBase: l,
|
|
163
163
|
mergeMessage: g,
|
|
164
|
-
currentOnlyCommits:
|
|
164
|
+
currentOnlyCommits: A,
|
|
165
165
|
incomingOnlyCommits: S,
|
|
166
|
-
remote:
|
|
166
|
+
remote: _,
|
|
167
167
|
conflictFiles: R
|
|
168
168
|
};
|
|
169
169
|
}
|
|
@@ -234,13 +234,13 @@ async function K() {
|
|
|
234
234
|
return U("agent-resolve-conflicts.xml");
|
|
235
235
|
}
|
|
236
236
|
async function W(e, t = process.cwd()) {
|
|
237
|
-
const n = await K(), i =
|
|
237
|
+
const n = await K(), i = F(t);
|
|
238
238
|
let r = n.replace("<!--Resolve_Conflicts_Artifact-->", e);
|
|
239
|
-
return r = r.replace("<!--ai:first-->",
|
|
239
|
+
return r = r.replace("<!--ai:first-->", O(t)), r = r.replace("<!--ai:verify-axiom-hint-->", i.axiomHint), r = r.replace("<!--ai:verify-tools-example-->", i.toolsExample), r = r.replace("<!--ai:verify-step-commands-->", i.verifyStep), r;
|
|
240
240
|
}
|
|
241
241
|
async function q(e) {
|
|
242
242
|
try {
|
|
243
|
-
const t =
|
|
243
|
+
const t = z(e), n = L(
|
|
244
244
|
t
|
|
245
245
|
);
|
|
246
246
|
return {
|
|
@@ -254,12 +254,12 @@ async function q(e) {
|
|
|
254
254
|
};
|
|
255
255
|
} catch (t) {
|
|
256
256
|
const n = t.message ?? String(t);
|
|
257
|
-
return console.error(
|
|
257
|
+
return console.error(k.redBright.bold("✖ Ошибка:"), n), {
|
|
258
258
|
ok: !1,
|
|
259
259
|
code: 1
|
|
260
260
|
};
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
|
-
const J =
|
|
263
|
+
const J = C(process.argv), f = await q(J);
|
|
264
264
|
f.output && console.info(f.output);
|
|
265
265
|
process.exit(f.code);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AiLegacyModel as h } from "../index.js";
|
|
2
|
-
import { G as f, u as c } from "./shared-
|
|
3
|
-
import { l as p } from "./services-
|
|
2
|
+
import { G as f, u as c } from "./shared-B3cXL2Np.js";
|
|
3
|
+
import { l as p } from "./services-BYCeGBlO.js";
|
|
4
4
|
import { readFileSync as l } from "node:fs";
|
|
5
5
|
import { dirname as _, join as m } from "node:path";
|
|
6
6
|
import { fileURLToPath as k } from "node:url";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as e, r as t } from "./run-review-command.logic-
|
|
2
|
-
import { r as i } from "./shared-
|
|
1
|
+
import { p as e, r as t } from "./run-review-command.logic-B9GoCxh-.js";
|
|
2
|
+
import { r as i } from "./shared-B3cXL2Np.js";
|
|
3
3
|
const r = e(process.argv), c = {
|
|
4
4
|
ref: r.ref,
|
|
5
5
|
branch: r.branch,
|
|
@@ -2,9 +2,9 @@ import { execFileSync as O } from "node:child_process";
|
|
|
2
2
|
import { mkdirSync as ie, writeFileSync as ye, readdirSync as ve } from "node:fs";
|
|
3
3
|
import { homedir as ke } from "node:os";
|
|
4
4
|
import { join as le } from "node:path";
|
|
5
|
-
import { s as V, r as Se, c as be } from "./shared-
|
|
6
|
-
import { b as Ae, d as Re, c as xe, v as Ce, u as je, w as Pe, x as De, y as _e, z as He, W as Be, A as Me, B as Ee, C as Ne, P as Te, F as Oe, G as Ie, H as Le, I as Fe, J as ce, K as We, L as Ue } from "./services-
|
|
7
|
-
import { b as qe, f as Ge, c as Je, a as ze, l as Ve } from "./classify-mr-stage.logic-
|
|
5
|
+
import { s as V, r as Se, c as be } from "./shared-B3cXL2Np.js";
|
|
6
|
+
import { b as Ae, d as Re, c as xe, v as Ce, u as je, w as Pe, x as De, y as _e, z as He, W as Be, A as Me, B as Ee, C as Ne, P as Te, F as Oe, G as Ie, H as Le, I as Fe, J as ce, K as We, L as Ue } from "./services-BYCeGBlO.js";
|
|
7
|
+
import { b as qe, f as Ge, c as Je, a as ze, l as Ve } from "./classify-mr-stage.logic-CazmQDwZ.js";
|
|
8
8
|
function P(e, t) {
|
|
9
9
|
const n = e.find((a) => a.startsWith(`${t}=`));
|
|
10
10
|
if (n) return n.slice(t.length + 1);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync as h, mkdirSync as I, writeFileSync as S } from "node:fs";
|
|
2
2
|
import { resolve as D, dirname as R } from "node:path";
|
|
3
|
-
import { l as d } from "./services-
|
|
4
|
-
import { p as C, A as E, T as l } from "./shared-
|
|
3
|
+
import { l as d } from "./services-BYCeGBlO.js";
|
|
4
|
+
import { p as C, A as E, T as l } from "./shared-B3cXL2Np.js";
|
|
5
5
|
const g = "ERR_CLI_SDD_NEW_BAD_INVOCATION", $ = "ERR_CLI_SDD_NEW_UNKNOWN_KIND", _ = "ERR_CLI_SDD_NEW_FILE_EXISTS", w = "ERR_CLI_SDD_NEW_WRITE_FAILED", N = [
|
|
6
6
|
"product",
|
|
7
7
|
"library",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { readdirSync as S, statSync as _, mkdirSync as O, writeFileSync as P, readFileSync as v } from "node:fs";
|
|
2
2
|
import { join as a, sep as U } from "node:path";
|
|
3
3
|
import { fileURLToPath as $ } from "node:url";
|
|
4
|
-
import { l as
|
|
5
|
-
import {
|
|
6
|
-
class
|
|
4
|
+
import { l as A } from "./services-BYCeGBlO.js";
|
|
5
|
+
import { ax as T, ay as x, az as z, aA as B, p as I, aB as Y } from "./shared-B3cXL2Np.js";
|
|
6
|
+
class j {
|
|
7
7
|
/** @purpose List of all synced file entries. */
|
|
8
8
|
entries;
|
|
9
9
|
/**
|
|
@@ -80,21 +80,21 @@ function H(e, t) {
|
|
|
80
80
|
}
|
|
81
81
|
const s = W(t.sourceDir, t.subdirs), o = [];
|
|
82
82
|
for (const n of s) {
|
|
83
|
-
const r = a(t.sourceDir, n), c = a(t.targetDir, n), i = e.readFile(r), p =
|
|
83
|
+
const r = a(t.sourceDir, n), c = a(t.targetDir, n), i = e.readFile(r), p = T(i.toString("utf-8"), B), l = Buffer.from(p, "utf-8"), f = l.length;
|
|
84
84
|
let d = null;
|
|
85
85
|
try {
|
|
86
86
|
d = e.readFile(c);
|
|
87
87
|
} catch {
|
|
88
88
|
}
|
|
89
89
|
let u;
|
|
90
|
-
d === null ? u = "added" :
|
|
90
|
+
d === null ? u = "added" : x(l, d) ? u = "updated" : u = "unchanged", o.push({
|
|
91
91
|
relativePath: n,
|
|
92
92
|
status: u,
|
|
93
93
|
sourceSize: f,
|
|
94
94
|
targetSize: d?.length
|
|
95
95
|
}), !t.dryRun && u !== "unchanged" && (e.mkdir(a(t.targetDir, n, ".."), { recursive: !0 }), e.writeFile(c, l));
|
|
96
96
|
}
|
|
97
|
-
return new
|
|
97
|
+
return new j(o);
|
|
98
98
|
}
|
|
99
99
|
function J(e) {
|
|
100
100
|
try {
|
|
@@ -107,13 +107,13 @@ function J(e) {
|
|
|
107
107
|
function V(e, t, s, o, n) {
|
|
108
108
|
s.write(`Sync (v${n})${t ? " (dry-run)" : ""}: ${o}
|
|
109
109
|
`);
|
|
110
|
-
const r =
|
|
110
|
+
const r = Y(e, { dryRun: t });
|
|
111
111
|
for (const c of r)
|
|
112
112
|
s.write(c + `
|
|
113
113
|
`);
|
|
114
114
|
}
|
|
115
115
|
function E(e, t) {
|
|
116
|
-
const s = v, o = P, n = O, r = _, c = S, i = L, p = process.stdout, l = process.stderr, f =
|
|
116
|
+
const s = v, o = P, n = O, r = _, c = S, i = L, p = process.stdout, l = process.stderr, f = I(e, {
|
|
117
117
|
dryRun: ["dry-run"]
|
|
118
118
|
}), d = f.dryRun === !0 || f.dryRun === "true", u = f._.filter(
|
|
119
119
|
(g) => typeof g == "string" && g !== "sync"
|
|
@@ -153,7 +153,7 @@ if (process.argv[1]) {
|
|
|
153
153
|
process.exit(t);
|
|
154
154
|
} catch (t) {
|
|
155
155
|
const s = new Error("[syncCmd] Self-execution failed", { cause: t });
|
|
156
|
-
|
|
156
|
+
A.error("[syncCmd#run] [self-executing → failed]", { error: s }), process.exit(1);
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
process.exit(E(process.argv));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as N, V as A, c as w, r as M } from "./shared-
|
|
2
|
-
import { l as q } from "./services-
|
|
1
|
+
import { p as N, V as A, c as w, r as M } from "./shared-B3cXL2Np.js";
|
|
2
|
+
import { l as q } from "./services-BYCeGBlO.js";
|
|
3
3
|
function L() {
|
|
4
4
|
return {
|
|
5
5
|
resolveVcsContext: M,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p, c as b, d as x, V as v, r as j } from "./shared-
|
|
2
|
-
import { l as i, V as C, a as M } from "./services-
|
|
1
|
+
import { p, c as b, d as x, V as v, r as j } from "./shared-B3cXL2Np.js";
|
|
2
|
+
import { l as i, V as C, a as M } from "./services-BYCeGBlO.js";
|
|
3
3
|
function V() {
|
|
4
4
|
return {
|
|
5
5
|
resolveVcsContext: j,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFileSync as v, writeFileSync as D, existsSync as x, mkdirSync as S, statSync as T, readdirSync as M } from "node:fs";
|
|
2
2
|
import { resolve as g, relative as C, join as h, dirname as A } from "node:path";
|
|
3
|
-
import { l as j } from "./services-
|
|
4
|
-
import { p as F,
|
|
3
|
+
import { l as j } from "./services-BYCeGBlO.js";
|
|
4
|
+
import { p as F, ag as L, ah as O, ai as N, aj as P, ak as V, al as G, am as U, an as W, ao as Y, ap as b, aq as B, ar as q } from "./shared-B3cXL2Np.js";
|
|
5
5
|
const E = "ERR_CLI_SDD_MIGRATE_BAD_INVOCATION";
|
|
6
6
|
function y(a) {
|
|
7
7
|
return {
|
|
@@ -19,7 +19,7 @@ function y(a) {
|
|
|
19
19
|
`)
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
function
|
|
22
|
+
function K(a) {
|
|
23
23
|
const e = [], n = (r) => {
|
|
24
24
|
let c;
|
|
25
25
|
try {
|
|
@@ -39,7 +39,7 @@ function X(a) {
|
|
|
39
39
|
}
|
|
40
40
|
return e;
|
|
41
41
|
}
|
|
42
|
-
function
|
|
42
|
+
function X(a, e) {
|
|
43
43
|
if (e.verify) {
|
|
44
44
|
const s = P(a), t = s.map((u) => ` ERROR ${u.code} ${u.file} — ${u.message}`), i = `[sdd-migrate plan] VERIFY · ${s.length} finding(s)`;
|
|
45
45
|
return s.length === 0 ? { ok: !0, text: `${i}
|
|
@@ -108,7 +108,7 @@ function z(a, e) {
|
|
|
108
108
|
(t) => ` ${e.write ? "~" : "would"} ${t.file} — ${t.count} замен(ы)`
|
|
109
109
|
), l = c.reduce((t, i) => t + i.count, 0), s = `[sdd-migrate ids] ${e.write ? "WRITE" : "DRY-RUN"} · ${r.map.length} ID · ${l} вхождений в ${c.length} файл(ах)`;
|
|
110
110
|
if (e.write) {
|
|
111
|
-
const t =
|
|
111
|
+
const t = q(a, r.map);
|
|
112
112
|
return t.length > 0 ? {
|
|
113
113
|
ok: !1,
|
|
114
114
|
code: "ERR_CLI_SDD_MIGRATE_IDS_LEFTOVER",
|
|
@@ -149,7 +149,7 @@ async function H(a) {
|
|
|
149
149
|
), r = n[0];
|
|
150
150
|
if (r === "plan") {
|
|
151
151
|
const o = g(n[1] ?? ".");
|
|
152
|
-
return
|
|
152
|
+
return X(o, {
|
|
153
153
|
verify: e.verify === !0 || e.verify === "true",
|
|
154
154
|
write: e.write === !0 || e.write === "true"
|
|
155
155
|
});
|
|
@@ -188,7 +188,7 @@ async function H(a) {
|
|
|
188
188
|
const c = e.write === !0 || e.write === "true", d = e.all === !0 || e.all === "true";
|
|
189
189
|
let l;
|
|
190
190
|
if (d)
|
|
191
|
-
l =
|
|
191
|
+
l = K(g(n[1] ?? "."));
|
|
192
192
|
else {
|
|
193
193
|
const o = n[1];
|
|
194
194
|
if (!o) return y("need a <ticket> path or --all");
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import yt from "node:fs";
|
|
2
2
|
import St from "node:path";
|
|
3
|
-
import { at as Mn, an as Dn, l as xe, au as In, a as Nn, V as qn } from "./services-
|
|
3
|
+
import { at as Mn, an as Dn, l as xe, au as In, a as Nn, V as qn } from "./services-BYCeGBlO.js";
|
|
4
4
|
import Kt from "os";
|
|
5
5
|
import Se from "path";
|
|
6
6
|
import Pn from "util";
|
|
7
7
|
import dt from "stream";
|
|
8
8
|
import Fn from "events";
|
|
9
9
|
import Qt from "fs";
|
|
10
|
-
import { p as Bn, s as ne } from "./shared-
|
|
10
|
+
import { p as Bn, s as ne } from "./shared-B3cXL2Np.js";
|
|
11
11
|
var se = {}, ie = {}, Oe = {}, nr;
|
|
12
12
|
function jn() {
|
|
13
13
|
if (nr) return Oe;
|