agentskeptic 0.2.0 → 0.2.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 (58) hide show
  1. package/README.md +64 -0
  2. package/dist/agentRunBundle.js +1 -2
  3. package/dist/agentRunBundle.js.map +1 -1
  4. package/dist/agentRunRecord.d.ts +5 -0
  5. package/dist/agentRunRecord.d.ts.map +1 -1
  6. package/dist/agentRunRecord.js +5 -0
  7. package/dist/agentRunRecord.js.map +1 -1
  8. package/dist/cli/runFunnelAnonSet.d.ts +18 -0
  9. package/dist/cli/runFunnelAnonSet.d.ts.map +1 -0
  10. package/dist/cli/runFunnelAnonSet.js +113 -0
  11. package/dist/cli/runFunnelAnonSet.js.map +1 -0
  12. package/dist/cli.js +5 -0
  13. package/dist/cli.js.map +1 -1
  14. package/dist/debugCorpus.d.ts +2 -5
  15. package/dist/debugCorpus.d.ts.map +1 -1
  16. package/dist/debugCorpus.js +2 -5
  17. package/dist/debugCorpus.js.map +1 -1
  18. package/dist/index.d.ts +3 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/publicDistribution.generated.d.ts +1 -1
  23. package/dist/publicDistribution.generated.js +1 -1
  24. package/dist/telemetry/cliInstallId.d.ts +12 -0
  25. package/dist/telemetry/cliInstallId.d.ts.map +1 -1
  26. package/dist/telemetry/cliInstallId.js +46 -8
  27. package/dist/telemetry/cliInstallId.js.map +1 -1
  28. package/dist/telemetry/maybeEmitOssClaimTicketUrl.d.ts.map +1 -1
  29. package/dist/telemetry/maybeEmitOssClaimTicketUrl.js +24 -6
  30. package/dist/telemetry/maybeEmitOssClaimTicketUrl.js.map +1 -1
  31. package/dist/telemetry/openHandoffUrlInOsBrowser.d.ts +9 -0
  32. package/dist/telemetry/openHandoffUrlInOsBrowser.d.ts.map +1 -0
  33. package/dist/telemetry/openHandoffUrlInOsBrowser.js +24 -0
  34. package/dist/telemetry/openHandoffUrlInOsBrowser.js.map +1 -0
  35. package/dist/telemetry/postOssClaimContinuation.d.ts +5 -0
  36. package/dist/telemetry/postOssClaimContinuation.d.ts.map +1 -0
  37. package/dist/telemetry/postOssClaimContinuation.js +30 -0
  38. package/dist/telemetry/postOssClaimContinuation.js.map +1 -0
  39. package/dist/telemetry/postOssClaimTicket.d.ts +12 -2
  40. package/dist/telemetry/postOssClaimTicket.d.ts.map +1 -1
  41. package/dist/telemetry/postOssClaimTicket.js +36 -7
  42. package/dist/telemetry/postOssClaimTicket.js.map +1 -1
  43. package/dist/telemetry/postProductActivationEvent.d.ts.map +1 -1
  44. package/dist/telemetry/postProductActivationEvent.js +5 -2
  45. package/dist/telemetry/postProductActivationEvent.js.map +1 -1
  46. package/dist/verifyAgentskeptic.d.ts +15 -0
  47. package/dist/verifyAgentskeptic.d.ts.map +1 -0
  48. package/dist/verifyAgentskeptic.js +39 -0
  49. package/dist/verifyAgentskeptic.js.map +1 -0
  50. package/dist/verifyAgentskeptic.test.d.ts +2 -0
  51. package/dist/verifyAgentskeptic.test.d.ts.map +1 -0
  52. package/dist/verifyAgentskeptic.test.js +88 -0
  53. package/dist/verifyAgentskeptic.test.js.map +1 -0
  54. package/dist/verifyRunBundleSignature.d.ts.map +1 -1
  55. package/dist/verifyRunBundleSignature.js +1 -2
  56. package/dist/verifyRunBundleSignature.js.map +1 -1
  57. package/package.json +5 -7
  58. package/scripts/discovery-payload.lib.cjs +27 -1
