@aeptus/aexeo-emdash 0.8.19 → 0.9.1

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 (57) hide show
  1. package/CHANGELOG.md +112 -2
  2. package/INSTALL.md +286 -4
  3. package/README.md +20 -5
  4. package/dist/adapter.d.ts +62 -4
  5. package/dist/adapter.d.ts.map +1 -1
  6. package/dist/admin/Findings.d.ts.map +1 -1
  7. package/dist/admin.d.ts.map +1 -1
  8. package/dist/admin.js +73 -6
  9. package/dist/assessment-display.d.ts +10 -0
  10. package/dist/assessment-display.d.ts.map +1 -0
  11. package/dist/cms-coverage.d.ts +10 -0
  12. package/dist/cms-coverage.d.ts.map +1 -0
  13. package/dist/configured.d.ts +16 -1
  14. package/dist/configured.d.ts.map +1 -1
  15. package/dist/configured.js +1341 -172
  16. package/dist/content-evaluator.d.ts +34 -0
  17. package/dist/content-evaluator.d.ts.map +1 -0
  18. package/dist/content.d.ts +98 -0
  19. package/dist/content.d.ts.map +1 -0
  20. package/dist/content.js +445 -0
  21. package/dist/data-route.d.ts +12 -1
  22. package/dist/data-route.d.ts.map +1 -1
  23. package/dist/evaluator-sandbox.d.ts +1 -1
  24. package/dist/evaluator-sandbox.d.ts.map +1 -1
  25. package/dist/evaluator.d.ts +1 -1
  26. package/dist/evaluator.d.ts.map +1 -1
  27. package/dist/findings-view.d.ts +11 -5
  28. package/dist/findings-view.d.ts.map +1 -1
  29. package/dist/index.d.ts +17 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +163 -4
  32. package/dist/inventory.d.ts +59 -0
  33. package/dist/inventory.d.ts.map +1 -0
  34. package/dist/plugin.d.ts +59 -3
  35. package/dist/plugin.d.ts.map +1 -1
  36. package/dist/presence-check.d.ts +1 -0
  37. package/dist/presence-check.d.ts.map +1 -1
  38. package/dist/sandbox-entry.d.ts +2 -1
  39. package/dist/sandbox-entry.d.ts.map +1 -1
  40. package/dist/sandbox-entry.js +1077 -190
  41. package/dist/sandbox.d.ts +2 -2
  42. package/dist/sidecar-url.d.ts.map +1 -1
  43. package/dist/sidecar.d.ts +9 -1
  44. package/dist/sidecar.d.ts.map +1 -1
  45. package/dist/types.d.ts +26 -4
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/version.d.ts +1 -1
  48. package/dist/version.d.ts.map +1 -1
  49. package/dist/wasm-init.d.ts +8 -0
  50. package/dist/wasm-init.d.ts.map +1 -1
  51. package/package.json +28 -8
  52. package/wasm/aexeo_emdash_bridge.d.ts +22 -0
  53. package/wasm/aexeo_emdash_bridge.js +1 -1
  54. package/wasm/aexeo_emdash_bridge_bg.d.ts +15 -0
  55. package/wasm/aexeo_emdash_bridge_bg.js +130 -0
  56. package/wasm/aexeo_emdash_bridge_bg.wasm +0 -0
  57. package/wasm/aexeo_emdash_bridge_bg.wasm.d.ts +4 -0
@@ -1,3 +1,4 @@
1
+ import type { CustomBlockMappings } from "./adapter.js";
1
2
  import type { EmdashDocument, Finding, SiteIntelligenceScore } from "./types.js";
2
3
  import type { EvaluatorFn, KvNamespace, SandboxCtx } from "./plugin.js";
3
4
  import type { SuppressionFilter } from "./suppressions.js";
