agentskeptic 1.2.1 → 1.4.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 (239) hide show
  1. package/README.md +22 -34
  2. package/config/marketing.json +6 -5
  3. package/dist/actionableFailure.d.ts.map +1 -1
  4. package/dist/actionableFailure.js +15 -0
  5. package/dist/actionableFailure.js.map +1 -1
  6. package/dist/assurance/assurancePathArgs.d.ts.map +1 -1
  7. package/dist/assurance/assurancePathArgs.js +1 -0
  8. package/dist/assurance/assurancePathArgs.js.map +1 -1
  9. package/dist/certificateDigest.d.ts +4 -0
  10. package/dist/certificateDigest.d.ts.map +1 -0
  11. package/dist/certificateDigest.js +7 -0
  12. package/dist/certificateDigest.js.map +1 -0
  13. package/dist/certificateDigest.test.d.ts +2 -0
  14. package/dist/certificateDigest.test.d.ts.map +1 -0
  15. package/dist/certificateDigest.test.js +14 -0
  16. package/dist/certificateDigest.test.js.map +1 -0
  17. package/dist/cli/initCommand.d.ts +2 -0
  18. package/dist/cli/initCommand.d.ts.map +1 -0
  19. package/dist/cli/initCommand.js +135 -0
  20. package/dist/cli/initCommand.js.map +1 -0
  21. package/dist/cli/lockOrchestration.d.ts.map +1 -1
  22. package/dist/cli/lockOrchestration.js +29 -4
  23. package/dist/cli/lockOrchestration.js.map +1 -1
  24. package/dist/cli/migrateCommand.d.ts +6 -0
  25. package/dist/cli/migrateCommand.d.ts.map +1 -0
  26. package/dist/cli/migrateCommand.js +97 -0
  27. package/dist/cli/migrateCommand.js.map +1 -0
  28. package/dist/cli.js +99 -109
  29. package/dist/cli.js.map +1 -1
  30. package/dist/cliArgv.test.d.ts +2 -0
  31. package/dist/cliArgv.test.d.ts.map +1 -0
  32. package/dist/cliArgv.test.js +34 -0
  33. package/dist/cliArgv.test.js.map +1 -0
  34. package/dist/cliOperationalCodes.d.ts +6 -0
  35. package/dist/cliOperationalCodes.d.ts.map +1 -1
  36. package/dist/cliOperationalCodes.js +6 -0
  37. package/dist/cliOperationalCodes.js.map +1 -1
  38. package/dist/commercial/activationCorrelation.d.ts +3 -0
  39. package/dist/commercial/activationCorrelation.d.ts.map +1 -0
  40. package/dist/commercial/activationCorrelation.js +6 -0
  41. package/dist/commercial/activationCorrelation.js.map +1 -0
  42. package/dist/commercial/getCurrentUsage.d.ts +16 -0
  43. package/dist/commercial/getCurrentUsage.d.ts.map +1 -0
  44. package/dist/commercial/getCurrentUsage.js +12 -0
  45. package/dist/commercial/getCurrentUsage.js.map +1 -0
  46. package/dist/commercial/licensePreflight.d.ts +1 -0
  47. package/dist/commercial/licensePreflight.d.ts.map +1 -1
  48. package/dist/commercial/licensePreflight.js +12 -77
  49. package/dist/commercial/licensePreflight.js.map +1 -1
  50. package/dist/commercial/postVerifyOutcomeBeacon.d.ts +2 -0
  51. package/dist/commercial/postVerifyOutcomeBeacon.d.ts.map +1 -1
  52. package/dist/commercial/postVerifyOutcomeBeacon.js +8 -13
  53. package/dist/commercial/postVerifyOutcomeBeacon.js.map +1 -1
  54. package/dist/compare.acceptance.test.js +25 -0
  55. package/dist/compare.acceptance.test.js.map +1 -1
  56. package/dist/compareRunManifest.d.ts +32 -0
  57. package/dist/compareRunManifest.d.ts.map +1 -0
  58. package/dist/compareRunManifest.js +60 -0
  59. package/dist/compareRunManifest.js.map +1 -0
  60. package/dist/debug-ui/app.js +4 -3
  61. package/dist/debugPanels.d.ts +0 -3
  62. package/dist/debugPanels.d.ts.map +1 -1
  63. package/dist/debugPanels.js +0 -23
  64. package/dist/debugPanels.js.map +1 -1
  65. package/dist/debugPanels.test.js +16 -15
  66. package/dist/debugPanels.test.js.map +1 -1
  67. package/dist/debugServer.d.ts.map +1 -1
  68. package/dist/debugServer.js +18 -15
  69. package/dist/debugServer.js.map +1 -1
  70. package/dist/debugServer.test.js +6 -3
  71. package/dist/debugServer.test.js.map +1 -1
  72. package/dist/decisionGate.assertSafe.test.js +2 -2
  73. package/dist/decisionGate.assertSafe.test.js.map +1 -1
  74. package/dist/decisionGate.d.ts +2 -1
  75. package/dist/decisionGate.d.ts.map +1 -1
  76. package/dist/decisionGate.js +2 -1
  77. package/dist/decisionGate.js.map +1 -1
  78. package/dist/decisionGate.persistBundle.test.js +3 -3
  79. package/dist/decisionGate.persistBundle.test.js.map +1 -1
  80. package/dist/discovery-payload-v1.json +3 -1
  81. package/dist/enforceCli.d.ts.map +1 -1
  82. package/dist/enforceCli.js +15 -40
  83. package/dist/enforceCli.js.map +1 -1
  84. package/dist/enforceStateful.d.ts +2 -0
  85. package/dist/enforceStateful.d.ts.map +1 -0
  86. package/dist/enforceStateful.js +88 -0
  87. package/dist/enforceStateful.js.map +1 -0
  88. package/dist/enforcementProjection.d.ts +17 -0
  89. package/dist/enforcementProjection.d.ts.map +1 -0
  90. package/dist/enforcementProjection.js +20 -0
  91. package/dist/enforcementProjection.js.map +1 -0
  92. package/dist/executionTrace.test.js +35 -0
  93. package/dist/executionTrace.test.js.map +1 -1
  94. package/dist/executionTraceDiff.d.ts +36 -0
  95. package/dist/executionTraceDiff.d.ts.map +1 -0
  96. package/dist/executionTraceDiff.js +86 -0
  97. package/dist/executionTraceDiff.js.map +1 -0
  98. package/dist/executionTraceDiff.test.d.ts +2 -0
  99. package/dist/executionTraceDiff.test.d.ts.map +1 -0
  100. package/dist/executionTraceDiff.test.js +44 -0
  101. package/dist/executionTraceDiff.test.js.map +1 -0
  102. package/dist/failureOriginCatalog.d.ts.map +1 -1
  103. package/dist/failureOriginCatalog.js +3 -0
  104. package/dist/failureOriginCatalog.js.map +1 -1
  105. package/dist/firstFiveMinutesChecklist.d.ts +1 -1
  106. package/dist/firstFiveMinutesChecklist.d.ts.map +1 -1
  107. package/dist/firstFiveMinutesChecklist.js +2 -2
  108. package/dist/firstFiveMinutesChecklist.js.map +1 -1
  109. package/dist/index.d.ts +13 -7
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +10 -7
  112. package/dist/index.js.map +1 -1
  113. package/dist/operationalDisposition.d.ts +48 -0
  114. package/dist/operationalDisposition.d.ts.map +1 -1
  115. package/dist/operationalDisposition.js +48 -0
  116. package/dist/operationalDisposition.js.map +1 -1
  117. package/dist/publicDistribution.generated.d.ts +1 -1
  118. package/dist/publicDistribution.generated.js +1 -1
  119. package/dist/registryDraft/buildRegistryDraftPrompt.js +2 -2
  120. package/dist/registryDraft/createRegistryDraftAjv.js +2 -2
  121. package/dist/registryDraft/index.d.ts +1 -0
  122. package/dist/registryDraft/index.d.ts.map +1 -1
  123. package/dist/registryDraft/index.js +1 -0
  124. package/dist/registryDraft/index.js.map +1 -1
  125. package/dist/registryDraft/openAiLlmResponseSchema.d.ts +6 -0
  126. package/dist/registryDraft/openAiLlmResponseSchema.d.ts.map +1 -0
  127. package/dist/registryDraft/openAiLlmResponseSchema.js +12 -0
  128. package/dist/registryDraft/openAiLlmResponseSchema.js.map +1 -0
  129. package/dist/regressionArtifact.d.ts +63 -0
  130. package/dist/regressionArtifact.d.ts.map +1 -0
  131. package/dist/regressionArtifact.js +290 -0
  132. package/dist/regressionArtifact.js.map +1 -0
  133. package/dist/runComparison.d.ts +0 -1
  134. package/dist/runComparison.d.ts.map +1 -1
  135. package/dist/runComparison.js +0 -83
  136. package/dist/runComparison.js.map +1 -1
  137. package/dist/runComparison.test.js +101 -57
  138. package/dist/runComparison.test.js.map +1 -1
  139. package/dist/schema-validation.test.js +37 -0
  140. package/dist/schema-validation.test.js.map +1 -1
  141. package/dist/schemaLoad.d.ts +1 -1
  142. package/dist/schemaLoad.d.ts.map +1 -1
  143. package/dist/schemaLoad.js +10 -0
  144. package/dist/schemaLoad.js.map +1 -1
  145. package/dist/sdk/AgentSkeptic.d.ts +37 -0
  146. package/dist/sdk/AgentSkeptic.d.ts.map +1 -0
  147. package/dist/sdk/AgentSkeptic.js +45 -0
  148. package/dist/sdk/AgentSkeptic.js.map +1 -0
  149. package/dist/sdk/Gate.d.ts +3 -0
  150. package/dist/sdk/Gate.d.ts.map +1 -0
  151. package/dist/sdk/Gate.js +2 -0
  152. package/dist/sdk/Gate.js.map +1 -0
  153. package/dist/sdk/_generated/openapi-types.d.ts +1034 -0
  154. package/dist/sdk/_generated/openapi-types.d.ts.map +1 -0
  155. package/dist/sdk/_generated/openapi-types.js +6 -0
  156. package/dist/sdk/_generated/openapi-types.js.map +1 -0
  157. package/dist/sdk/deprecate.d.ts +6 -0
  158. package/dist/sdk/deprecate.d.ts.map +1 -0
  159. package/dist/sdk/deprecate.js +14 -0
  160. package/dist/sdk/deprecate.js.map +1 -0
  161. package/dist/sdk/deprecatedPublicApi.d.ts +18 -0
  162. package/dist/sdk/deprecatedPublicApi.d.ts.map +1 -0
  163. package/dist/sdk/deprecatedPublicApi.js +36 -0
  164. package/dist/sdk/deprecatedPublicApi.js.map +1 -0
  165. package/dist/sdk/errors.d.ts +23 -0
  166. package/dist/sdk/errors.d.ts.map +1 -0
  167. package/dist/sdk/errors.js +28 -0
  168. package/dist/sdk/errors.js.map +1 -0
  169. package/dist/sdk/frameworks/next.d.ts +12 -0
  170. package/dist/sdk/frameworks/next.d.ts.map +1 -0
  171. package/dist/sdk/frameworks/next.js +29 -0
  172. package/dist/sdk/frameworks/next.js.map +1 -0
  173. package/dist/sdk/transport.d.ts +35 -0
  174. package/dist/sdk/transport.d.ts.map +1 -0
  175. package/dist/sdk/transport.js +180 -0
  176. package/dist/sdk/transport.js.map +1 -0
  177. package/dist/sortedJsonStringify.d.ts +2 -0
  178. package/dist/sortedJsonStringify.d.ts.map +1 -0
  179. package/dist/sortedJsonStringify.js +23 -0
  180. package/dist/sortedJsonStringify.js.map +1 -0
  181. package/dist/standardVerifyWorkflowCli.d.ts.map +1 -1
  182. package/dist/standardVerifyWorkflowCli.js +3 -2
  183. package/dist/standardVerifyWorkflowCli.js.map +1 -1
  184. package/dist/telemetry/maybeEmitOssClaimTicketUrl.d.ts +2 -0
  185. package/dist/telemetry/maybeEmitOssClaimTicketUrl.d.ts.map +1 -1
  186. package/dist/telemetry/maybeEmitOssClaimTicketUrl.js +13 -2
  187. package/dist/telemetry/maybeEmitOssClaimTicketUrl.js.map +1 -1
  188. package/dist/telemetry/postOssClaimContinuation.d.ts +1 -1
  189. package/dist/telemetry/postOssClaimContinuation.d.ts.map +1 -1
  190. package/dist/telemetry/postOssClaimContinuation.js +10 -6
  191. package/dist/telemetry/postOssClaimContinuation.js.map +1 -1
  192. package/dist/telemetry/postOssClaimTicket.d.ts +8 -0
  193. package/dist/telemetry/postOssClaimTicket.d.ts.map +1 -1
  194. package/dist/telemetry/postOssClaimTicket.js +31 -5
  195. package/dist/telemetry/postOssClaimTicket.js.map +1 -1
  196. package/dist/truthLayerError.d.ts +5 -2
  197. package/dist/truthLayerError.d.ts.map +1 -1
  198. package/dist/truthLayerError.js +6 -4
  199. package/dist/truthLayerError.js.map +1 -1
  200. package/dist/types.d.ts +10 -1
  201. package/dist/types.d.ts.map +1 -1
  202. package/dist/types.js.map +1 -1
  203. package/dist/verificationDiagnostics.d.ts.map +1 -1
  204. package/dist/verificationDiagnostics.js +4 -1
  205. package/dist/verificationDiagnostics.js.map +1 -1
  206. package/dist/verificationPolicy.d.ts.map +1 -1
  207. package/dist/verificationPolicy.js +13 -0
  208. package/dist/verificationPolicy.js.map +1 -1
  209. package/dist/verificationUserPhrases.d.ts.map +1 -1
  210. package/dist/verificationUserPhrases.js +3 -0
  211. package/dist/verificationUserPhrases.js.map +1 -1
  212. package/dist/verify/batchVerifyTelemetrySubcommand.d.ts.map +1 -1
  213. package/dist/verify/batchVerifyTelemetrySubcommand.js +8 -1
  214. package/dist/verify/batchVerifyTelemetrySubcommand.js.map +1 -1
  215. package/dist/verifyAgentskeptic.d.ts +1 -1
  216. package/dist/verifyAgentskeptic.d.ts.map +1 -1
  217. package/dist/verifyAgentskeptic.js +3 -3
  218. package/dist/verifyAgentskeptic.js.map +1 -1
  219. package/dist/verifyAgentskeptic.test.js +5 -5
  220. package/dist/verifyAgentskeptic.test.js.map +1 -1
  221. package/dist/wireReasonCodes.d.ts +3 -0
  222. package/dist/wireReasonCodes.d.ts.map +1 -1
  223. package/dist/wireReasonCodes.js +3 -0
  224. package/dist/wireReasonCodes.js.map +1 -1
  225. package/package.json +47 -9
  226. package/schemas/agentskeptic-error-codes.json +608 -0
  227. package/schemas/compare-run-manifest-v1.schema.json +65 -0
  228. package/schemas/conformance-normalized-result.schema.json +73 -0
  229. package/schemas/connector-capabilities.schema.json +38 -0
  230. package/schemas/contract/v1.json +65 -0
  231. package/schemas/contract-manifest.schema.json +130 -0
  232. package/schemas/execution-trace-view.schema.json +1 -1
  233. package/schemas/openapi-commercial-v1.in.yaml +584 -14
  234. package/schemas/openapi-commercial-v1.yaml +584 -14
  235. package/schemas/{registry-draft-response-v1.schema.json → registry-draft-llm-partial-v1.schema.json} +9 -5
  236. package/schemas/registry-draft-response-v2.schema.json +52 -0
  237. package/schemas/regression-artifact-v1.schema.json +212 -0
  238. package/scripts/discovery-payload.lib.cjs +9 -3
  239. package/scripts/emit-primary-marketing.cjs +37 -0
