@cleaver/breakcheck 0.2.5 → 0.3.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.
Files changed (48) hide show
  1. package/README.md +137 -1
  2. package/agent-guide.md +107 -0
  3. package/dist/cli/commands/baseline.d.ts +19 -0
  4. package/dist/cli/commands/baseline.js +133 -0
  5. package/dist/cli/commands/baseline.js.map +1 -0
  6. package/dist/cli/commands/check.d.ts +27 -0
  7. package/dist/cli/commands/check.js +204 -0
  8. package/dist/cli/commands/check.js.map +1 -0
  9. package/dist/cli/commands/clean.d.ts +25 -0
  10. package/dist/cli/commands/clean.js +123 -0
  11. package/dist/cli/commands/clean.js.map +1 -0
  12. package/dist/cli/commands/compare.js +28 -6
  13. package/dist/cli/commands/compare.js.map +1 -1
  14. package/dist/cli/commands/compile.d.ts +5 -0
  15. package/dist/cli/commands/compile.js +23 -0
  16. package/dist/cli/commands/compile.js.map +1 -0
  17. package/dist/cli/commands/help.js +163 -4
  18. package/dist/cli/commands/help.js.map +1 -1
  19. package/dist/cli/commands/init.d.ts +26 -0
  20. package/dist/cli/commands/init.js +224 -0
  21. package/dist/cli/commands/init.js.map +1 -0
  22. package/dist/cli/commands/list-snapshots.js +7 -3
  23. package/dist/cli/commands/list-snapshots.js.map +1 -1
  24. package/dist/cli/commands/new.d.ts +9 -0
  25. package/dist/cli/commands/new.js +27 -0
  26. package/dist/cli/commands/new.js.map +1 -0
  27. package/dist/cli/commands/snapshot.d.ts +20 -0
  28. package/dist/cli/commands/snapshot.js +116 -39
  29. package/dist/cli/commands/snapshot.js.map +1 -1
  30. package/dist/cli/commands/view.d.ts +1 -1
  31. package/dist/cli/commands/view.js +12 -6
  32. package/dist/cli/commands/view.js.map +1 -1
  33. package/dist/cli/config.d.ts +14 -0
  34. package/dist/cli/config.js +58 -0
  35. package/dist/cli/config.js.map +1 -0
  36. package/dist/cli/rules.d.ts +12 -0
  37. package/dist/cli/rules.js +110 -0
  38. package/dist/cli/rules.js.map +1 -0
  39. package/dist/cli/site-environment.d.ts +12 -0
  40. package/dist/cli/site-environment.js +231 -0
  41. package/dist/cli/site-environment.js.map +1 -0
  42. package/dist/cli/url-manifest.js.map +1 -1
  43. package/dist/cli/utils.d.ts +1 -0
  44. package/dist/cli/utils.js +4 -1
  45. package/dist/cli/utils.js.map +1 -1
  46. package/dist/index.js +14 -0
  47. package/dist/index.js.map +1 -1
  48. package/package.json +8 -7