@@ -0,0 +1,88 @@
1
+ import { mkdirSync, mkdtempSync, copyFileSync, readFileSync, rmSync, unlinkSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import path, { dirname, join } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { DatabaseSync } from "node:sqlite";
6
+ import { describe, expect, it } from "vitest";
7
+ import { TruthLayerError } from "./truthLayerError.js";
8
+ import { verifyAgentskeptic } from "./verifyAgentskeptic.js";
9
+ const __dirname = dirname(fileURLToPath(import.meta.url));
10
+ const repoRoot = join(__dirname, "..");
11
+ function seedTempProject() {
12
+ const dir = mkdtempSync(join(tmpdir(), "as-verify-facade-"));
13
+ const agentskepticDir = join(dir, "agentskeptic");
14
+ mkdirSync(agentskepticDir, { recursive: true });
15
+ copyFileSync(join(repoRoot, "examples", "events.ndjson"), join(agentskepticDir, "events.ndjson"));
16
+ copyFileSync(join(repoRoot, "examples", "tools.json"), join(agentskepticDir, "tools.json"));
17
+ const dbPath = join(dir, "demo.db");
18
+ const seed = readFileSync(join(repoRoot, "examples", "seed.sql"), "utf8");
19
+ const db = new DatabaseSync(dbPath);
20
+ db.exec(seed);
21
+ db.close();
22
+ return dir;
23
+ }
24
+ describe("verifyAgentskeptic", () => {
25
+ it("wf_complete: ok true and status complete", async () => {
26
+ const projectRoot = seedTempProject();
27
+ try {
28
+ const dbPath = join(projectRoot, "demo.db");
29
+ const { ok, result } = await verifyAgentskeptic({
30
+ workflowId: "wf_complete",
31
+ databaseUrl: dbPath,
32
+ projectRoot,
33
+ });
34
+ expect(result.status).toBe("complete");
35
+ expect(ok).toBe(true);
36
+ expect(ok === (result.status === "complete")).toBe(true);
37
+ }
38
+ finally {
39
+ rmSync(projectRoot, { recursive: true, force: true });
40
+ }
41
+ });
42
+ it("wf_missing: ok false and status inconsistent", async () => {
43
+ const projectRoot = seedTempProject();
44
+ try {
45
+ const dbPath = join(projectRoot, "demo.db");
46
+ const { ok, result } = await verifyAgentskeptic({
47
+ workflowId: "wf_missing",
48
+ databaseUrl: dbPath,
49
+ projectRoot,
50
+ });
51
+ expect(result.status).toBe("inconsistent");
52
+ expect(ok).toBe(false);
53
+ expect(ok === (result.status === "complete")).toBe(true);
54
+ expect(result.steps[0]?.status).toBe("missing");
55
+ expect(result.steps[0]?.reasons[0]?.code).toBe("ROW_ABSENT");
56
+ }
57
+ finally {
58
+ rmSync(projectRoot, { recursive: true, force: true });
59
+ }
60
+ });
61
+ it("throws when agentskeptic/tools.json is missing", async () => {
62
+ const projectRoot = seedTempProject();
63
+ try {
64
+ unlinkSync(join(projectRoot, "agentskeptic", "tools.json"));
65
+ await expect(verifyAgentskeptic({
66
+ workflowId: "wf_complete",
67
+ databaseUrl: join(projectRoot, "demo.db"),
68
+ projectRoot,
69
+ })).rejects.toThrow(TruthLayerError);
70
+ try {
71
+ await verifyAgentskeptic({
72
+ workflowId: "wf_complete",
73
+ databaseUrl: join(projectRoot, "demo.db"),
74
+ projectRoot,
75
+ });
76
+ }
77
+ catch (e) {
78
+ expect(e).toBeInstanceOf(TruthLayerError);
79
+ const msg = String(e.message);
80
+ expect(msg).toContain(path.normalize(join(projectRoot, "agentskeptic", "tools.json")));
81
+ }
82
+ }
83
+ finally {
84
+ rmSync(projectRoot, { recursive: true, force: true });
85
+ }
86
+ });
87
+ });
88
+ //# sourceMappingURL=verifyAgentskeptic.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyAgentskeptic.test.js","sourceRoot":"","sources":["../src/verifyAgentskeptic.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACjG,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEvC,SAAS,eAAe;IACtB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAClD,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;IAClG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,EAAE,CAAC,KAAK,EAAE,CAAC;IACX,OAAO,GAAG,CAAC;AACb,CAAC;AAED,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC5C,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC;gBAC9C,UAAU,EAAE,aAAa;gBACzB,WAAW,EAAE,MAAM;gBACnB,WAAW;aACZ,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC5C,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC;gBAC9C,UAAU,EAAE,YAAY;gBACxB,WAAW,EAAE,MAAM;gBACnB,WAAW;aACZ,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3C,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/D,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;YAC5D,MAAM,MAAM,CACV,kBAAkB,CAAC;gBACjB,UAAU,EAAE,aAAa;gBACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;gBACzC,WAAW;aACZ,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAEnC,IAAI,CAAC;gBACH,MAAM,kBAAkB,CAAC;oBACvB,UAAU,EAAE,aAAa;oBACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;oBACzC,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;gBAC1C,MAAM,GAAG,GAAG,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"verifyRunBundleSignature.d.ts","sourceRoot":"","sources":["../src/verifyRunBundleSignature.ts"],"names":[],"mappings":"AAGA,OAAO,EAUL,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAC;AAWnC,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAS9D;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,MAAM,GAC9B,wBAAwB,CAgJ1B"}
1
+ {"version":3,"file":"verifyRunBundleSignature.d.ts","sourceRoot":"","sources":["../src/verifyRunBundleSignature.ts"],"names":[],"mappings":"AAGA,OAAO,EAUL,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAC;AAYnC,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAS9D;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,MAAM,GAC9B,wBAAwB,CAgJ1B"}
@@ -2,9 +2,8 @@ import { createPublicKey, verify } from "node:crypto";
2
2
  import { existsSync, readFileSync } from "node:fs";
3
3
  import path from "node:path";
4
4
  import { BUNDLE_SIGNATURE_ARTIFACT_INTEGRITY, BUNDLE_SIGNATURE_CRYPTO_INVALID, BUNDLE_SIGNATURE_MANIFEST_INVALID, BUNDLE_SIGNATURE_MANIFEST_UNSUPPORTED_VERSION, BUNDLE_SIGNATURE_MISSING_ARTIFACT, BUNDLE_SIGNATURE_PUBLIC_KEY_MISMATCH, BUNDLE_SIGNATURE_SIDECAR_INVALID, BUNDLE_SIGNATURE_SIGNED_HASH_MISMATCH, BUNDLE_SIGNATURE_UNSIGNED_MANIFEST, } from "./bundleSignatureCodes.js";
5
- import { sha256Hex } from "./agentRunRecord.js";
5
+ import { sha256Hex, AGENT_RUN_FILENAME, EVENTS_FILENAME, WORKFLOW_RESULT_FILENAME, WORKFLOW_RESULT_SIG_FILENAME, } from "./agentRunRecord.js";
6
6
  import { loadSchemaValidator } from "./schemaLoad.js";
7
- import { AGENT_RUN_FILENAME, EVENTS_FILENAME, WORKFLOW_RESULT_FILENAME, WORKFLOW_RESULT_SIG_FILENAME, } from "./debugCorpus.js";
8
7
  import { normalizeSpkiPemForSidecar } from "./workflowResultSignature.js";
9
8
  const validateV2 = loadSchemaValidator("agent-run-record-v2");
10
9
  const validateSidecar = loadSchemaValidator("workflow-result-signature");
@@ -1 +1 @@
1
- {"version":3,"file":"verifyRunBundleSignature.js","sourceRoot":"","sources":["../src/verifyRunBundleSignature.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyRunBundleSignature.js","sourceRoot":"","sources":["../src/verifyRunBundleSignature.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentskeptic",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Traces say success while rows are missing or wrong. AgentSkeptic runs read-only SQL at verification time on Postgres or SQLite—ground truth from structured tool activity, not trace color alone.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -25,8 +25,8 @@
25
25
  "start": "npm run build && node scripts/demo.mjs",
26
26
  "dev": "npm run dev -w agentskeptic-web",
27
27
  "test:vitest": "vitest run",
28
- "verify:decision-readiness": "npm run test:vitest -w agentskeptic-web -- __tests__/githubHeadingSlug.contract.test.ts __tests__/integrateActivationNorthStar.contract.test.ts __tests__/integrate-page-completion-semantics.contract.test.tsx __tests__/growthMetricsSqlParity.test.ts __tests__/growth-cross-surface.integration.test.ts",
29
- "test:node:sqlite": "node scripts/assert-dependency-security-pins.mjs && node --test --test-force-exit test/reconciler.sqlite.test.mjs test/pipeline.sqlite.test.mjs test/withWorkflowVerification.test.mjs test/workflowTruthReport.test.mjs test/cli.test.mjs test/post-product-activation-install-id.test.mjs test/workflow-lineage-classify.test.mjs test/resolve-telemetry-source.test.mjs test/github-workflows-agentskeptic-telemetry-env.test.mjs test/maybe-emit-oss-claim-telemetry-off.test.mjs test/first-run-verify-output.integration.test.mjs test/stable-failure-consistency.test.mjs test/workflow-result-consumer-contract.test.mjs test/workflow-result-stdout-version.test.mjs test/docs-relational-ssot.test.mjs test/tools-registry-relational-surface.test.mjs test/docs-contract.test.mjs test/docs-commercial-enforce-gate-normative.test.mjs test/docs-remediation-doctrine.test.mjs test/bundle-signature-fixture.test.mjs test/bundle-signature-codes-doc.test.mjs test/bundle-signature-cli-write.test.mjs test/quick-verify.sqlite.test.mjs test/bootstrap-pack.test.mjs test/crossing-cli.test.mjs test/quickVerifyPostbuildGate.test.mjs test/npm-scripts-contract.test.mjs test/langgraph-reference-emitter-before-cli-spawn.test.mjs test/removed-script-names-ban.test.mjs test/docs-workflow-result-normative-prose.test.mjs test/enforce-oss-forbidden.test.mjs test/oss-output-lock-batch.test.mjs test/lock-success-monetized-footer.integration.test.mjs test/docs-enforce-stream-contract.test.mjs test/docs-quick-enforce-link.test.mjs test/commercial-pricing-policy-parity.test.mjs test/distribution-requirement-clauses.test.mjs test/distribution-traceability-literals.test.mjs test/distribution-ssot-clause-coverage.test.mjs test/distribution-consumer-pipeline.test.mjs test/discovery-payload.test.mjs test/redaction-rules.test.mjs test/indexable-guide-paths-fs.contract.test.mjs test/npm-pack-discovery-scripts.test.mjs test/registry-metadata-parity.test.mjs test/docs-related-exists-export-ssot-negative.mjs test/quick-param-pointer.gates.test.mjs test/dependency-security-pins.schema.contract.test.mjs test/drizzle-identifier-safety.contract.test.mjs test/assert-destructive-postgres-urls.test.mjs test/readme-wedge-inevitability.test.mjs test/adoption-complete-surface-parity.test.mjs test/adoption-epistemics-contract.test.mjs test/integrate-spine-contract.test.mjs test/integrate-spine-ssot-fixtures.test.mjs test/integrate-route-copy-absence.test.mjs test/adoption-validation-registry.test.mjs test/decision-ready-surfaces-manifest.test.mjs",
28
+ "verify:decision-readiness": "npm run test:vitest -w agentskeptic-web -- __tests__/githubHeadingSlug.contract.test.ts __tests__/integrateActivationNorthStar.contract.test.ts __tests__/integrate-page-completion-semantics.contract.test.tsx __tests__/growth-metrics-ssot.contract.test.ts __tests__/repo-reference-integrity.growth-observability.test.ts",
29
+ "test:node:sqlite": "node scripts/assert-dependency-security-pins.mjs && node --test --test-force-exit test/reconciler.sqlite.test.mjs test/pipeline.sqlite.test.mjs test/withWorkflowVerification.test.mjs test/workflowTruthReport.test.mjs test/cli.test.mjs test/post-product-activation-install-id.test.mjs test/workflow-lineage-classify.test.mjs test/resolve-telemetry-source.test.mjs test/github-workflows-agentskeptic-telemetry-env.test.mjs test/maybe-emit-oss-claim-telemetry-off.test.mjs test/first-run-verify-output.integration.test.mjs test/stable-failure-consistency.test.mjs test/workflow-result-consumer-contract.test.mjs test/workflow-result-stdout-version.test.mjs test/docs-relational-ssot.test.mjs test/tools-registry-relational-surface.test.mjs test/docs-contract.test.mjs test/docs-commercial-enforce-gate-normative.test.mjs test/docs-remediation-doctrine.test.mjs test/bundle-signature-fixture.test.mjs test/bundle-signature-codes-doc.test.mjs test/bundle-signature-cli-write.test.mjs test/quick-verify.sqlite.test.mjs test/bootstrap-pack.test.mjs test/crossing-cli.test.mjs test/quickVerifyPostbuildGate.test.mjs test/npm-scripts-contract.test.mjs test/langgraph-reference-emitter-before-cli-spawn.test.mjs test/removed-script-names-ban.test.mjs test/docs-workflow-result-normative-prose.test.mjs test/enforce-oss-forbidden.test.mjs test/oss-output-lock-batch.test.mjs test/lock-success-monetized-footer.integration.test.mjs test/docs-enforce-stream-contract.test.mjs test/docs-quick-enforce-link.test.mjs test/commercial-pricing-policy-parity.test.mjs test/discovery-payload.test.mjs test/redaction-rules.test.mjs test/indexable-guide-paths-fs.contract.test.mjs test/npm-pack-discovery-scripts.test.mjs test/registry-metadata-parity.test.mjs test/docs-related-exists-export-ssot-negative.mjs test/quick-param-pointer.gates.test.mjs test/dependency-security-pins.schema.contract.test.mjs test/drizzle-identifier-safety.contract.test.mjs test/assert-destructive-postgres-urls.test.mjs test/readme-wedge-inevitability.test.mjs test/adoption-complete-surface-parity.test.mjs test/adoption-epistemics-contract.test.mjs test/integrate-spine-contract.test.mjs test/integrate-spine-ssot-fixtures.test.mjs test/integrate-route-copy-absence.test.mjs test/adoption-validation-registry.test.mjs test/decision-ready-surfaces-manifest.test.mjs test/oss-legacy-handoff-ban.test.mjs test/sync-adoption-canonical-to-llms.test.mjs test/verify-agentskeptic-consumer.e2e.test.mjs",
30
30
  "test:postgres": "node scripts/pg-ci-init.mjs && node --test --test-force-exit test/postgres-session-readonly.test.mjs test/postgres-privilege.test.mjs test/pipeline.postgres.test.mjs test/ci-workflow-truth-postgres-contract.test.mjs test/quick-verify.postgres.test.mjs",
31
31
  "test:workflow-truth-contract": "node --test --test-force-exit test/ci-workflow-truth-postgres-contract.test.mjs",
32
32
  "validate-ttfv": "node scripts/validate-ttfv.mjs",
@@ -41,14 +41,12 @@
41
41
  "migrate:workflow-result-v15": "npm run build && node scripts/migrate-workflow-result-v15.mjs",
42
42
  "check:commercial-ssot": "node scripts/check-commercial-plans-ssot.mjs",
43
43
  "stripe-bootstrap": "node scripts/stripe-bootstrap.mjs",
44
- "export:telemetry-daily-pack": "node scripts/export-telemetry-daily-pack.mjs",
45
44
  "validate-commercial": "node scripts/validate-commercial-funnel.mjs",
46
45
  "pack-smoke": "node scripts/pack-smoke-commercial.mjs",
47
- "sync:public-product-anchors": "node scripts/public-product-anchors.cjs && node scripts/assert-discovery-public-files.mjs",
48
- "distribution:consumer-pipeline": "node scripts/distribution-consumer-pipeline.mjs",
46
+ "sync:public-product-anchors": "node scripts/public-product-anchors.cjs && node scripts/sync-adoption-canonical-to-llms.mjs && node scripts/assert-discovery-public-files.mjs",
49
47
  "check:discovery-acquisition": "node scripts/validate-discovery-acquisition.mjs",
50
48
  "verify:web-marketing-copy": "node scripts/run-verify-web-marketing-copy.mjs",
51
- "check:public-product-anchors": "node scripts/public-product-anchors.cjs --check",
49
+ "check:public-product-anchors": "node scripts/public-product-anchors.cjs --check && node scripts/sync-adoption-canonical-to-llms.mjs --check",
52
50
  "generate:integrate-activation-shell": "node scripts/generate-integrate-activation-shell.mjs",
53
51
  "check:integrate-activation-shell": "node scripts/generate-integrate-activation-shell.mjs --check",
54
52
  "validate:activation-spine": "node scripts/validate-activation-spine.mjs",
@@ -27,6 +27,21 @@ const MAX_SUMMARY_UTF8_BYTES = 65536;
27
27
  const MAX_PR_BODY_UTF8_BYTES = 10240;
28
28
  const STDERR_TAIL_LINES = 20;
29
29
 
30
+ const REPO_ROOT = join(__dirname, "..");
31
+ const README_ADOPTION_START = "<!-- adoption-canonical:start -->";
32
+ const README_ADOPTION_END = "<!-- adoption-canonical:end -->";
33
+
34
+ function extractReadmeAdoptionExcerptForLlms() {
35
+ const readme = readFileSync(join(REPO_ROOT, "README.md"), "utf8");
36
+ const i = readme.indexOf(README_ADOPTION_START);
37
+ const j = readme.indexOf(README_ADOPTION_END);
38
+ if (i < 0 || j < 0 || j <= i) return "";
39
+ return readme
40
+ .slice(i + README_ADOPTION_START.length, j)
41
+ .replace(/^\r?\n/, "")
42
+ .replace(/\r?\n$/, "");
43
+ }
44
+
30
45
  /**
31
46
  * @param {string} gitRepositoryUrl
32
47
  * @returns {{ owner: string, repo: string }}
@@ -180,11 +195,22 @@ function renderLlmsTextFromPayload(payload) {
180
195
  const integrateUrl = links.integrate;
181
196
  const learnHubUrl = links.learnHub;
182
197
  const openapiSelfCanonical = links.openapiCanonical;
198
+ const adoptionExcerpt = extractReadmeAdoptionExcerptForLlms();
199
+ const adoptionLlmsBlock =
200
+ adoptionExcerpt.length > 0
201
+ ? [
202
+ "<!-- adoption-canonical-llms:start -->",
203
+ adoptionExcerpt,
204
+ "<!-- adoption-canonical-llms:end -->",
205
+ String(payload.identityOneLiner),
206
+ ].join("\n")
207
+ : String(payload.identityOneLiner);
183
208
  const lines = [
184
209
  "# AgentSkeptic",
185
210
  "",
186
211
  "## Summary",
187
- String(payload.identityOneLiner),
212
+ "",
213
+ adoptionLlmsBlock,
188
214
  "",
189
215
  "## Primary links",
190
216
  `- Canonical site: ${links.site}`,