agentskeptic 3.0.0 → 3.2.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.
Files changed (44) hide show
  1. package/README.md +6 -0
  2. package/config/marketing.json +1 -9
  3. package/dist/cli/lockOrchestration.d.ts +0 -4
  4. package/dist/cli/lockOrchestration.d.ts.map +1 -1
  5. package/dist/cli/lockOrchestration.js +2 -2
  6. package/dist/cli/lockOrchestration.js.map +1 -1
  7. package/dist/enforceStateful.d.ts.map +1 -1
  8. package/dist/enforceStateful.js +67 -22
  9. package/dist/enforceStateful.js.map +1 -1
  10. package/dist/governanceEvidence.d.ts +27 -0
  11. package/dist/governanceEvidence.d.ts.map +1 -0
  12. package/dist/governanceEvidence.js +54 -0
  13. package/dist/governanceEvidence.js.map +1 -0
  14. package/dist/governanceEvidence.test.d.ts +2 -0
  15. package/dist/governanceEvidence.test.d.ts.map +1 -0
  16. package/dist/governanceEvidence.test.js +78 -0
  17. package/dist/governanceEvidence.test.js.map +1 -0
  18. package/dist/loop/loopOutput.d.ts +1 -1
  19. package/dist/loop/loopOutput.d.ts.map +1 -1
  20. package/dist/loop/loopOutput.js +4 -4
  21. package/dist/loop/loopOutput.js.map +1 -1
  22. package/dist/loop/runLoopSubcommand.d.ts.map +1 -1
  23. package/dist/loop/runLoopSubcommand.js +4 -2
  24. package/dist/loop/runLoopSubcommand.js.map +1 -1
  25. package/dist/publicDistribution.generated.d.ts +1 -1
  26. package/dist/publicDistribution.generated.js +1 -1
  27. package/dist/schemaLoad.d.ts +1 -1
  28. package/dist/schemaLoad.d.ts.map +1 -1
  29. package/dist/schemaLoad.js +2 -0
  30. package/dist/schemaLoad.js.map +1 -1
  31. package/dist/sdk/_generated/openapi-types.d.ts +88 -6
  32. package/dist/sdk/_generated/openapi-types.d.ts.map +1 -1
  33. package/package.json +4 -1
  34. package/schemas/buyer-truth-v1.schema.json +162 -0
  35. package/schemas/ci/verification-truth.manifest.json +2 -0
  36. package/schemas/governance-audit-bundle-v1.schema.json +33 -0
  37. package/schemas/material-truth-v1.schema.json +62 -0
  38. package/schemas/openapi-commercial-v1.in.yaml +87 -8
  39. package/schemas/openapi-commercial-v1.yaml +88 -9
  40. package/scripts/validate-marketing.cjs +9 -6
  41. package/dist/enforcementProjection.d.ts +0 -17
  42. package/dist/enforcementProjection.d.ts.map +0 -1
  43. package/dist/enforcementProjection.js +0 -20
  44. package/dist/enforcementProjection.js.map +0 -1