@@ -1,14 +1,18 @@
1
1
  openapi: "3.0.3"
2
2
  info:
3
3
  title: AgentSkeptic commercial license API
4
- version: "1.0.0"
4
+ version: "1.4.0"
5
5
  contact:
6
6
  url: https://agentskeptic.com
7
7
  x-agentskeptic-distribution:
8
8
  repository: https://github.com/jwekavanagh/agentskeptic
9
9
  npmPackage: https://www.npmjs.com/package/agentskeptic
10
10
  openApi: https://agentskeptic.com/openapi-commercial-v1.yaml
11
- description: "Read-only checks at verify time—not color.\n\nMachine-readable contract for license preflight used by the published npm CLI.\nBase URL is your deployed app origin (same as NEXT_PUBLIC_APP_URL).\n"
11
+ x-agentskeptic-contract:
12
+ url: https://agentskeptic.com/contract/v1.json
13
+ version: "1.0.1"
14
+ manifestSha256: "c5f23ec43576716c4b9a13e752cd2962a78bb4b4da1f9e521f911e15dfd80268"
15
+ description: "Read-only checks at verify time—not color.\n\nMachine-readable contract for license preflight used by the published npm CLI.\nBase URL is your deployed app origin (same as NEXT_PUBLIC_APP_URL).\n\nEvery path in this document returns an `x-request-id` response header on all status codes (echo a valid client `x-request-id` when supplied; otherwise server-generated). Non-2xx JSON bodies follow RFC 7807-style Problem Details (`type`, `title`, `status`, `detail`, optional `code`, `instance`) unless noted; `POST /api/v1/usage/reserve` denials additionally include legacy `allowed`, `code`, `message`, and optional `upgrade_url` for backward compatibility.\n"
12
16
  externalDocs:
