@cat-factory/kernel 0.283.0 → 0.285.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 (37) hide show
  1. package/dist/domain/design-image-delivery.d.ts +128 -0
  2. package/dist/domain/design-image-delivery.d.ts.map +1 -0
  3. package/dist/domain/design-image-delivery.js +83 -0
  4. package/dist/domain/design-image-delivery.js.map +1 -0
  5. package/dist/domain/harness-capabilities.d.ts +7 -5
  6. package/dist/domain/harness-capabilities.d.ts.map +1 -1
  7. package/dist/domain/harness-capabilities.js +28 -8
  8. package/dist/domain/harness-capabilities.js.map +1 -1
  9. package/dist/domain/models.d.ts +2 -0
  10. package/dist/domain/models.d.ts.map +1 -1
  11. package/dist/domain/models.js +68 -11
  12. package/dist/domain/models.js.map +1 -1
  13. package/dist/domain/types.d.ts +40 -0
  14. package/dist/domain/types.d.ts.map +1 -1
  15. package/dist/index.d.ts +2 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +2 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/ports/agent-executor.d.ts +39 -8
  20. package/dist/ports/agent-executor.d.ts.map +1 -1
  21. package/dist/ports/agent-executor.js.map +1 -1
  22. package/dist/ports/model-provider.d.ts +14 -0
  23. package/dist/ports/model-provider.d.ts.map +1 -1
  24. package/dist/ports/model-provider.js.map +1 -1
  25. package/dist/ports/pr-mergeability.d.ts +9 -1
  26. package/dist/ports/pr-mergeability.d.ts.map +1 -1
  27. package/dist/ports/pr-merger.d.ts +5 -2
  28. package/dist/ports/pr-merger.d.ts.map +1 -1
  29. package/dist/ports/pr-report.d.ts +10 -3
  30. package/dist/ports/pr-report.d.ts.map +1 -1
  31. package/dist/ports/runner-transport.d.ts +5 -1
  32. package/dist/ports/runner-transport.d.ts.map +1 -1
  33. package/dist/shared/redact-image-payloads.logic.d.ts +14 -0
  34. package/dist/shared/redact-image-payloads.logic.d.ts.map +1 -0
  35. package/dist/shared/redact-image-payloads.logic.js +100 -0
  36. package/dist/shared/redact-image-payloads.logic.js.map +1 -0
  37. package/package.json +2 -2
@@ -90,10 +90,14 @@ export interface RunnerJobResult {
90
90
  * phase 3): one per involved-service repo it actually changed, beside the own-service
91
91
  * `prUrl`/`branch`. The executor's `toRunResult` lifts these onto `AgentRunResult`. Absent
92
92
  * for a single-repo run.
93
+ *
94
+ * `frameIds` echoes back the involved frames the DISPATCH attributed to that checkout: the
95
+ * fan-out clones one checkout per repo, so a monorepo hosting several of the run's involved
96
+ * services yields ONE pull request carrying all of their frames.
93
97
  */
94
98
  peerPullRequests?: {
95
99
  repo: string;
96
- frameId?: string;
100
+ frameIds?: string[];
97
101
  prUrl: string;
98
102
  branch: string;
99
103
  }[];