@@ -0,0 +1,231 @@
1
+ import { spawn } from "node:child_process";
2
+ function launchCommand(command, cwd, environment) {
3
+ const [executable, ...arguments_] = command;
4
+ if (executable === undefined || executable.trim().length === 0) {
5
+ throw new Error("A configured command must include an executable.");
6
+ }
7
+ const child = spawn(executable, arguments_, {
8
+ cwd,
9
+ env: environment,
10
+ detached: process.platform !== "win32",
11
+ shell: false,
12
+ stdio: ["ignore", "pipe", "pipe"],
13
+ });
14
+ child.stdout?.on("data", (chunk) => {
15
+ process.stderr.write(chunk);
16
+ });
17
+ child.stderr?.on("data", (chunk) => {
18
+ process.stderr.write(chunk);
19
+ });
20
+ let result;
21
+ const closed = new Promise((resolve) => {
22
+ child.once("close", (code, signal) => {
23
+ result = { code, signal };
24
+ resolve(result);
25
+ });
26
+ });
27
+ const started = new Promise((resolve, reject) => {
28
+ child.once("spawn", resolve);
29
+ child.once("error", reject);
30
+ });
31
+ return started.then(() => ({
32
+ child,
33
+ closed,
34
+ getResult: () => result,
35
+ }));
36
+ }
37
+ function formatCommand(command) {
38
+ return command.map((argument) => JSON.stringify(argument)).join(" ");
39
+ }
40
+ async function runCommand(command, cwd, environment, signal) {
41
+ signal?.throwIfAborted();
42
+ const processHandle = await launchCommand(command, cwd, environment);
43
+ let result;
44
+ let onAbort;
45
+ try {
46
+ if (signal === undefined) {
47
+ result = await processHandle.closed;
48
+ }
49
+ else {
50
+ const aborted = new Promise((resolve) => {
51
+ onAbort = () => resolve(undefined);
52
+ signal.addEventListener("abort", onAbort, { once: true });
53
+ if (signal.aborted)
54
+ onAbort();
55
+ });
56
+ const completed = await Promise.race([processHandle.closed, aborted]);
57
+ if (completed === undefined) {
58
+ await stopForegroundProcess(processHandle);
59
+ signal.throwIfAborted();
60
+ throw new Error("Command was interrupted.");
61
+ }
62
+ result = completed;
63
+ }
64
+ }
65
+ finally {
66
+ if (signal !== undefined && onAbort !== undefined) {
67
+ signal.removeEventListener("abort", onAbort);
68
+ }
69
+ }
70
+ if (result.code !== 0) {
71
+ throw new Error(`Command failed (${result.code ?? result.signal}): ${formatCommand(command)}`);
72
+ }
73
+ }
74
+ function sendSignal(handle, signal) {
75
+ const processId = handle.child.pid;
76
+ if (processId === undefined || handle.getResult() !== undefined)
77
+ return;
78
+ try {
79
+ if (process.platform !== "win32") {
80
+ process.kill(-processId, signal);
81
+ }
82
+ else {
83
+ handle.child.kill(signal);
84
+ }
85
+ }
86
+ catch (error) {
87
+ if (!(error instanceof Error &&
88
+ "code" in error &&
89
+ error.code === "ESRCH")) {
90
+ throw error;
91
+ }
92
+ }
93
+ }
94
+ async function stopForegroundProcess(handle, gracePeriodMs = 5_000) {
95
+ if (handle.getResult() !== undefined)
96
+ return;
97
+ sendSignal(handle, "SIGTERM");
98
+ const graceful = await Promise.race([
99
+ handle.closed.then(() => true),
100
+ new Promise((resolve) => setTimeout(() => resolve(false), gracePeriodMs)),
101
+ ]);
102
+ if (graceful)
103
+ return;
104
+ sendSignal(handle, "SIGKILL");
105
+ await handle.closed;
106
+ }
107
+ async function waitUntilReady(server, baseUrl, processHandle, signal) {
108
+ const target = new URL(server.readyPath ?? "/", baseUrl).href;
109
+ const deadline = Date.now() + (server.timeoutMs ?? 30_000);
110
+ let lastError = "no HTTP response";
111
+ while (Date.now() < deadline) {
112
+ signal.throwIfAborted();
113
+ const result = processHandle.getResult();
114
+ if (result && result.code !== 0) {
115
+ throw new Error(`Server start command exited (${result.code ?? result.signal}) before the site became ready.`);
116
+ }
117
+ try {
118
+ const response = await fetch(target, {
119
+ signal: AbortSignal.any([signal, AbortSignal.timeout(1_000)]),
120
+ });
121
+ if (response.status < 500) {
122
+ await response.body?.cancel();
123
+ return;
124
+ }
125
+ lastError = `HTTP ${response.status}`;
126
+ await response.body?.cancel();
127
+ }
128
+ catch (error) {
129
+ signal.throwIfAborted();
130
+ lastError = error instanceof Error ? error.message : String(error);
131
+ }
132
+ await new Promise((resolve) => setTimeout(resolve, 250));
133
+ }
134
+ throw new Error(`Site did not become ready at ${target} within ${server.timeoutMs ?? 30_000}ms (${lastError}).`);
135
+ }
136
+ /** Runs configured preparation and server commands around a site operation. */
137
+ export async function withCheckEnvironment(check, baseUrl, useExistingServer, operation, options = {}) {
138
+ const server = check.server;
139
+ const cwd = server?.cwd ?? check.configDirectory;
140
+ const environment = {
141
+ ...process.env,
142
+ ...(server?.env ?? {}),
143
+ };
144
+ const controller = new AbortController();
145
+ let processHandle;
146
+ let startAttempted = false;
147
+ let interruptError;
148
+ let childSignal = "SIGTERM";
149
+ let workFinished = false;
150
+ const interrupt = (label) => {
151
+ if (interruptError !== undefined || workFinished)
152
+ return;
153
+ childSignal = label === "SIGINT" || label === "SIGTERM" ? label : "SIGTERM";
154
+ interruptError = new Error(`Site check interrupted by ${label}.`);
155
+ controller.abort(interruptError);
156
+ if (processHandle !== undefined) {
157
+ sendSignal(processHandle, childSignal);
158
+ }
159
+ };
160
+ const onInterrupt = () => interrupt("SIGINT");
161
+ const onTerminate = () => interrupt("SIGTERM");
162
+ const onExternalAbort = () => interrupt("external cancellation");
163
+ const signals = options.signals ?? process;
164
+ signals.on("SIGINT", onInterrupt);
165
+ signals.on("SIGTERM", onTerminate);
166
+ options.signal?.addEventListener("abort", onExternalAbort, { once: true });
167
+ let outcome;
168
+ try {
169
+ if (options.signal?.aborted)
170
+ interrupt("external cancellation");
171
+ if (!useExistingServer) {
172
+ for (const command of check.prepare ?? []) {
173
+ await runCommand(command, cwd, environment, controller.signal);
174
+ }
175
+ }
176
+ if (!useExistingServer && server !== undefined) {
177
+ const launched = await launchCommand(server.start, cwd, environment);
178
+ processHandle = launched;
179
+ startAttempted = true;
180
+ if (interruptError !== undefined)
181
+ sendSignal(launched, childSignal);
182
+ await waitUntilReady(server, baseUrl, launched, controller.signal);
183
+ }
184
+ controller.signal.throwIfAborted();
185
+ const value = await operation(controller.signal);
186
+ controller.signal.throwIfAborted();
187
+ outcome = { ok: true, value };
188
+ }
189
+ catch (error) {
190
+ outcome = { ok: false, error: interruptError ?? error };
191
+ }
192
+ finally {
193
+ workFinished = true;
194
+ }
195
+ let cleanupError;
196
+ if (processHandle !== undefined) {
197
+ try {
198
+ await stopForegroundProcess(processHandle, options.stopGracePeriodMs);
199
+ }
200
+ catch (error) {
201
+ cleanupError = error;
202
+ }
203
+ }
204
+ if (startAttempted && server?.stop !== undefined) {
205
+ try {
206
+ await runCommand(server.stop, cwd, environment);
207
+ }
208
+ catch (error) {
209
+ cleanupError =
210
+ cleanupError === undefined
211
+ ? error
212
+ : new AggregateError([cleanupError, error], "Server cleanup failed.");
213
+ }
214
+ }
215
+ signals.removeListener("SIGINT", onInterrupt);
216
+ signals.removeListener("SIGTERM", onTerminate);
217
+ options.signal?.removeEventListener("abort", onExternalAbort);
218
+ if (cleanupError !== undefined) {
219
+ if (!outcome.ok) {
220
+ throw new AggregateError([outcome.error, cleanupError], "Site check failed and server cleanup also failed.");
221
+ }
222
+ throw cleanupError;
223
+ }
224
+ if (!outcome.ok) {
225
+ if (interruptError !== undefined)
226
+ throw interruptError;
227
+ throw outcome.error;
228
+ }
229
+ return outcome.value;
230
+ }
231
+ //# sourceMappingURL=site-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-environment.js","sourceRoot":"","sources":["../../src/cli/site-environment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"url-manifest.js","sourceRoot":"","sources":["../../src/cli/url-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"url-manifest.js","sourceRoot":"","sources":["../../src/cli/url-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAqB,MAAM,0BAA0B,CAAC;AAqB9E,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,KAAK,GAAa,OAAO,CAAC,KAAK;IAE/B,IAAI,CAAC;QACH,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,OAAO,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,KAAK,GAA2B,KAAK,CAAC;QAE5C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;iBAAM,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,oCAAoC,WAAW,KAAK,OAAO,EAAE,EAC7D;YACE,KAAK,EAAE,KAAK;SACb,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,OAAe,EACf,MAAc;IAEd,MAAM,OAAO,GAAG,OAAO;SACpB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SAC/D,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,eAAe,CAChC,OAAO,EACP,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAClC,CAAC;IAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7C,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CACxC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,KAAmB,EACnB,OAA+C,EAC/C,MAAc;IAEd,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO;YACL,IAAI,EAAE,OAAO;YACb,MAAM;YACN,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC;YACpC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,MAAM;QACN,OAAO,EACL,KAAK,CAAC,IAAI,KAAK,MAAM;YACnB,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,EAAE;YACpC,CAAC,CAAC,KAAK,CAAC,OAAO;KACpB,CAAC;AACJ,CAAC"}
@@ -4,6 +4,7 @@
4
4
  export declare function configureLogger(options: {
5
5
  jsonLogs?: boolean;
6
6
  noJsonLogs?: boolean;
7
+ silent?: boolean;
7
8
  }): import("pino").Logger<never, boolean>;