13
17
  description: "First-run integration guide"
14
18
  url: https://agentskeptic.com/integrate
@@ -45,7 +49,7 @@ paths:
45
49
  schema:
46
50
  $ref: "#/components/schemas/ReserveError"
47
51
  "401":
48
- description: Invalid or revoked API key
52
+ description: Invalid API key or key lifecycle denial (revoked, disabled, expired)
49
53
  content:
50
54
  application/json:
51
55
  schema:
@@ -73,6 +77,142 @@ paths:
73
77
  application/json:
74
78
  schema:
75
79
  $ref: "#/components/schemas/CommercialPlansResponse"
80
+ "503":
81
+ description: Plans configuration unavailable
82
+ content:
83
+ application/json:
84
+ schema:
85
+ $ref: "#/components/schemas/ProblemDetails"
86
+ /api/v1/usage/current:
87
+ get:
88
+ operationId: getCurrentUsage
89
+ summary: Current usage and quota status for authenticated API key principal
90
+ security:
91
+ - bearerAuth: []
92
+ responses:
93
+ "200":
94
+ description: Current month usage and quota status
95
+ content:
96
+ application/json:
97
+ schema:
98
+ $ref: "#/components/schemas/UsageCurrentV1"
99
+ "401":
100
+ description: Invalid API key or key lifecycle denial
101
+ content:
102
+ application/json:
103
+ schema:
104
+ $ref: "#/components/schemas/ProblemDetails"
105
+ "403":
106
+ description: Missing required scope
107
+ content:
108
+ application/json:
109
+ schema:
110
+ $ref: "#/components/schemas/ProblemDetails"
111
+ "503":
112
+ description: Plans configuration unavailable or server error
113
+ content:
114
+ application/json:
115
+ schema:
116
+ $ref: "#/components/schemas/ProblemDetails"
117
+ /api/v1/enforcement/baselines:
118
+ post:
119
+ operationId: createEnforcementBaseline
120
+ summary: Create or replace accepted enforcement baseline for a workflow
121
+ security:
122
+ - bearerAuth: []
123
+ requestBody:
124
+ required: true
125
+ content:
126
+ application/json:
127
+ schema:
128
+ $ref: "#/components/schemas/EnforcementProjectionRequest"
129
+ responses:
130
+ "200":
131
+ description: Baseline created or replaced
132
+ content:
133
+ application/json:
134
+ schema:
135
+ $ref: "#/components/schemas/EnforcementStateResponse"
136
+ "400":
137
+ description: Invalid request
138
+ content:
139
+ application/json:
140
+ schema:
141
+ $ref: "#/components/schemas/ProblemDetails"
142
+ "401":
143
+ description: Invalid API key
144
+ content:
145
+ application/json:
146
+ schema:
147
+ $ref: "#/components/schemas/ProblemDetails"
148
+ /api/v1/enforcement/check:
149
+ post:
150
+ operationId: checkEnforcementDrift
151
+ summary: Compare current run projection against accepted baseline
152
+ security:
153
+ - bearerAuth: []
154
+ requestBody:
155
+ required: true
156
+ content:
157
+ application/json:
158
+ schema:
159
+ $ref: "#/components/schemas/EnforcementProjectionRequest"
160
+ responses:
161
+ "200":
162
+ description: Comparison result (ok or drift)
163
+ content:
164
+ application/json:
165
+ schema:
166
+ $ref: "#/components/schemas/EnforcementCheckResponse"
167
+ "409":
168
+ description: Baseline not initialized
169
+ content:
170
+ application/json:
171
+ schema:
172
+ $ref: "#/components/schemas/ProblemDetails"
173
+ /api/v1/enforcement/accept:
174
+ post:
175
+ operationId: acceptEnforcementDrift
176
+ summary: Accept current projection as new baseline
177
+ security:
178
+ - bearerAuth: []
179
+ requestBody:
180
+ required: true
181
+ content:
182
+ application/json:
183
+ schema:
184
+ $ref: "#/components/schemas/EnforcementProjectionRequest"
185
+ responses:
186
+ "200":
187
+ description: Drift accepted
188
+ content:
189
+ application/json:
190
+ schema:
191
+ $ref: "#/components/schemas/EnforcementStateResponse"
192
+ /api/v1/enforcement/history:
193
+ get:
194
+ operationId: getEnforcementHistory
195
+ summary: Retrieve enforcement timeline for one workflow
196
+ security:
197
+ - bearerAuth: []
198
+ parameters:
199
+ - name: workflow_id
200
+ in: query
201
+ required: true
202
+ schema:
203
+ type: string
204
+ - name: limit
205
+ in: query
206
+ required: false
207
+ schema:
208
+ type: integer
209
+ responses:
210
+ "200":
211
+ description: Timeline events
212
+ content:
213
+ application/json:
214
+ schema:
215
+ $ref: "#/components/schemas/EnforcementHistoryResponse"
76
216
  /api/public/verification-reports:
