@git.zone/cli 6.10.0 → 6.12.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.
@@ -0,0 +1,97 @@
1
+ import * as plugins from "./mod.plugins.js";
2
+ import { bucketForCommitType, inferVersionTypeFromPending, validatePendingChangelogMarkdown, } from "../helpers.changelog.js";
3
+ const maximumInputBytes = 128 * 1024;
4
+ const keys = [
5
+ "message",
6
+ "message-file",
7
+ "changelog",
8
+ "changelog-file",
9
+ ];
10
+ const readArg = (argv, key) => argv[key] ??
11
+ argv[key.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase())];
12
+ export const hasManualCommitInput = (argv) => keys.some((key) => readArg(argv, key) !== undefined);
13
+ const readInput = async (value, fromFile, cwd) => {
14
+ if (typeof value !== "string" || !value.trim() || value.includes("\0"))
15
+ throw new Error("Manual commit inputs require non-empty text or file paths.");
16
+ let text = value;
17
+ if (fromFile) {
18
+ const file = await plugins.fs.open(plugins.path.resolve(cwd, value), plugins.fsConstants.O_RDONLY | plugins.fsConstants.O_NONBLOCK);
19
+ try {
20
+ const stat = await file.stat();
21
+ if (!stat.isFile() || stat.size > maximumInputBytes)
22
+ throw new Error("Manual input files must be regular files of at most 128 KiB.");
23
+ const bytes = Buffer.alloc(maximumInputBytes + 1);
24
+ let length = 0;
25
+ while (length < bytes.length) {
26
+ const part = await file.read(bytes, length, bytes.length - length, null);
27
+ if (!part.bytesRead)
28
+ break;
29
+ length += part.bytesRead;
30
+ }
31
+ if (length > maximumInputBytes)
32
+ throw new Error("Manual inputs must be at most 128 KiB.");
33
+ text = new TextDecoder("utf-8", { fatal: true }).decode(bytes.subarray(0, length));
34
+ }
35
+ finally {
36
+ await file.close();
37
+ }
38
+ }
39
+ text = text.replace(/\r\n/g, "\n").replace(/\n+$/, "");
40
+ if (!text.trim() ||
41
+ Buffer.byteLength(text, "utf8") > maximumInputBytes ||
42
+ /[\u0000-\u0008\u000b-\u001f\u007f]/.test(text)) {
43
+ throw new Error("Manual inputs must contain non-empty text without control characters, at most 128 KiB.");
44
+ }
45
+ return text;
46
+ };
47
+ export const loadManualCommitInput = async (argv, cwd) => {
48
+ if (!hasManualCommitInput(argv))
49
+ return undefined;
50
+ const message = readArg(argv, "message");
51
+ const messageFile = readArg(argv, "message-file");
52
+ const changelog = readArg(argv, "changelog");
53
+ const changelogFile = readArg(argv, "changelog-file");
54
+ if ((message === undefined) === (messageFile === undefined))
55
+ throw new Error("Supply exactly one of --message or --message-file for a manual commit.");
56
+ if (changelog !== undefined && changelogFile !== undefined)
57
+ throw new Error("Supply only one of --changelog or --changelog-file.");
58
+ const fullMessage = await readInput(message ?? messageFile, messageFile !== undefined, cwd);
59
+ const [subject, ...body] = fullMessage.split("\n");
60
+ const parsed = /^(BREAKING CHANGE|[a-z][a-z0-9-]*)(?:\(([^():\r\n]+)\))?(!)?: (\S.*)$/.exec(subject);
61
+ if (!parsed)
62
+ throw new Error("Manual messages must start with a semantic subject: type(scope): description, with optional scope and !.");
63
+ const [, originalType, scope = "", bang, summary] = parsed;
64
+ const messageBreaking = originalType === "BREAKING CHANGE" ||
65
+ Boolean(bang) ||
66
+ /^BREAKING[ -]CHANGE:\s*\S/m.test(fullMessage);
67
+ const type = messageBreaking ? "BREAKING CHANGE" : originalType;
68
+ let markdown;
69
+ if (changelog !== undefined || changelogFile !== undefined) {
70
+ const text = (await readInput(changelog ?? changelogFile, changelogFile !== undefined, cwd)).trim();
71
+ if (/^#{1,3}\s/m.test(text)) {
72
+ markdown = text;
73
+ }
74
+ else {
75
+ markdown = `### ${bucketForCommitType(type)}\n\n- ${text.replace(/\n/g, "\n ")}`;
76
+ }
77
+ }
78
+ else {
79
+ const details = body
80
+ .filter((line) => line.trim())
81
+ .map((line) => ` - ${line.trim()}`);
82
+ markdown = `### ${bucketForCommitType(type)}\n\n- ${summary}${scope ? ` (${scope})` : ""}${details.length ? "\n" + details.join("\n") : ""}`;
83
+ }
84
+ validatePendingChangelogMarkdown(markdown);
85
+ const changelogBreaking = inferVersionTypeFromPending(markdown) === "major";
86
+ if (messageBreaking && !changelogBreaking)
87
+ throw new Error("A breaking commit requires a Breaking Changes changelog bucket.");
88
+ return {
89
+ message: fullMessage,
90
+ type,
91
+ scope,
92
+ summary,
93
+ changelog: markdown,
94
+ breaking: messageBreaking || changelogBreaking,
95
+ };
96
+ };
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5tYW51YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfY29tbWl0L2hlbHBlcnMubWFudWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0IsZ0NBQWdDLEdBQ2pDLE1BQU0seUJBQXlCLENBQUM7QUFXakMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBQ3JDLE1BQU0sSUFBSSxHQUFHO0lBQ1gsU0FBUztJQUNULGNBQWM7SUFDZCxXQUFXO0lBQ1gsZ0JBQWdCO0NBQ1IsQ0FBQztBQUVYLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBNkIsRUFBRSxHQUFjLEVBQVcsRUFBRSxDQUN6RSxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQTZCLEVBQVcsRUFBRSxDQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0FBRXZELE1BQU0sU0FBUyxHQUFHLEtBQUssRUFDckIsS0FBYyxFQUNkLFFBQWlCLEVBQ2pCLEdBQVcsRUFDTSxFQUFFO0lBQ25CLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERB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
@@ -3,12 +3,12 @@ import * as plugins from "./mod.plugins.js";
3
3
  import * as paths from "../paths.js";
