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.
- package/README.md +64 -0
- package/dist/agentRunBundle.js +1 -2
- package/dist/agentRunBundle.js.map +1 -1
- package/dist/agentRunRecord.d.ts +5 -0
- package/dist/agentRunRecord.d.ts.map +1 -1
- package/dist/agentRunRecord.js +5 -0
- package/dist/agentRunRecord.js.map +1 -1
- package/dist/cli/runFunnelAnonSet.d.ts +18 -0
- package/dist/cli/runFunnelAnonSet.d.ts.map +1 -0
- package/dist/cli/runFunnelAnonSet.js +113 -0
- package/dist/cli/runFunnelAnonSet.js.map +1 -0
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -1
- package/dist/debugCorpus.d.ts +2 -5
- package/dist/debugCorpus.d.ts.map +1 -1
- package/dist/debugCorpus.js +2 -5
- package/dist/debugCorpus.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/publicDistribution.generated.d.ts +1 -1
- package/dist/publicDistribution.generated.js +1 -1
- package/dist/telemetry/cliInstallId.d.ts +12 -0
- package/dist/telemetry/cliInstallId.d.ts.map +1 -1
- package/dist/telemetry/cliInstallId.js +46 -8
- package/dist/telemetry/cliInstallId.js.map +1 -1
- package/dist/telemetry/maybeEmitOssClaimTicketUrl.d.ts.map +1 -1
- package/dist/telemetry/maybeEmitOssClaimTicketUrl.js +24 -6
- package/dist/telemetry/maybeEmitOssClaimTicketUrl.js.map +1 -1
- package/dist/telemetry/openHandoffUrlInOsBrowser.d.ts +9 -0
- package/dist/telemetry/openHandoffUrlInOsBrowser.d.ts.map +1 -0
- package/dist/telemetry/openHandoffUrlInOsBrowser.js +24 -0
- package/dist/telemetry/openHandoffUrlInOsBrowser.js.map +1 -0
- package/dist/telemetry/postOssClaimContinuation.d.ts +5 -0
- package/dist/telemetry/postOssClaimContinuation.d.ts.map +1 -0
- package/dist/telemetry/postOssClaimContinuation.js +30 -0
- package/dist/telemetry/postOssClaimContinuation.js.map +1 -0
- package/dist/telemetry/postOssClaimTicket.d.ts +12 -2
- package/dist/telemetry/postOssClaimTicket.d.ts.map +1 -1
- package/dist/telemetry/postOssClaimTicket.js +36 -7
- package/dist/telemetry/postOssClaimTicket.js.map +1 -1
- package/dist/telemetry/postProductActivationEvent.d.ts.map +1 -1
- package/dist/telemetry/postProductActivationEvent.js +5 -2
- package/dist/telemetry/postProductActivationEvent.js.map +1 -1
- package/dist/verifyAgentskeptic.d.ts +15 -0
- package/dist/verifyAgentskeptic.d.ts.map +1 -0
- package/dist/verifyAgentskeptic.js +39 -0
- package/dist/verifyAgentskeptic.js.map +1 -0
- package/dist/verifyAgentskeptic.test.d.ts +2 -0
- package/dist/verifyAgentskeptic.test.d.ts.map +1 -0
- package/dist/verifyAgentskeptic.test.js +88 -0
- package/dist/verifyAgentskeptic.test.js.map +1 -0
- package/dist/verifyRunBundleSignature.d.ts.map +1 -1
- package/dist/verifyRunBundleSignature.js +1 -2
- package/dist/verifyRunBundleSignature.js.map +1 -1
- package/package.json +5 -7
- 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":"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"}
|
|
@@ -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;
|
|
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":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,mCAAmC,EACnC,+BAA+B,EAC/B,iCAAiC,EACjC,6CAA6C,EAC7C,iCAAiC,EACjC,oCAAoC,EACpC,gCAAgC,EAChC,qCAAqC,EACrC,kCAAkC,GAEnC,MAAM,2BAA2B,CAAC;AACnC,OAAO,
|
|
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.
|
|
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__/
|
|
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/
|
|
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
|
-
|
|
212
|
+
"",
|
|
213
|
+
adoptionLlmsBlock,
|
|
188
214
|
"",
|
|
189
215
|
"## Primary links",
|
|
190
216
|
`- Canonical site: ${links.site}`,
|