77
217
  post:
78
218
  operationId: createPublicVerificationReport
@@ -94,10 +234,226 @@ paths:
94
234
  $ref: "#/components/schemas/PublicVerificationReportCreated"
95
235
  "400":
96
236
  description: Invalid JSON or failed schema validation
237
+ content:
238
+ application/json:
239
+ schema:
240
+ $ref: "#/components/schemas/ProblemDetails"
97
241
  "413":
98
242
  description: Request body exceeds maximum allowed size
243
+ content:
244
+ application/json:
245
+ schema:
246
+ $ref: "#/components/schemas/ProblemDetails"
247
+ "500":
248
+ description: Server error storing report
249
+ content:
250
+ application/json:
251
+ schema:
252
+ $ref: "#/components/schemas/ProblemDetails"
99
253
  "503":
100
254
  description: Public report ingestion disabled or server unavailable
255
+ content:
256
+ application/json:
257
+ schema:
258
+ $ref: "#/components/schemas/ProblemDetails"
259
+ /api/v1/funnel/verify-outcome:
260
+ post:
261
+ operationId: postVerifyOutcomeBeacon
262
+ summary: Licensed verify-outcome beacon (idempotent per API key + run_id)
263
+ description: >
264
+ POST after a successful `POST /api/v1/usage/reserve` for the same `run_id`. Success is HTTP 204 with an empty body.
265
+ Requires Bearer API key. Body schemaVersion must be 2.
266
+ security:
267
+ - bearerAuth: []
268
+ requestBody:
269
+ required: true
270
+ content:
271
+ application/json:
272
+ schema:
273
+ $ref: "#/components/schemas/VerifyOutcomeRequestV2"
274
+ responses:
275
+ "204":
276
+ description: Beacon accepted (or duplicate ignored)
277
+ "400":
278
+ description: Invalid JSON or validation failure
279
+ content:
280
+ application/json:
281
+ schema:
282
+ $ref: "#/components/schemas/ProblemDetails"
283
+ "401":
284
+ description: Invalid API key
285
+ content:
286
+ application/json:
287
+ schema:
288
+ $ref: "#/components/schemas/ProblemDetails"
289
+ "404":
290
+ description: No reservation for this run_id
291
+ content:
292
+ application/json:
293
+ schema:
294
+ $ref: "#/components/schemas/ProblemDetails"
295
+ "410":
296
+ description: Reservation too old
297
+ content:
298
+ application/json:
299
+ schema:
300
+ $ref: "#/components/schemas/ProblemDetails"
301
+ "503":
302
+ description: Server error
303
+ content:
304
+ application/json:
305
+ schema:
306
+ $ref: "#/components/schemas/ProblemDetails"
307
+ /api/oss/claim-ticket:
308
+ post:
309
+ operationId: postOssClaimTicket
310
+ summary: Mint OSS claim ticket (CLI only; product activation headers required)
311
+ description: >
312
+ Creates or returns a handoff URL for linking a verification run to a web account.
313
+ Requires `X-AgentSkeptic-Cli-Product` and `X-AgentSkeptic-Cli-Version` headers (see website/src/lib/funnelProductActivationConstants.ts).
314
+ requestBody:
315
+ required: true
316
+ content:
317
+ application/json:
318
+ schema:
319
+ $ref: "#/components/schemas/OssClaimTicketRequest"
320
+ responses:
321
+ "200":
322
+ description: Handoff URL returned
323
+ content:
324
+ application/json:
325
+ schema:
326
+ $ref: "#/components/schemas/OssClaimTicketHandoffResponse"
327
+ "204":
328
+ description: Ticket already claimed (idempotent)
329
+ "400":
330
+ description: Bad request
331
+ content:
332
+ application/json:
333
+ schema:
334
+ $ref: "#/components/schemas/ProblemDetails"
335
+ "403":
336
+ description: Forbidden (unsupported CLI client)
337
+ content:
338
+ application/json:
339
+ schema:
340
+ $ref: "#/components/schemas/ProblemDetails"
341
+ "413":
342
+ description: Payload too large
343
+ content:
344
+ application/json:
345
+ schema:
346
+ $ref: "#/components/schemas/ProblemDetails"
347
+ "429":
348
+ description: Rate limited
349
+ content:
350
+ application/json:
351
+ schema:
352
+ $ref: "#/components/schemas/ProblemDetails"
353
+ "503":
354
+ description: Server error
355
+ content:
356
+ application/json:
357
+ schema:
358
+ $ref: "#/components/schemas/ProblemDetails"
359
+ /api/oss/claim-redeem:
360
+ post:
361
+ operationId: postOssClaimRedeem
362
+ summary: Redeem OSS claim ticket (browser session; optional claim_secret in body)
363
+ description: Requires an authenticated session; prefers pending cookie from GET /verify/link.
364
+ requestBody:
365
+ required: true
366
+ content:
367
+ application/json:
368
+ schema:
369
+ $ref: "#/components/schemas/OssClaimRedeemRequest"
370
+ responses:
371
+ "200":
372
+ description: Redeemed; returns run summary
373
+ content:
374
+ application/json:
375
+ schema:
376
+ $ref: "#/components/schemas/OssClaimRedeemOk"
377
+ "400":
378
+ description: Claim failed or expired
379
+ content:
380
+ application/json:
381
+ schema:
382
+ $ref: "#/components/schemas/ProblemDetails"
383
+ "401":
384
+ description: Not signed in
385
+ content:
386
+ application/json:
387
+ schema:
388
+ $ref: "#/components/schemas/ProblemDetails"
389
+ "409":
390
+ description: Already linked to another account
391
+ content:
392
+ application/json:
393
+ schema:
394
+ $ref: "#/components/schemas/ProblemDetails"
395
+ "429":
396
+ description: Rate limited
397
+ content:
398
+ application/json:
399
+ schema:
400
+ $ref: "#/components/schemas/ProblemDetails"
401
+ "503":
402
+ description: Server error
403
+ content:
404
+ application/json:
405
+ schema:
406
+ $ref: "#/components/schemas/ProblemDetails"
407
+ /api/oss/claim-continuation:
408
+ post:
409
+ operationId: postOssClaimContinuation
410
+ summary: Record browser-open acknowledgement for interactive-human tickets (CLI only)
411
+ requestBody:
412
+ required: true
413
+ content:
414
+ application/json:
415
+ schema:
416
+ $ref: "#/components/schemas/OssClaimContinuationRequest"
417
+ responses:
418
+ "204":
419
+ description: Recorded or already recorded
420
+ "400":
421
+ description: Bad request
422
+ content:
423
+ application/json:
424
+ schema:
425
+ $ref: "#/components/schemas/ProblemDetails"
426
+ "403":
427
+ description: Not applicable or forbidden
428
+ content:
429
+ application/json:
430
+ schema:
431
+ $ref: "#/components/schemas/ProblemDetails"
432
+ "413":
433
+ description: Payload too large
434
+ content:
435
+ application/json:
436
+ schema:
437
+ $ref: "#/components/schemas/ProblemDetails"
438
+ "503":
439
+ description: Server error
440
+ content:
441
+ application/json:
442
+ schema:
443
+ $ref: "#/components/schemas/ProblemDetails"
444
+ /api/oss/claim-handoff:
445
+ get:
446
+ operationId: getOssClaimHandoffLegacy
447
+ summary: Legacy handoff redirect (308 to /verify/link)
448
+ parameters:
449
+ - name: h
450
+ in: query
451
+ required: true
452
+ schema:
453
+ type: string
454
+ responses:
455
+ "308":
456
+ description: Redirect to /verify/link?h=…
101
457
  components:
102
458
  securitySchemes:
103
459
  bearerAuth:
@@ -105,6 +461,165 @@ components:
105
461
  scheme: bearer
106
462
  bearerFormat: API key
107
463
  schemas:
464
+ EnforcementProjectionRequest:
465
+ type: object
466
+ required: [run_id, workflow_id, projection_hash, projection]
467
+ properties:
468
+ run_id:
469
+ type: string
470
+ workflow_id:
471
+ type: string
472
+ projection_hash:
473
+ type: string
474
+ projection:
475
+ type: object
476
+ additionalProperties: true
477
+ EnforcementStateResponse:
478
+ type: object
479
+ required: [schema_version, status, workflow_id]
480
+ properties:
481
+ schema_version:
482
+ type: integer
483
+ const: 1
484
+ status:
485
+ type: string
486
+ workflow_id:
487
+ type: string
488
+ EnforcementCheckResponse:
489
+ allOf:
490
+ - $ref: "#/components/schemas/EnforcementStateResponse"
491
+ - type: object
492
+ required: [expected_projection_hash, actual_projection_hash]
493
+ properties:
494
+ expected_projection_hash:
495
+ type: string
496
+ actual_projection_hash:
497
+ type: string
498
+ EnforcementHistoryResponse:
499
+ type: object
500
+ required: [schema_version, workflow_id, events]
501
+ properties:
502
+ schema_version:
503
+ type: integer
504
+ const: 1
505
+ workflow_id:
506
+ type: string
507
+ events:
508
+ type: array
509
+ items:
510
+ type: object
511
+ additionalProperties: true
512
+ ProblemDetails:
513
+ type: object
514
+ required: [type, title, status, detail]
515
+ properties:
516
+ type:
517
+ type: string
518
+ format: uri
519
+ title:
520
+ type: string
521
+ status:
522
+ type: integer
523
+ detail:
524
+ type: string
525
+ instance:
526
+ type: string
527
+ code:
528
+ type: string
529
+ VerifyOutcomeRequestV2:
530
+ type: object
531
+ required:
532
+ - schema_version
533
+ - run_id
534
+ - workflow_id
535
+ - trust_decision
536
+ - reason_codes
537
+ - terminal_status
538
+ - workload_class
539
+ - subcommand
540
+ properties:
541
+ schema_version:
542
+ type: integer
543
+ const: 2
544
+ run_id:
545
+ type: string
546
+ maxLength: 256
547
+ workflow_id:
548
+ type: string
549
+ maxLength: 512
550
+ trust_decision:
551
+ type: string
552
+ enum: [safe, unsafe, unknown]
553
+ reason_codes:
554
+ type: array
555
+ maxItems: 8
556
+ items:
557
+ type: string
558
+ terminal_status:
559
+ type: string
560
+ enum: [complete, inconsistent, incomplete]
561
+ workload_class:
562
+ type: string
563
+ enum: [bundled_examples, non_bundled]
564
+ subcommand:
565
+ type: string
566
+ enum: [batch_verify, quick_verify, verify_integrator_owned]
567
+ OssClaimTicketRequest:
568
+ type: object
569
+ description: v1 or v2 OSS claim ticket wire shape (see website/src/lib/ossClaimTicketPayload.ts).
570
+ additionalProperties: true
571
+ OssClaimTicketHandoffResponse:
572
+ type: object
573
+ required: [schema_version, handoff_url]
574
+ properties:
575
+ schema_version:
576
+ type: integer
577
+ const: 2
578
+ handoff_url:
579
+ type: string
580
+ format: uri
581
+ OssClaimRedeemRequest:
582
+ type: object
583
+ properties:
584
+ claim_secret:
585
+ type: string
586
+ pattern: "^[0-9a-f]{64}$"
587
+ additionalProperties: true
588
+ OssClaimRedeemOk:
589
+ type: object
590
+ required:
591
+ - schema_version
592
+ - run_id
593
+ - terminal_status
594
+ - workload_class
595
+ - subcommand
596
+ - build_profile
597
+ - claimed_at
598
+ properties:
599
+ schema_version:
600
+ type: integer
601
+ const: 1
602
+ run_id:
603
+ type: string
604
+ terminal_status:
605
+ type: string
606
+ workload_class:
607
+ type: string
608
+ subcommand:
609
+ type: string
610
+ build_profile:
611
+ type: string
612
+ claimed_at:
613
+ type: string
614
+ format: date-time
615
+ OssClaimContinuationRequest:
616
+ type: object
617
+ required: [claim_secret]
618
+ properties:
619
+ claim_secret:
620
+ type: string
621
+ pattern: "^[0-9a-f]{64}$"
622
+ additionalProperties: false
108
623
  PublicVerificationReportCreate:
109
624
  description: >
110
625
  POST accepts schemaVersion 2 only: { "schemaVersion": 2, "certificate": <OutcomeCertificateV1> } per
@@ -181,22 +696,77 @@ components:
181
696
  type: integer
182
697
  description: max(0, used - included_monthly) when the plan has a finite cap
183
698
  ReserveError:
699
+ allOf:
700
+ - $ref: "#/components/schemas/ProblemDetails"
701
+ - type: object
702
+ required: [allowed, code, message]
703
+ properties:
704
+ allowed:
705
+ type: boolean
706
+ enum: [false]
707
+ code:
708
+ type: string
709
+ description: >
710
+ Examples BAD_REQUEST, INVALID_KEY, QUOTA_EXCEEDED, ENFORCEMENT_REQUIRES_PAID_PLAN,
711
+ VERIFICATION_REQUIRES_SUBSCRIPTION, SUBSCRIPTION_INACTIVE, BILLING_PRICE_UNMAPPED,
712
+ INSUFFICIENT_SCOPE, KEY_EXPIRED, KEY_REVOKED, KEY_DISABLED, SERVER_ERROR
713
+ message:
714
+ type: string
715
+ upgrade_url:
716
+ type: string
717
+ format: uri
718
+ description: Present for some 403 entitlement responses
719
+ UsageCurrentV1:
184
720
  type: object
