@apex-inc/mcp-server 0.42.0 → 0.44.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.
- package/dist/letter-blocks.d.ts +20 -9
- package/dist/letter-blocks.d.ts.map +1 -1
- package/dist/letter-blocks.js +77 -16
- package/dist/letter-blocks.js.map +1 -1
- package/dist/setup-catchup-tools.d.ts +29 -0
- package/dist/setup-catchup-tools.d.ts.map +1 -1
- package/dist/setup-catchup-tools.js +60 -3
- package/dist/setup-catchup-tools.js.map +1 -1
- package/dist/tool-groups.d.ts.map +1 -1
- package/dist/tool-groups.js +1 -0
- package/dist/tool-groups.js.map +1 -1
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +10 -0
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/letters.d.ts +15 -5
- package/dist/tools/letters.d.ts.map +1 -1
- package/dist/tools/letters.js +3 -4
- package/dist/tools/letters.js.map +1 -1
- package/dist/tools.d.ts +35 -5
- package/dist/tools.d.ts.map +1 -1
- package/package.json +1 -1
- package/skills/apex-setup/SKILL.md +3 -0
package/dist/letter-blocks.d.ts
CHANGED
|
@@ -7,7 +7,9 @@ import { z } from "zod";
|
|
|
7
7
|
* top-level tool params.
|
|
8
8
|
*/
|
|
9
9
|
export declare const letterBlockSchema: z.ZodObject<{
|
|
10
|
-
type: z.ZodEnum<["heading", "text", "image", "button", "html", "spacer", "divider"]>;
|
|
10
|
+
type: z.ZodEnum<["heading", "text", "image", "button", "html", "spacer", "divider", "keep"]>;
|
|
11
|
+
id: z.ZodOptional<z.ZodString>;
|
|
12
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
11
13
|
text: z.ZodOptional<z.ZodString>;
|
|
12
14
|
heading_level: z.ZodOptional<z.ZodEnum<["h1", "h2", "h3"]>>;
|
|
13
15
|
align: z.ZodOptional<z.ZodEnum<["left", "center", "right"]>>;
|
|
@@ -23,8 +25,10 @@ export declare const letterBlockSchema: z.ZodObject<{
|
|
|
23
25
|
color: z.ZodOptional<z.ZodString>;
|
|
24
26
|
thickness: z.ZodOptional<z.ZodNumber>;
|
|
25
27
|
}, "strip", z.ZodTypeAny, {
|
|
26
|
-
type: "text" | "heading" | "image" | "button" | "html" | "spacer" | "divider";
|
|
28
|
+
type: "text" | "heading" | "image" | "button" | "html" | "spacer" | "divider" | "keep";
|
|
29
|
+
id?: string | undefined;
|
|
27
30
|
label?: string | undefined;
|
|
31
|
+
kind?: string | undefined;
|
|
28
32
|
text?: string | undefined;
|
|
29
33
|
url?: string | undefined;
|
|
30
34
|
html?: string | undefined;
|
|
@@ -39,8 +43,10 @@ export declare const letterBlockSchema: z.ZodObject<{
|
|
|
39
43
|
color?: string | undefined;
|
|
40
44
|
thickness?: number | undefined;
|
|
41
45
|
}, {
|
|
42
|
-
type: "text" | "heading" | "image" | "button" | "html" | "spacer" | "divider";
|
|
46
|
+
type: "text" | "heading" | "image" | "button" | "html" | "spacer" | "divider" | "keep";
|
|
47
|
+
id?: string | undefined;
|
|
43
48
|
label?: string | undefined;
|
|
49
|
+
kind?: string | undefined;
|
|
44
50
|
text?: string | undefined;
|
|
45
51
|
url?: string | undefined;
|
|
46
52
|
html?: string | undefined;
|
|
@@ -74,19 +80,24 @@ interface ComposeInput {
|
|
|
74
80
|
/**
|
|
75
81
|
* The reverse of composeLetterDocument: a stored builder document as the
|
|
76
82
|
* sections edit_communication accepts. Brand header and footer are left out
|
|
77
|
-
* (edits keep them)
|
|
83
|
+
* (edits keep them). A block the sections can't describe (a repeater, a
|
|
84
|
+
* product grid) comes back as `keep`, so passing the list back leaves it as
|
|
85
|
+
* stored.
|
|
78
86
|
*/
|
|
79
87
|
export declare function letterBlocksFromDocument(doc: {
|
|
80
88
|
blocks?: Block[];
|
|
81
89
|
} | null | undefined): {
|
|
82
90
|
blocks: LetterBlockInput[];
|
|
83
|
-
skipped: string[];
|
|
84
91
|
};
|
|
85
92
|
/**
|
|
86
|
-
* Build the builder document and slot map for a full-body edit.
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
93
|
+
* Build the builder document and slot map for a full-body edit. A section
|
|
94
|
+
* that carries a stored block's id keeps that block's other settings (theme
|
|
95
|
+
* overrides, catalog slot); `keep` puts a stored block back unchanged. Of
|
|
96
|
+
* the rest, the first heading, text and button take the ids the theme's
|
|
97
|
+
* Title / Body / Button roles point at, so the letter keeps its look. Slots
|
|
98
|
+
* mirror those three so inbox and push previews match the email.
|
|
99
|
+
*
|
|
100
|
+
* Throws when a `keep` names a block the letter doesn't have.
|
|
90
101
|
*/
|
|
91
102
|
export declare function composeLetterDocument(input: ComposeInput): {
|
|
92
103
|
builderDocument: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"letter-blocks.d.ts","sourceRoot":"","sources":["../src/letter-blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"letter-blocks.d.ts","sourceRoot":"","sources":["../src/letter-blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IACtE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4DD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAAG;IACtF,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B,CAgDA;AAUD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG;IAC1D,eAAe,EAAE;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC,CAAA;KAAE,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B,CAqEA"}
|
package/dist/letter-blocks.js
CHANGED
|
@@ -7,11 +7,19 @@ import { z } from "zod";
|
|
|
7
7
|
* top-level tool params.
|
|
8
8
|
*/
|
|
9
9
|
export const letterBlockSchema = z.object({
|
|
10
|
-
type: z.enum(["heading", "text", "image", "button", "html", "spacer", "divider"]),
|
|
10
|
+
type: z.enum(["heading", "text", "image", "button", "html", "spacer", "divider", "keep"]),
|
|
11
|
+
id: z
|
|
12
|
+
.string()
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("The section's id from get_communication. Pass it back unchanged so the section keeps its saved settings. Leave it out for a new section. Required for keep."),
|
|
15
|
+
kind: z
|
|
16
|
+
.string()
|
|
17
|
+
.optional()
|
|
18
|
+
.describe("keep only: what the kept section is (e.g. repeater). Read-only; it is ignored on edit."),
|
|
11
19
|
text: z
|
|
12
20
|
.string()
|
|
13
21
|
.optional()
|
|
14
|
-
.describe("heading: the words. text: HTML limited to p, ul, ol, li, strong, em, u, b, i
|
|
22
|
+
.describe("heading: the words. text: HTML limited to p, ul, ol, li, strong, em, u, b, i, and <a href=\"...\"> links (https, mailto, a /path in the app, or a {{token}}). No other attributes. {{first_name ?? \"friend\"}} style tokens work."),
|
|
15
23
|
heading_level: z.enum(["h1", "h2", "h3"]).optional(),
|
|
16
24
|
align: z.enum(["left", "center", "right"]).optional(),
|
|
17
25
|
url: z.string().optional().describe("image: public image URL. button: where it goes, e.g. {{app_url}}/experiments."),
|
|
@@ -73,18 +81,36 @@ function contentFor(b) {
|
|
|
73
81
|
}
|
|
74
82
|
const num = (v) => (typeof v === "number" && Number.isFinite(v) ? v : undefined);
|
|
75
83
|
const str = (v) => (typeof v === "string" ? v : undefined);
|
|
84
|
+
/** Content keys the section fields own. Anything else on a stored block is kept. */
|
|
85
|
+
const EDITABLE_KEYS = [
|
|
86
|
+
"text",
|
|
87
|
+
"headingLevel",
|
|
88
|
+
"align",
|
|
89
|
+
"url",
|
|
90
|
+
"alt",
|
|
91
|
+
"imageHeight",
|
|
92
|
+
"imageNaturalWidth",
|
|
93
|
+
"imageNaturalHeight",
|
|
94
|
+
"label",
|
|
95
|
+
"buttonWidth",
|
|
96
|
+
"html",
|
|
97
|
+
"height",
|
|
98
|
+
"color",
|
|
99
|
+
"thickness",
|
|
100
|
+
];
|
|
76
101
|
/**
|
|
77
102
|
* The reverse of composeLetterDocument: a stored builder document as the
|
|
78
103
|
* sections edit_communication accepts. Brand header and footer are left out
|
|
79
|
-
* (edits keep them)
|
|
104
|
+
* (edits keep them). A block the sections can't describe (a repeater, a
|
|
105
|
+
* product grid) comes back as `keep`, so passing the list back leaves it as
|
|
106
|
+
* stored.
|
|
80
107
|
*/
|
|
81
108
|
export function letterBlocksFromDocument(doc) {
|
|
82
109
|
const blocks = [];
|
|
83
|
-
const skipped = [];
|
|
84
110
|
for (const b of doc?.blocks ?? []) {
|
|
85
111
|
const c = b.content ?? {};
|
|
86
112
|
const align = str(c.align);
|
|
87
|
-
const base = align ? { align } : {};
|
|
113
|
+
const base = { ...(b.id ? { id: b.id } : {}), ...(align ? { align } : {}) };
|
|
88
114
|
switch (b.type) {
|
|
89
115
|
case "brand-header":
|
|
90
116
|
case "brand-footer":
|
|
@@ -109,23 +135,24 @@ export function letterBlocksFromDocument(doc) {
|
|
|
109
135
|
blocks.push({ type: "button", ...base, label: str(c.label) ?? "", url: str(c.url) ?? "", ...(str(c.buttonWidth) ? { button_width: str(c.buttonWidth) } : {}) });
|
|
110
136
|
break;
|
|
111
137
|
case "html":
|
|
112
|
-
blocks.push({ type: "html", html: str(c.html) ?? "" });
|
|
138
|
+
blocks.push({ type: "html", ...(b.id ? { id: b.id } : {}), html: str(c.html) ?? "" });
|
|
113
139
|
break;
|
|
114
140
|
case "spacer":
|
|
115
|
-
blocks.push({ type: "spacer", height: num(c.height) ?? 24 });
|
|
141
|
+
blocks.push({ type: "spacer", ...(b.id ? { id: b.id } : {}), height: num(c.height) ?? 24 });
|
|
116
142
|
break;
|
|
117
143
|
case "divider":
|
|
118
144
|
blocks.push({
|
|
119
145
|
type: "divider",
|
|
146
|
+
...(b.id ? { id: b.id } : {}),
|
|
120
147
|
...(str(c.color) ? { color: str(c.color) } : {}),
|
|
121
148
|
...(num(c.thickness) ? { thickness: num(c.thickness) } : {}),
|
|
122
149
|
});
|
|
123
150
|
break;
|
|
124
151
|
default:
|
|
125
|
-
|
|
152
|
+
blocks.push({ type: "keep", id: b.id, kind: b.type });
|
|
126
153
|
}
|
|
127
154
|
}
|
|
128
|
-
return { blocks
|
|
155
|
+
return { blocks };
|
|
129
156
|
}
|
|
130
157
|
function plain(html) {
|
|
131
158
|
return html
|
|
@@ -135,13 +162,18 @@ function plain(html) {
|
|
|
135
162
|
.trim();
|
|
136
163
|
}
|
|
137
164
|
/**
|
|
138
|
-
* Build the builder document and slot map for a full-body edit.
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
165
|
+
* Build the builder document and slot map for a full-body edit. A section
|
|
166
|
+
* that carries a stored block's id keeps that block's other settings (theme
|
|
167
|
+
* overrides, catalog slot); `keep` puts a stored block back unchanged. Of
|
|
168
|
+
* the rest, the first heading, text and button take the ids the theme's
|
|
169
|
+
* Title / Body / Button roles point at, so the letter keeps its look. Slots
|
|
170
|
+
* mirror those three so inbox and push previews match the email.
|
|
171
|
+
*
|
|
172
|
+
* Throws when a `keep` names a block the letter doesn't have.
|
|
142
173
|
*/
|
|
143
174
|
export function composeLetterDocument(input) {
|
|
144
175
|
const existing = input.current?.blocks ?? [];
|
|
176
|
+
const byId = new Map(existing.map((b) => [b.id, b]));
|
|
145
177
|
const header = existing.find((b) => b.type === "brand-header");
|
|
146
178
|
const footer = existing.find((b) => b.type === "brand-footer");
|
|
147
179
|
const roleIds = {
|
|
@@ -149,14 +181,43 @@ export function composeLetterDocument(input) {
|
|
|
149
181
|
text: input.roleMap?.body,
|
|
150
182
|
button: input.roleMap?.button,
|
|
151
183
|
};
|
|
152
|
-
const
|
|
184
|
+
const claimed = new Set();
|
|
185
|
+
const reusable = (b) => {
|
|
186
|
+
const stored = b.id ? byId.get(b.id) : undefined;
|
|
187
|
+
return stored && (b.type === "keep" || stored.type === b.type) ? stored : undefined;
|
|
188
|
+
};
|
|
189
|
+
for (const b of input.blocks) {
|
|
190
|
+
const stored = reusable(b);
|
|
191
|
+
if (stored)
|
|
192
|
+
claimed.add(stored.id);
|
|
193
|
+
}
|
|
194
|
+
const usedRoles = new Set();
|
|
195
|
+
const usedIds = new Set();
|
|
153
196
|
const seed = input.idSeed ?? Date.now().toString(36);
|
|
154
197
|
const body = input.blocks.map((b, i) => {
|
|
198
|
+
const stored = reusable(b);
|
|
199
|
+
if (b.type === "keep") {
|
|
200
|
+
if (!stored || usedIds.has(stored.id)) {
|
|
201
|
+
throw new Error(`Section ${b.id ?? "(no id)"} isn't in this letter. Read it again with get_communication and pass its keep sections back as they are.`);
|
|
202
|
+
}
|
|
203
|
+
usedIds.add(stored.id);
|
|
204
|
+
return stored;
|
|
205
|
+
}
|
|
206
|
+
if (stored && !usedIds.has(stored.id)) {
|
|
207
|
+
usedIds.add(stored.id);
|
|
208
|
+
const kept = { ...stored.content };
|
|
209
|
+
for (const key of EDITABLE_KEYS)
|
|
210
|
+
delete kept[key];
|
|
211
|
+
return {
|
|
212
|
+
...stored,
|
|
213
|
+
content: { ...kept, ...contentFor(b) },
|
|
214
|
+
};
|
|
215
|
+
}
|
|
155
216
|
let id = `blk-${seed}-${i}`;
|
|
156
217
|
const roleId = roleIds[b.type];
|
|
157
|
-
if (roleId && !
|
|
218
|
+
if (roleId && !usedRoles.has(b.type) && !claimed.has(roleId)) {
|
|
158
219
|
id = roleId;
|
|
159
|
-
|
|
220
|
+
usedRoles.add(b.type);
|
|
160
221
|
}
|
|
161
222
|
return { id, type: b.type, content: contentFor(b) };
|
|
162
223
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"letter-blocks.js","sourceRoot":"","sources":["../src/letter-blocks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"letter-blocks.js","sourceRoot":"","sources":["../src/letter-blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACzF,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,6JAA6J,CAC9J;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,wFAAwF,CAAC;IACrG,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,oOAAoO,CACrO;IACH,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+EAA+E,CAAC;IACpH,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACrE,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACrD,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IACpG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC7D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAClG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;CACnH,CAAC,CAAC;AAmBH,SAAS,UAAU,CAAC,CAAmB;IACrC,MAAM,CAAC,GAA4B,EAAE,CAAC;IACtC,IAAI,CAAC,CAAC,KAAK;QAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAC/B,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,aAAa;gBAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,aAAa,CAAC;YACtD,MAAM;QACR,KAAK,MAAM;YACT,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM;QACR,KAAK,OAAO;YACV,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,CAAC,GAAG;gBAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;YACzB,IAAI,CAAC,CAAC,YAAY;gBAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC;YACnD,IAAI,CAAC,CAAC,mBAAmB;gBAAE,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,mBAAmB,CAAC;YACvE,IAAI,CAAC,CAAC,oBAAoB;gBAAE,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,oBAAoB,CAAC;YAC1E,MAAM;QACR,KAAK,QAAQ;YACX,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACxB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,CAAC,YAAY;gBAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC;YACnD,MAAM;QACR,KAAK,MAAM;YACT,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM;QACR,KAAK,QAAQ;YACX,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;YAC1B,MAAM;QACR,KAAK,SAAS;YACZ,IAAI,CAAC,CAAC,KAAK;gBAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,CAAC,SAAS;gBAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;YAC3C,MAAM;IACV,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC1F,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAEpE,oFAAoF;AACpF,MAAM,aAAa,GAAG;IACpB,MAAM;IACN,cAAc;IACd,OAAO;IACP,KAAK;IACL,KAAK;IACL,aAAa;IACb,mBAAmB;IACnB,oBAAoB;IACpB,OAAO;IACP,aAAa;IACb,MAAM;IACN,QAAQ;IACR,OAAO;IACP,WAAW;CACZ,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAA4C;IAGnF,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAA8B,CAAC;QACxD,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5E,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,cAAc,CAAC;YACpB,KAAK,cAAc;gBACjB,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAsC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAChL,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;oBACtB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;oBACrB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtF,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1F,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAqC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpM,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtF,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5F,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,SAAS;oBACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChD,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC7D,CAAC,CAAC;gBACH,MAAM;YACR;gBACE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,KAAK,CAAC,IAAY;IACzB,OAAO,IAAI;SACR,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;SAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;SACxB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAmB;IAIvD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAuC;QAClD,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK;QAC7B,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI;QACzB,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM;KAC9B,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,CAAmB,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,OAAO,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,CAAC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAErD,MAAM,IAAI,GAAY,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CACb,WAAW,CAAC,CAAC,EAAE,IAAI,SAAS,0GAA0G,CACvI,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvB,MAAM,IAAI,GAA4B,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC5D,KAAK,MAAM,GAAG,IAAI,aAAa;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,OAAO;gBACL,GAAG,MAAM;gBACT,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE;aACvC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,GAAG,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,EAAE,GAAG,MAAM,CAAC;YACZ,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnF,MAAM,KAAK,GAA2B,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;IACjE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAChE,IAAI,YAAY,EAAE,IAAI;QAAE,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;IAC3D,IAAI,SAAS,EAAE,IAAI;QAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,WAAW,EAAE,KAAK;QAAE,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC;IAC3D,IAAI,WAAW,EAAE,GAAG;QAAE,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC;IACrD,IAAI,UAAU,EAAE,GAAG,EAAE,CAAC;QACpB,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC;QAChC,IAAI,UAAU,CAAC,GAAG;YAAE,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC;IACtD,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;AAC5D,CAAC"}
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* stamp the rail complete.
|
|
5
5
|
*/
|
|
6
6
|
import { z } from "zod";
|
|
7
|
+
/** Same list as the app's `GUARDRAIL_FILE_PATHS` (`app/src/lib/setup/guardrail-files.ts`). */
|
|
8
|
+
export declare const GUARDRAIL_FILE_PATHS: readonly [".apex/brand-truth.md", ".apex/brand-voice.md", ".apex/lexicon.md", ".apex/experiment-rules.md", ".cursor/rules/apex-experiment-guardrails.mdc"];
|
|
7
9
|
/** The areas Set up Apex lets an owner decline (app `PILLAR_DECLINE_LABEL`). */
|
|
8
10
|
export declare const DECLINABLE_AREAS: readonly ["mobile-measurement", "server-events", "communications", "attribution", "partner-network"];
|
|
9
11
|
declare const VERTICALS: readonly ["b2b-saas", "ecommerce", "marketplace", "agency", "other"];
|
|
@@ -910,6 +912,24 @@ export declare const setupCatchupTools: {
|
|
|
910
912
|
}[];
|
|
911
913
|
}>;
|
|
912
914
|
};
|
|
915
|
+
record_guardrail_files: {
|
|
916
|
+
description: string;
|
|
917
|
+
schema: z.ZodObject<{
|
|
918
|
+
repoRoot: z.ZodString;
|
|
919
|
+
}, "strip", z.ZodTypeAny, {
|
|
920
|
+
repoRoot: string;
|
|
921
|
+
}, {
|
|
922
|
+
repoRoot: string;
|
|
923
|
+
}>;
|
|
924
|
+
handler: ({ repoRoot }: {
|
|
925
|
+
repoRoot: string;
|
|
926
|
+
}) => Promise<{
|
|
927
|
+
content: {
|
|
928
|
+
type: "text";
|
|
929
|
+
text: string;
|
|
930
|
+
}[];
|
|
931
|
+
}>;
|
|
932
|
+
};
|
|
913
933
|
list_apex_links: {
|
|
914
934
|
description: string;
|
|
915
935
|
schema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
@@ -1125,6 +1145,15 @@ export declare function resolvePaidPlatform(raw: string): string | null;
|
|
|
1125
1145
|
export declare function mediumForPaidAd(platform: string): string;
|
|
1126
1146
|
export declare function resolveMeasurementNetwork(raw: string): string;
|
|
1127
1147
|
export declare function slugFromName(name: string): string;
|
|
1148
|
+
export declare function readGuardrailFiles(repoRoot: string): Promise<{
|
|
1149
|
+
files: Array<{
|
|
1150
|
+
path: string;
|
|
1151
|
+
sha256: string;
|
|
1152
|
+
bytes: number;
|
|
1153
|
+
}>;
|
|
1154
|
+
missing: string[];
|
|
1155
|
+
}>;
|
|
1156
|
+
export declare function consentPostureUrl(): string;
|
|
1128
1157
|
export declare function activateConversionsUrl(): string;
|
|
1129
1158
|
export {};
|
|
1130
1159
|
//# sourceMappingURL=setup-catchup-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-catchup-tools.d.ts","sourceRoot":"","sources":["../src/setup-catchup-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"setup-catchup-tools.d.ts","sourceRoot":"","sources":["../src/setup-catchup-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,22 @@
|
|
|
3
3
|
* Steps still finish when the real thing happens — these tools never
|
|
4
4
|
* stamp the rail complete.
|
|
5
5
|
*/
|
|
6
|
+
import { createHash } from "node:crypto";
|
|
7
|
+
import { readFile } from "node:fs/promises";
|
|
8
|
+
import { join } from "node:path";
|
|
6
9
|
import { z } from "zod";
|
|
7
10
|
import { apiGet, apiPatch, apiPost, apiPut, apiDeleteJson, resolveActiveOrg, getActiveWorkspaceLabel, getActiveWorkspace, refreshUserContext, setActiveWorkspace, } from "./api-client.js";
|
|
8
11
|
import { REPO_BINDING_PATH } from "./repo-binding.js";
|
|
9
12
|
import { apexBaseUrl } from "./base-url.js";
|
|
10
13
|
const APEX = "Apex";
|
|
14
|
+
/** Same list as the app's `GUARDRAIL_FILE_PATHS` (`app/src/lib/setup/guardrail-files.ts`). */
|
|
15
|
+
export const GUARDRAIL_FILE_PATHS = [
|
|
16
|
+
".apex/brand-truth.md",
|
|
17
|
+
".apex/brand-voice.md",
|
|
18
|
+
".apex/lexicon.md",
|
|
19
|
+
".apex/experiment-rules.md",
|
|
20
|
+
".cursor/rules/apex-experiment-guardrails.mdc",
|
|
21
|
+
];
|
|
11
22
|
/** `workspace` names where the call landed, so a wrong-workspace write shows at once. */
|
|
12
23
|
function jsonResult(data, error = null) {
|
|
13
24
|
const label = getActiveWorkspaceLabel();
|
|
@@ -316,7 +327,7 @@ export const setupCatchupTools = {
|
|
|
316
327
|
},
|
|
317
328
|
},
|
|
318
329
|
set_consent_posture: {
|
|
319
|
-
description: `${APEX} — Save the workspace's consent-form answers (do they have a box, which kind).
|
|
330
|
+
description: `${APEX} — Save the workspace's consent-form answers (do they have a box, which kind). This does not finish the step: whether Apex may send people to ad networks is the owner's own sign-off, checked in Set up Apex. The reply carries the link to give them. Admin only.`,
|
|
320
331
|
schema: z.object({
|
|
321
332
|
hasForm: z
|
|
322
333
|
.enum(["yes", "no"])
|
|
@@ -330,8 +341,12 @@ export const setupCatchupTools = {
|
|
|
330
341
|
const consentPolicy = {
|
|
331
342
|
banner: hasForm === "no" ? "none" : (banner ?? "standard"),
|
|
332
343
|
};
|
|
333
|
-
|
|
334
|
-
return jsonResult(
|
|
344
|
+
await apiPatch("/api/config", { consentPolicy });
|
|
345
|
+
return jsonResult({
|
|
346
|
+
saved: consentPolicy,
|
|
347
|
+
step_done: false,
|
|
348
|
+
next: `Answers saved. One box is left, and only the owner can check it: whether Apex may send people to ad networks. Give them this link: ${consentPostureUrl()}`,
|
|
349
|
+
});
|
|
335
350
|
},
|
|
336
351
|
},
|
|
337
352
|
list_webhook_destinations: {
|
|
@@ -868,6 +883,23 @@ export const setupCatchupTools = {
|
|
|
868
883
|
return jsonResult(data);
|
|
869
884
|
},
|
|
870
885
|
},
|
|
886
|
+
record_guardrail_files: {
|
|
887
|
+
description: `${APEX} — Check that this repo has the experiment guardrail files and tell Apex, which finishes Set up experiment guardrails. Reads ${GUARDRAIL_FILE_PATHS.join(", ")} under repo_root. Sends Apex only each file's path, size and SHA-256 fingerprint, never its contents. If any file is missing or empty, nothing is sent and the reply names what is missing. Admin only.`,
|
|
888
|
+
schema: z.object({
|
|
889
|
+
repoRoot: z
|
|
890
|
+
.string()
|
|
891
|
+
.min(1)
|
|
892
|
+
.describe("Absolute path to the repo's root folder (the one holding .apex/)."),
|
|
893
|
+
}),
|
|
894
|
+
handler: async ({ repoRoot }) => {
|
|
895
|
+
const { files, missing } = await readGuardrailFiles(repoRoot);
|
|
896
|
+
if (missing.length > 0) {
|
|
897
|
+
return jsonResult({ step_done: false, missing }, `These guardrail files are missing or empty under ${repoRoot}: ${missing.join(", ")}. Write them, then call record_guardrail_files again.`);
|
|
898
|
+
}
|
|
899
|
+
await apiPatch("/api/config", { experimentGuardrailFiles: { files } });
|
|
900
|
+
return jsonResult({ step_done: true, files });
|
|
901
|
+
},
|
|
902
|
+
},
|
|
871
903
|
list_apex_links: {
|
|
872
904
|
description: `${APEX} — List this workspace's Apex Links. After ads are connected, make a paid Apex Link before inventing UTMs.`,
|
|
873
905
|
schema: z.object({}),
|
|
@@ -1142,6 +1174,31 @@ function hostHint(url) {
|
|
|
1142
1174
|
return "ad";
|
|
1143
1175
|
}
|
|
1144
1176
|
}
|
|
1177
|
+
export async function readGuardrailFiles(repoRoot) {
|
|
1178
|
+
const files = [];
|
|
1179
|
+
const missing = [];
|
|
1180
|
+
for (const rel of GUARDRAIL_FILE_PATHS) {
|
|
1181
|
+
try {
|
|
1182
|
+
const buf = await readFile(join(repoRoot, rel));
|
|
1183
|
+
if (buf.length === 0) {
|
|
1184
|
+
missing.push(rel);
|
|
1185
|
+
continue;
|
|
1186
|
+
}
|
|
1187
|
+
files.push({
|
|
1188
|
+
path: rel,
|
|
1189
|
+
sha256: createHash("sha256").update(buf).digest("hex"),
|
|
1190
|
+
bytes: buf.length,
|
|
1191
|
+
});
|
|
1192
|
+
}
|
|
1193
|
+
catch {
|
|
1194
|
+
missing.push(rel);
|
|
1195
|
+
}
|
|
1196
|
+
}
|
|
1197
|
+
return { files, missing };
|
|
1198
|
+
}
|
|
1199
|
+
export function consentPostureUrl() {
|
|
1200
|
+
return `${apexBaseUrl()}/dashboard?setup=foundations&step=foundations%3Aconsent-posture&mode=fullscreen`;
|
|
1201
|
+
}
|
|
1145
1202
|
export function activateConversionsUrl() {
|
|
1146
1203
|
return `${apexBaseUrl()}/dashboard?setup=attribution&step=attribution:activate-conversions&mode=fullscreen`;
|
|
1147
1204
|
}
|