@pipelex/sdk 0.48.0 → 0.49.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 (63) hide show
  1. package/README.md +11 -1
  2. package/dist/artifacts.d.ts +4 -3
  3. package/dist/artifacts.js +20 -14
  4. package/dist/artifacts.js.map +1 -1
  5. package/dist/cli/script.d.ts +1 -1
  6. package/dist/client.d.ts +95 -9
  7. package/dist/client.js +143 -12
  8. package/dist/client.js.map +1 -1
  9. package/dist/codegen-check.d.ts +2 -3
  10. package/dist/codegen-check.js +2 -3
  11. package/dist/codegen-check.js.map +1 -1
  12. package/dist/errors.d.ts +91 -6
  13. package/dist/errors.js +48 -6
  14. package/dist/errors.js.map +1 -1
  15. package/dist/hooks/bundle-gather.d.ts +29 -10
  16. package/dist/hooks/bundle-gather.js +91 -14
  17. package/dist/hooks/bundle-gather.js.map +1 -1
  18. package/dist/hooks/check-core.d.ts +70 -6
  19. package/dist/hooks/check-core.js +188 -29
  20. package/dist/hooks/check-core.js.map +1 -1
  21. package/dist/hooks/claude-mthds-check.d.ts +12 -0
  22. package/dist/hooks/claude-mthds-check.js +12 -0
  23. package/dist/hooks/claude-mthds-check.js.map +1 -1
  24. package/dist/hooks/secret-guard.d.ts +38 -0
  25. package/dist/hooks/secret-guard.js +134 -0
  26. package/dist/hooks/secret-guard.js.map +1 -0
  27. package/dist/hooks/validate-stage.d.ts +5 -3
  28. package/dist/hooks/validate-stage.js +16 -7
  29. package/dist/hooks/validate-stage.js.map +1 -1
  30. package/dist/index.d.ts +4 -3
  31. package/dist/index.js +1 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/method-trees.d.ts +19 -8
  34. package/dist/method-trees.js +37 -11
  35. package/dist/method-trees.js.map +1 -1
  36. package/dist/node-host/node.d.ts +33 -0
  37. package/dist/node-host/node.js +27 -0
  38. package/dist/node-host/node.js.map +1 -0
  39. package/dist/node-host/unavailable.d.ts +8 -0
  40. package/dist/node-host/unavailable.js +8 -0
  41. package/dist/node-host/unavailable.js.map +1 -0
  42. package/dist/node-host.d.ts +53 -0
  43. package/dist/node-host.js +72 -0
  44. package/dist/node-host.js.map +1 -0
  45. package/dist/prepare-inputs.d.ts +12 -1
  46. package/dist/prepare-inputs.js +26 -3
  47. package/dist/prepare-inputs.js.map +1 -1
  48. package/dist/product-models.d.ts +219 -2
  49. package/dist/product-models.js +2 -2
  50. package/dist/upload.d.ts +43 -20
  51. package/dist/upload.js +128 -24
  52. package/dist/upload.js.map +1 -1
  53. package/dist/version.d.ts +1 -1
  54. package/dist/version.js +1 -1
  55. package/docs/architecture.md +32 -6
  56. package/docs/crate-routes.md +1 -1
  57. package/docs/errors.md +6 -1
  58. package/docs/files.md +88 -0
  59. package/docs/hook-bundle.md +27 -1
  60. package/docs/input-preparation.md +16 -6
  61. package/docs/method-trees.md +2 -2
  62. package/docs/organization-branding.md +102 -0
  63. package/package.json +7 -1
@@ -12,6 +12,10 @@
12
12
  * API a produced verdict is always a 200; server/config faults are non-2xx =
13
13
  * no verdict = unavailable)
14
14
  * - validate valid + pending `PipeSignature`s → non-blocking additionalContext