721
+ required:
722
+ - schema_version
723
+ - plan
724
+ - year_month
725
+ - period_start_utc
726
+ - period_end_utc
727
+ - used_total
728
+ - included_monthly
729
+ - allow_overage
730
+ - overage_count
731
+ - quota_state
732
+ - allowed_next
733
+ - estimated_overage_usd
185
734
  properties:
186
- allowed:
187
- type: boolean
188
- enum: [false]
189
- code:
735
+ schema_version:
736
+ type: integer
737
+ const: 1
738
+ plan:
190
739
  type: string
191
- description: >
192
- Examples BAD_REQUEST, INVALID_KEY, QUOTA_EXCEEDED, ENFORCEMENT_REQUIRES_PAID_PLAN,
193
- SUBSCRIPTION_INACTIVE, BILLING_PRICE_UNMAPPED, SERVER_ERROR
194
- message:
740
+ enum: [starter, individual, team, business, enterprise]
741
+ year_month:
195
742
  type: string
196
- upgrade_url:
743
+ pattern: "^[0-9]{4}-[0-9]{2}$"
744
+ period_start_utc:
197
745
  type: string
198
- format: uri
199
- description: Present for some 403 entitlement responses
746
+ format: date-time
747
+ period_end_utc:
748
+ type: string
749
+ format: date-time
750
+ used_total:
751
+ type: integer
752
+ minimum: 0
753
+ included_monthly:
754
+ oneOf:
755
+ - type: integer
756
+ - type: "null"
757
+ allow_overage:
758
+ type: boolean
759
+ overage_count:
760
+ type: integer
761
+ minimum: 0
762
+ quota_state:
763
+ type: string
764
+ enum: [ok, notice, warning, in_overage, at_cap]
765
+ allowed_next:
766
+ type: boolean
767
+ estimated_overage_usd:
768
+ type: string
769
+ example: "24.00"
200
770
  CommercialPlansResponse:
201
771
  type: object
202
772
  required:
@@ -1,19 +1,23 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://agentskeptic.com/schemas/registry-draft-response-v1.schema.json",
4
- "title": "RegistryDraftResponseEnvelopeV1",
3
+ "$id": "https://agentskeptic.com/schemas/registry-draft-llm-partial-v1.schema.json",
4
+ "title": "RegistryDraftLlmPartialV1",
5
+ "description": "Model output for registry draft only. Server adds schemaVersion, quickIngestInput. Not used for AJV full envelope validation.",
5
6
  "type": "object",
6
7
  "additionalProperties": false,
7
- "required": ["schemaVersion", "draft", "assumptions", "warnings", "disclaimer", "model"],
8
+ "required": ["draft", "assumptions", "warnings", "disclaimer", "model"],
8
9
  "properties": {
9
- "schemaVersion": { "type": "integer", "const": 1 },
10
10
  "draft": {
11
11
  "type": "object",
12
12
  "additionalProperties": false,
13
13
  "required": ["tools"],
14
14
  "properties": {
15
15
  "tools": {
16
- "$ref": "https://agentskeptic.com/schemas/tools-registry.schema.json"
16
+ "type": "array",
17
+ "minItems": 1,
18
+ "items": {
19
+ "type": "object"
20
+ }
17
21
  }
18
22
  }
19
23
  },