@@ -0,0 +1,62 @@
1
+ {
2
+ "$id": "https://agentskeptic.com/schemas/material-truth-v1.schema.json",
3
+ "title": "MaterialTruthV1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "schemaVersion",
8
+ "workflowId",
9
+ "runKind",
10
+ "stateRelation",
11
+ "reasonCodes",
12
+ "steps",
13
+ "checkpointVerdicts"
14
+ ],
15
+ "properties": {
16
+ "schemaVersion": { "type": "integer", "const": 1 },
17
+ "workflowId": { "type": "string", "minLength": 1, "maxLength": 512 },
18
+ "runKind": {
19
+ "type": "string",
20
+ "enum": ["contract_sql", "contract_sql_langgraph_checkpoint_trust", "quick_preview"]
21
+ },
22
+ "stateRelation": {
23
+ "type": "string",
24
+ "enum": ["matches_expectations", "does_not_match", "not_established"]
25
+ },
26
+ "reasonCodes": {
27
+ "type": "array",
28
+ "items": { "type": "string", "minLength": 1, "maxLength": 256 }
29
+ },
30
+ "steps": {
31
+ "type": "array",
32
+ "items": {
33
+ "type": "object",
34
+ "additionalProperties": false,
35
+ "required": ["seq", "toolId", "declaredAction", "expectedOutcome", "observedOutcome"],
36
+ "properties": {
37
+ "seq": { "type": "integer", "minimum": 0 },
38
+ "toolId": { "type": "string", "maxLength": 512 },
39
+ "declaredAction": { "type": "string", "minLength": 1, "maxLength": 4096 },
40
+ "expectedOutcome": { "type": "string", "minLength": 1, "maxLength": 4096 },
41
+ "observedOutcome": { "type": "string", "minLength": 1, "maxLength": 8192 }
42
+ }
43
+ }
44
+ },
45
+ "checkpointVerdicts": {
46
+ "type": "array",
47
+ "items": {
48
+ "type": "object",
49
+ "additionalProperties": false,
50
+ "required": ["checkpointKey", "verdict", "seqs"],
51
+ "properties": {
52
+ "checkpointKey": { "type": "string", "minLength": 1, "maxLength": 2048 },
53
+ "verdict": { "type": "string", "enum": ["verified", "inconsistent", "incomplete"] },
54
+ "seqs": {
55
+ "type": "array",
56
+ "items": { "type": "integer", "minimum": 0 }
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
@@ -125,7 +125,7 @@ paths:
125
125
  content:
126
126
  application/json:
127
127
  schema:
128
- $ref: "#/components/schemas/EnforcementProjectionRequest"
128
+ $ref: "#/components/schemas/EnforcementEvidenceRequestV2"
129
129
  responses:
130
130
  "200":
131
131
  description: Baseline created or replaced
@@ -156,7 +156,7 @@ paths:
156
156
  content:
157
157
  application/json:
158
158
  schema:
159
- $ref: "#/components/schemas/EnforcementProjectionRequest"
159
+ $ref: "#/components/schemas/EnforcementEvidenceRequestV2"
160
160
  responses:
161
161
  "200":
162
162
  description: Comparison result (ok or drift)
@@ -181,7 +181,7 @@ paths:
181
181
  content:
182
182
  application/json:
183
183
  schema:
184
- $ref: "#/components/schemas/EnforcementProjectionRequest"
184
+ $ref: "#/components/schemas/EnforcementEvidenceRequestV2"
185
185
  responses:
186
186
  "200":
187
187
  description: Drift accepted
@@ -213,6 +213,47 @@ paths:
213
213
  application/json:
214
214
  schema:
215
215
  $ref: "#/components/schemas/EnforcementHistoryResponse"
216
+ /api/v1/governance/export:
217
+ get:
218
+ operationId: exportGovernanceAuditBundle
219
+ summary: Export governance audit bundle for one workflow (session auth)
220
+ parameters:
221
+ - name: workflow_id
222
+ in: query
223
+ required: true
224
+ schema:
225
+ type: string
226
+ - name: from
227
+ in: query
228
+ required: false
229
+ schema:
230
+ type: string
231
+ format: date-time
232
+ - name: to
233
+ in: query
234
+ required: false
235
+ schema:
236
+ type: string
237
+ format: date-time
238
+ responses:
239
+ "200":
240
+ description: Governance audit bundle
241
+ content:
242
+ application/json:
243
+ schema:
244
+ $ref: "#/components/schemas/GovernanceAuditBundleV1"
245
+ "400":
246
+ description: Invalid request
247
+ content:
248
+ application/json:
249
+ schema:
250
+ $ref: "#/components/schemas/ProblemDetails"
251
+ "401":
252
+ description: Not authenticated
253
+ content:
254
+ application/json:
255
+ schema:
256
+ $ref: "#/components/schemas/ProblemDetails"
216
257
  /api/public/verification-reports:
217
258
  post:
218
259
  operationId: createPublicVerificationReport
@@ -503,19 +544,24 @@ components:
503
544
  scheme: bearer
504
545
  bearerFormat: API key
505
546
  schemas:
506
- EnforcementProjectionRequest:
547
+ EnforcementEvidenceRequestV2:
507
548
  type: object
508
- required: [run_id, workflow_id, projection_hash, projection]
549
+ required: [schema_version, run_id, workflow_id, outcome_certificate_v1, material_truth_sha256, certificate_sha256]
509
550
  properties:
551
+ schema_version:
552
+ type: integer
553
+ const: 2
510
554
  run_id:
511
555
  type: string
512
556
  workflow_id:
513
557
  type: string
514
- projection_hash:
515
- type: string
516
- projection:
558
+ outcome_certificate_v1:
517
559
  type: object
518
560
  additionalProperties: true
561
+ material_truth_sha256:
562
+ type: string
563
+ certificate_sha256:
564
+ type: string
519
565
  EnforcementStateResponse:
520
566
  type: object
521
567
  required: [schema_version, status, workflow_id]
@@ -551,6 +597,39 @@ components:
551
597
  items:
552
598
  type: object
553
599
  additionalProperties: true
600
+ GovernanceAuditBundleV1:
601
+ type: object
602
+ required: [schemaVersion, generatedAt, userId, workflowId, baseline, events]
603
+ properties:
604
+ schemaVersion:
605
+ type: integer
606
+ const: 1
607
+ generatedAt:
608
+ type: string
609
+ format: date-time
610
+ userId:
611
+ type: string
612
+ workflowId:
613
+ type: string
614
+ window:
615
+ type: object
616
+ required: [from, to]
617
+ properties:
618
+ from:
619
+ type: string
620
+ format: date-time
621
+ to:
622
+ type: string
623
+ format: date-time
624
+ baseline:
625
+ type: object
626
+ nullable: true
627
+ additionalProperties: true
628
+ events:
629
+ type: array
630
+ items:
631
+ type: object
632
+ additionalProperties: true
554
633
  ProblemDetails:
555
634
  type: object
556
635
  required: [type, title, status, detail]
@@ -1,7 +1,7 @@
1
1
  openapi: "3.0.3"
2
2
  info:
3
3
  title: AgentSkeptic commercial license API
4
- version: "3.0.0"
4
+ version: "3.2.0"
5
5
  contact:
6
6
  url: https://agentskeptic.com
7
7
  x-agentskeptic-distribution:
@@ -125,7 +125,7 @@ paths:
125
125
  content:
126
126
  application/json:
127
127
  schema:
128
- $ref: "#/components/schemas/EnforcementProjectionRequest"
128
+ $ref: "#/components/schemas/EnforcementEvidenceRequestV2"
129
129
  responses:
130
130
  "200":
131
131
  description: Baseline created or replaced
@@ -156,7 +156,7 @@ paths:
156
156
  content:
157
157
  application/json:
158
158
  schema:
159
- $ref: "#/components/schemas/EnforcementProjectionRequest"
159
+ $ref: "#/components/schemas/EnforcementEvidenceRequestV2"
160
160
  responses:
161
161
  "200":
162
162
  description: Comparison result (ok or drift)
@@ -181,7 +181,7 @@ paths:
181
181
  content:
182
182
  application/json:
183
183
  schema:
184
- $ref: "#/components/schemas/EnforcementProjectionRequest"
184
+ $ref: "#/components/schemas/EnforcementEvidenceRequestV2"
185
185
  responses:
186
186
  "200":
187
187
  description: Drift accepted
@@ -213,6 +213,47 @@ paths:
213
213
  application/json:
214
214
  schema:
215
215
  $ref: "#/components/schemas/EnforcementHistoryResponse"
216
+ /api/v1/governance/export:
217
+ get:
218
+ operationId: exportGovernanceAuditBundle
219
+ summary: Export governance audit bundle for one workflow (session auth)
220
+ parameters:
221
+ - name: workflow_id
222
+ in: query
223
+ required: true
224
+ schema:
225
+ type: string
226
+ - name: from
227
+ in: query
228
+ required: false
229
+ schema:
230
+ type: string
231
+ format: date-time
232
+ - name: to
233
+ in: query
234
+ required: false
235
+ schema:
236
+ type: string
237
+ format: date-time
238
+ responses:
239
+ "200":
240
+ description: Governance audit bundle
241
+ content:
242
+ application/json:
243
+ schema:
244
+ $ref: "#/components/schemas/GovernanceAuditBundleV1"
245
+ "400":
246
+ description: Invalid request
247
+ content:
248
+ application/json:
249
+ schema:
250
+ $ref: "#/components/schemas/ProblemDetails"
251
+ "401":
252
+ description: Not authenticated
253
+ content:
254
+ application/json:
255
+ schema:
256
+ $ref: "#/components/schemas/ProblemDetails"
216
257
  /api/public/verification-reports:
217
258
  post:
218
259
  operationId: createPublicVerificationReport
@@ -503,19 +544,24 @@ components:
503
544
  scheme: bearer
504
545
  bearerFormat: API key
505
546
  schemas:
506
- EnforcementProjectionRequest:
547
+ EnforcementEvidenceRequestV2:
507
548
  type: object
508
- required: [run_id, workflow_id, projection_hash, projection]
549
+ required: [schema_version, run_id, workflow_id, outcome_certificate_v1, material_truth_sha256, certificate_sha256]
509
550
  properties:
551
+ schema_version:
552
+ type: integer
553
+ const: 2
510
554
  run_id:
511
555
  type: string
512
556
  workflow_id:
513
557
  type: string
514
- projection_hash:
515
- type: string
516
- projection:
558
+ outcome_certificate_v1:
517
559
  type: object
518
560
  additionalProperties: true
561
+ material_truth_sha256:
562
+ type: string
563
+ certificate_sha256:
564
+ type: string
519
565
  EnforcementStateResponse:
520
566
  type: object
521
567
  required: [schema_version, status, workflow_id]
@@ -551,6 +597,39 @@ components:
551
597
  items:
552
598
  type: object
553
599
  additionalProperties: true
600
+ GovernanceAuditBundleV1:
601
+ type: object
602
+ required: [schemaVersion, generatedAt, userId, workflowId, baseline, events]
603
+ properties:
604
+ schemaVersion:
605
+ type: integer
606
+ const: 1
607
+ generatedAt:
608
+ type: string
609
+ format: date-time
610
+ userId:
611
+ type: string
612
+ workflowId:
613
+ type: string
614
+ window:
615
+ type: object
616
+ required: [from, to]
617
+ properties:
618
+ from:
619
+ type: string
620
+ format: date-time
621
+ to:
622
+ type: string
623
+ format: date-time
624
+ baseline:
625
+ type: object
626
+ nullable: true
627
+ additionalProperties: true
628
+ events:
629
+ type: array
630
+ items:
631
+ type: object
632
+ additionalProperties: true
554
633
  ProblemDetails:
555
634
  type: object
556
635
  required: [type, title, status, detail]
@@ -70,7 +70,6 @@ function validateMarketingValue(m) {
70
70
  "readmeFold",
71
71
  "shareableTerminalDemo",
72
72
  "cliFollowupLines",
73
- "r2",
74
73
  "site",
75
74
  "integratePage",
76
75
  "problemIndex",
@@ -81,6 +80,11 @@ function validateMarketingValue(m) {
81
80
  throw new Error(`marketing: missing required key ${k}`);
82
81
  }
83
82
  }
83
+ if ("r2" in m) {
84
+ throw new Error(
85
+ "marketing: top-level key r2 removed — homepage framework footer is driven by config/buyer-truth.v1.json",
86
+ );
87
+ }
84
88
  if (!Array.isArray(m.keywords) || m.keywords.length === 0) {
85
89
  throw new Error("marketing: keywords must be a non-empty array");
86
90
  }
@@ -116,11 +120,10 @@ function validateMarketingValue(m) {
116
120
  if (!cmd.includes("tools.json")) {
117
121
  throw new Error("marketing: packLedCommand must reference tools.json");
118
122
  }
119
- if (!Array.isArray(m.integratePage.requirements) || m.integratePage.requirements.length < 1) {
120
- throw new Error("marketing: integratePage.requirements must be a non-empty array");
121
- }
122
- if (m.integratePage.requirements.length < 1 || m.integratePage.requirements.length > 5) {
123
- throw new Error("marketing: integratePage.requirements must have 1–5 items");
123
+ if ("requirements" in m.integratePage) {
124
+ throw new Error(
125
+ "marketing: integratePage.requirements removed — use Buyer Truth integrateRequirements (/integrate page)",
126
+ );
124
127
  }
125
128
  const v = String(m.visitorProblemAnswer);
126
129
  if (v.toLowerCase().includes("causality")) {
@@ -1,17 +0,0 @@
1
- import type { WorkflowResult } from "./types.js";
2
- import { stableStringify } from "./jsonStableStringify.js";
3
- export type EnforcementProjectionV1 = {
4
- schemaVersion: 1;
5
- workflowId: string;
6
- status: WorkflowResult["status"];
7
- verificationPolicy: WorkflowResult["verificationPolicy"];
8
- runLevelReasonCodes: string[];
9
- stepReasonCodes: Array<{
10
- seq: number;
11
- toolId: string;
12
- reasonCodes: string[];
13
- }>;
14
- };
15
- export declare function workflowResultToEnforcementProjectionV1(result: WorkflowResult): EnforcementProjectionV1;
16
- export { stableStringify };
17
- //# sourceMappingURL=enforcementProjection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enforcementProjection.d.ts","sourceRoot":"","sources":["../src/enforcementProjection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAM3D,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE,CAAC,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,kBAAkB,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACzD,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAChF,CAAC;AAEF,wBAAgB,uCAAuC,CAAC,MAAM,EAAE,cAAc,GAAG,uBAAuB,CAavG;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,20 +0,0 @@
1
- import { stableStringify } from "./jsonStableStringify.js";
2
- function sortedUniqueStrings(arr) {
3
- return [...new Set(arr)].sort((a, b) => a.localeCompare(b));
4
- }
5
- export function workflowResultToEnforcementProjectionV1(result) {
6
- return {
7
- schemaVersion: 1,
8
- workflowId: result.workflowId,
9
- status: result.status,
10
- verificationPolicy: result.verificationPolicy,
11
- runLevelReasonCodes: sortedUniqueStrings(result.runLevelReasons.map((r) => r.code)),
12
- stepReasonCodes: result.steps.map((s) => ({
13
- seq: s.seq,
14
- toolId: s.toolId,
15
- reasonCodes: sortedUniqueStrings(s.reasons.map((r) => r.code)),
16
- })),
17
- };
18
- }
19
- export { stableStringify };
20
- //# sourceMappingURL=enforcementProjection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enforcementProjection.js","sourceRoot":"","sources":["../src/enforcementProjection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,SAAS,mBAAmB,CAAC,GAAa;IACxC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAWD,MAAM,UAAU,uCAAuC,CAAC,MAAsB;IAC5E,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;QAC7C,mBAAmB,EAAE,mBAAmB,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnF,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC/D,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}