@caelo-cms/shared 0.10.57 → 0.10.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-tools.d.ts +30 -0
- package/dist/ai-tools.d.ts.map +1 -1
- package/dist/ai-tools.js +26 -9
- package/dist/ai-tools.js.map +1 -1
- package/dist/bug-intake.d.ts +176 -0
- package/dist/bug-intake.d.ts.map +1 -0
- package/dist/bug-intake.js +200 -0
- package/dist/bug-intake.js.map +1 -0
- package/dist/content.js +7 -7
- package/dist/edit-markers.d.ts +49 -0
- package/dist/edit-markers.d.ts.map +1 -0
- package/dist/edit-markers.js +225 -0
- package/dist/edit-markers.js.map +1 -0
- package/dist/google-oauth.d.ts +22 -0
- package/dist/google-oauth.d.ts.map +1 -0
- package/dist/google-oauth.js +25 -0
- package/dist/google-oauth.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/link-canonicalise.d.ts +109 -0
- package/dist/link-canonicalise.d.ts.map +1 -0
- package/dist/link-canonicalise.js +471 -0
- package/dist/link-canonicalise.js.map +1 -0
- package/dist/link-refs.d.ts +63 -8
- package/dist/link-refs.d.ts.map +1 -1
- package/dist/link-refs.js +80 -14
- package/dist/link-refs.js.map +1 -1
- package/dist/media.d.ts.map +1 -1
- package/dist/media.js +15 -0
- package/dist/media.js.map +1 -1
- package/dist/nested-module-render.d.ts +17 -0
- package/dist/nested-module-render.d.ts.map +1 -1
- package/dist/nested-module-render.js +45 -6
- package/dist/nested-module-render.js.map +1 -1
- package/dist/page-log.d.ts +1 -1
- package/dist/preview-compose.d.ts.map +1 -1
- package/dist/preview-compose.js +12 -2
- package/dist/preview-compose.js.map +1 -1
- package/dist/theme-normalize.d.ts.map +1 -1
- package/dist/theme-normalize.js +17 -2
- package/dist/theme-normalize.js.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/ai-tools.ts +29 -11
- package/src/bug-intake.test.ts +154 -0
- package/src/bug-intake.ts +256 -0
- package/src/content.ts +7 -7
- package/src/edit-markers.test.ts +111 -0
- package/src/edit-markers.ts +244 -0
- package/src/google-oauth.ts +27 -0
- package/src/index.ts +4 -0
- package/src/link-canonicalise.test.ts +387 -0
- package/src/link-canonicalise.ts +598 -0
- package/src/link-refs.test.ts +206 -0
- package/src/link-refs.ts +119 -21
- package/src/media.ts +16 -0
- package/src/nested-module-render.ts +59 -4
- package/src/preview-compose.ts +11 -2
- package/src/theme-normalize-typography-subfields.test.ts +54 -0
- package/src/theme-normalize.ts +19 -2
- package/src/version.ts +1 -1
package/dist/theme-normalize.js
CHANGED
|
@@ -230,8 +230,12 @@ export function normalizeTokens(input) {
|
|
|
230
230
|
// resulting document validates. applyDtcgWrites merges this into
|
|
231
231
|
// any existing typography composite at the path so partial updates
|
|
232
232
|
// don't erase sibling sub-fields.
|
|
233
|
+
// Numbers wrap too: the admin form coerces `.lineHeight` / `.fontWeight`
|
|
234
|
+
// to numbers, and an unwrapped `1.6` would replace the whole composite.
|
|
233
235
|
let storedValue = rawValue;
|
|
234
|
-
if (resolved.compositeWrap &&
|
|
236
|
+
if (resolved.compositeWrap &&
|
|
237
|
+
(typeof rawValue === "number" ||
|
|
238
|
+
(typeof rawValue === "string" && !ALIAS_REGEX.test(rawValue)))) {
|
|
235
239
|
storedValue = { [resolved.compositeWrap]: rawValue };
|
|
236
240
|
}
|
|
237
241
|
else if (resolved.inferredType === "gradient" &&
|
|
@@ -248,11 +252,19 @@ export function normalizeTokens(input) {
|
|
|
248
252
|
// rather than us silently inventing a gradient (CLAUDE.md §2).
|
|
249
253
|
storedValue = gradientObjectToCss(rawValue) ?? rawValue;
|
|
250
254
|
}
|
|
255
|
+
// Several sub-field inputs (`typography.body.fontSize` +
|
|
256
|
+
// `typography.body.lineHeight`) collapse onto the same composite
|
|
257
|
+
// path; merge them so the last one doesn't silently drop the others.
|
|
258
|
+
const prior = set[resolved.path];
|
|
259
|
+
if (resolved.compositeWrap && isPlainObject(prior) && isPlainObject(storedValue)) {
|
|
260
|
+
storedValue = { ...prior, ...storedValue };
|
|
261
|
+
}
|
|
251
262
|
set[resolved.path] = storedValue;
|
|
252
263
|
types[resolved.path] = resolved.inferredType;
|
|
253
264
|
if (envelopeDescription !== undefined)
|
|
254
265
|
descriptions[resolved.path] = envelopeDescription;
|
|
255
|
-
paths.
|
|
266
|
+
if (!paths.includes(resolved.path))
|
|
267
|
+
paths.push(resolved.path);
|
|
256
268
|
}
|
|
257
269
|
return { set, types, descriptions, canonicalPaths: paths };
|
|
258
270
|
}
|
|
@@ -643,4 +655,7 @@ function similarity(a, b) {
|
|
|
643
655
|
function tokenise(s) {
|
|
644
656
|
return s.split(/[.\-_]/).filter((p) => p.length > 0);
|
|
645
657
|
}
|
|
658
|
+
function isPlainObject(v) {
|
|
659
|
+
return v !== null && typeof v === "object" && !Array.isArray(v);
|
|
660
|
+
}
|
|
646
661
|
//# sourceMappingURL=theme-normalize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-normalize.js","sourceRoot":"","sources":["../src/theme-normalize.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme-normalize.js","sourceRoot":"","sources":["../src/theme-normalize.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* Format: SemVer 2.0.0. Pre-1.0 minor bumps are breaking; post-1.0
|
|
20
20
|
* follow standard SemVer.
|
|
21
21
|
*/
|
|
22
|
-
export declare const CAELO_VERSION = "0.10.
|
|
22
|
+
export declare const CAELO_VERSION = "0.10.59";
|
|
23
23
|
/**
|
|
24
24
|
* Deprecated alias for back-compat — early P17 work spelled this
|
|
25
25
|
* `CALEO_VERSION` (typo of "Caelo"). New code should import
|
|
@@ -31,7 +31,7 @@ export declare const CAELO_VERSION = "0.10.57";
|
|
|
31
31
|
*
|
|
32
32
|
* @deprecated use CAELO_VERSION
|
|
33
33
|
*/
|
|
34
|
-
export declare const CALEO_VERSION = "0.10.
|
|
34
|
+
export declare const CALEO_VERSION = "0.10.59";
|
|
35
35
|
/**
|
|
36
36
|
* Parsed shape — major/minor/patch + optional pre-release tag.
|
|
37
37
|
* Stable interface for callers that need to feature-gate (rare —
|
package/dist/version.js
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* Format: SemVer 2.0.0. Pre-1.0 minor bumps are breaking; post-1.0
|
|
21
21
|
* follow standard SemVer.
|
|
22
22
|
*/
|
|
23
|
-
export const CAELO_VERSION = "0.10.
|
|
23
|
+
export const CAELO_VERSION = "0.10.59";
|
|
24
24
|
/**
|
|
25
25
|
* Deprecated alias for back-compat — early P17 work spelled this
|
|
26
26
|
* `CALEO_VERSION` (typo of "Caelo"). New code should import
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@caelo-cms/shared",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.59",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"description": "Shared Zod schemas + types + the two-pass HTML composer used by every Caelo CMS workspace package. Stable enough for plugin authors and embedders to depend on directly.",
|
package/src/ai-tools.ts
CHANGED
|
@@ -425,6 +425,34 @@ export type ChatAttachment = z.infer<typeof chatAttachmentSchema>;
|
|
|
425
425
|
/** issue #190 — attachments-per-message cap; bounds provider payload size. */
|
|
426
426
|
export const CHAT_MAX_ATTACHMENTS = 4;
|
|
427
427
|
|
|
428
|
+
/**
|
|
429
|
+
* An element reference riding a chat message. `selector` is empty for a
|
|
430
|
+
* module picked from the composer's module dropdown. `selectedText` and
|
|
431
|
+
* `context` come from a right-click / text selection in the live-edit
|
|
432
|
+
* preview (#916): what the operator selected and the text of the block
|
|
433
|
+
* around it, so the AI knows exactly what was meant. `blockName` /
|
|
434
|
+
* `position` / `field` / `index` (#917) name the placement field the text
|
|
435
|
+
* comes from when the preview marked it, so the AI can address it in
|
|
436
|
+
* `set_page_module_content` without inspecting the page first.
|
|
437
|
+
*/
|
|
438
|
+
export const chatChipSchema = z
|
|
439
|
+
.object({
|
|
440
|
+
moduleId: z.string().uuid(),
|
|
441
|
+
selector: z.string().max(500),
|
|
442
|
+
label: z.string().min(1).max(200),
|
|
443
|
+
selectedText: z.string().min(1).max(2000).optional(),
|
|
444
|
+
context: z.string().min(1).max(500).optional(),
|
|
445
|
+
blockName: z.string().min(1).max(80).optional(),
|
|
446
|
+
position: z.number().int().nonnegative().optional(),
|
|
447
|
+
field: z.string().min(1).max(200).optional(),
|
|
448
|
+
index: z.number().int().nonnegative().optional(),
|
|
449
|
+
})
|
|
450
|
+
.strict();
|
|
451
|
+
export type ChatChip = z.infer<typeof chatChipSchema>;
|
|
452
|
+
|
|
453
|
+
/** Cap on chips per message; bounds the persisted user-message size. */
|
|
454
|
+
export const CHAT_MAX_CHIPS = 20;
|
|
455
|
+
|
|
428
456
|
export const chatSendMessageInput = z
|
|
429
457
|
.object({
|
|
430
458
|
chatSessionId: z.string().uuid(),
|
|
@@ -434,17 +462,7 @@ export const chatSendMessageInput = z
|
|
|
434
462
|
content: z.string().min(1).max(8000).optional(),
|
|
435
463
|
previewSelection: pluginPreviewSelectionSchema.optional(),
|
|
436
464
|
/** Element-reference chips appended to the message. */
|
|
437
|
-
chips: z
|
|
438
|
-
.array(
|
|
439
|
-
z
|
|
440
|
-
.object({
|
|
441
|
-
moduleId: z.string().uuid(),
|
|
442
|
-
selector: z.string().min(1).max(500),
|
|
443
|
-
label: z.string().min(1).max(200),
|
|
444
|
-
})
|
|
445
|
-
.strict(),
|
|
446
|
-
)
|
|
447
|
-
.default([]),
|
|
465
|
+
chips: z.array(chatChipSchema).max(CHAT_MAX_CHIPS).default([]),
|
|
448
466
|
/** issue #190 — operator-attached images (see chatAttachmentSchema). */
|
|
449
467
|
attachments: z.array(chatAttachmentSchema).max(CHAT_MAX_ATTACHMENTS).default([]),
|
|
450
468
|
/**
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Epic #901 — the install↔intake contract. The fingerprint must merge the
|
|
5
|
+
* same defect across installs and versions while keeping different defects
|
|
6
|
+
* apart; redaction must strip everything personal or secret before a report
|
|
7
|
+
* is queued, without destroying what makes it triageable.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { describe, expect, it } from "bun:test";
|
|
11
|
+
import {
|
|
12
|
+
bugIntakeReport,
|
|
13
|
+
bugIntakeSigningString,
|
|
14
|
+
computeBugFingerprint,
|
|
15
|
+
normalizeBugText,
|
|
16
|
+
redactBugReportFields,
|
|
17
|
+
redactBugText,
|
|
18
|
+
} from "./bug-intake.js";
|
|
19
|
+
|
|
20
|
+
describe("computeBugFingerprint", () => {
|
|
21
|
+
const auto = (whatHappened: string, suspectedTool = "build_page") =>
|
|
22
|
+
computeBugFingerprint({ source: "auto", suspectedTool, title: "x", whatHappened });
|
|
23
|
+
|
|
24
|
+
it("merges the same auto-captured error with different ids and values", async () => {
|
|
25
|
+
const a = await auto(
|
|
26
|
+
'Page 7f3c2b9e-1d4a-4e8b-9c0f-2a1b3c4d5e6f not found (slug "pricing", 3 modules)',
|
|
27
|
+
);
|
|
28
|
+
const b = await auto(
|
|
29
|
+
'Page 0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d not found (slug "about-us", 12 modules)',
|
|
30
|
+
);
|
|
31
|
+
expect(a).toBe(b);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it("keeps different tools and different quoted field names apart", async () => {
|
|
35
|
+
expect(await auto("boom", "build_page")).not.toBe(await auto("boom", "edit_module"));
|
|
36
|
+
expect(await auto('Invalid input at "page.slug"')).not.toBe(
|
|
37
|
+
await auto('Invalid input at "page.title"'),
|
|
38
|
+
);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("separates AI-filed from auto-captured reports and keys AI reports on the title", async () => {
|
|
42
|
+
const ai = (title: string) =>
|
|
43
|
+
computeBugFingerprint({
|
|
44
|
+
source: "ai",
|
|
45
|
+
suspectedTool: "screenshot_page",
|
|
46
|
+
title,
|
|
47
|
+
whatHappened: "prose",
|
|
48
|
+
});
|
|
49
|
+
expect(await ai("Selector crop ignored")).toBe(await ai("selector crop ignored"));
|
|
50
|
+
expect(await ai("Selector crop ignored")).not.toBe(
|
|
51
|
+
await computeBugFingerprint({
|
|
52
|
+
source: "auto",
|
|
53
|
+
suspectedTool: "screenshot_page",
|
|
54
|
+
title: "Selector crop ignored",
|
|
55
|
+
whatHappened: "Selector crop ignored",
|
|
56
|
+
}),
|
|
57
|
+
);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it("is a 64-char hex digest the report schema accepts", async () => {
|
|
61
|
+
expect(await auto("boom")).toMatch(/^[0-9a-f]{64}$/);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
describe("normalizeBugText", () => {
|
|
66
|
+
it("strips urls, emails, numbers and paths", () => {
|
|
67
|
+
expect(
|
|
68
|
+
normalizeBugText(
|
|
69
|
+
"GET https://acme.com/a?b=1 for jo@acme.com failed after 1500ms at /srv/app/x.ts",
|
|
70
|
+
),
|
|
71
|
+
).toBe("get <url> for <email> failed after <n>ms at <path>");
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
describe("redactBugText", () => {
|
|
76
|
+
it("removes contact data, credentials and links", () => {
|
|
77
|
+
const out = redactBugText(
|
|
78
|
+
[
|
|
79
|
+
"Mail max.mustermann@example.de or call +49 30 1234567 / 030 1234567.",
|
|
80
|
+
"Key sk-ant-api03-abcdefghijklmnopqrstuvwxyz and ghp_abcdefghijklmnopqrstuvwxyz0123.",
|
|
81
|
+
"Authorization: Bearer abc.def.ghi-123456",
|
|
82
|
+
'config {"password": "hunter2", "api_key": "k-123"}',
|
|
83
|
+
"Fetched https://kunde.example.de/preise?id=4 from 10.0.0.12",
|
|
84
|
+
"jwt eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIn0.c2lnbmF0dXJl",
|
|
85
|
+
].join("\n"),
|
|
86
|
+
);
|
|
87
|
+
for (const leaked of [
|
|
88
|
+
"max.mustermann",
|
|
89
|
+
"1234567",
|
|
90
|
+
"sk-ant",
|
|
91
|
+
"ghp_",
|
|
92
|
+
"abc.def.ghi",
|
|
93
|
+
"hunter2",
|
|
94
|
+
"k-123",
|
|
95
|
+
"kunde.example.de",
|
|
96
|
+
"10.0.0.12",
|
|
97
|
+
"eyJhbGci",
|
|
98
|
+
]) {
|
|
99
|
+
expect(out).not.toContain(leaked);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it("keeps what makes a report triageable", () => {
|
|
104
|
+
const text =
|
|
105
|
+
"build_page failed in packages/admin-core/src/ai/tools/build-page-handler.ts on 2026-10-20 " +
|
|
106
|
+
"with set_page_module_content_many (version 0.10.55, 42 rows)";
|
|
107
|
+
expect(redactBugText(text)).toBe(text);
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
describe("redactBugReportFields", () => {
|
|
112
|
+
it("redacts every free-text field and caps evidence", () => {
|
|
113
|
+
const out = redactBugReportFields({
|
|
114
|
+
title: "Fails for a@b.de",
|
|
115
|
+
whatHappened: "see https://x.y/z",
|
|
116
|
+
expected: "ok",
|
|
117
|
+
evidence: "y".repeat(9000),
|
|
118
|
+
});
|
|
119
|
+
expect(out.title).toBe("Fails for [email]");
|
|
120
|
+
expect(out.whatHappened).toBe("see [url]");
|
|
121
|
+
expect(out.evidence?.length).toBe(4000);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
describe("bugIntakeSigningString", () => {
|
|
126
|
+
it("binds method, path, timestamp and body", async () => {
|
|
127
|
+
const base = { method: "post", path: "/v1/reports", timestamp: "1", body: "{}" };
|
|
128
|
+
const s = await bugIntakeSigningString(base);
|
|
129
|
+
expect(s.startsWith("POST\n/v1/reports\n1\n")).toBe(true);
|
|
130
|
+
expect(await bugIntakeSigningString({ ...base, body: "{ }" })).not.toBe(s);
|
|
131
|
+
expect(await bugIntakeSigningString({ ...base, path: "/v1/installs" })).not.toBe(s);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
describe("bugIntakeReport", () => {
|
|
136
|
+
it("rejects unknown fields so nothing unreviewed rides along", () => {
|
|
137
|
+
const parsed = bugIntakeReport.safeParse({
|
|
138
|
+
protocolVersion: 1,
|
|
139
|
+
reportId: "7f3c2b9e-1d4a-4e8b-9c0f-2a1b3c4d5e6f",
|
|
140
|
+
caeloVersion: "0.10.55",
|
|
141
|
+
fingerprint: "a".repeat(64),
|
|
142
|
+
source: "ai",
|
|
143
|
+
severity: "degraded",
|
|
144
|
+
blockedTask: false,
|
|
145
|
+
suspectedTool: null,
|
|
146
|
+
title: "t",
|
|
147
|
+
whatHappened: "w",
|
|
148
|
+
expected: "e",
|
|
149
|
+
evidence: null,
|
|
150
|
+
siteUrl: "https://leak.example",
|
|
151
|
+
});
|
|
152
|
+
expect(parsed.success).toBe(false);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The wire contract between a Caelo install and the Caelo-operated bug
|
|
5
|
+
* intake (epic #901). Both sides import this module, so the request shapes,
|
|
6
|
+
* the signature, the fingerprint and the redaction can never drift apart.
|
|
7
|
+
*
|
|
8
|
+
* Flow:
|
|
9
|
+
* 1. On opt-in the install generates an Ed25519 keypair and registers the
|
|
10
|
+
* public key under its `install_id` (`POST /v1/installs`). The intake
|
|
11
|
+
* pins the first key it sees for an id (trust on first use).
|
|
12
|
+
* 2. Every later request is signed: the install signs
|
|
13
|
+
* {@link bugIntakeSigningString} and sends the three
|
|
14
|
+
* {@link BUG_INTAKE_HEADERS}. The intake verifies against the pinned key
|
|
15
|
+
* and refuses timestamps outside {@link BUG_INTAKE_MAX_CLOCK_SKEW_MS}.
|
|
16
|
+
* 3. A report (`POST /v1/reports`) is answered with the status of the
|
|
17
|
+
* cluster it joined; `POST /v1/clusters/status` refreshes those
|
|
18
|
+
* statuses later, so the install learns "fixed in vX" without polling
|
|
19
|
+
* GitHub itself.
|
|
20
|
+
*
|
|
21
|
+
* Redaction runs on the install BEFORE a report is queued (the Owner's
|
|
22
|
+
* preview shows the redacted bytes) and again on the intake before anything
|
|
23
|
+
* reaches the public issue tracker.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
import { z } from "zod";
|
|
27
|
+
|
|
28
|
+
/** Bumped on any breaking change to the request or response shapes below. */
|
|
29
|
+
export const BUG_INTAKE_PROTOCOL_VERSION = 1;
|
|
30
|
+
|
|
31
|
+
/** Header names carrying the install's identity and request signature. */
|
|
32
|
+
export const BUG_INTAKE_HEADERS = {
|
|
33
|
+
installId: "x-caelo-install-id",
|
|
34
|
+
timestamp: "x-caelo-timestamp",
|
|
35
|
+
signature: "x-caelo-signature",
|
|
36
|
+
} as const;
|
|
37
|
+
|
|
38
|
+
/** Requests signed further than this from the intake's clock are refused (replay window). */
|
|
39
|
+
export const BUG_INTAKE_MAX_CLOCK_SKEW_MS = 5 * 60 * 1000;
|
|
40
|
+
|
|
41
|
+
/** Hard caps on what a report may carry once redacted. */
|
|
42
|
+
export const BUG_INTAKE_LIMITS = {
|
|
43
|
+
title: 200,
|
|
44
|
+
whatHappened: 4000,
|
|
45
|
+
expected: 4000,
|
|
46
|
+
evidence: 4000,
|
|
47
|
+
} as const;
|
|
48
|
+
|
|
49
|
+
const fingerprintSchema = z.string().regex(/^[0-9a-f]{64}$/, "fingerprint must be 64 hex chars");
|
|
50
|
+
|
|
51
|
+
/** `POST /v1/installs` — registers the install's public key (unsigned; TOFU). */
|
|
52
|
+
export const bugIntakeRegisterRequest = z
|
|
53
|
+
.object({
|
|
54
|
+
protocolVersion: z.literal(BUG_INTAKE_PROTOCOL_VERSION),
|
|
55
|
+
installId: z.string().uuid(),
|
|
56
|
+
/** Raw 32-byte Ed25519 public key, base64. */
|
|
57
|
+
publicKey: z.string().regex(/^[A-Za-z0-9+/]{43}=$/, "publicKey must be a base64 Ed25519 key"),
|
|
58
|
+
caeloVersion: z.string().min(1).max(64),
|
|
59
|
+
})
|
|
60
|
+
.strict();
|
|
61
|
+
export type BugIntakeRegisterRequest = z.infer<typeof bugIntakeRegisterRequest>;
|
|
62
|
+
|
|
63
|
+
/** `POST /v1/reports` — one redacted bug report (signed). */
|
|
64
|
+
export const bugIntakeReport = z
|
|
65
|
+
.object({
|
|
66
|
+
protocolVersion: z.literal(BUG_INTAKE_PROTOCOL_VERSION),
|
|
67
|
+
/** The install's own `ai_bug_reports.id`; the intake dedups retries on it. */
|
|
68
|
+
reportId: z.string().uuid(),
|
|
69
|
+
caeloVersion: z.string().min(1).max(64),
|
|
70
|
+
fingerprint: fingerprintSchema,
|
|
71
|
+
source: z.enum(["ai", "auto"]),
|
|
72
|
+
severity: z.enum(["blocking", "degraded", "cosmetic"]),
|
|
73
|
+
blockedTask: z.boolean(),
|
|
74
|
+
suspectedTool: z.string().max(200).nullable(),
|
|
75
|
+
title: z.string().min(1).max(BUG_INTAKE_LIMITS.title),
|
|
76
|
+
whatHappened: z.string().min(1).max(BUG_INTAKE_LIMITS.whatHappened),
|
|
77
|
+
expected: z.string().min(1).max(BUG_INTAKE_LIMITS.expected),
|
|
78
|
+
evidence: z.string().max(BUG_INTAKE_LIMITS.evidence).nullable(),
|
|
79
|
+
})
|
|
80
|
+
.strict();
|
|
81
|
+
export type BugIntakeReport = z.infer<typeof bugIntakeReport>;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Upstream state of the defect a report belongs to.
|
|
85
|
+
* open — known, not fixed yet
|
|
86
|
+
* fixed — the issue was closed as fixed; `fixedInVersion` names the
|
|
87
|
+
* first release carrying the fix when it is known
|
|
88
|
+
* regression — fixed once, reported again from a version that has the fix
|
|
89
|
+
* wontfix — closed as not planned
|
|
90
|
+
*/
|
|
91
|
+
export const bugClusterStatus = z.enum(["open", "fixed", "regression", "wontfix"]);
|
|
92
|
+
export type BugClusterStatus = z.infer<typeof bugClusterStatus>;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* What the intake knows about one cluster (= one upstream issue). Also the
|
|
96
|
+
* `POST /v1/reports` response body: the cluster the report joined.
|
|
97
|
+
*/
|
|
98
|
+
export const bugIntakeClusterInfo = z
|
|
99
|
+
.object({
|
|
100
|
+
clusterId: z.string().min(1).max(100),
|
|
101
|
+
status: bugClusterStatus,
|
|
102
|
+
/** Public issue URL; null while the cluster is below the issue threshold. */
|
|
103
|
+
issueUrl: z.string().url().nullable(),
|
|
104
|
+
fixedInVersion: z.string().max(64).nullable(),
|
|
105
|
+
})
|
|
106
|
+
.strict();
|
|
107
|
+
export type BugIntakeClusterInfo = z.infer<typeof bugIntakeClusterInfo>;
|
|
108
|
+
|
|
109
|
+
/** `POST /v1/clusters/status` — refresh the status of clusters this install reported into (signed). */
|
|
110
|
+
export const bugIntakeStatusRequest = z
|
|
111
|
+
.object({
|
|
112
|
+
protocolVersion: z.literal(BUG_INTAKE_PROTOCOL_VERSION),
|
|
113
|
+
clusterIds: z.array(z.string().min(1).max(100)).min(1).max(100),
|
|
114
|
+
})
|
|
115
|
+
.strict();
|
|
116
|
+
export type BugIntakeStatusRequest = z.infer<typeof bugIntakeStatusRequest>;
|
|
117
|
+
|
|
118
|
+
export const bugIntakeStatusResponse = z
|
|
119
|
+
.object({ clusters: z.array(bugIntakeClusterInfo) })
|
|
120
|
+
.strict();
|
|
121
|
+
export type BugIntakeStatusResponse = z.infer<typeof bugIntakeStatusResponse>;
|
|
122
|
+
|
|
123
|
+
/** Error body every non-2xx intake response carries. */
|
|
124
|
+
export const bugIntakeErrorResponse = z
|
|
125
|
+
.object({
|
|
126
|
+
error: z.string(),
|
|
127
|
+
/** true = retrying the same request later can succeed (rate limit, outage). */
|
|
128
|
+
retryable: z.boolean(),
|
|
129
|
+
})
|
|
130
|
+
.strict();
|
|
131
|
+
export type BugIntakeErrorResponse = z.infer<typeof bugIntakeErrorResponse>;
|
|
132
|
+
|
|
133
|
+
const encoder = new TextEncoder();
|
|
134
|
+
|
|
135
|
+
function bytesToHex(bytes: Uint8Array): string {
|
|
136
|
+
return Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
async function sha256Hex(text: string): Promise<string> {
|
|
140
|
+
const digest = await crypto.subtle.digest("SHA-256", encoder.encode(text) as BufferSource);
|
|
141
|
+
return bytesToHex(new Uint8Array(digest));
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* The exact bytes an install signs for a request. Binding method, path and
|
|
146
|
+
* body hash means a captured signature cannot be replayed against another
|
|
147
|
+
* endpoint or with another body; the timestamp bounds replay in time.
|
|
148
|
+
*/
|
|
149
|
+
export async function bugIntakeSigningString(args: {
|
|
150
|
+
method: string;
|
|
151
|
+
path: string;
|
|
152
|
+
timestamp: string;
|
|
153
|
+
body: string;
|
|
154
|
+
}): Promise<string> {
|
|
155
|
+
return `${args.method.toUpperCase()}\n${args.path}\n${args.timestamp}\n${await sha256Hex(args.body)}`;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Collapse the parts of an error text that differ between occurrences of the
|
|
160
|
+
* same defect (ids, numbers, quoted values, URLs, paths) so the same bug on
|
|
161
|
+
* two installs yields the same text.
|
|
162
|
+
*/
|
|
163
|
+
export function normalizeBugText(text: string): string {
|
|
164
|
+
return (
|
|
165
|
+
text
|
|
166
|
+
.toLowerCase()
|
|
167
|
+
.replace(/https?:\/\/\S+/g, "<url>")
|
|
168
|
+
.replace(/[\w.+-]+@[\w-]+(\.[\w-]+)+/g, "<email>")
|
|
169
|
+
.replace(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/g, "<id>")
|
|
170
|
+
.replace(/\b[0-9a-f]{12,}\b/g, "<id>")
|
|
171
|
+
// Quoted values (a slug, a title) vary per occurrence; a quoted field
|
|
172
|
+
// path or tool name (`page.slug`, `build_page`) tells two defects apart,
|
|
173
|
+
// so identifiers carrying `.`, `_` or `[` stay.
|
|
174
|
+
.replace(/(["'`])((?:(?!\1).){0,200})\1/g, (m, _q: string, inner: string) =>
|
|
175
|
+
/^[A-Za-z][\w.[\]-]{0,59}$/.test(inner) && /[._[]/.test(inner) ? m : "<v>",
|
|
176
|
+
)
|
|
177
|
+
.replace(/(?:\/[\w.-]+){2,}/g, "<path>")
|
|
178
|
+
.replace(/\d+(\.\d+)?/g, "<n>")
|
|
179
|
+
.replace(/\s+/g, " ")
|
|
180
|
+
.trim()
|
|
181
|
+
.slice(0, 300)
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Deterministic identity of a defect, computed on the install. The Caelo
|
|
187
|
+
* version is deliberately NOT part of it, so one defect stays one cluster
|
|
188
|
+
* across releases (that is how a regression is recognised).
|
|
189
|
+
*
|
|
190
|
+
* Auto-captured reports carry the failing tool's error text as
|
|
191
|
+
* `whatHappened`, which is stable once normalised. AI-filed reports are free
|
|
192
|
+
* prose, so their fingerprint (tool + normalised title) only catches exact
|
|
193
|
+
* repeats; the intake clusters the rest semantically.
|
|
194
|
+
*/
|
|
195
|
+
export async function computeBugFingerprint(args: {
|
|
196
|
+
source: "ai" | "auto";
|
|
197
|
+
suspectedTool: string | null;
|
|
198
|
+
title: string;
|
|
199
|
+
whatHappened: string;
|
|
200
|
+
}): Promise<string> {
|
|
201
|
+
const tool = (args.suspectedTool ?? "").trim().toLowerCase();
|
|
202
|
+
const signal = args.source === "auto" ? args.whatHappened : args.title;
|
|
203
|
+
return sha256Hex(`${args.source}\n${tool}\n${normalizeBugText(signal)}`);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Remove what must never leave an install inside a bug report: contact
|
|
208
|
+
* data, credentials, network addresses, and links (which name the site and
|
|
209
|
+
* its pages). Conservative by design: a report that lost a URL is still
|
|
210
|
+
* triageable, a leaked key is not recoverable.
|
|
211
|
+
*/
|
|
212
|
+
export function redactBugText(text: string): string {
|
|
213
|
+
return (
|
|
214
|
+
text
|
|
215
|
+
// Credentials first, before the generic long-token rule eats their prefix.
|
|
216
|
+
.replace(/\beyJ[\w-]+\.[\w-]+\.[\w-]+/g, "[redacted-token]")
|
|
217
|
+
.replace(
|
|
218
|
+
/\b(?:sk|pk|rk)-[\w-]{16,}|\bgh[pousr]_[A-Za-z0-9]{20,}|\bAKIA[0-9A-Z]{16}\b|\bAIza[\w-]{30,}|\bxox[abpr]-[\w-]{10,}/g,
|
|
219
|
+
"[redacted-secret]",
|
|
220
|
+
)
|
|
221
|
+
.replace(/\b(Bearer|Basic)\s+[\w.~+/=-]{8,}/gi, "$1 [redacted-secret]")
|
|
222
|
+
.replace(
|
|
223
|
+
/\b(password|passwd|secret|token|api[_-]?key)(["']?\s*[:=]\s*["']?)[^\s"',}]+/gi,
|
|
224
|
+
"$1$2[redacted-secret]",
|
|
225
|
+
)
|
|
226
|
+
.replace(/https?:\/\/[^\s"'<>)]+/g, "[url]")
|
|
227
|
+
.replace(/[\w.+-]+@[\w-]+(\.[\w-]+)+/g, "[email]")
|
|
228
|
+
.replace(/\b(?:\d{1,3}\.){3}\d{1,3}\b/g, "[ip]")
|
|
229
|
+
// International (+49 …) or trunk-prefixed (030 …) numbers; plain digit
|
|
230
|
+
// runs and ISO dates are left alone.
|
|
231
|
+
.replace(/\+\d[\d\s()/-]{7,}\d|\b0\d{2,5}[\s/-]?\d{3,}[\d\s-]*\d/g, "[phone]")
|
|
232
|
+
// Long mixed-case alphanumerics are keys or encoded payloads; source
|
|
233
|
+
// paths and snake_case names (no uppercase+digit mix) survive.
|
|
234
|
+
.replace(
|
|
235
|
+
/\b(?=[A-Za-z0-9+/_-]*\d)(?=[A-Za-z0-9+/_-]*[A-Z])[A-Za-z0-9+/_-]{40,}={0,2}/g,
|
|
236
|
+
"[redacted-blob]",
|
|
237
|
+
)
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/** Redact and cap one report's free-text fields (both sides run this). */
|
|
242
|
+
export function redactBugReportFields<
|
|
243
|
+
T extends { title: string; whatHappened: string; expected: string; evidence: string | null },
|
|
244
|
+
>(report: T): T {
|
|
245
|
+
const cap = (s: string, n: number) => (s.length > n ? `${s.slice(0, n - 1)}…` : s);
|
|
246
|
+
return {
|
|
247
|
+
...report,
|
|
248
|
+
title: cap(redactBugText(report.title), BUG_INTAKE_LIMITS.title),
|
|
249
|
+
whatHappened: cap(redactBugText(report.whatHappened), BUG_INTAKE_LIMITS.whatHappened),
|
|
250
|
+
expected: cap(redactBugText(report.expected), BUG_INTAKE_LIMITS.expected),
|
|
251
|
+
evidence:
|
|
252
|
+
report.evidence === null
|
|
253
|
+
? null
|
|
254
|
+
: cap(redactBugText(report.evidence), BUG_INTAKE_LIMITS.evidence),
|
|
255
|
+
};
|
|
256
|
+
}
|
package/src/content.ts
CHANGED
|
@@ -609,14 +609,14 @@ export const pageUpdateSchema = z
|
|
|
609
609
|
templateId: z.string().uuid().optional(),
|
|
610
610
|
status: pageStatusSchema.optional(),
|
|
611
611
|
/**
|
|
612
|
-
* Only meaningful together with `slug`. A slug change
|
|
613
|
-
* public URL, so the op creates a 301 from the old path by default
|
|
614
|
-
*
|
|
615
|
-
*
|
|
612
|
+
* Only meaningful together with `slug`. A slug change moves the page's
|
|
613
|
+
* public URL, so the op creates a 301 from the old path by default,
|
|
614
|
+
* inside the same transaction as the slug write. Links on the site are
|
|
615
|
+
* page references (epic #724) and follow the page without a rewrite;
|
|
616
|
+
* the 301 is for links from outside the site.
|
|
616
617
|
*
|
|
617
|
-
* `'skip'` suppresses
|
|
618
|
-
*
|
|
619
|
-
* should 404. Defaults to `'auto'`: silently dropping the 301 would strand
|
|
618
|
+
* `'skip'` suppresses the redirect and is for the rare case where the
|
|
619
|
+
* operator explicitly says the old URL should 404. Defaults to `'auto'`: silently dropping the 301 would strand
|
|
620
620
|
* every inbound link, which is never a safe default (CLAUDE.md §2).
|
|
621
621
|
*/
|
|
622
622
|
redirectFromOld: z.enum(["auto", "skip"]).optional(),
|