15
+ * - tree files kept home as secrets → named in a note after the verdict's
16
+ * text: non-blocking beside a valid verdict, inside an invalid one's block
17
+ * - validate refused (a bundle or the manifest looks like a secret, so
18
+ * nothing was sent) → non-blocking additionalContext naming the files
15
19
  * - any stage unavailable → fail-open (the other stages' verdicts stand)
16
20
  */
17
21
  import type { Diagnostic, ValidationErrorItem } from "../models.js";
@@ -24,27 +28,54 @@ export type LintStage = {
24
28
  } | {
25
29
  status: "unavailable";
26
30
  };
27
- /** Verdict of the networked validate stage. `unavailable` = no verdict could be produced. */
31
+ /**
32
+ * A file of the method's tree that the hook kept on this machine, since it looks like a secret
33
+ * (`secret-guard.ts`): its absolute path, and why, in words that quote nothing of the file.
34
+ */
35
+ export interface WithheldFile {
36
+ path: string;
37
+ reason: string;
38
+ }
39
+ /**
40
+ * Verdict of the networked validate stage. `unavailable` = no verdict could be produced.
41
+ * `withheld` lists the files of the tree that stayed home, empty when every file was sent: a
42
+ * verdict is about the tree without them. `refused` = nothing was sent, because a file every
43
+ * validation reads, a bundle or the manifest, looks like a secret, so no tree without it is the
44
+ * method; `root` is the tree's root and `withheld` lists every file of the tree that looks like
45
+ * one, those every validation reads first.
46
+ */
28
47
  export type ValidateStage = {
29
48
  status: "valid";
30
49
  pendingSignatures: string[];
50
+ withheld: WithheldFile[];
31
51
  } | {
32
52
  status: "invalid";
33
53
  message?: string;
34
54
  validationErrors: ValidationErrorItem[];
35
55
  renderedMarkdown?: string;
56
+ withheld: WithheldFile[];
57
+ } | {
58
+ status: "refused";
59
+ root: string;
60
+ withheld: WithheldFile[];
36
61
  } | {
37
62
  status: "unavailable";
38
63
  };
39
- /** The hook's decision, prior to JSON encoding. */
64
+ /**
65
+ * The hook's decision, prior to JSON encoding. `notes` say which files of a method's tree stayed
66
+ * home: they ride apart from the text so that merging the outcomes of several files of one tree
67
+ * names each note once, and encoding places them after the text (see {@link outcomeText}).
68
+ */
40
69
  export type HookOutcome = {
41
70
  kind: "pass";
42
71
  } | {
43
72
  kind: "block";
44
73
  reason: string;
74
+ notes?: string[];
45
75
  } | {
46
76
  kind: "context";
47
77
  context: string;
78
+ notes?: string[];
48
79
  };
49
80
  /**
50
81
  * Which harness invoked the hook. Claude and Codex share the block /
@@ -171,16 +202,41 @@ export declare function extractVibeMthdsFilePath(stdinJson: string): {
171
202
  /**
172
203
  * Merge per-file outcomes (Codex's `apply_patch` can touch several `.mthds`
173
204
  * files in one call) into the single decision the hook emits: any block wins
174
- * (reasons joined), else contexts are joined, else pass.
205
+ * (reasons joined), else contexts are joined, else pass. The notes of every
206
+ * outcome are kept, whichever kind wins, since a tree's withheld files or its
207
+ * refused validation matter whatever another file's check found, and each is
208
+ * kept once, so several files of one tree, whose notes are the same, name its
209
+ * withheld files once. A merged text carrying notes is left whole, for
210
+ * {@link outcomeText} to make the one cut it needs, with the true count.
175
211
  */
176
212
  export declare function mergeOutcomes(outcomes: HookOutcome[]): HookOutcome;
177
213
  export declare function truncate(text: string): string;
214
+ /**
215
+ * The text an outcome is encoded with: its own text, then its notes, within the output's cap.
216
+ * The text keeps its place and every character the notes leave it, so a verdict's errors are
217
+ * never cut for a note; the notes take at most {@link NOTES_SHARE}, a bound a note's capped list
218
+ * of files keeps them under but for paths of extreme length.
219
+ */
220
+ export declare function outcomeText(outcome: Exclude<HookOutcome, {
221
+ kind: "pass";
222
+ }>): string;
178
223
  /**
179
224
  * Map the lint verdict to a decision. Every engine diagnostic is an error by
180
225
  * construction (the shared Rust engine emits `severity: "error"` only), so any
181
226
  * diagnostic blocks — the same bar as `plxt lint`'s non-zero exit.
182
227
  */
183
228
  export declare function decideAfterLint(filePath: string, lint: LintStage): HookOutcome;
229
+ /**
230
+ * A path as the hook's output shows it, a Markdown code span the agent reads as one inert token,
231
+ * whatever the file's name or the tree's root holds. Each control character, a line break
232
+ * included, is written as a visible escape (`\n`, `\u001b`), so a name cannot start a line of
233
+ * its own in the output; the span is fenced by a run of backticks longer than any inside the
234
+ * path, so a backtick in it cannot close the span; and, as CommonMark's code spans read, it is
235
+ * padded with a space when the path starts or ends with a backtick, which would otherwise join
236
+ * the fence, or starts and ends with a space, which would otherwise be stripped. A backslash is
237
+ * left as it is, so a Windows path reads as itself.
238
+ */
239
+ export declare function pathSpan(path: string): string;
184
240
  /**
185
241
  * Map the validate verdict to a decision.
186
242
  *
@@ -190,11 +246,19 @@ export declare function decideAfterLint(filePath: string, lint: LintStage): Hook
190
246
  * Valid passes, with a non-blocking nudge listing still-unimplemented
191
247
  * `PipeSignature`s. Unavailable passes silently — the local lint/format
192
248
  * verdicts already applied.
249
+ *
250
+ * A verdict reached without files the hook kept home says which, and why, in
251
+ * a note placed after the verdict's text: non-blocking beside a valid verdict,
252
+ * and inside an invalid one's block, so the agent reads an error about a
253
+ * missing file as the hook's doing while the errors keep their place. A
254
+ * refused validation sent nothing, and its note never blocks, since no verdict
255
+ * was produced; the lint and format verdicts stand.
193
256
  */
194
257
  export declare function decideAfterValidate(filePath: string, validate: ValidateStage): HookOutcome;
195
258
  /**
196
- * Encode an outcome as the harness's stdout payload. `pass` is empty output;
197
- * the hook always exits 0. Claude and Codex share the block /
198
- * `hookSpecificOutput` protocol; Vibe speaks deny / `hook_specific_output`.
259
+ * Encode an outcome as the harness's stdout payload, its text and notes as
260
+ * {@link outcomeText} places them. `pass` is empty output; the hook always
261
+ * exits 0. Claude and Codex share the block / `hookSpecificOutput` protocol;
262
+ * Vibe speaks deny / `hook_specific_output`.
199
263
  */
200
264
  export declare function encodeOutcome(outcome: HookOutcome, platform?: HookPlatform): string;
@@ -12,6 +12,10 @@
12
12
  * API a produced verdict is always a 200; server/config faults are non-2xx =
13
13
  * no verdict = unavailable)