4
4
  import { logger } from "../gitzone.logging.js";
5
5
  import * as ui from "./mod.ui.js";
6
- import { getCliMode, printJson, runWithSuppressedOutput } from "../helpers.climode.js";
7
- import { appendPendingChangelogEntry } from "../helpers.changelog.js";
8
- import { resolveCommitWorkflow } from "../helpers.workflow.js";
6
+ import { getCliMode, printJson, runWithSuppressedOutput, } from "../helpers.climode.js";
7
+ import { appendPendingChangelogEntry, appendPendingChangelogMarkdown, } from "../helpers.changelog.js";
8
+ import { resolveCommitWorkflow, } from "../helpers.workflow.js";
9
+ import { hasManualCommitInput, loadManualCommitInput, } from "./helpers.manual.js";
9
10
  const isNoChangesError = (error) => {
10
- return (error instanceof plugins.tsdoc.NoChangesError ||
11
- (error instanceof Error && error.name === "NoChangesError"));
11
+ return error instanceof Error && error.name === "NoChangesError";
12
12
  };
13
13
  export const run = async (argvArg) => {
14
14
  const mode = await getCliMode(argvArg);
@@ -18,6 +18,8 @@ export const run = async (argvArg) => {
18
18
  return;
19
19
  }
20
20
  if (subcommand === "recommend") {
21
+ if (hasManualCommitInput(argvArg))
22
+ throw new Error("Manual input cannot be combined with commit recommend.");
21
23
  await handleRecommend(mode);
22
24
  return;
23
25
  }
@@ -28,11 +30,12 @@ export const run = async (argvArg) => {
28
30
  });
29
31
  return;
30
32
  }