8
9
  /**
9
10
  * Get the current CLI logger instance
package/dist/cli/utils.js CHANGED
@@ -9,7 +9,10 @@ export function configureLogger(options) {
9
9
  // --json-logs takes precedence over --no-json-logs
10
10
  const useJsonLogs = options.jsonLogs || false;
11
11
  // Create a new logger instance with the specified configuration
12
- cliLogger = configureCoreLogger({ useJsonLogs });
12
+ cliLogger = configureCoreLogger({
13
+ useJsonLogs,
14
+ ...(options.silent ? { level: "silent" } : {}),
15
+ });
13
16
  return cliLogger;
14
17
  }
15
18
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,IAAI,mBAAmB,EACtC,MAAM,GACP,MAAM,0BAA0B,CAAC;AAElC,kDAAkD;AAClD,IAAI,SAAS,GAAG,MAAM,CAAC;AAEvB;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAG/B;IACC,uCAAuC;IACvC,mDAAmD;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;IAE9C,gEAAgE;IAChE,SAAS,GAAG,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAEjD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,IAAI,mBAAmB,EACtC,MAAM,GACP,MAAM,0BAA0B,CAAC;AAElC,kDAAkD;AAClD,IAAI,SAAS,GAAG,MAAM,CAAC;AAEvB;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAI/B;IACC,uCAAuC;IACvC,mDAAmD;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;IAE9C,gEAAgE;IAChE,SAAS,GAAG,mBAAmB,CAAC;QAC9B,WAAW;QACX,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/dist/index.js CHANGED
@@ -2,8 +2,14 @@
2
2
  import { createRequire } from "node:module";
3
3
  import { InteractiveCommand } from "interactive-commander";
4
4
  import { compareCommand } from "./cli/commands/compare.js";
5
+ import { baselineCommand } from "./cli/commands/baseline.js";
6
+ import { checkCommand } from "./cli/commands/check.js";
7
+ import { cleanCommand } from "./cli/commands/clean.js";
8
+ import { compileCommand } from "./cli/commands/compile.js";
5
9
  import { helpCommand } from "./cli/commands/help.js";
10
+ import { initCommand } from "./cli/commands/init.js";
6
11
  import { listSnapshotsCommand } from "./cli/commands/list-snapshots.js";
12
+ import { newCommand } from "./cli/commands/new.js";
7
13
  import { snapshotCommand } from "./cli/commands/snapshot.js";
8
14
  import { viewCommand } from "./cli/commands/view.js";
9
15
  const require = createRequire(import.meta.url);
@@ -14,10 +20,18 @@ const program = new InteractiveCommand();
14
20
  program
15
21
  .name("breakcheck")
16
22
  .description("A tool for comparing website states before and after changes")
23
+ .option("--config <file>", "Use this configuration file instead of discovering one")
24
+ .option("--no-config", "Disable project configuration discovery")
17
25
  .version(packageJson.version);
18
26
  // Add the commands to the program
19
27
  program.addCommand(snapshotCommand);
28
+ program.addCommand(checkCommand);
29
+ program.addCommand(baselineCommand);
20
30
  program.addCommand(compareCommand);
31
+ program.addCommand(cleanCommand);
32
+ program.addCommand(compileCommand);
33
+ program.addCommand(initCommand);
34
+ program.addCommand(newCommand);
21
35
  program.addCommand(listSnapshotsCommand);
22
36
  program.addCommand(viewCommand);
23
37
  program.addCommand(helpCommand);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,0BAA0B;AAC1B,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEzC,wBAAwB;AACxB,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,kCAAkC;AAClC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAEhC,6EAA6E;AAC7E,0EAA0E;AAC1E,+DAA+D;AAC/D,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;KAAM,CAAC;IACN,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,0BAA0B;AAC1B,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEzC,wBAAwB;AACxB,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CACL,iBAAiB,EACjB,wDAAwD,CACzD;KACA,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,kCAAkC;AAClC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAEhC,6EAA6E;AAC7E,0EAA0E;AAC1E,+DAA+D;AAC/D,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;KAAM,CAAC;IACN,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleaver/breakcheck",
3
- "version": "0.2.5",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=22"
@@ -17,7 +17,8 @@
17
17
  "homepage": "https://github.com/cleaver/breakcheck",
18
18
  "bugs": "https://github.com/cleaver/breakcheck/issues",
19
19
  "files": [
20
- "dist"
20
+ "dist",
21
+ "agent-guide.md"
21
22
  ],
22
23
  "bin": {
23
24
  "breakcheck": "dist/index.js"
@@ -28,11 +29,11 @@
28
29
  "start:test-server:after": "node src/__test_server__/server-after.js"
29
30
  },
30
31
  "dependencies": {
31
- "@cleaver/breakcheck-core": "^0.2.5",
32
- "commander": "^12.1.0",
33
- "ejs": "^3.1.10",
34
- "express": "^4.22.2",
32
+ "@cleaver/breakcheck-core": "^0.3.0",
33
+ "commander": "^14.0.3",
34
+ "ejs": "^7.0.1",
35
+ "express": "^5.3.0",
35
36
  "interactive-commander": "^0.6.0",
36
- "pino-pretty": "^11.2.1"
37
+ "pino-pretty": "^13.2.0"
37
38
  }
38
39
  }