@@ -1 +1 @@
1
- {"version":3,"file":"runner-transport.d.ts","sourceRoot":"","sources":["../../src/ports/runner-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner-transport.d.ts","sourceRoot":"","sources":["../../src/ports/runner-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Replace every binary payload in a model-message body with a description of itself.
3
+ *
4
+ * Structure-preserving and TYPE-agnostic: it walks arrays and plain objects and rewrites only the
5
+ * values that ARE payloads, so the caller keeps serialising whatever shape its own SDK produced and
6
+ * this stays correct across the two (and any third) message vocabularies. A value it does not
7
+ * recognise is returned untouched, because the alternative — guessing at a shape — would redact a
8
+ * field of ordinary prose the moment a vocabulary grew one.
9
+ *
10
+ * Never throws and never mutates its input: a recording path must not be able to fail the call it
11
+ * is recording, and the body it was handed is the one being sent.
12
+ */
13
+ export declare function redactImagePayloads<T>(value: T): T;
14
+ //# sourceMappingURL=redact-image-payloads.logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-image-payloads.logic.d.ts","sourceRoot":"","sources":["../../src/shared/redact-image-payloads.logic.ts"],"names":[],"mappings":"AAkCA;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAElD"}
@@ -0,0 +1,100 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Keep IMAGE BYTES out of a recorded prompt body.
3
+ //
4
+ // Every path that records what a model was sent serialises the message array as JSON, and that was
5
+ // safe for exactly as long as a message was text. A multimodal turn carries a whole PNG in a
6
+ // content part, in one of two shapes depending on who composed it: a `Uint8Array` on an inline
7
+ // call through the AI SDK, or a `data:` URL on an OpenAI-shape request through the LLM proxy. Both
8
+ // are catastrophic to serialise verbatim — a typed array JSON-stringifies to one object ENTRY PER
9
+ // BYTE, so a half-megabyte design frame lands as several megabytes of `{"0":137,"1":80,…}` in the
10
+ // telemetry store, on every turn of the run that carried it.
11
+ //
12
+ // So a body is walked before it is serialised and each payload is replaced by a DESCRIPTION of
13
+ // itself. Stating it rather than deleting the part is the point: a reader of the recorded prompt
14
+ // has to be able to tell a turn that carried a picture from one that did not, and a silently
15
+ // removed part reads as the second.
16
+ // ---------------------------------------------------------------------------
17
+ /** The `data:` URL prefix an OpenAI-shape `image_url` part carries a picture in. */
18
+ const DATA_URL = /^data:([\w.+-]+\/[\w.+-]+)?(;[\w-]+=[\w-]+)*(;base64)?,/i;
19
+ /**
20
+ * How long a plain string may be before it is treated as an inlined payload rather than a URL.
21
+ *
22
+ * A remote `image_url` is a link and belongs in the record verbatim: it is how a reader finds the
23
+ * picture again. Only a `data:` URL carries the bytes, and this bound is the backstop for a
24
+ * producer that inlines one some other way (a bare base64 blob), sized well above any real URL.
25
+ */
26
+ const MAX_INLINE_STRING = 2048;
27
+ /** A payload's stand-in: what it was and how big, never any of it. */
28
+ function describePayload(bytes, mediaType) {
29
+ return `<binary ${mediaType ?? 'payload'} withheld: ${bytes} bytes>`;
30
+ }
31
+ /**
32
+ * Replace every binary payload in a model-message body with a description of itself.
33
+ *
34
+ * Structure-preserving and TYPE-agnostic: it walks arrays and plain objects and rewrites only the
35
+ * values that ARE payloads, so the caller keeps serialising whatever shape its own SDK produced and
36
+ * this stays correct across the two (and any third) message vocabularies. A value it does not
37
+ * recognise is returned untouched, because the alternative — guessing at a shape — would redact a
38
+ * field of ordinary prose the moment a vocabulary grew one.
39
+ *
40
+ * Never throws and never mutates its input: a recording path must not be able to fail the call it
41
+ * is recording, and the body it was handed is the one being sent.
42
+ */
43
+ export function redactImagePayloads(value) {
44
+ return walk(value, 0);
45
+ }
46
+ /**
47
+ * Depth is bounded because this runs on the hot path of every recorded call over a body the
48
+ * platform did not author (the proxy forwards whatever the agent CLI sent). A body nested past the
49
+ * bound is returned as-is rather than descended into: the payloads it could still hide are the same
50
+ * ones every real vocabulary puts within a few levels of the root.
51
+ */
52
+ const MAX_DEPTH = 8;
53
+ function walk(value, depth) {
54
+ if (depth > MAX_DEPTH)
55
+ return value;
56
+ if (Array.isArray(value))
57
+ return value.map((entry) => walk(entry, depth + 1));
58
+ if (value instanceof Uint8Array)
59
+ return describePayload(value.byteLength);
60
+ if (value instanceof ArrayBuffer)
61
+ return describePayload(value.byteLength);
62
+ if (typeof value === 'string')
63
+ return redactDataUrl(value);
64
+ if (typeof value !== 'object' || value === null)
65
+ return value;
66
+ // Only PLAIN objects are descended into. Anything with a prototype of its own (the AI SDK also
67
+ // accepts a `URL` beside raw bytes, and a Buffer is a Uint8Array subclass caught above) is
68
+ // returned as-is: a walk would rebuild it as a bare object and change what gets serialised.
69
+ const proto = Object.getPrototypeOf(value);
70
+ if (proto !== Object.prototype && proto !== null)
71
+ return value;
72
+ const out = {};
73
+ for (const [key, entry] of Object.entries(value)) {
74
+ out[key] = walk(entry, depth + 1);
75
+ }
76
+ return out;
77
+ }
78
+ /** A `data:` URL (or an over-long inline blob) described; anything else returned unchanged. */
79
+ function redactDataUrl(value) {
80
+ const match = DATA_URL.exec(value);
81
+ if (match) {
82
+ // The byte count is of the ENCODED payload. Reporting the decoded size would mean decoding it,
83
+ // which is the work this function exists to avoid, and the number is only ever read as a scale.
84
+ return describePayload(value.length - match[0].length, match[1]);
85
+ }
86
+ return value.length > MAX_INLINE_STRING && !/^https?:\/\//i.test(value) && isBase64ish(value)
87
+ ? describePayload(value.length)
88
+ : value;
89
+ }
90
+ /**
91
+ * Whether a long string looks like raw base64 rather than prose.
92
+ *
93
+ * Deliberately narrow: a long PROMPT is the ordinary case on every one of these paths, and
94
+ * redacting one would destroy the record this whole subsystem exists to keep. Only a string that is
95
+ * entirely base64 alphabet with no whitespace qualifies, which no natural-language body is.
96
+ */
97
+ function isBase64ish(value) {
98
+ return /^[A-Za-z0-9+/=_-]+$/.test(value);
99
+ }
100
+ //# sourceMappingURL=redact-image-payloads.logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-image-payloads.logic.js","sourceRoot":"","sources":["../../src/shared/redact-image-payloads.logic.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/kernel",
3
- "version": "0.283.0",
3
+ "version": "0.285.0",
4
4
  "description": "Shared vocabulary, pure logic, and port interfaces for the Agent Architecture Board.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,7 +26,7 @@
26
26
  "dependencies": {
27
27
  "ai": "^7.0.58",
28
28
  "yaml": "^2.9.0",
29
- "@cat-factory/contracts": "0.290.0"
29
+ "@cat-factory/contracts": "0.291.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@stryker-mutator/core": "9.6.1",