14
14
  * - validate valid + pending `PipeSignature`s → non-blocking additionalContext
15
+ * - tree files kept home as secrets → named in a note after the verdict's
16
+ * text: non-blocking beside a valid verdict, inside an invalid one's block
17
+ * - validate refused (a bundle or the manifest looks like a secret, so
18
+ * nothing was sent) → non-blocking additionalContext naming the files
15
19
  * - any stage unavailable → fail-open (the other stages' verdicts stand)
16
20
  */
17
21
  import { isAbsolute as isAbsolutePath, resolve as resolvePath } from "node:path";
@@ -197,7 +201,7 @@ function comparedLines(addedLines) {
197
201
  * as a clean check.
198
202
  */
199
203
  export function uncheckedShellPatchNote(paths) {
200
- const named = paths.map((path) => `\`${path}\``);
204
+ const named = paths.map(pathSpan);
201
205
  const list = named.length === 1 ? named[0] : `${named.slice(0, -1).join(", ")} and ${named.at(-1)}`;
202
206
  const context = named.length === 1
203
207
  ? `The .mthds hook did not check ${list}: it could not confirm which file this shell ` +
@@ -235,22 +239,41 @@ export function extractVibeMthdsFilePath(stdinJson) {
235
239
  /**
236
240
  * Merge per-file outcomes (Codex's `apply_patch` can touch several `.mthds`
237
241
  * files in one call) into the single decision the hook emits: any block wins
238
- * (reasons joined), else contexts are joined, else pass.
242
+ * (reasons joined), else contexts are joined, else pass. The notes of every
243
+ * outcome are kept, whichever kind wins, since a tree's withheld files or its
244
+ * refused validation matter whatever another file's check found, and each is
245
+ * kept once, so several files of one tree, whose notes are the same, name its
246
+ * withheld files once. A merged text carrying notes is left whole, for
247
+ * {@link outcomeText} to make the one cut it needs, with the true count.
239
248
  */
240
249
  export function mergeOutcomes(outcomes) {
250
+ const notes = notesOf(outcomes);
241
251
  const blocks = outcomes.filter((outcome) => outcome.kind === "block");
242
252
  if (blocks.length > 0) {
243
- return { kind: "block", reason: truncate(blocks.map((block) => block.reason).join("\n\n")) };
253
+ const reason = joinTexts(blocks.map((block) => block.reason));
254
+ return notes.length > 0
255
+ ? { kind: "block", reason, notes }
256
+ : { kind: "block", reason: truncate(reason) };
244
257
  }
245
258
  const contexts = outcomes.filter((outcome) => outcome.kind === "context");
246
259
  if (contexts.length > 0) {
247
- return {
248
- kind: "context",
249
- context: truncate(contexts.map((context) => context.context).join("\n\n")),
250
- };
260
+ const context = joinTexts(contexts.map((outcome) => outcome.context));
261
+ return notes.length > 0
262
+ ? { kind: "context", context, notes }
263
+ : { kind: "context", context: truncate(context) };
251
264
  }
252
265
  return { kind: "pass" };
253
266
  }
267
+ /** Texts joined as paragraphs, an empty one, that of an outcome holding only notes, left out. */
268
+ function joinTexts(texts) {
269
+ return texts.filter((text) => text !== "").join("\n\n");
270
+ }
271
+ /** Every distinct note of `outcomes`, in order. */
272
+ function notesOf(outcomes) {
273
+ return [
274
+ ...new Set(outcomes.flatMap((outcome) => (outcome.kind === "pass" ? [] : (outcome.notes ?? [])))),
275
+ ];
276
+ }
254
277
  /** Cap on emitted reason/context bodies — same guard as the plxt-era hook. */
255
278
  const MAX_OUTPUT_CHARS = 9500;
256
279
  export function truncate(text) {
@@ -260,6 +283,36 @@ export function truncate(text) {
260
283
  const omitted = text.length - MAX_OUTPUT_CHARS;
261
284
  return `${text.slice(0, MAX_OUTPUT_CHARS)}\n\n[truncated, ${omitted} chars omitted]`;
262
285
  }
286
+ /** `text` cut to `budget` characters at most, the marker of the cut included, when longer. */
287
+ function fitWithin(text, budget) {
288
+ if (text.length <= budget) {
289
+ return text;
290
+ }
291
+ const marker = (omitted) => `\n\n[truncated, ${omitted} chars omitted]`;
292
+ // The marker is no longer for a smaller count, so measuring it for the whole text bounds it.
293
+ const kept = Math.max(0, budget - marker(text.length).length);
294
+ return `${text.slice(0, kept)}${marker(text.length - kept)}`;
295
+ }
296
+ /** The most of the output's characters an outcome's notes take, so its text keeps the rest. */
297
+ const NOTES_SHARE = 3000;
298
+ /**
299
+ * The text an outcome is encoded with: its own text, then its notes, within the output's cap.
300
+ * The text keeps its place and every character the notes leave it, so a verdict's errors are
301
+ * never cut for a note; the notes take at most {@link NOTES_SHARE}, a bound a note's capped list
302
+ * of files keeps them under but for paths of extreme length.
303
+ */
304
+ export function outcomeText(outcome) {
305
+ const text = outcome.kind === "block" ? outcome.reason : outcome.context;
306
+ const notes = outcome.notes ?? [];
307
+ if (notes.length === 0) {
308
+ return text;
309
+ }
310
+ const notesText = fitWithin(notes.join("\n\n"), NOTES_SHARE);
311
+ if (text === "") {
312
+ return notesText;
313
+ }
314
+ return `${fitWithin(text, MAX_OUTPUT_CHARS - notesText.length - 2)}\n\n${notesText}`;
315
+ }
263
316
  /**
264
317
  * One diagnostic as an agent-actionable line: severity, locators, message.
265
318
  * `location` and `range` are independent — a schema/semantic diagnostic can name
@@ -301,6 +354,86 @@ function renderValidationErrorLine(item) {
301
354
  .join(", ");
302
355
  return `- [${item.category ?? "error"}] ${item.message ?? ""}${locators ? ` (${locators})` : ""}`;
303
356
  }
357
+ /** How many withheld files a note names; the rest it counts. */
358
+ const WITHHELD_LISTED = 10;
359
+ /** A control character, line breaks included, and the Unicode line and paragraph separators. */
360
+ const CONTROL_CHARACTERS = /[\p{Cc}\u2028\u2029]/gu;
361
+ /** The escapes a reader knows by sight; any other control character is written `\uXXXX`. */
362
+ const NAMED_ESCAPES = { "\n": "\\n", "\r": "\\r", "\t": "\\t" };
363
+ /**
364
+ * A path as the hook's output shows it, a Markdown code span the agent reads as one inert token,
365
+ * whatever the file's name or the tree's root holds. Each control character, a line break
366
+ * included, is written as a visible escape (`\n`, `\u001b`), so a name cannot start a line of
367
+ * its own in the output; the span is fenced by a run of backticks longer than any inside the
368
+ * path, so a backtick in it cannot close the span; and, as CommonMark's code spans read, it is
369
+ * padded with a space when the path starts or ends with a backtick, which would otherwise join
370
+ * the fence, or starts and ends with a space, which would otherwise be stripped. A backslash is
371
+ * left as it is, so a Windows path reads as itself.
372
+ */
373
+ export function pathSpan(path) {
374
+ const shown = path.replace(CONTROL_CHARACTERS, (character) => NAMED_ESCAPES[character] ?? `\\u${character.codePointAt(0).toString(16).padStart(4, "0")}`);
375
+ const longestRun = Math.max(0, ...(shown.match(/`+/g) ?? []).map((run) => run.length));
376
+ const fence = "`".repeat(longestRun + 1);
377
+ const padded = shown.startsWith("`") ||
378
+ shown.endsWith("`") ||
379
+ (shown.startsWith(" ") && shown.endsWith(" ") && /[^ ]/.test(shown));
380
+ return padded ? `${fence} ${shown} ${fence}` : `${fence}${shown}${fence}`;
381
+ }
382
+ /**
383
+ * The withheld files as Markdown list items, each path, rendered by {@link pathSpan}, and why,
384
+ * never what the file holds: the first {@link WITHHELD_LISTED}, then how many more, so a tree
385
+ * full of key files cannot crowd a verdict out of the hook's output.
386
+ */
387
+ function withheldLines(withheld) {
388
+ const lines = withheld
389
+ .slice(0, WITHHELD_LISTED)
390
+ .map((file) => `- ${pathSpan(file.path)} (${file.reason})`);
391
+ const more = withheld.length - WITHHELD_LISTED;
392
+ return more > 0 ? [...lines, `- and ${more} more ${more === 1 ? "file" : "files"}`] : lines;
393
+ }
394
+ /** Why a key must not ride a method, the workshop's own words. */
395
+ const KEY_BELONGS_IN_THE_ENVIRONMENT = "A key belongs in the environment, never in a method: a method's files leave this machine " +
396
+ "for the Pipelex API, which keeps them in the organization's storage, where every member can " +
397
+ "read them.";
398
+ /** How a file is kept out of the method's tree, which only the tree's own rule decides. */
399
+ const KEEP_IT_OUT = "keep the file out of the method's tree with a `.gitignore` line inside the tree, since one " +
400
+ "above the tree's root is not read, or with a name starting with a dot";
401
+ /**
402
+ * The note on a verdict reached without some files of the tree. A step reading one of them, such
403
+ * as a `PipeDocGen` step's template or a `PipeFunc` step's module, cannot load without it, so the
404
+ * validation reports it missing; the note says so, and the error goes once the secret is out of
405
+ * the file.
406
+ */
407
+ function withheldNote(withheld) {
408
+ return [
409
+ "The .mthds hook kept these files of the method's tree on this machine, since each looks " +
410
+ "like a secret, and validated the method without them:",
411
+ ...withheldLines(withheld),
412
+ "",
413
+ "If a step reads one of them, as its template or its Python module, the validation reports " +
414
+ "that file missing until the secret is moved out of it. " +
415
+ KEY_BELONGS_IN_THE_ENVIRONMENT +
416
+ ` Move the secret out of the file, or ${KEEP_IT_OUT}. A file kept home for its name alone ` +
417
+ "that holds no key can be renamed.",
418
+ ].join("\n");
419
+ }
420
+ /**
421
+ * The note on a validation the hook did not send, a bundle or the manifest looking like a secret.
422
+ * It names the method by its tree's root, which every file of the tree shares, so the notes of
423
+ * several of them are one.
424
+ */
425
+ function refusedNote(root, withheld) {
426
+ return [
427
+ `The .mthds hook did not validate the method at ${pathSpan(root)}: these files of its tree look ` +
428
+ "like a secret, and every validation reads the method's bundles and its manifest, so " +
429
+ "nothing was sent:",
430
+ ...withheldLines(withheld),
431
+ "",
432
+ KEY_BELONGS_IN_THE_ENVIRONMENT +
433
+ " Move the secret out of each bundle or manifest listed, and the next edit is validated; " +
434
+ `any other file listed can instead stay where it is if you ${KEEP_IT_OUT}.`,
435
+ ].join("\n");
436
+ }
304
437
  /**
305
438
  * Map the validate verdict to a decision.
306
439
  *
@@ -310,41 +443,67 @@ function renderValidationErrorLine(item) {
310
443
  * Valid passes, with a non-blocking nudge listing still-unimplemented
311
444
  * `PipeSignature`s. Unavailable passes silently — the local lint/format
312
445
  * verdicts already applied.
446
+ *
447
+ * A verdict reached without files the hook kept home says which, and why, in
448
+ * a note placed after the verdict's text: non-blocking beside a valid verdict,
449
+ * and inside an invalid one's block, so the agent reads an error about a
450
+ * missing file as the hook's doing while the errors keep their place. A
451
+ * refused validation sent nothing, and its note never blocks, since no verdict
452
+ * was produced; the lint and format verdicts stand.
313
453
  */
314
454
  export function decideAfterValidate(filePath, validate) {
315
455
  switch (validate.status) {
316
456
  case "unavailable":
317
457
  return { kind: "pass" };
458
+ case "refused":
459
+ return {
460
+ kind: "context",
461
+ context: "",
462
+ notes: [refusedNote(validate.root, validate.withheld)],
463
+ };
318
464
  case "valid": {
319
- if (validate.pendingSignatures.length === 0) {
465
+ const notes = validate.withheld.length > 0 ? [withheldNote(validate.withheld)] : [];
466
+ const nudge = validate.pendingSignatures.length > 0
467
+ ? "Bundle is valid but not yet runnable. Signatures still unimplemented (PipeSignature placeholders): " +
468
+ validate.pendingSignatures.join(", ") +
469
+ ". They mock their output on dry-run; implement them before running the method for real."
470
+ : "";
471
+ if (nudge === "" && notes.length === 0) {
320
472
  return { kind: "pass" };
321
473
  }
322
- const context = "Bundle is valid but not yet runnable. Signatures still unimplemented (PipeSignature placeholders): " +
323
- validate.pendingSignatures.join(", ") +
324
- ". They mock their output on dry-run; implement them before running the method for real.";
325
- return { kind: "context", context: truncate(context) };
474
+ // A text carrying notes is cut once, by `outcomeText`, which knows what the notes take.
475
+ return notes.length > 0
476
+ ? { kind: "context", context: nudge, notes }
477
+ : { kind: "context", context: truncate(nudge) };
326
478
  }
327
479
  case "invalid": {
480
+ let reason;
328
481
  if (validate.renderedMarkdown) {
329
- return { kind: "block", reason: truncate(validate.renderedMarkdown) };
482
+ reason = validate.renderedMarkdown;
330
483
  }
331
- const lines = [
332
- `Validation failed for ${filePath}:`,
333
- "",
334
- validate.message || "Bundle is invalid.",
335
- ];
336
- if (validate.validationErrors.length > 0) {
337
- lines.push("");
338
- lines.push(...validate.validationErrors.map(renderValidationErrorLine));
484
+ else {
485
+ const lines = [
486
+ `Validation failed for ${filePath}:`,
487
+ "",
488
+ validate.message || "Bundle is invalid.",
489
+ ];
490
+ if (validate.validationErrors.length > 0) {
491
+ lines.push("");
492
+ lines.push(...validate.validationErrors.map(renderValidationErrorLine));
493
+ }
494
+ reason = lines.join("\n");
339
495
  }
340
- return { kind: "block", reason: truncate(lines.join("\n")) };
496
+ return validate.withheld.length > 0
497
+ ? { kind: "block", reason, notes: [withheldNote(validate.withheld)] }
498
+ : { kind: "block", reason: truncate(reason) };
341
499
  }
342
500
  }
343
501
  }
344
502
  /**
345
- * Encode an outcome as the harness's stdout payload. `pass` is empty output;
346
- * the hook always exits 0. Claude and Codex share the block /
347
- * `hookSpecificOutput` protocol; Vibe speaks deny / `hook_specific_output`.
503
+ * Encode an outcome as the harness's stdout payload, its text and notes as
504
+ * {@link outcomeText} places them. `pass` is empty output; the hook always
505
+ * exits 0. Claude and Codex share the block / `hookSpecificOutput` protocol;
506
+ * Vibe speaks deny / `hook_specific_output`.
348
507
  */
349
508
  export function encodeOutcome(outcome, platform = "claude") {
350
509
  switch (outcome.kind) {
@@ -352,20 +511,20 @@ export function encodeOutcome(outcome, platform = "claude") {
352
511
  return "";
353
512
  case "block":
354
513
  if (platform === "vibe") {
355
- return JSON.stringify({ decision: "deny", reason: outcome.reason }) + "\n";
514
+ return JSON.stringify({ decision: "deny", reason: outcomeText(outcome) }) + "\n";
356
515
  }
357
- return JSON.stringify({ decision: "block", reason: outcome.reason }) + "\n";
516
+ return JSON.stringify({ decision: "block", reason: outcomeText(outcome) }) + "\n";
358
517
  case "context":
359
518
  if (platform === "vibe") {
360
519
  return (JSON.stringify({
361
520
  decision: "allow",
362
- hook_specific_output: { additional_context: outcome.context },
521
+ hook_specific_output: { additional_context: outcomeText(outcome) },
363
522
  }) + "\n");
364
523
  }
365
524
  return (JSON.stringify({
366
525
  hookSpecificOutput: {
367
526
  hookEventName: "PostToolUse",
368
- additionalContext: outcome.context,
527
+ additionalContext: outcomeText(outcome),
369
528
  },
370
529
  }) + "\n");
371
530
  }
@@ -1 +1 @@
1
- {"version":3,"file":"check-core.js","sourceRoot":"","sources":["../../src/hooks/check-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-core.js","sourceRoot":"","sources":["../../src/hooks/check-core.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,18 @@
35
35
  * upload) → the local lint/format verdicts already applied; the validate
36
36
  * stage passes silently (`validate-stage.ts`)
37
37
  *
38
+ * Secrets stay home: with a `PIPELEX_API_KEY` set, before any request, every
39
+ * file of the method's tree is read and screened by the workshop's rule, as
40
+ * `secret-guard.ts` refines it; with none, nothing of the tree is read or sent.
41
+ * A file that looks like a secret is left out, never sent and never quoted.
42
+ * When the validation then returns a verdict, a note after the verdict's text
43
+ * names each such file and why; when it returns none (a network error, a
44
+ * non-2xx, the deadline), the stage passes silently as above and no note is
45
+ * shown. One that is a bundle or the manifest, which every validation reads,
46
+ * keeps the whole tree home, and a non-blocking note names the files instead
47
+ * of a verdict (`bundle-gather.ts`). The notes of several files of one tree
48
+ * are named once, each path a Markdown code span that no name can break out of.
49
+ *
38
50
  * The hook always exits 0; a block/deny is expressed on stdout, never via the
39
51
  * exit code.
40
52
  */
@@ -35,6 +35,18 @@
35
35
  * upload) → the local lint/format verdicts already applied; the validate
36
36
  * stage passes silently (`validate-stage.ts`)
37
37
  *
38
+ * Secrets stay home: with a `PIPELEX_API_KEY` set, before any request, every
39
+ * file of the method's tree is read and screened by the workshop's rule, as
40
+ * `secret-guard.ts` refines it; with none, nothing of the tree is read or sent.
41
+ * A file that looks like a secret is left out, never sent and never quoted.
42
+ * When the validation then returns a verdict, a note after the verdict's text
43
+ * names each such file and why; when it returns none (a network error, a
44
+ * non-2xx, the deadline), the stage passes silently as above and no note is
45
+ * shown. One that is a bundle or the manifest, which every validation reads,
46
+ * keeps the whole tree home, and a non-blocking note names the files instead
47
+ * of a verdict (`bundle-gather.ts`). The notes of several files of one tree
48
+ * are named once, each path a Markdown code span that no name can break out of.
49
+ *
38
50
  * The hook always exits 0; a block/deny is expressed on stdout, never via the
39
51
  * exit code.
40
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"claude-mthds-check.js","sourceRoot":"","sources":["../../src/hooks/claude-mthds-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,uBAAuB,GAIxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,IAAc;IACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAChE,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,+DAA+D;AAC/D,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CACrB,QAAsB,EACtB,SAAiB;IAEjB,IAAI,UAAoB,CAAC;IACzB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACjD,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM;QACR,CAAC;QACD,KAAK,OAAO;YACV,OAAO,kBAAkB,CAAC,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;QAChG,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,SAAS,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;YACtD,UAAU,GAAG,SAAS;gBACpB,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACnE,CAAC,CAAC,EAAE,CAAC;YACP,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,UAAU;IACvB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACnD,+BAA+B;IAC/B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACpC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC7E,OAAO;QACT,CAAC;QACD,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;IAC9B,CAAC;IACD,8BAA8B;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6FAA6F;AAC7F,SAAS,IAAI,CAAC,OAAoB,EAAE,QAAsB;IACxD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,OAAO,EAAE,CAAC;QACZ,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,mDAAmD;AACnD,SAAS,IAAI,CAAC,OAAe;IAC3B,aAAa,CAAC,CAAC,EAAE,gBAAgB,OAAO,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,YAAY,CAAC,MAAuB,EAAE,QAAgB;IACnE,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,kEAAkE;IAC7F,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAc;QAC3B,MAAM,EAAE,aAAa;QACrB,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,WAAW;KACnD,CAAC;IACF,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzD,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,mEAAmE;IACnE,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,yBAAyB;IACzB,OAAO,mBAAmB,CAAC,QAAQ,EAAE,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,SAAS,EAAE,CAAC,CAAC;IAE3E,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,wFAAwF;QACxF,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,IAAI,EAAE;KACH,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACtB,kEAAkE;IAClE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,IAAI,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC;KACD,OAAO,CAAC,GAAG,EAAE;IACZ,0EAA0E;IAC1E,sEAAsE;IACtE,6BAA6B;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"claude-mthds-check.js","sourceRoot":"","sources":["../../src/hooks/claude-mthds-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The hook's secret guard: before the validate stage sends a method's tree, it finds each file
3
+ * whose NAME is a known secret file, or whose TEXT holds a well-known key format, in whatever
4
+ * encoding the file is written, so that file never leaves the machine.
5
+ *
6
+ * The rule is the workshop's, pipelex-mcp's `src/capabilities/secret-guard.ts`, with the
7
+ * refinements this copy is ahead on until the workshop takes them up (L-261022-b4770f): an SSH key
8
+ * is found by its default name only when the name is exactly that, and a PEM private key block
9
+ * only when a key's body follows its header. Every other rule is the workshop's, and changes with
10
+ * it. The membership rule already keeps the commonest secret files out by construction,
11
+ * since `.env`, `.ssh/`, `.aws/` and every other dotfile start with a dot. What it cannot keep
12
+ * out is a key file under an ordinary name, or a key pasted into an ordinary file, a Python
13
+ * module being the usual home of one, which is why the guard reads text and not names alone.
14
+ * It is a tripwire for the well-known shapes, never a promise that a tree holds no secret: a
15
+ * password in prose, a scanned contract or a payslip goes through it.
16
+ *
17
+ * A finding names the file and what matched, and **never the matched text**, since the hook's
18
+ * output is shown to a model and may be logged.
19
+ *
20
+ * Pure: it reads the bytes it is handed and nothing else.
21
+ */
22
+ /** One file the guard finds, and why, in words that quote nothing of the file. */
23
+ export interface SecretFinding {
24
+ /** The file's tree path. */
25
+ path: string;
26
+ /** What it is, or what it holds: "it holds a private key block (PEM)". */
27
+ reason: string;
28
+ }
29
+ /**
30
+ * The files of a tree the guard finds, in the order given. A file whose name is a secret file's
31
+ * is found on the name alone, unless its rule's `unless` says its bytes are something else; every
32
+ * other file, text in any encoding or binary, is searched for every key format in the texts
33
+ * {@link searchableTexts} reads from its bytes.
34
+ */
35
+ export declare function secretFindings(files: Iterable<{
36
+ path: string;
37
+ bytes: Uint8Array;
38
+ }>): SecretFinding[];