31
- const workflow = await resolveCommitWorkflow(argvArg);
33
+ const manual = await loadManualCommitInput(argvArg, paths.cwd);
34
+ const workflow = await resolveCommitWorkflow(argvArg, manual ? "manual" : "ai");
32
35
  if (workflow.releaseFlagRequested) {
33
36
  logger.log("warn", "`gitzone commit -r` is deprecated and no longer releases. Use `gitzone release` after committing.");
34
37
  }
35
- printCommitExecutionPlan(workflow);
38
+ printCommitExecutionPlan(workflow, manual);
36
39
  if (workflow.confirmation === "plan") {
37
40
  return;
38
41
  }
@@ -42,6 +45,10 @@ export const run = async (argvArg) => {
42
45
  });
43
46
  let nextCommitObject;
44
47
  let answerBucket;
48
+ if (manual && !(await hasManualCommitChanges(smartshellInstance)))
49
+ return;
50
+ if (manual && !(await confirmManualCommit(manual, workflow, mode)))
51
+ return;
45
52
  for (const step of workflow.steps) {
46
53
  switch (step) {
47
54
  case "format":
@@ -66,13 +73,32 @@ export const run = async (argvArg) => {
66
73
  }
67
74
  answerBucket = await buildAnswerBucket(nextCommitObject, workflow, mode, argvArg);
68
75
  break;
76
+ case "manual": {
77
+ if (!manual)
78
+ throw new Error("Manual commit input is required.");
79
+ if (!(await hasManualCommitChanges(smartshellInstance)))
80
+ return;
81
+ nextCommitObject = { manual: true };
82
+ answerBucket = createAnswerBucket({
83
+ commitType: manual.type,
84
+ commitScope: manual.scope,
85
+ commitDescription: manual.summary,
86
+ });
87
+ break;
88
+ }
69
89
  case "changelog":
70
90
  assertAnalysisComplete(answerBucket, nextCommitObject);
71
- await runChangelogStep(workflow, answerBucket, nextCommitObject);
91
+ if (manual) {
92
+ await appendPendingChangelogMarkdown(plugins.path.join(paths.cwd, workflow.changelogFile), workflow.changelogSection, manual.changelog);
93
+ logger.log("success", `Updated ${workflow.changelogFile} pending section.`);
94
+ }
95
+ else {
96
+ await runChangelogStep(workflow, answerBucket, nextCommitObject);
97
+ }
72
98
  break;
73
99
  case "commit":
74
100
  assertAnalysisComplete(answerBucket, nextCommitObject);
75
- await runCommitStep(smartshellInstance, answerBucket);
101
+ await runCommitStep(smartshellInstance, answerBucket, manual?.message);
76
102
  break;
77
103
  case "push":
78
104
  await runPushStep(smartshellInstance, workflow);
@@ -91,6 +117,28 @@ export const run = async (argvArg) => {
91
117
  pushed: workflow.steps.includes("push"),
92
118
  });
93
119
  };