@@ -74,11 +75,10 @@ export interface AdminViewTuning {
74
75
  */
75
76
  refreshFailureVariant: "alert" | "error";
76
77
  /**
77
- * Backing scorer for the dashboard widget. Configured mode passes the
78
- * manifest-aware in-process scorer; sandbox mode passes the
79
- * sidecar-backed `scoreSite`.
78
+ * Retained for compatibility; CMS-only widget inputs do not establish the
79
+ * rendered-page coverage required to show a site score.
80
80
  */
81
- score: (documents: readonly EmdashDocument[], kv: KvNamespace) => Promise<SiteIntelligenceScore>;
81
+ score: (documents: readonly EmdashDocument[], kv: KvNamespace) => Promise<SiteIntelligenceScore | null>;
82
82
  /**
83
83
  * Label for the widget's truth-consistency stat. Configured mode badges
84
84
  * it with the real signal source so a schema-only 60 doesn't read the
@@ -87,6 +87,10 @@ export interface AdminViewTuning {
87
87
  truthLabel: (score: SiteIntelligenceScore) => string;
88
88
  }
89
89
  export interface RefreshOptions {
90
+ blockMappings?: CustomBlockMappings | undefined;
91
+ contentFieldsByCollection?: Record<string, readonly string[]> | undefined;
92
+ contentFieldsUnavailable?: boolean | undefined;
93
+ descriptionFieldsByCollection?: Record<string, readonly string[]> | undefined;
90
94
  /**
91
95
  * Host context. `evaluateAndPersistAll` needs kv/http/content/log, and
92
96
  * the follow-up `renderFindingsPage` needs kv.
@@ -128,7 +132,9 @@ export declare function severityFirst(a: Finding, b: Finding): number;
128
132
  export declare function uniqueRoutes(rows: FindingRow[]): string[];
129
133
  export declare function renderFindingsPage(kv: KvNamespace, tuning: AdminViewTuning): Promise<BlockResponse>;
130
134
  export declare function findingsTable(rows: FindingRow[]): unknown;
131
- export declare function renderScoreWidget(kv: KvNamespace, tuning: AdminViewTuning): Promise<BlockResponse>;
135
+ export declare function renderScoreWidget(_kv: KvNamespace, _tuning: AdminViewTuning, _log?: {
136
+ error(message: string, data?: unknown): void;
137
+ }): Promise<BlockResponse>;
132
138
  export declare function topBlockersLine(score: SiteIntelligenceScore): string;
133
139
  export declare function renderDocumentPanel(kv: KvNamespace, route?: string): Promise<BlockResponse>;
134
140
  export declare function documentFindingsTable(findings: Finding[]): unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"findings-view.d.ts","sourceRoot":"","sources":["../src/findings-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findings-view.d.ts","sourceRoot":"","sources":["../src/findings-view.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -18,7 +18,21 @@ export interface ConfiguredPluginDescriptor {
18
18
  title?: string;
19
19
  }[];
20
20
  }
21
+ import type { CustomBlockMappings } from "./adapter.js";
22
+ export type { BodyCapability, CustomBlockMapping, CustomBlockMappings, CustomBlockField, InlineComponentField } from "./adapter.js";
21
23
  export interface AexeoPluginOptions {
24
+ /** Ordered field mappings for project-specific blocks. */
25
+ blockMappings?: CustomBlockMappings;
26
+ contentFieldsByCollection?: Record<string, readonly string[]>;
27
+ descriptionFieldsByCollection?: Record<string, readonly string[]>;
28
+ /** Add a portable content preset to configured-mode evaluation. */
29
+ contentPreset?: {
30
+ name: string;
31
+ sources?: Record<string, string>;
32
+ evidenceSources?: Record<string, string>;
33
+ byCollection?: Record<string, string>;
34
+ collections?: readonly string[];
35
+ };
22
36
  /**
23
37
  * emdash collections the plugin sweeps when an admin clicks
24
38
  * Refresh on the findings page. Order doesn't matter; the sweep
@@ -96,7 +110,7 @@ export interface AexeoPluginOptions {
96
110
  *
97
111
  * Suppressions are plugin-only by design. The CLI's `check` is the
98
112
  * canonical strict audit; if you want to silence findings at the
99
- * CLI layer, use `aexeo.toml`'s `[ignore]` block instead. The two
113
+ * CLI layer, use `ignore_paths` under `[policy]` in `aexeo.toml` instead. The two
100
114
  * surfaces serve different audiences: the plugin is editorial
101
115
  * workflow, the CLI is build-gating.
102
116
  */
@@ -105,4 +119,6 @@ export interface AexeoPluginOptions {
105
119
  export type { Suppression } from "./suppressions.js";
106
120
  import type { Suppression } from "./suppressions.js";
107
121
  export declare function aexeoPlugin(options?: AexeoPluginOptions): ConfiguredPluginDescriptor;
122
+ export { exportLinkInventory } from "./inventory.js";
123
+ export type { LinkInventoryDisposition, LinkInventoryExport, LinkInventoryIdentity, LinkInventoryPage } from "./inventory.js";
108
124
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAYtB,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAOnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,UAAU,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,YAAY,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACxE;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEhC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,YAAY,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CACvC;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,wBAAgB,WAAW,CACzB,OAAO,GAAE,kBAAuB,GAC/B,0BAA0B,CAiE5B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAYtB,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAOnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,UAAU,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,YAAY,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACxE;AAED,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpI,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC9D,6BAA6B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAClE,mEAAmE;IACnE,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IACrL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEhC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,YAAY,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CACvC;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,wBAAgB,WAAW,CACzB,OAAO,GAAE,kBAAuB,GAC/B,0BAA0B,CAqF5B;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,YAAY,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,6 @@
1
+ // src/version.ts
2
+ var PACKAGE_VERSION = "0.9.1";
3
+
1
4
  // src/plugin.ts
2
5
  var baseCapabilities = ["content:read"];
3
6
  function buildCapabilities(evaluatorHost) {
@@ -16,7 +19,28 @@ function normalizeHost(evaluatorHost) {
16
19
  return host.length === 0 ? null : host;
17
20
  }
18
21
  var SETTINGS_TOKEN_KEY = "eval_token";
22
+ var SETTINGS_BLOCK_MAPPINGS_KEY = "block_mappings";
23
+ var SETTINGS_CONTENT_FIELDS_KEY = "content_fields_by_collection";
24
+ var SETTINGS_DESCRIPTION_FIELDS_KEY = "description_fields_by_collection";
19
25
  var PLUGIN_SETTINGS_SCHEMA = {
26
+ [SETTINGS_CONTENT_FIELDS_KEY]: {
27
+ type: "string",
28
+ label: "Content fields by collection (JSON)",
29
+ description: "Ordered rendered body fields per collection.",
30
+ multiline: true
31
+ },
32
+ [SETTINGS_DESCRIPTION_FIELDS_KEY]: {
33
+ type: "string",
34
+ label: "Description fields by collection (JSON)",
35
+ description: "Ordered renderer description fallback fields per collection.",
36
+ multiline: true
37
+ },
38
+ [SETTINGS_BLOCK_MAPPINGS_KEY]: {
39
+ type: "string",
40
+ label: "Custom block mappings (JSON)",
41
+ description: "Ordered mappings for the rendered fields of each custom block type.",
42
+ multiline: true
43
+ },
20
44
  [SETTINGS_TOKEN_KEY]: {
21
45
  type: "secret",
22
46
  label: "EVAL_TOKEN",
@@ -24,9 +48,6 @@ var PLUGIN_SETTINGS_SCHEMA = {
24
48
  }
25
49
  };
26
50
 
27
- // src/version.ts
28
- var PACKAGE_VERSION = "0.8.19";
29
-
30
51
  // src/sandbox.ts
31
52
  function aexeoPluginSandboxed(options = {}) {
32
53
  const evaluatorHost = options.evaluatorHost ?? process.env.AEXEO_EVALUATOR_HOST ?? null;
@@ -56,6 +77,131 @@ function aexeoPluginSandboxed(options = {}) {
56
77
  };
57
78
  }
58
79
 
80
+ // src/inventory.ts
81
+ var DISPOSITIONS = /* @__PURE__ */ new Set([
82
+ "published",
83
+ "draft",
84
+ "noindex",
85
+ "redirect",
86
+ "canonical_alias",
87
+ "locale_fallback",
88
+ "unknown"
89
+ ]);
90
+ async function exportLinkInventory(content, options) {
91
+ const started = options.onTelemetry ? Date.now() : 0;
92
+ const collections = [...new Set(options.collections)];
93
+ if (collections.length === 0 || collections.some((name) => name.trim() === "")) {
94
+ throw new Error("at least one explicit collection is required");
95
+ }
96
+ const limit = options.maxPagesPerCollection ?? 100;
97
+ if (!Number.isSafeInteger(limit) || limit < 1) {
98
+ throw new Error("maxPagesPerCollection must be a positive integer");
99
+ }
100
+ const concurrency = options.urlResolutionConcurrency ?? 8;
101
+ if (!Number.isSafeInteger(concurrency) || concurrency < 1 || concurrency > 100) {
102
+ throw new Error("urlResolutionConcurrency must be an integer between 1 and 100");
103
+ }
104
+ const pages = [];
105
+ const issues = /* @__PURE__ */ new Set(["transactional_snapshot_unavailable"]);
106
+ let scanned = 0;
107
+ let omitted = 0;
108
+ let classificationFailures = 0;
109
+ let malformedEntries = 0;
110
+ for (const collection of collections) {
111
+ let cursor;
112
+ const seen = /* @__PURE__ */ new Set();
113
+ for (let count = 0; count < limit; count += 1) {
114
+ let batch;
115
+ try {
116
+ batch = await content.list(collection, { limit: 100, ...cursor === void 0 ? {} : { cursor } });
117
+ } catch {
118
+ issues.add("collection_read_failed");
119
+ break;
120
+ }
121
+ if (!batch || !Array.isArray(batch.items) || typeof batch.hasMore !== "boolean") {
122
+ issues.add("invalid_collection_response");
123
+ break;
124
+ }
125
+ const urls = new Array(batch.items.length);
126
+ let next = 0;
127
+ await Promise.all(Array.from({ length: Math.min(concurrency, batch.items.length) }, async () => {
128
+ for (; ; ) {
129
+ const index = next++;
130
+ if (index >= batch.items.length) return;
131
+ try {
132
+ const item = batch.items[index];
133
+ if (!item || typeof item !== "object" || typeof item.id !== "string" || item.id.trim() === "" || item.locale != null && typeof item.locale !== "string") {
134
+ urls[index] = { malformed: true };
135
+ continue;
136
+ }
137
+ const url = options.resolveUrl ? await options.resolveUrl(collection, item) : await content.getPublicUrl(collection, item.id);
138
+ if (url !== null && typeof url !== "string") throw new Error("invalid public URL");
139
+ urls[index] = { url };
140
+ } catch {
141
+ urls[index] = { error: true };
142
+ }
143
+ }
144
+ }));
145
+ for (const [index, item] of batch.items.entries()) {
146
+ scanned += 1;
147
+ const resolution = urls[index];
148
+ if ("malformed" in resolution) {
149
+ issues.add("invalid_collection_item");
150
+ malformedEntries += 1;
151
+ omitted += 1;
152
+ continue;
153
+ }
154
+ if ("error" in resolution) {
155
+ issues.add("url_resolution_failed");
156
+ omitted += 1;
157
+ continue;
158
+ }
159
+ const url = resolution.url;
160
+ if (!url) {
161
+ issues.add("entry_without_public_url");
162
+ omitted += 1;
163
+ continue;
164
+ }
165
+ let disposition = "unknown";
166
+ let target = null;
167
+ let locale = item.locale ?? null;
168
+ if (options.classify) {
169
+ try {
170
+ const classification = options.classify(item, url, collection);
171
+ if (!classification || !DISPOSITIONS.has(classification.disposition) || classification.target != null && typeof classification.target !== "string" || classification.locale != null && typeof classification.locale !== "string") {
172
+ throw new Error("invalid inventory classification");
173
+ }
174
+ disposition = classification.disposition;
175
+ target = classification.target ?? null;
176
+ if (classification.locale !== void 0) locale = classification.locale;
177
+ } catch {
178
+ classificationFailures += 1;
179
+ issues.add("classification_failed");
180
+ }
181
+ }
182
+ pages.push({ url, disposition, target, locale });
183
+ }
184
+ if (!batch.hasMore) break;
185
+ if (typeof batch.cursor !== "string" || batch.cursor.trim() === "" || seen.has(batch.cursor)) {
186
+ issues.add("invalid_or_repeated_cursor");
187
+ break;
188
+ }
189
+ seen.add(batch.cursor);
190
+ cursor = batch.cursor;
191
+ if (count + 1 === limit) issues.add("collection_page_limit_reached");
192
+ }
193
+ }
194
+ pages.sort((left, right) => left.url < right.url ? -1 : left.url > right.url ? 1 : 0);
195
+ const result = { inventory: { identity: options.identity, complete: false, pages }, issues: [...issues].sort(), scanned, omitted };
196
+ if (options.onTelemetry) {
197
+ try {
198
+ options.onTelemetry({ event: "link_inventory_export", elapsed_ms: Math.max(0, Date.now() - started), scanned, omitted, page_count: pages.length, issue_count: issues.size, classification_failures: classificationFailures, malformed_entries: malformedEntries });
199
+ } catch {
200
+ }
201
+ }
202
+ return result;
203
+ }
204
+
59
205
  // src/index.ts
60
206
  function aexeoPlugin(options = {}) {
61
207
  return {
@@ -80,6 +226,18 @@ function aexeoPlugin(options = {}) {
80
226
  // receives. Spread to a plain object so readonly arrays survive
81
227
  // the structured-clone semantics of that codegen.
82
228
  options: {
229
+ ...options.blockMappings === void 0 ? {} : { blockMappings: options.blockMappings },
230
+ ...options.contentFieldsByCollection === void 0 ? {} : { contentFieldsByCollection: options.contentFieldsByCollection },
231
+ ...options.descriptionFieldsByCollection === void 0 ? {} : { descriptionFieldsByCollection: options.descriptionFieldsByCollection },
232
+ ...options.contentPreset === void 0 ? {} : {
233
+ contentPreset: {
234
+ ...options.contentPreset,
235
+ ...options.contentPreset.collections === void 0 ? {} : { collections: [...options.contentPreset.collections] },
236
+ ...options.contentPreset.sources === void 0 ? {} : { sources: { ...options.contentPreset.sources } },
237
+ ...options.contentPreset.evidenceSources === void 0 ? {} : { evidenceSources: { ...options.contentPreset.evidenceSources } },
238
+ ...options.contentPreset.byCollection === void 0 ? {} : { byCollection: { ...options.contentPreset.byCollection } }
239
+ }
240
+ },
83
241
  ...options.collections === void 0 ? {} : { collections: [...options.collections] },
84
242
  ...options.includeCollections === void 0 ? {} : { includeCollections: [...options.includeCollections] },
85
243
  ...options.excludeCollections === void 0 ? {} : { excludeCollections: [...options.excludeCollections] },
@@ -111,5 +269,6 @@ function aexeoPlugin(options = {}) {
111
269
  }
112
270
  export {
113
271
  aexeoPlugin,
114
- aexeoPluginSandboxed
272
+ aexeoPluginSandboxed,
273
+ exportLinkInventory
115
274
  };
@@ -0,0 +1,59 @@
1
+ import type { EmdashContentItem } from "./adapter.js";
2
+ import type { SandboxContentApi } from "./plugin.js";
3
+ /** Explicit surface identity supplied by the inventory producer. */
4
+ export interface LinkInventoryIdentity {
5
+ origin: string;
6
+ release: string;
7
+ surface: string;
8
+ snapshot: string;
9
+ }
10
+ export type LinkInventoryDisposition = "published" | "draft" | "noindex" | "redirect" | "canonical_alias" | "locale_fallback" | "unknown";
11
+ export interface LinkInventoryPage {
12
+ url: string;
13
+ disposition: LinkInventoryDisposition;
14
+ target: string | null;
15
+ locale: string | null;
16
+ }
17
+ export interface LinkInventoryExport {
18
+ inventory: {
19
+ identity: LinkInventoryIdentity | null;
20
+ /** EmDash pagination does not establish a transactional site snapshot. */
21
+ complete: false;
22
+ pages: LinkInventoryPage[];
23
+ };
24
+ issues: string[];
25
+ scanned: number;
26
+ omitted: number;
27
+ }
28
+ /**
29
+ * Enumerate explicitly selected collections using EmDash's actual URL resolver.
30
+ * An application may supply its own indexability and alias classification.
31
+ * Missing metadata is unknown; no route or snapshot guarantees are inferred.
32
+ */
33
+ export declare function exportLinkInventory(content: Pick<SandboxContentApi, "list" | "getPublicUrl">, options: {
34
+ collections: readonly string[];
35
+ identity: LinkInventoryIdentity | null;
36
+ maxPagesPerCollection?: number;
37
+ /** Maximum simultaneous public URL resolutions, from 1 to 100 (default 8). */
38
+ urlResolutionConcurrency?: number;
39
+ /** Optional aggregate-only local telemetry; no URLs or content are included. */
40
+ onTelemetry?: (event: {
41
+ event: "link_inventory_export";
42
+ elapsed_ms: number;
43
+ scanned: number;
44
+ omitted: number;
45
+ page_count: number;
46
+ issue_count: number;
47
+ classification_failures: number;
48
+ malformed_entries: number;
49
+ }) => void;
50
+ /** Override URL resolution when the host renderer uses a different route mapping. */
51
+ resolveUrl?: (collection: string, item: EmdashContentItem) => Promise<string | null>;
52
+ /** Classify using host-owned publication rules; locale defaults to the CMS value. */
53
+ classify?: (item: EmdashContentItem, url: string, collection: string) => {
54
+ disposition: LinkInventoryDisposition;
55
+ target?: string | null;
56
+ locale?: string | null;
57
+ };
58
+ }): Promise<LinkInventoryExport>;
59
+ //# sourceMappingURL=inventory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../src/inventory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,wBAAwB,GAChC,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAClE,iBAAiB,GAAG,SAAS,CAAC;AAMlC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,wBAAwB,CAAC;IACtC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE;QACT,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;QACvC,0EAA0E;QAC1E,QAAQ,EAAE,KAAK,CAAC;QAChB,KAAK,EAAE,iBAAiB,EAAE,CAAC;KAC5B,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,cAAc,CAAC,EACzD,OAAO,EAAE;IACP,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACvC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,8EAA8E;IAC9E,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gFAAgF;IAChF,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,uBAAuB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,uBAAuB,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7N,qFAAqF;IACrF,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrF,qFAAqF;IACrF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK;QACvE,WAAW,EAAE,wBAAwB,CAAC;QACtC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;CACH,GACA,OAAO,CAAC,mBAAmB,CAAC,CA6H9B"}
package/dist/plugin.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { CustomBlockMappings } from "./adapter.js";
1
2
  import type { SuppressionFilter } from "./suppressions.js";
2
3
  import type { EmdashDocument, Finding } from "./types.js";
3
4
  import { type EmdashContentItem, type EmdashContentMeta } from "./adapter.js";
@@ -22,12 +23,21 @@ export interface KvNamespace {
22
23
  export declare const CONFIG_URL_KEY = "config:evaluator_url";
23
24
  export declare const CONFIG_TOKEN_KEY = "config:eval_token";
24
25
  export declare const SETTINGS_TOKEN_KEY = "eval_token";
26
+ export declare const SETTINGS_BLOCK_MAPPINGS_KEY = "block_mappings";
27
+ export declare const SETTINGS_CONTENT_FIELDS_KEY = "content_fields_by_collection";
28
+ export declare const SETTINGS_DESCRIPTION_FIELDS_KEY = "description_fields_by_collection";
25
29
  export interface SecretSettingField {
26
30
  type: "secret";
27
31
  label: string;
28
32
  description?: string;
29
33
  }
30
- export declare const PLUGIN_SETTINGS_SCHEMA: Record<string, SecretSettingField>;
34
+ export type PluginSettingField = SecretSettingField | {
35
+ type: "string";
36
+ label: string;
37
+ description?: string;
38
+ multiline?: boolean;
39
+ };
40
+ export declare const PLUGIN_SETTINGS_SCHEMA: Record<string, PluginSettingField>;
31
41
  export interface PluginSettingsAccess {
32
42
  get<T = unknown>(key: string): Promise<T | null>;
33
43
  set(key: string, value: unknown): Promise<void>;
@@ -46,6 +56,9 @@ export interface SidecarRuntimeConfig {
46
56
  }
47
57
  export declare function readSidecarConfig(store: SidecarConfigStore): Promise<SidecarRuntimeConfig | null>;
48
58
  export declare function writeSidecarConfig(store: SidecarConfigStore, config: SidecarRuntimeConfig): Promise<void>;
59
+ export declare function isTokenStoredInPlaintext(store: SidecarConfigStore): Promise<boolean>;
60
+ export declare class TokenStorageError extends Error {
61
+ }
49
62
  export interface ContentList {
50
63
  items: EmdashContentItem[];
51
64
  cursor?: string;
@@ -80,8 +93,27 @@ export interface ContentAfterSaveEvent {
80
93
  collection: string;
81
94
  isNew: boolean;
82
95
  }
96
+ export interface ContentAfterDeleteEvent {
97
+ id: string;
98
+ collection: string;
99
+ permanent: boolean;
100
+ }
101
+ export declare function handleAfterDelete(event: ContentAfterDeleteEvent, ctx: SandboxCtx): Promise<void>;
102
+ /** Read optional sandbox mappings without logging their potentially sensitive contents. */
103
+ export declare function readSandboxBlockMappings(ctx: SandboxCtx): Promise<CustomBlockMappings | undefined>;
104
+ /** Read an optional JSON mapping from collection names to ordered field names. */
105
+ type SandboxFieldsState = {
106
+ fields: Record<string, readonly string[]> | undefined;
107
+ unavailable: boolean;
108
+ };
109
+ export declare function readSandboxContentFieldState(ctx: SandboxCtx): Promise<SandboxFieldsState>;
110
+ export declare function readSandboxContentFields(ctx: SandboxCtx): Promise<Record<string, readonly string[]> | undefined>;
111
+ export declare function readSandboxDescriptionFields(ctx: SandboxCtx): Promise<Record<string, readonly string[]> | undefined>;
83
112
  export declare function handleAfterSave(event: ContentAfterSaveEvent, ctx: SandboxCtx): Promise<void>;
84
- export declare function handleAfterSaveConfigured(event: ContentAfterSaveEvent, ctx: SandboxCtx, evaluator: EvaluatorFn, suppressionFilter?: SuppressionFilter): Promise<void>;
113
+ export declare const SITE_GRAPH_RULE_IDS: ReadonlySet<string>;
114
+ /** A content preset may deliberately reuse a legacy site rule identifier. */
115
+ export declare function isSiteGraphFinding(finding: Finding): boolean;
116
+ export declare function handleAfterSaveConfigured(event: ContentAfterSaveEvent, ctx: SandboxCtx, evaluator: EvaluatorFn, suppressionFilter?: SuppressionFilter, blockMappings?: CustomBlockMappings, contentFields?: readonly string[], descriptionFields?: readonly string[], contentFieldsUnavailable?: boolean): Promise<void>;
85
117
  export declare const DEFAULT_COLLECTIONS: readonly ["posts", "pages"];
86
118
  export interface RefreshSummary {
87
119
  documentsScanned: number;
@@ -89,19 +121,40 @@ export interface RefreshSummary {
89
121
  totalFindings: number;
90
122
  errors: string[];
91
123
  }
124
+ export type DocumentAssessment = {
125
+ status: "evaluated";
126
+ preset: string;
127
+ gates: Pick<import("./content.js").ContentGateResult, "gate_id" | "status" | "blocking" | "scope" | "required_capability" | "reason" | "measurements">[];
128
+ source_mapping?: {
129
+ eligible: number;
130
+ mapped: number;
131
+ unmapped: number;
132
+ };
133
+ } | {
134
+ status: "error";
135
+ reason: string;
136
+ detail: string;
137
+ };
92
138
  export type EvaluationOutcome = {
93
139
  ok: true;
94
140
  findings: Finding[];
141
+ assessments?: Record<string, DocumentAssessment>;
95
142
  } | {
96
143
  ok: false;
97
144
  reason: string;
98
145
  detail: string;
99
146
  };
100
- export type EvaluatorFn = (documents: readonly EmdashDocument[]) => Promise<EvaluationOutcome>;
147
+ export type EvaluatorFn = (documents: readonly EmdashDocument[], context?: {
148
+ collections: readonly string[];
149
+ }) => Promise<EvaluationOutcome>;
101
150
  export declare function evaluateAndPersistAll(ctx: SandboxCtx, options: {
102
151
  collections?: readonly string[];
103
152
  evaluator: EvaluatorFn;
104
153
  suppressionFilter?: SuppressionFilter;
154
+ blockMappings?: CustomBlockMappings | undefined;
155
+ contentFieldsByCollection?: Record<string, readonly string[]> | undefined;
156
+ contentFieldsUnavailable?: boolean | undefined;
157
+ descriptionFieldsByCollection?: Record<string, readonly string[]> | undefined;
105
158
  }): Promise<RefreshSummary>;
106
159
  export declare function findingsKey(route: string): string;
107
160
  export declare function documentKey(route: string): string;
@@ -110,4 +163,7 @@ export declare function readStoredFacts(kv: KvNamespace): Promise<unknown | null
110
163
  export declare function readAllDocuments(kv: KvNamespace): Promise<EmdashDocument[]>;
111
164
  export declare function readAllStoredDocuments(kv: KvNamespace): Promise<StoredDocument[]>;
112
165
  export declare function readFindings(kv: KvNamespace, route: string): Promise<Finding[]>;
166
+ /** Assessment is stored atomically with the findings for the same revision. */
167
+ export declare function readAssessment(kv: KvNamespace, route: string): Promise<DocumentAssessment | undefined>;
168
+ export {};
113
169
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { TruthManifest } from "./types.js";
2
+ export declare const PRESENCE_HOSTS: readonly ["en.wikipedia.org", "www.wikidata.org", "api.github.com", "rdap.org", "index.commoncrawl.org"];
2
3
  export type SourceStatus = "found" | "not_found" | "unreachable" | "skipped";
3
4
  export interface SourceResult {
4
5
  source: string;
@@ -1 +1 @@
1
- {"version":3,"file":"presence-check.d.ts","sourceRoot":"","sources":["../src/presence-check.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IAGrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,QAAA,MAAM,YAAY,sEAMR,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAKvD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,GAAG,IAAI,GAC7B,WAAW,GAAG,IAAI,CAUpB;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,YAAY,EAAE,CAAC,CAoBzB"}
1
+ {"version":3,"file":"presence-check.d.ts","sourceRoot":"","sources":["../src/presence-check.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAQhD,eAAO,MAAM,cAAc,YACzB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,uBAAuB,CACf,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IAGrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,QAAA,MAAM,YAAY,YAChB,WAAW,EACX,UAAU,EACV,QAAQ,EACR,MAAM,EACN,cAAc,CACN,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAKvD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,GAAG,IAAI,GAC7B,WAAW,GAAG,IAAI,CAUpB;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,YAAY,EAAE,CAAC,CAoBzB"}
@@ -1,5 +1,5 @@
1
1
  import type { KvNamespace, SandboxCtx } from "./plugin.js";
2
- import { handleAfterSave } from "./plugin.js";
2
+ import { handleAfterDelete, handleAfterSave } from "./plugin.js";
3
3
  import type { BlockInteraction, BlockResponse } from "./findings-view.js";
4
4
  export type { BlockInteraction, BlockResponse } from "./findings-view.js";
5
5
  export interface RouteInput {
@@ -16,6 +16,7 @@ declare function handleAdminRoute(input: RouteInput, ctx: SandboxCtx): Promise<B
16
16
  declare const _default: {
17
17
  hooks: {
18
18
  "content:afterSave": typeof handleAfterSave;
19
+ "content:afterDelete": typeof handleAfterDelete;
19
20
  };
20
21
  routes: {
21
22
  admin: {
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-entry.d.ts","sourceRoot":"","sources":["../src/sandbox-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,UAAU,EAEX,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,eAAe,EAGhB,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAEV,gBAAgB,EAChB,aAAa,EACd,MAAM,oBAAoB,CAAC;AAuB5B,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAa1E,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAID,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,EAAE,EAAE,WAAW,CAAC;IAChB,GAAG,EAAE,UAAU,CAAC;CACjB;AA6BD,iBAAe,gBAAgB,CAC7B,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,aAAa,CAAC,CAwBxB;;;;;;;;;;;AA8OD,wBAOG"}
1
+ {"version":3,"file":"sandbox-entry.d.ts","sourceRoot":"","sources":["../src/sandbox-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,UAAU,EAEX,MAAM,aAAa,CAAC;AACrB,OAAO,EAIL,iBAAiB,EACjB,eAAe,EAOhB,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAEV,gBAAgB,EAChB,aAAa,EACd,MAAM,oBAAoB,CAAC;AAuB5B,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAa1E,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAID,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,EAAE,EAAE,WAAW,CAAC;IAChB,GAAG,EAAE,UAAU,CAAC;CACjB;AA6BD,iBAAe,gBAAgB,CAC7B,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,aAAa,CAAC,CAwBxB;;;QAwQG,mBAAmB;QACnB,qBAAqB;;;QAGrB,KAAK;YAAI,OAAO"}