120
+ async function hasManualCommitChanges(smartshellInstance) {
121
+ const status = await smartshellInstance.execSpawn("git", ["status", "--porcelain=v1", "--untracked-files=all"], { cwd: paths.cwd, silent: true });
122
+ if (status.exitCode !== 0)
123
+ throw new Error("Cannot inspect the repository for a manual commit.");
124
+ if (status.stdout.trim())
125
+ return true;
126
+ logger.log("info", "No uncommitted changes found. Nothing to commit.");
127
+ return false;
128
+ }
129
+ async function confirmManualCommit(manual, workflow, mode) {
130
+ if (workflow.confirmation === "auto" &&
131
+ (!manual.breaking || workflow.allowBreaking))
132
+ return true;
133
+ if (!mode.interactive) {
134
+ throw new Error(manual.breaking
135
+ ? "BREAKING CHANGE confirmation requires an interactive terminal. Use `-y --allow-breaking` to auto-accept it."
136
+ : "Commit confirmation requires an interactive terminal. Use `-y` or set commit.confirmation to `auto`.");
137
+ }
138
+ return plugins.smartinteract.SmartInteract.getCliConfirmation(manual.breaking
139
+ ? "Create this breaking commit and changelog entry?"
140
+ : "Create this commit and changelog entry?", false);
141
+ }
94
142
  async function runFormatStep() {
95
143
  ui.printHeader("Formatting project files");
96
144
  const formatMod = await import("../mod_format/index.js");
@@ -107,7 +155,8 @@ async function runCommandStep(smartshellInstance, label, command) {
107
155
  }
108
156
  async function runAnalyzeStep() {
109
157
  ui.printHeader("Analyzing repository changes");
110
- const aidoc = new plugins.tsdoc.AiDoc();
158
+ const tsdoc = await plugins.loadTsdoc();
159
+ const aidoc = new tsdoc.AiDoc();
111
160
  await aidoc.start();
112
161
  try {
113
162
  const nextCommitObject = await aidoc.buildNextCommitObject(paths.cwd);
@@ -125,7 +174,8 @@ async function runAnalyzeStep() {
125
174
  }
126
175
  async function buildAnswerBucket(nextCommitObject, workflow, mode, argvArg) {
127
176
  const isBreakingChange = nextCommitObject.recommendedNextVersionLevel === "BREAKING CHANGE";
128
- const canAutoAccept = workflow.confirmation === "auto" && (!isBreakingChange || workflow.allowBreaking);
177
+ const canAutoAccept = workflow.confirmation === "auto" &&
178
+ (!isBreakingChange || workflow.allowBreaking);
129
179
  if (canAutoAccept) {
130
180
  logger.log(isBreakingChange ? "warn" : "info", isBreakingChange
131
181
  ? "Auto-accepting BREAKING CHANGE recommendation because --allow-breaking was provided"
@@ -136,7 +186,8 @@ async function buildAnswerBucket(nextCommitObject, workflow, mode, argvArg) {
136
186
  commitDescription: nextCommitObject.recommendedNextVersionMessage,
137
187
  });
138
188
  }
139
- if (isBreakingChange && (workflow.confirmation === "auto" || argvArg.y || argvArg.yes)) {
189
+ if (isBreakingChange &&
190
+ (workflow.confirmation === "auto" || argvArg.y || argvArg.yes)) {
140
191
  logger.log("warn", "BREAKING CHANGE detected - manual confirmation required");
141
192
  }
142
193
  if (!mode.interactive) {
@@ -185,15 +236,37 @@ async function runChangelogStep(workflow, answerBucket, nextCommitObject) {
185
236
  });
186
237
  logger.log("success", `Updated ${workflow.changelogFile} pending section.`);
187
238
  }
188
- async function runCommitStep(smartshellInstance, answerBucket) {
239
+ async function runCommitStep(smartshellInstance, answerBucket, manualMessage) {
189
240
  ui.printHeader("Creating Semantic Commit");
190
- const commitString = createCommitStringFromAnswerBucket(answerBucket);
241
+ const commitString = manualMessage ?? createCommitStringFromAnswerBucket(answerBucket);
191
242
  ui.printCommitMessage(commitString);
192
- await smartshellInstance.exec("git add -A");
193
- const result = await smartshellInstance.exec(`git commit -m ${shellQuote(commitString)}`);
194
- if (result.exitCode !== 0) {
195
- logger.log("error", "git commit failed.");
196
- process.exit(1);
243
+ let messageDirectory;
244
+ try {
245
+ let commitArgs = ["commit", "-m", commitString];
246
+ if (manualMessage !== undefined) {
247
+ messageDirectory = await plugins.fs.mkdtemp(plugins.path.join(plugins.os.tmpdir(), "gitzone-commit-message-"));
248
+ const messagePath = plugins.path.join(messageDirectory, "message.txt");
249
+ await plugins.fs.writeFile(messagePath, `${commitString}\n`, {
250
+ encoding: "utf8",
251
+ mode: 0o600,
252
+ flag: "wx",
253
+ });
254
+ commitArgs = ["commit", "--cleanup=verbatim", "--file", messagePath];
255
+ }
256
+ const staged = await smartshellInstance.execSpawn("git", ["add", "-A"], {
257
+ cwd: paths.cwd,
258
+ });
259
+ if (staged.exitCode !== 0)
260
+ throw new Error("git add failed; no commit was attempted.");
261
+ const result = await smartshellInstance.execSpawn("git", commitArgs, {
262
+ cwd: paths.cwd,
263
+ });
264
+ if (result.exitCode !== 0)
265
+ throw new Error("git commit failed.");
266
+ }
267
+ finally {
268
+ if (messageDirectory)
269
+ await plugins.fs.rm(messageDirectory, { recursive: true, force: true });
197
270
  }
198
271
  }
199
272
  async function runPushStep(smartshellInstance, workflow) {
@@ -214,20 +287,23 @@ function assertAnalysisComplete(answerBucket, nextCommitObject) {
214
287
  throw new Error("Commit workflow requires analyze before changelog and commit steps.");
215
288
  }
216
289
  }
217
- function shellQuote(value) {
218
- return `'${value.replaceAll("'", "'\\''")}'`;
219
- }
220
- function printCommitExecutionPlan(workflow) {
290
+ function printCommitExecutionPlan(workflow, manual) {
221
291
  console.log("");
222
292
  console.log("gitzone commit - resolved workflow");
223
293
  console.log(`confirmation: ${workflow.confirmation}`);
294
+ console.log(`input: ${manual ? "manual" : "ai"}`);
224
295
  console.log(`steps: ${workflow.steps.join(" -> ")}`);
225
296
  console.log(`changelog: ${workflow.changelogFile}#${workflow.changelogSection}`);
297
+ if (manual) {
298
+ ui.printCommitMessage(manual.message);
299
+ console.log(manual.changelog);
300
+ }
226
301
  console.log("");
227
302
  }
228
303
  async function handleRecommend(mode) {
229
304
  const recommendationBuilder = async () => {
230
- const aidoc = new plugins.tsdoc.AiDoc();
305
+ const tsdoc = await plugins.loadTsdoc();
306
+ const aidoc = new tsdoc.AiDoc();
231
307
  await aidoc.start();
232
308
  try {
233
309
  return await aidoc.buildNextCommitObject(paths.cwd);
@@ -277,7 +353,7 @@ export function showHelp(mode) {
277
353
  printJson({
278
354
  command: "commit",
279
355
  usage: "gitzone commit [recommend] [options]",
280
- description: "Analyzes changes and creates one semantic source commit.",
356
+ description: "Creates one semantic source commit from AI recommendations or explicit manual input.",
281
357
  commands: [
282
358
  {
283
359
  name: "recommend",
@@ -285,16 +361,55 @@ export function showHelp(mode) {
285
361
  },
286
362
  ],
287
363
  flags: [
288
- { flag: "-y, --yes", description: "Auto-accept safe AI recommendations" },
289
- { flag: "--allow-breaking", description: "Allow -y/--yes to accept BREAKING CHANGE recommendations" },
364
+ {
365
+ flag: "-m, --message <text>",
366
+ description: "Use a complete semantic commit message without AI",
367
+ },
368
+ {
369
+ flag: "--message-file <path>",
370
+ description: "Read the complete semantic message from a UTF-8 file",
371
+ },
372
+ {
373
+ flag: "--changelog <text>",
374
+ description: "Use custom Pending entry text or Markdown with a manual message",
375
+ },
376
+ {
377
+ flag: "--changelog-file <path>",
378
+ description: "Read custom Pending text or Markdown from a UTF-8 file",
379
+ },
380
+ {
381
+ flag: "-y, --yes",
382
+ description: "Confirm safe AI or manual commit input",
383
+ },
384
+ {
385
+ flag: "--allow-breaking",
386
+ description: "Allow -y/--yes to accept breaking AI or manual input",
387
+ },
290
388
  { flag: "-p, --push", description: "Push to origin after committing" },
291
- { flag: "-t, --test", description: "Run tests as part of the commit workflow" },
292
- { flag: "-b, --build", description: "Run build as part of the commit workflow" },
293
- { flag: "-f, --format", description: "Run gitzone format before committing" },
294
- { flag: "--plan", description: "Show resolved workflow without mutating files" },
295
- { flag: "--json", description: "Emit JSON for `commit recommend` only" },
389
+ {
390
+ flag: "-t, --test",
391
+ description: "Run tests as part of the commit workflow",
392
+ },
393
+ {
394
+ flag: "-b, --build",
395
+ description: "Run build as part of the commit workflow",
396
+ },
397
+ {
398
+ flag: "-f, --format",
399
+ description: "Run gitzone format before committing",
400
+ },
401
+ {
402
+ flag: "--plan",
403
+ description: "Show resolved workflow without mutating files",
404
+ },
405
+ {
406
+ flag: "--json",
407
+ description: "Emit JSON for `commit recommend` only",
408
+ },
296
409
  ],
297
410
  examples: [
411
+ "gitzone commit -y --message 'fix(cache): expire stale entries'",
412
+ "gitzone commit -y --message-file /tmp/commit.txt --changelog-file /tmp/pending.md",
298
413
  "gitzone commit recommend --json",
299
414
  "gitzone commit -y",
300
415
  "gitzone commit -ytbp",
@@ -312,8 +427,12 @@ export function showHelp(mode) {
312
427
  console.log(" recommend Generate a commit recommendation without mutating the repository");
313
428
  console.log("");
314
429
  console.log("Flags:");
315
- console.log(" -y, --yes Auto-accept safe AI recommendations");
316
- console.log(" --allow-breaking Allow -y/--yes to accept BREAKING CHANGE recommendations");
430
+ console.log(" -m, --message TEXT Use a complete semantic message without AI");
431
+ console.log(" --message-file PATH Read the complete message from a UTF-8 file");
432
+ console.log(" --changelog TEXT Custom Pending entry text or Markdown (requires a manual message)");
433
+ console.log(" --changelog-file PATH Read custom Pending text or Markdown from a UTF-8 file");
434
+ console.log(" -y, --yes Confirm safe AI or manual commit input");
435
+ console.log(" --allow-breaking Allow -y/--yes to accept breaking AI or manual input");
317
436
  console.log(" -p, --push Push after commit");
318
437
  console.log(" -t, --test Run tests in the configured order");
319
438
  console.log(" -b, --build Run build in the configured order");
@@ -322,10 +441,12 @@ export function showHelp(mode) {
322
441
  console.log(" --json Emit JSON for `commit recommend` only");
323
442
  console.log("");
324
443
  console.log("Examples:");
444
+ console.log(" gitzone commit -y --message 'fix(cache): expire stale entries'");
445
+ console.log(" gitzone commit -y --message-file /tmp/commit.txt --changelog-file /tmp/pending.md");
325
446
  console.log(" gitzone commit recommend --json");
326
447
  console.log(" gitzone commit -y");
327
448
  console.log(" gitzone commit -ytbp");
328
449
  console.log(" gitzone release");
329
450
  console.log("");
330
451
  }
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfY29tbWl0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdFQUFnRTtBQUVoRSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0MsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RixNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBYyxFQUFXLEVBQUU7SUFDbkQsT0FBTyxDQUNMLEtBQUssWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWM7UUFDN0MsQ0FBQyxLQUFLLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsQ0FDNUQsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUU7SUFDeEMsTUFBTSxJQUFJLEdBQUcsTUFBTSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWxDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxVQUFVLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDdkMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2YsT0FBTztJQUNULENBQUM7SUFFRCxJ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
452
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfY29tbWl0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdFQUFnRTtBQUVoRSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsQyxPQUFPLEVBQ0wsVUFBVSxFQUNWLFNBQVMsRUFDVCx1QkFBdUIsR0FDeEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDhCQUE4QixHQUMvQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxxQkFBcUIsR0FFdEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUV0QixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFjLEVBQVcsRUFBRTtJQUNuRCxPQUFPLEtBQUssWUFBWSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQztBQUNuRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLE9BQVksRUFBRSxFQUFFO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLE1BQU0sVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksVUFBVSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNmLE9BQU87SUFD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
@@ -1,7 +1,7 @@
1
- export * from '../plugins.js';
2
- import * as commitinfo from '@push.rocks/commitinfo';
3
- import * as smartfile from '@push.rocks/smartfile';
4
- import * as smartinteract from '@push.rocks/smartinteract';
5
- import * as smartshell from '@push.rocks/smartshell';
6
- import * as tsdoc from '@git.zone/tsdoc';
7
- export { commitinfo, smartfile, smartinteract, smartshell, tsdoc };
1
+ export * from "../plugins.js";
2
+ import * as commitinfo from "@push.rocks/commitinfo";
3
+ import * as smartfile from "@push.rocks/smartfile";
4
+ import * as smartinteract from "@push.rocks/smartinteract";
5
+ import * as smartshell from "@push.rocks/smartshell";
6
+ export declare const loadTsdoc: () => Promise<typeof import("@git.zone/tsdoc")>;
7
+ export { commitinfo, smartfile, smartinteract, smartshell };
@@ -1,8 +1,9 @@
1
- export * from '../plugins.js';
2
- import * as commitinfo from '@push.rocks/commitinfo';
3
- import * as smartfile from '@push.rocks/smartfile';
4
- import * as smartinteract from '@push.rocks/smartinteract';
5
- import * as smartshell from '@push.rocks/smartshell';
6
- import * as tsdoc from '@git.zone/tsdoc';
7
- export { commitinfo, smartfile, smartinteract, smartshell, tsdoc };
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfY29tbWl0L21vZC5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBRTlCLE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssYUFBYSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxLQUFLLEtBQUssTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDIn0=
1
+ export * from "../plugins.js";
2
+ import * as commitinfo from "@push.rocks/commitinfo";
3
+ import * as smartfile from "@push.rocks/smartfile";
4
+ import * as smartinteract from "@push.rocks/smartinteract";
5
+ import * as smartshell from "@push.rocks/smartshell";
6
+ // Manual commits must not load or initialize the AI dependency chain.
7
+ export const loadTsdoc = () => import("@git.zone/tsdoc");
8
+ export { commitinfo, smartfile, smartinteract, smartshell };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfY29tbWl0L21vZC5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBRTlCLE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssYUFBYSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsc0VBQXNFO0FBQ3RFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUV6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUMifQ==
@@ -1,9 +1,8 @@
1
1
  import * as plugins from "./mod.plugins.js";
2
2
  import { type IReleaseArtifact } from "./classes.releasejournal.js";
3
- declare const supportedPnpmVersions: readonly ["11.25.0", "12.1.0", "12.2.1", "12.3.0", "12.3.4"];
4
3
  export declare function assertNpmPackageName(value: unknown): asserts value is string;
5
4
  export interface IPnpmReleaseCapability {
6
- readonly version: (typeof supportedPnpmVersions)[number];
5
+ readonly version: string;
7
6
  }
8
7
  export declare const buildQualifiedPnpmArgs: (capabilityArg: IPnpmReleaseCapability | undefined, argsArg: readonly string[]) => string[];
9
8
  export type TNpmArtifactProbeStatus = "absent" | "exact" | "conflict" | "inconclusive";
@@ -35,4 +34,3 @@ export declare const publishNpmArtifact: (smartshellArg: plugins.smartshell.Smar
35
34
  export declare const assertNpmVersionAbsent: (registryArg: string, packageNameArg: string, versionArg: string, optionsArg?: INpmArtifactProbeOptions) => Promise<void>;
36
35
  export declare const probeAnonymousNpmArtifact: (registryArg: string, artifactArg: IReleaseArtifact, tagArg?: string, optionsArg?: INpmArtifactProbeOptions) => Promise<INpmArtifactProbeResult>;
37
36
  export declare const waitForAnonymousNpmArtifact: (registryArg: string, artifactArg: IReleaseArtifact, tagArg?: string, optionsArg?: INpmArtifactProbeOptions) => Promise<INpmArtifactProbeResult>;
38
- export {};