harnery 0.34.1 → 0.36.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 (692) hide show
  1. package/dist/commander.d.ts +30 -5
  2. package/dist/commander.d.ts.map +1 -1
  3. package/dist/commander.js +124 -94
  4. package/dist/commands/agents.d.ts +37 -6
  5. package/dist/commands/agents.d.ts.map +1 -1
  6. package/dist/commands/agents.js +466 -371
  7. package/dist/commands/backup.d.ts.map +1 -1
  8. package/dist/commands/backup.js +10 -10
  9. package/dist/commands/browse-session.d.ts.map +1 -1
  10. package/dist/commands/browse-session.js +12 -0
  11. package/dist/commands/browse.d.ts +1 -1
  12. package/dist/commands/browse.d.ts.map +1 -1
  13. package/dist/commands/browse.js +31 -6
  14. package/dist/commands/conversations.d.ts +10 -0
  15. package/dist/commands/conversations.d.ts.map +1 -0
  16. package/dist/commands/conversations.js +201 -0
  17. package/dist/commands/decision.d.ts.map +1 -1
  18. package/dist/commands/decision.js +2 -2
  19. package/dist/commands/deinit.d.ts.map +1 -1
  20. package/dist/commands/deinit.js +5 -0
  21. package/dist/commands/docs.d.ts.map +1 -1
  22. package/dist/commands/docs.js +13 -2
  23. package/dist/commands/doctor.d.ts +5 -0
  24. package/dist/commands/doctor.d.ts.map +1 -1
  25. package/dist/commands/doctor.js +51 -7
  26. package/dist/commands/events.d.ts.map +1 -1
  27. package/dist/commands/events.js +18 -1
  28. package/dist/commands/fetch.js +6 -5
  29. package/dist/commands/files.d.ts +22 -0
  30. package/dist/commands/files.d.ts.map +1 -0
  31. package/dist/commands/files.js +113 -0
  32. package/dist/commands/governor.js +14 -12
  33. package/dist/commands/inbox.d.ts +5 -0
  34. package/dist/commands/inbox.d.ts.map +1 -0
  35. package/dist/commands/inbox.js +57 -0
  36. package/dist/commands/init.d.ts +4 -5
  37. package/dist/commands/init.d.ts.map +1 -1
  38. package/dist/commands/init.js +63 -13
  39. package/dist/commands/ledger-v3.d.ts.map +1 -1
  40. package/dist/commands/ledger-v3.js +347 -1
  41. package/dist/commands/logs.d.ts +4 -0
  42. package/dist/commands/logs.d.ts.map +1 -0
  43. package/dist/commands/logs.js +169 -0
  44. package/dist/commands/messages.d.ts +5 -0
  45. package/dist/commands/messages.d.ts.map +1 -0
  46. package/dist/commands/messages.js +45 -0
  47. package/dist/commands/outline.d.ts +1 -1
  48. package/dist/commands/outline.d.ts.map +1 -1
  49. package/dist/commands/outline.js +2 -2
  50. package/dist/commands/presence.d.ts.map +1 -1
  51. package/dist/commands/presence.js +2 -2
  52. package/dist/commands/read.d.ts +1 -1
  53. package/dist/commands/read.d.ts.map +1 -1
  54. package/dist/commands/read.js +2 -2
  55. package/dist/commands/semantic.d.ts +4 -0
  56. package/dist/commands/semantic.d.ts.map +1 -0
  57. package/dist/commands/semantic.js +199 -0
  58. package/dist/commands/storage.d.ts +4 -0
  59. package/dist/commands/storage.d.ts.map +1 -0
  60. package/dist/commands/storage.js +238 -0
  61. package/dist/commands/tunnel.d.ts +5 -1
  62. package/dist/commands/tunnel.d.ts.map +1 -1
  63. package/dist/commands/tunnel.js +44 -31
  64. package/dist/commands/web.d.ts +3 -0
  65. package/dist/commands/web.d.ts.map +1 -1
  66. package/dist/commands/web.js +84 -7
  67. package/dist/commands/work.js +3 -3
  68. package/dist/commands/workflow.js +13 -13
  69. package/dist/core/adapters/profiles.d.ts +1 -1
  70. package/dist/core/agents/canonical-emit.d.ts +3 -0
  71. package/dist/core/agents/canonical-emit.d.ts.map +1 -1
  72. package/dist/core/agents/canonical-emit.js +12 -0
  73. package/dist/core/agents/claim-path.d.ts +11 -0
  74. package/dist/core/agents/claim-path.d.ts.map +1 -0
  75. package/dist/core/agents/claim-path.js +22 -0
  76. package/dist/core/agents/cli.js +209 -39
  77. package/dist/core/agents/coord-client.d.ts +29 -3
  78. package/dist/core/agents/coord-client.d.ts.map +1 -1
  79. package/dist/core/agents/coord-client.js +88 -9
  80. package/dist/core/agents/live-authority-v3.d.ts +47 -1
  81. package/dist/core/agents/live-authority-v3.d.ts.map +1 -1
  82. package/dist/core/agents/live-authority-v3.js +245 -13
  83. package/dist/core/agents/live-lifecycle-v3.js +9 -4
  84. package/dist/core/agents/live-observation-v3.d.ts.map +1 -1
  85. package/dist/core/agents/live-observation-v3.js +8 -3
  86. package/dist/core/agents/render/prompt-context.d.ts +9 -3
  87. package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
  88. package/dist/core/agents/render/prompt-context.js +36 -17
  89. package/dist/core/agents/rules/stop-hook.d.ts +2 -0
  90. package/dist/core/agents/rules/stop-hook.d.ts.map +1 -1
  91. package/dist/core/agents/rules/stop-hook.js +115 -22
  92. package/dist/core/agents/rules/verdict.d.ts +1 -0
  93. package/dist/core/agents/rules/verdict.d.ts.map +1 -1
  94. package/dist/core/agents/session-events.d.ts.map +1 -1
  95. package/dist/core/agents/session-events.js +4 -0
  96. package/dist/core/agents/session-finalization-state-v3.js +1 -1
  97. package/dist/core/agents/session-finalizer-v3.js +5 -1
  98. package/dist/core/agents/session-name-display.d.ts +1 -0
  99. package/dist/core/agents/session-name-display.d.ts.map +1 -1
  100. package/dist/core/agents/session-name-display.js +8 -1
  101. package/dist/core/agents/state/activity-log.d.ts +3 -0
  102. package/dist/core/agents/state/activity-log.d.ts.map +1 -1
  103. package/dist/core/agents/state/activity-log.js +6 -3
  104. package/dist/core/agents/state/heartbeat-reader.d.ts +46 -0
  105. package/dist/core/agents/state/heartbeat-reader.d.ts.map +1 -0
  106. package/dist/core/agents/state/heartbeat-reader.js +25 -0
  107. package/dist/core/agents/state/heartbeat-writer.d.ts +9 -48
  108. package/dist/core/agents/state/heartbeat-writer.d.ts.map +1 -1
  109. package/dist/core/agents/state/heartbeat-writer.js +34 -34
  110. package/dist/core/agents/state/live-coordination-view.d.ts +6 -8
  111. package/dist/core/agents/state/live-coordination-view.d.ts.map +1 -1
  112. package/dist/core/agents/state/live-coordination-view.js +16 -67
  113. package/dist/core/agents/state/live-coordination-writer.d.ts +12 -0
  114. package/dist/core/agents/state/live-coordination-writer.d.ts.map +1 -0
  115. package/dist/core/agents/state/live-coordination-writer.js +92 -0
  116. package/dist/core/agents/state/names.d.ts +9 -1
  117. package/dist/core/agents/state/names.d.ts.map +1 -1
  118. package/dist/core/agents/state/names.js +190 -182
  119. package/dist/core/agents/state/stale-sweep.d.ts.map +1 -1
  120. package/dist/core/agents/state/stale-sweep.js +23 -5
  121. package/dist/core/artifacts/constants.d.ts +5 -0
  122. package/dist/core/artifacts/constants.d.ts.map +1 -0
  123. package/dist/core/artifacts/constants.js +4 -0
  124. package/dist/core/artifacts/index.d.ts +24 -3
  125. package/dist/core/artifacts/index.d.ts.map +1 -1
  126. package/dist/core/artifacts/index.js +96 -8
  127. package/dist/core/config.d.ts +62 -4
  128. package/dist/core/config.d.ts.map +1 -1
  129. package/dist/core/config.js +98 -4
  130. package/dist/core/conversations/archive.d.ts +49 -0
  131. package/dist/core/conversations/archive.d.ts.map +1 -0
  132. package/dist/core/conversations/archive.js +136 -0
  133. package/dist/core/conversations/catalog.d.ts +10 -0
  134. package/dist/core/conversations/catalog.d.ts.map +1 -0
  135. package/dist/core/conversations/catalog.js +72 -0
  136. package/dist/core/conversations/context-pack.d.ts +6 -0
  137. package/dist/core/conversations/context-pack.d.ts.map +1 -0
  138. package/dist/core/conversations/context-pack.js +60 -0
  139. package/dist/core/conversations/contract.d.ts +155 -0
  140. package/dist/core/conversations/contract.d.ts.map +1 -0
  141. package/dist/core/conversations/contract.js +1 -0
  142. package/dist/core/conversations/evaluation.d.ts +16 -0
  143. package/dist/core/conversations/evaluation.d.ts.map +1 -0
  144. package/dist/core/conversations/evaluation.js +9 -0
  145. package/dist/core/conversations/index.d.ts +10 -0
  146. package/dist/core/conversations/index.d.ts.map +1 -0
  147. package/dist/core/conversations/index.js +9 -0
  148. package/dist/core/conversations/lifecycle.d.ts +28 -0
  149. package/dist/core/conversations/lifecycle.d.ts.map +1 -0
  150. package/dist/core/conversations/lifecycle.js +29 -0
  151. package/dist/core/conversations/normalize.d.ts +14 -0
  152. package/dist/core/conversations/normalize.d.ts.map +1 -0
  153. package/dist/core/conversations/normalize.js +82 -0
  154. package/dist/core/conversations/query.d.ts +8 -0
  155. package/dist/core/conversations/query.d.ts.map +1 -0
  156. package/dist/core/conversations/query.js +280 -0
  157. package/dist/core/conversations/search-index.d.ts +9 -0
  158. package/dist/core/conversations/search-index.d.ts.map +1 -0
  159. package/dist/core/conversations/search-index.js +29 -0
  160. package/dist/core/events/legacy-storage/canary.d.ts +18 -0
  161. package/dist/core/events/legacy-storage/canary.d.ts.map +1 -0
  162. package/dist/core/events/legacy-storage/canary.js +150 -0
  163. package/dist/core/events/legacy-storage/fence.d.ts +15 -0
  164. package/dist/core/events/legacy-storage/fence.d.ts.map +1 -0
  165. package/dist/core/events/legacy-storage/fence.js +115 -0
  166. package/dist/core/events/legacy-storage/index.d.ts +6 -0
  167. package/dist/core/events/legacy-storage/index.d.ts.map +1 -0
  168. package/dist/core/events/legacy-storage/index.js +5 -0
  169. package/dist/core/events/legacy-storage/inventory.d.ts +10 -0
  170. package/dist/core/events/legacy-storage/inventory.d.ts.map +1 -0
  171. package/dist/core/events/legacy-storage/inventory.js +40 -0
  172. package/dist/core/events/legacy-storage/manifest.d.ts +23 -0
  173. package/dist/core/events/legacy-storage/manifest.d.ts.map +1 -0
  174. package/dist/core/events/legacy-storage/manifest.js +108 -0
  175. package/dist/core/events/legacy-storage/reader.d.ts +15 -0
  176. package/dist/core/events/legacy-storage/reader.d.ts.map +1 -0
  177. package/dist/core/events/legacy-storage/reader.js +154 -0
  178. package/dist/core/events/v3/authority-outbox.d.ts +7 -2
  179. package/dist/core/events/v3/authority-outbox.d.ts.map +1 -1
  180. package/dist/core/events/v3/authority-outbox.js +16 -3
  181. package/dist/core/events/v3/base-contract.d.ts +851 -16
  182. package/dist/core/events/v3/base-contract.d.ts.map +1 -1
  183. package/dist/core/events/v3/base-contract.js +50 -7
  184. package/dist/core/events/v3/bootstrap.d.ts +39 -0
  185. package/dist/core/events/v3/bootstrap.d.ts.map +1 -1
  186. package/dist/core/events/v3/bootstrap.js +167 -3
  187. package/dist/core/events/v3/capabilities.d.ts +11 -0
  188. package/dist/core/events/v3/capabilities.d.ts.map +1 -1
  189. package/dist/core/events/v3/capabilities.js +26 -3
  190. package/dist/core/events/v3/control-witness.d.ts +44 -0
  191. package/dist/core/events/v3/control-witness.d.ts.map +1 -0
  192. package/dist/core/events/v3/control-witness.js +233 -0
  193. package/dist/core/events/v3/control-writer.d.ts +4 -0
  194. package/dist/core/events/v3/control-writer.d.ts.map +1 -0
  195. package/dist/core/events/v3/control-writer.js +16 -0
  196. package/dist/core/events/v3/control.d.ts +8 -2
  197. package/dist/core/events/v3/control.d.ts.map +1 -1
  198. package/dist/core/events/v3/control.js +46 -18
  199. package/dist/core/events/v3/coordination-transaction-recovery.d.ts +42 -0
  200. package/dist/core/events/v3/coordination-transaction-recovery.d.ts.map +1 -0
  201. package/dist/core/events/v3/coordination-transaction-recovery.js +342 -0
  202. package/dist/core/events/v3/coordination-view.d.ts.map +1 -1
  203. package/dist/core/events/v3/coordination-view.js +16 -1
  204. package/dist/core/events/v3/generated.d.ts +1 -1
  205. package/dist/core/events/v3/generated.js +1 -1
  206. package/dist/core/events/v3/index.d.ts +8 -5
  207. package/dist/core/events/v3/index.d.ts.map +1 -1
  208. package/dist/core/events/v3/index.js +7 -4
  209. package/dist/core/events/v3/latency.d.ts +31 -1
  210. package/dist/core/events/v3/latency.d.ts.map +1 -1
  211. package/dist/core/events/v3/latency.js +127 -3
  212. package/dist/core/events/v3/live-route-observer.d.ts +31 -0
  213. package/dist/core/events/v3/live-route-observer.d.ts.map +1 -0
  214. package/dist/core/events/v3/live-route-observer.js +58 -0
  215. package/dist/core/events/v3/live-routing.d.ts +42 -20
  216. package/dist/core/events/v3/live-routing.d.ts.map +1 -1
  217. package/dist/core/events/v3/live-routing.js +153 -41
  218. package/dist/core/events/v3/producers/command-recorder.d.ts.map +1 -1
  219. package/dist/core/events/v3/producers/command-recorder.js +10 -1
  220. package/dist/core/events/v3/producers/coordination-recorder.d.ts +11 -1
  221. package/dist/core/events/v3/producers/coordination-recorder.d.ts.map +1 -1
  222. package/dist/core/events/v3/producers/coordination-recorder.js +90 -13
  223. package/dist/core/events/v3/producers/diagnostic-summaries.d.ts +129 -0
  224. package/dist/core/events/v3/producers/diagnostic-summaries.d.ts.map +1 -0
  225. package/dist/core/events/v3/producers/diagnostic-summaries.js +499 -0
  226. package/dist/core/events/v3/producers/hook-base.d.ts +17 -1
  227. package/dist/core/events/v3/producers/hook-base.d.ts.map +1 -1
  228. package/dist/core/events/v3/producers/hook-base.js +83 -2
  229. package/dist/core/events/v3/producers/intake.d.ts +13 -0
  230. package/dist/core/events/v3/producers/intake.d.ts.map +1 -1
  231. package/dist/core/events/v3/producers/intake.js +36 -2
  232. package/dist/core/events/v3/producers/producer-state-observer.d.ts +8 -0
  233. package/dist/core/events/v3/producers/producer-state-observer.d.ts.map +1 -0
  234. package/dist/core/events/v3/producers/producer-state-observer.js +45 -0
  235. package/dist/core/events/v3/producers/recorder.d.ts +117 -1
  236. package/dist/core/events/v3/producers/recorder.d.ts.map +1 -1
  237. package/dist/core/events/v3/producers/recorder.js +992 -27
  238. package/dist/core/events/v3/reader.d.ts +51 -0
  239. package/dist/core/events/v3/reader.d.ts.map +1 -1
  240. package/dist/core/events/v3/reader.js +181 -1
  241. package/dist/core/events/v3/rotation-config.d.ts +9 -0
  242. package/dist/core/events/v3/rotation-config.d.ts.map +1 -0
  243. package/dist/core/events/v3/rotation-config.js +91 -0
  244. package/dist/core/events/v3/runtime-build.d.ts +11 -0
  245. package/dist/core/events/v3/runtime-build.d.ts.map +1 -0
  246. package/dist/core/events/v3/runtime-build.js +39 -0
  247. package/dist/core/events/v3/runtime-identity.d.ts +5 -0
  248. package/dist/core/events/v3/runtime-identity.d.ts.map +1 -0
  249. package/dist/core/events/v3/runtime-identity.js +18 -0
  250. package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts +52 -0
  251. package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts.map +1 -0
  252. package/dist/core/events/v3/runtime-telemetry-capabilities.js +54 -0
  253. package/dist/core/events/v3/support-storage/classify.d.ts +46 -0
  254. package/dist/core/events/v3/support-storage/classify.d.ts.map +1 -0
  255. package/dist/core/events/v3/support-storage/classify.js +149 -0
  256. package/dist/core/events/v3/support-storage/eligibility.d.ts +29 -0
  257. package/dist/core/events/v3/support-storage/eligibility.d.ts.map +1 -0
  258. package/dist/core/events/v3/support-storage/eligibility.js +35 -0
  259. package/dist/core/events/v3/support-storage/index.d.ts +10 -0
  260. package/dist/core/events/v3/support-storage/index.d.ts.map +1 -0
  261. package/dist/core/events/v3/support-storage/index.js +9 -0
  262. package/dist/core/events/v3/support-storage/inventory.d.ts +30 -0
  263. package/dist/core/events/v3/support-storage/inventory.d.ts.map +1 -0
  264. package/dist/core/events/v3/support-storage/inventory.js +94 -0
  265. package/dist/core/events/v3/support-storage/logical-authority.d.ts +14 -0
  266. package/dist/core/events/v3/support-storage/logical-authority.d.ts.map +1 -0
  267. package/dist/core/events/v3/support-storage/logical-authority.js +104 -0
  268. package/dist/core/events/v3/support-storage/maintenance.d.ts +98 -0
  269. package/dist/core/events/v3/support-storage/maintenance.d.ts.map +1 -0
  270. package/dist/core/events/v3/support-storage/maintenance.js +352 -0
  271. package/dist/core/events/v3/support-storage/pack-contract.d.ts +59 -0
  272. package/dist/core/events/v3/support-storage/pack-contract.d.ts.map +1 -0
  273. package/dist/core/events/v3/support-storage/pack-contract.js +249 -0
  274. package/dist/core/events/v3/support-storage/pack-reader.d.ts +34 -0
  275. package/dist/core/events/v3/support-storage/pack-reader.d.ts.map +1 -0
  276. package/dist/core/events/v3/support-storage/pack-reader.js +258 -0
  277. package/dist/core/events/v3/support-storage/pack-writer.d.ts +30 -0
  278. package/dist/core/events/v3/support-storage/pack-writer.d.ts.map +1 -0
  279. package/dist/core/events/v3/support-storage/pack-writer.js +268 -0
  280. package/dist/core/events/v3/support-storage/recovery.d.ts +15 -0
  281. package/dist/core/events/v3/support-storage/recovery.d.ts.map +1 -0
  282. package/dist/core/events/v3/support-storage/recovery.js +22 -0
  283. package/dist/core/events/v3/turn-telemetry.d.ts +21 -6
  284. package/dist/core/events/v3/turn-telemetry.d.ts.map +1 -1
  285. package/dist/core/events/v3/turn-telemetry.js +32 -2
  286. package/dist/core/events/v3/writer.d.ts +13 -1
  287. package/dist/core/events/v3/writer.d.ts.map +1 -1
  288. package/dist/core/events/v3/writer.js +126 -12
  289. package/dist/core/governor/plan-read.d.ts.map +1 -1
  290. package/dist/core/governor/plan-read.js +5 -21
  291. package/dist/core/governor/planning.js +6 -8
  292. package/dist/core/governor/service-read.d.ts +12 -0
  293. package/dist/core/governor/service-read.d.ts.map +1 -1
  294. package/dist/core/governor/service-read.js +266 -2
  295. package/dist/core/governor/service.d.ts +1 -0
  296. package/dist/core/governor/service.d.ts.map +1 -1
  297. package/dist/core/governor/service.js +53 -18
  298. package/dist/core/guard/evidence-v3.d.ts.map +1 -1
  299. package/dist/core/guard/evidence-v3.js +2 -0
  300. package/dist/core/hooks/adapter/events.d.ts.map +1 -1
  301. package/dist/core/hooks/adapter/events.js +1 -0
  302. package/dist/core/hooks/adapter/output.d.ts +4 -2
  303. package/dist/core/hooks/adapter/output.d.ts.map +1 -1
  304. package/dist/core/hooks/adapter/output.js +13 -5
  305. package/dist/core/hooks/adapter/parse.d.ts +3 -0
  306. package/dist/core/hooks/adapter/parse.d.ts.map +1 -1
  307. package/dist/core/hooks/adapter/parse.js +14 -0
  308. package/dist/core/hooks/adapter/runtime-telemetry.d.ts +142 -0
  309. package/dist/core/hooks/adapter/runtime-telemetry.d.ts.map +1 -0
  310. package/dist/core/hooks/adapter/runtime-telemetry.js +869 -0
  311. package/dist/core/hooks/cli.js +318 -61
  312. package/dist/core/hooks/effects/image-capture.d.ts +1 -1
  313. package/dist/core/hooks/effects/image-capture.d.ts.map +1 -1
  314. package/dist/core/hooks/effects/image-capture.js +4 -2
  315. package/dist/core/hooks/remediation-cap.d.ts +39 -0
  316. package/dist/core/hooks/remediation-cap.d.ts.map +1 -0
  317. package/dist/core/hooks/remediation-cap.js +63 -0
  318. package/dist/core/hooks/resolve/coord-root.d.ts +22 -9
  319. package/dist/core/hooks/resolve/coord-root.d.ts.map +1 -1
  320. package/dist/core/hooks/resolve/coord-root.js +92 -11
  321. package/dist/core/hooks/resolve/owner.d.ts.map +1 -1
  322. package/dist/core/hooks/resolve/owner.js +5 -0
  323. package/dist/core/hooks/resolve/transcript.d.ts +33 -9
  324. package/dist/core/hooks/resolve/transcript.d.ts.map +1 -1
  325. package/dist/core/hooks/resolve/transcript.js +33 -10
  326. package/dist/core/inbox/contract.d.ts +64 -0
  327. package/dist/core/inbox/contract.d.ts.map +1 -0
  328. package/dist/core/inbox/contract.js +13 -0
  329. package/dist/core/inbox/index.d.ts +5 -0
  330. package/dist/core/inbox/index.d.ts.map +1 -0
  331. package/dist/core/inbox/index.js +4 -0
  332. package/dist/core/inbox/lifecycle.d.ts +22 -0
  333. package/dist/core/inbox/lifecycle.d.ts.map +1 -0
  334. package/dist/core/inbox/lifecycle.js +41 -0
  335. package/dist/core/inbox/service.d.ts +36 -0
  336. package/dist/core/inbox/service.d.ts.map +1 -0
  337. package/dist/core/inbox/service.js +210 -0
  338. package/dist/core/inbox/watcher.d.ts +7 -0
  339. package/dist/core/inbox/watcher.d.ts.map +1 -0
  340. package/dist/core/inbox/watcher.js +26 -0
  341. package/dist/core/presence/codec-digest.d.ts.map +1 -1
  342. package/dist/core/presence/codec-digest.js +14 -3
  343. package/dist/core/presence/relay-client.d.ts +1 -0
  344. package/dist/core/presence/relay-client.d.ts.map +1 -1
  345. package/dist/core/presence/relay-client.js +52 -8
  346. package/dist/core/semantic/adapters.d.ts +37 -0
  347. package/dist/core/semantic/adapters.d.ts.map +1 -0
  348. package/dist/core/semantic/adapters.js +360 -0
  349. package/dist/core/semantic/contract.d.ts +1072 -0
  350. package/dist/core/semantic/contract.d.ts.map +1 -0
  351. package/dist/core/semantic/contract.js +331 -0
  352. package/dist/core/semantic/evidence.d.ts +11 -0
  353. package/dist/core/semantic/evidence.d.ts.map +1 -0
  354. package/dist/core/semantic/evidence.js +262 -0
  355. package/dist/core/semantic/index.d.ts +14 -0
  356. package/dist/core/semantic/index.d.ts.map +1 -0
  357. package/dist/core/semantic/index.js +13 -0
  358. package/dist/core/semantic/once.d.ts +38 -0
  359. package/dist/core/semantic/once.d.ts.map +1 -0
  360. package/dist/core/semantic/once.js +364 -0
  361. package/dist/core/semantic/prompt.d.ts +12 -0
  362. package/dist/core/semantic/prompt.d.ts.map +1 -0
  363. package/dist/core/semantic/prompt.js +83 -0
  364. package/dist/core/semantic/review.d.ts +144 -0
  365. package/dist/core/semantic/review.d.ts.map +1 -0
  366. package/dist/core/semantic/review.js +544 -0
  367. package/dist/core/semantic/routes.d.ts +10 -0
  368. package/dist/core/semantic/routes.d.ts.map +1 -0
  369. package/dist/core/semantic/routes.js +21 -0
  370. package/dist/core/semantic/scheduler.d.ts +27 -0
  371. package/dist/core/semantic/scheduler.d.ts.map +1 -0
  372. package/dist/core/semantic/scheduler.js +91 -0
  373. package/dist/core/semantic/service-status.d.ts +51 -0
  374. package/dist/core/semantic/service-status.d.ts.map +1 -0
  375. package/dist/core/semantic/service-status.js +140 -0
  376. package/dist/core/semantic/service.d.ts +52 -0
  377. package/dist/core/semantic/service.d.ts.map +1 -0
  378. package/dist/core/semantic/service.js +559 -0
  379. package/dist/core/semantic/soak.d.ts +75 -0
  380. package/dist/core/semantic/soak.d.ts.map +1 -0
  381. package/dist/core/semantic/soak.js +476 -0
  382. package/dist/core/semantic/storage.d.ts +81 -0
  383. package/dist/core/semantic/storage.d.ts.map +1 -0
  384. package/dist/core/semantic/storage.js +180 -0
  385. package/dist/core/semantic/usage.d.ts +43 -0
  386. package/dist/core/semantic/usage.d.ts.map +1 -0
  387. package/dist/core/semantic/usage.js +193 -0
  388. package/dist/core/semantic/validate.d.ts +18 -0
  389. package/dist/core/semantic/validate.d.ts.map +1 -0
  390. package/dist/core/semantic/validate.js +207 -0
  391. package/dist/core/storage/buffer.d.ts +28 -0
  392. package/dist/core/storage/buffer.d.ts.map +1 -0
  393. package/dist/core/storage/buffer.js +101 -0
  394. package/dist/core/storage/builtins.d.ts +3 -0
  395. package/dist/core/storage/builtins.d.ts.map +1 -0
  396. package/dist/core/storage/builtins.js +683 -0
  397. package/dist/core/storage/catalog.d.ts +19 -0
  398. package/dist/core/storage/catalog.d.ts.map +1 -0
  399. package/dist/core/storage/catalog.js +365 -0
  400. package/dist/core/storage/config.d.ts +16 -0
  401. package/dist/core/storage/config.d.ts.map +1 -0
  402. package/dist/core/storage/config.js +311 -0
  403. package/dist/core/storage/contract.d.ts +275 -0
  404. package/dist/core/storage/contract.d.ts.map +1 -0
  405. package/dist/core/storage/contract.js +3 -0
  406. package/dist/core/storage/durable-history.d.ts +36 -0
  407. package/dist/core/storage/durable-history.d.ts.map +1 -0
  408. package/dist/core/storage/durable-history.js +606 -0
  409. package/dist/core/storage/health.d.ts +4 -0
  410. package/dist/core/storage/health.d.ts.map +1 -0
  411. package/dist/core/storage/health.js +65 -0
  412. package/dist/core/storage/index.d.ts +16 -0
  413. package/dist/core/storage/index.d.ts.map +1 -0
  414. package/dist/core/storage/index.js +15 -0
  415. package/dist/core/storage/inventory.d.ts +25 -0
  416. package/dist/core/storage/inventory.d.ts.map +1 -0
  417. package/dist/core/storage/inventory.js +666 -0
  418. package/dist/core/storage/jsonl.d.ts +52 -0
  419. package/dist/core/storage/jsonl.d.ts.map +1 -0
  420. package/dist/core/storage/jsonl.js +156 -0
  421. package/dist/core/storage/log-retention.d.ts +52 -0
  422. package/dist/core/storage/log-retention.d.ts.map +1 -0
  423. package/dist/core/storage/log-retention.js +419 -0
  424. package/dist/core/storage/logger.d.ts +82 -0
  425. package/dist/core/storage/logger.d.ts.map +1 -0
  426. package/dist/core/storage/logger.js +411 -0
  427. package/dist/core/storage/maintenance-providers.d.ts +26 -0
  428. package/dist/core/storage/maintenance-providers.d.ts.map +1 -0
  429. package/dist/core/storage/maintenance-providers.js +141 -0
  430. package/dist/core/storage/maintenance.d.ts +125 -0
  431. package/dist/core/storage/maintenance.d.ts.map +1 -0
  432. package/dist/core/storage/maintenance.js +609 -0
  433. package/dist/core/storage/metrics.d.ts +60 -0
  434. package/dist/core/storage/metrics.d.ts.map +1 -0
  435. package/dist/core/storage/metrics.js +134 -0
  436. package/dist/core/storage/policy.d.ts +7 -0
  437. package/dist/core/storage/policy.d.ts.map +1 -0
  438. package/dist/core/storage/policy.js +110 -0
  439. package/dist/core/storage/process-log.d.ts +38 -0
  440. package/dist/core/storage/process-log.d.ts.map +1 -0
  441. package/dist/core/storage/process-log.js +165 -0
  442. package/dist/core/storage/query.d.ts +34 -0
  443. package/dist/core/storage/query.d.ts.map +1 -0
  444. package/dist/core/storage/query.js +295 -0
  445. package/dist/core/storage/receipts.d.ts +23 -0
  446. package/dist/core/storage/receipts.d.ts.map +1 -0
  447. package/dist/core/storage/receipts.js +117 -0
  448. package/dist/core/storage/segments.d.ts +84 -0
  449. package/dist/core/storage/segments.d.ts.map +1 -0
  450. package/dist/core/storage/segments.js +542 -0
  451. package/dist/core/storage/sink-graph.d.ts +65 -0
  452. package/dist/core/storage/sink-graph.d.ts.map +1 -0
  453. package/dist/core/storage/sink-graph.js +213 -0
  454. package/dist/core/storage/storm-control.d.ts +23 -0
  455. package/dist/core/storage/storm-control.d.ts.map +1 -0
  456. package/dist/core/storage/storm-control.js +59 -0
  457. package/dist/core/work/state.d.ts.map +1 -1
  458. package/dist/core/work/state.js +10 -14
  459. package/dist/core/workflow/live-session-v3.d.ts.map +1 -1
  460. package/dist/core/workflow/live-session-v3.js +2 -1
  461. package/dist/index.d.ts +2 -0
  462. package/dist/index.d.ts.map +1 -1
  463. package/dist/index.js +2 -0
  464. package/dist/lazy-commands.d.ts +26 -0
  465. package/dist/lazy-commands.d.ts.map +1 -0
  466. package/dist/lazy-commands.js +210 -0
  467. package/dist/lib/browser/client.d.ts +11 -0
  468. package/dist/lib/browser/client.d.ts.map +1 -1
  469. package/dist/lib/browser/client.js +13 -0
  470. package/dist/lib/browser/index.d.ts +1 -0
  471. package/dist/lib/browser/index.d.ts.map +1 -1
  472. package/dist/lib/browser/standalone-html.d.ts +25 -0
  473. package/dist/lib/browser/standalone-html.d.ts.map +1 -0
  474. package/dist/lib/browser/standalone-html.js +284 -0
  475. package/dist/lib/docs-lint.d.ts +2 -0
  476. package/dist/lib/docs-lint.d.ts.map +1 -1
  477. package/dist/lib/docs-lint.js +45 -80
  478. package/dist/lib/docs-metadata-audit.d.ts +3 -0
  479. package/dist/lib/docs-metadata-audit.d.ts.map +1 -1
  480. package/dist/lib/docs-metadata-audit.js +13 -23
  481. package/dist/lib/docs-metadata-sync.d.ts +1 -0
  482. package/dist/lib/docs-metadata-sync.d.ts.map +1 -1
  483. package/dist/lib/docs-metadata-sync.js +28 -10
  484. package/dist/lib/docs-repository-view.d.ts +22 -0
  485. package/dist/lib/docs-repository-view.d.ts.map +1 -0
  486. package/dist/lib/docs-repository-view.js +185 -0
  487. package/dist/lib/http/client.d.ts +11 -5
  488. package/dist/lib/http/client.d.ts.map +1 -1
  489. package/dist/lib/http/client.js +22 -4
  490. package/dist/lib/http/index.d.ts +1 -1
  491. package/dist/lib/http/index.d.ts.map +1 -1
  492. package/dist/lib/http/index.js +1 -1
  493. package/dist/lib/indexer-exclusions.d.ts +27 -0
  494. package/dist/lib/indexer-exclusions.d.ts.map +1 -0
  495. package/dist/lib/indexer-exclusions.js +176 -0
  496. package/dist/lib/instructions/apply.d.ts.map +1 -1
  497. package/dist/lib/instructions/apply.js +1 -0
  498. package/dist/lib/instructions/templates.d.ts +2 -0
  499. package/dist/lib/instructions/templates.d.ts.map +1 -1
  500. package/dist/lib/instructions/templates.js +149 -4
  501. package/dist/lib/local-file-url.d.ts +9 -0
  502. package/dist/lib/local-file-url.d.ts.map +1 -0
  503. package/dist/lib/local-file-url.js +20 -0
  504. package/dist/lib/web-performance.d.ts +118 -0
  505. package/dist/lib/web-performance.d.ts.map +1 -0
  506. package/dist/lib/web-performance.js +192 -0
  507. package/package.json +34 -2
  508. package/schemas/config.schema.json +58 -0
  509. package/schemas/event-v3.schema.json +3073 -581
  510. package/src/commander.ts +462 -93
  511. package/src/commands/agents.ts +617 -355
  512. package/src/commands/backup.ts +18 -14
  513. package/src/commands/browse-session.ts +12 -0
  514. package/src/commands/browse.ts +31 -9
  515. package/src/commands/conversations.ts +279 -0
  516. package/src/commands/decision.ts +8 -2
  517. package/src/commands/deinit.ts +6 -0
  518. package/src/commands/docs.ts +25 -6
  519. package/src/commands/doctor.ts +75 -9
  520. package/src/commands/events.ts +21 -1
  521. package/src/commands/fetch.ts +7 -6
  522. package/src/commands/files.ts +143 -0
  523. package/src/commands/governor.ts +13 -12
  524. package/src/commands/inbox.ts +61 -0
  525. package/src/commands/init.ts +78 -16
  526. package/src/commands/ledger-v3.ts +421 -1
  527. package/src/commands/logs.ts +224 -0
  528. package/src/commands/messages.ts +61 -0
  529. package/src/commands/outline.ts +6 -2
  530. package/src/commands/presence.ts +7 -2
  531. package/src/commands/read.ts +6 -2
  532. package/src/commands/semantic.ts +244 -0
  533. package/src/commands/storage.ts +310 -0
  534. package/src/commands/tunnel.ts +66 -52
  535. package/src/commands/web.ts +92 -7
  536. package/src/commands/work.ts +3 -3
  537. package/src/commands/workflow.ts +13 -13
  538. package/src/core/agents/canonical-emit.ts +15 -0
  539. package/src/core/agents/claim-path.ts +23 -0
  540. package/src/core/agents/cli.ts +259 -53
  541. package/src/core/agents/coord-client.ts +92 -8
  542. package/src/core/agents/live-authority-v3.ts +342 -14
  543. package/src/core/agents/live-lifecycle-v3.ts +14 -4
  544. package/src/core/agents/live-observation-v3.ts +13 -3
  545. package/src/core/agents/render/prompt-context.ts +40 -16
  546. package/src/core/agents/rules/stop-hook.ts +129 -25
  547. package/src/core/agents/rules/verdict.ts +1 -0
  548. package/src/core/agents/session-events.ts +4 -0
  549. package/src/core/agents/session-finalization-state-v3.ts +1 -1
  550. package/src/core/agents/session-finalizer-v3.ts +4 -1
  551. package/src/core/agents/session-name-display.ts +9 -1
  552. package/src/core/agents/state/activity-log.ts +7 -2
  553. package/src/core/agents/state/heartbeat-reader.ts +69 -0
  554. package/src/core/agents/state/heartbeat-writer.ts +47 -84
  555. package/src/core/agents/state/live-coordination-view.ts +17 -81
  556. package/src/core/agents/state/live-coordination-writer.ts +141 -0
  557. package/src/core/agents/state/names.ts +190 -182
  558. package/src/core/agents/state/stale-sweep.ts +25 -5
  559. package/src/core/artifacts/constants.ts +4 -0
  560. package/src/core/artifacts/index.ts +113 -8
  561. package/src/core/config.ts +126 -5
  562. package/src/core/conversations/archive.ts +237 -0
  563. package/src/core/conversations/catalog.ts +79 -0
  564. package/src/core/conversations/context-pack.ts +72 -0
  565. package/src/core/conversations/contract.ts +178 -0
  566. package/src/core/conversations/evaluation.ts +30 -0
  567. package/src/core/conversations/index.ts +9 -0
  568. package/src/core/conversations/lifecycle.ts +63 -0
  569. package/src/core/conversations/normalize.ts +105 -0
  570. package/src/core/conversations/query.ts +318 -0
  571. package/src/core/conversations/search-index.ts +48 -0
  572. package/src/core/events/legacy-storage/canary.ts +177 -0
  573. package/src/core/events/legacy-storage/fence.ts +129 -0
  574. package/src/core/events/legacy-storage/index.ts +5 -0
  575. package/src/core/events/legacy-storage/inventory.ts +51 -0
  576. package/src/core/events/legacy-storage/manifest.ts +136 -0
  577. package/src/core/events/legacy-storage/reader.ts +178 -0
  578. package/src/core/events/v3/authority-outbox.ts +22 -1
  579. package/src/core/events/v3/base-contract.ts +56 -7
  580. package/src/core/events/v3/bootstrap.ts +195 -2
  581. package/src/core/events/v3/capabilities.ts +37 -3
  582. package/src/core/events/v3/control-witness.ts +339 -0
  583. package/src/core/events/v3/control-writer.ts +16 -0
  584. package/src/core/events/v3/control.ts +54 -18
  585. package/src/core/events/v3/coordination-transaction-recovery.ts +477 -0
  586. package/src/core/events/v3/coordination-view.ts +17 -1
  587. package/src/core/events/v3/generated.ts +1 -1
  588. package/src/core/events/v3/index.ts +26 -2
  589. package/src/core/events/v3/latency.ts +213 -2
  590. package/src/core/events/v3/live-route-observer.ts +80 -0
  591. package/src/core/events/v3/live-routing.ts +182 -45
  592. package/src/core/events/v3/producers/command-recorder.ts +10 -1
  593. package/src/core/events/v3/producers/coordination-recorder.ts +112 -15
  594. package/src/core/events/v3/producers/diagnostic-summaries.ts +593 -0
  595. package/src/core/events/v3/producers/hook-base.ts +116 -2
  596. package/src/core/events/v3/producers/intake.ts +48 -2
  597. package/src/core/events/v3/producers/producer-state-observer.ts +52 -0
  598. package/src/core/events/v3/producers/recorder.ts +1403 -30
  599. package/src/core/events/v3/reader.ts +243 -2
  600. package/src/core/events/v3/rotation-config.ts +98 -0
  601. package/src/core/events/v3/runtime-build.ts +41 -0
  602. package/src/core/events/v3/runtime-identity.ts +16 -0
  603. package/src/core/events/v3/runtime-telemetry-capabilities.ts +143 -0
  604. package/src/core/events/v3/support-storage/classify.ts +209 -0
  605. package/src/core/events/v3/support-storage/eligibility.ts +58 -0
  606. package/src/core/events/v3/support-storage/index.ts +9 -0
  607. package/src/core/events/v3/support-storage/inventory.ts +135 -0
  608. package/src/core/events/v3/support-storage/logical-authority.ts +117 -0
  609. package/src/core/events/v3/support-storage/maintenance.ts +501 -0
  610. package/src/core/events/v3/support-storage/pack-contract.ts +337 -0
  611. package/src/core/events/v3/support-storage/pack-reader.ts +346 -0
  612. package/src/core/events/v3/support-storage/pack-writer.ts +352 -0
  613. package/src/core/events/v3/support-storage/recovery.ts +43 -0
  614. package/src/core/events/v3/turn-telemetry.ts +66 -5
  615. package/src/core/events/v3/writer.ts +168 -16
  616. package/src/core/governor/plan-read.ts +5 -18
  617. package/src/core/governor/planning.ts +5 -8
  618. package/src/core/governor/service-read.ts +320 -2
  619. package/src/core/governor/service.ts +49 -22
  620. package/src/core/guard/evidence-v3.ts +1 -0
  621. package/src/core/hooks/adapter/events.ts +1 -0
  622. package/src/core/hooks/adapter/output.ts +12 -5
  623. package/src/core/hooks/adapter/parse.ts +16 -0
  624. package/src/core/hooks/adapter/runtime-telemetry.ts +1200 -0
  625. package/src/core/hooks/cli.ts +342 -64
  626. package/src/core/hooks/effects/image-capture.ts +4 -1
  627. package/src/core/hooks/remediation-cap.ts +83 -0
  628. package/src/core/hooks/resolve/coord-root.ts +91 -11
  629. package/src/core/hooks/resolve/owner.ts +4 -0
  630. package/src/core/hooks/resolve/transcript.ts +55 -11
  631. package/src/core/inbox/contract.ts +81 -0
  632. package/src/core/inbox/index.ts +4 -0
  633. package/src/core/inbox/lifecycle.ts +104 -0
  634. package/src/core/inbox/service.ts +305 -0
  635. package/src/core/inbox/watcher.ts +36 -0
  636. package/src/core/presence/codec-digest.ts +15 -9
  637. package/src/core/presence/relay-client.ts +55 -7
  638. package/src/core/semantic/adapters.ts +452 -0
  639. package/src/core/semantic/contract.ts +430 -0
  640. package/src/core/semantic/evidence.ts +336 -0
  641. package/src/core/semantic/index.ts +201 -0
  642. package/src/core/semantic/once.ts +496 -0
  643. package/src/core/semantic/prompt.ts +96 -0
  644. package/src/core/semantic/review.ts +803 -0
  645. package/src/core/semantic/routes.ts +30 -0
  646. package/src/core/semantic/scheduler.ts +151 -0
  647. package/src/core/semantic/service-status.ts +212 -0
  648. package/src/core/semantic/service.ts +681 -0
  649. package/src/core/semantic/soak.ts +638 -0
  650. package/src/core/semantic/storage.ts +300 -0
  651. package/src/core/semantic/usage.ts +272 -0
  652. package/src/core/semantic/validate.ts +243 -0
  653. package/src/core/storage/buffer.ts +124 -0
  654. package/src/core/storage/builtins.ts +916 -0
  655. package/src/core/storage/catalog.ts +467 -0
  656. package/src/core/storage/config.ts +423 -0
  657. package/src/core/storage/contract.ts +342 -0
  658. package/src/core/storage/durable-history.ts +738 -0
  659. package/src/core/storage/health.ts +76 -0
  660. package/src/core/storage/index.ts +15 -0
  661. package/src/core/storage/inventory.ts +859 -0
  662. package/src/core/storage/jsonl.ts +213 -0
  663. package/src/core/storage/log-retention.ts +555 -0
  664. package/src/core/storage/logger.ts +546 -0
  665. package/src/core/storage/maintenance-providers.ts +200 -0
  666. package/src/core/storage/maintenance.ts +929 -0
  667. package/src/core/storage/metrics.ts +199 -0
  668. package/src/core/storage/policy.ts +141 -0
  669. package/src/core/storage/process-log.ts +203 -0
  670. package/src/core/storage/query.ts +360 -0
  671. package/src/core/storage/receipts.ts +162 -0
  672. package/src/core/storage/segments.ts +721 -0
  673. package/src/core/storage/sink-graph.ts +343 -0
  674. package/src/core/storage/storm-control.ts +91 -0
  675. package/src/core/work/state.ts +12 -21
  676. package/src/core/workflow/live-session-v3.ts +2 -4
  677. package/src/index.ts +2 -0
  678. package/src/lazy-commands.ts +294 -0
  679. package/src/lib/browser/client.ts +21 -0
  680. package/src/lib/browser/index.ts +4 -0
  681. package/src/lib/browser/standalone-html.ts +312 -0
  682. package/src/lib/docs-lint.ts +58 -77
  683. package/src/lib/docs-metadata-audit.ts +26 -21
  684. package/src/lib/docs-metadata-sync.ts +32 -9
  685. package/src/lib/docs-repository-view.ts +220 -0
  686. package/src/lib/http/client.ts +44 -8
  687. package/src/lib/http/index.ts +6 -1
  688. package/src/lib/indexer-exclusions.ts +173 -0
  689. package/src/lib/instructions/apply.ts +1 -0
  690. package/src/lib/instructions/templates.ts +154 -4
  691. package/src/lib/local-file-url.ts +31 -0
  692. package/src/lib/web-performance.ts +335 -0
@@ -1988,6 +1988,8 @@
1988
1988
  "adapter",
1989
1989
  "harness",
1990
1990
  "model",
1991
+ "tuning",
1992
+ "telemetry",
1991
1993
  "capability_profile",
1992
1994
  "declared_by_event_id"
1993
1995
  ],
@@ -2490,168 +2492,1346 @@
2490
2492
  }
2491
2493
  ]
2492
2494
  },
2493
- "capability_profile": {
2494
- "pattern": "^cap_[a-f0-9]{64}$",
2495
- "type": "string"
2496
- },
2497
- "declared_by_event_id": {
2498
- "pattern": "^evt_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
2499
- "type": "string"
2500
- }
2501
- }
2502
- },
2503
- "resume": {
2504
- "anyOf": [
2505
- {
2506
- "additionalProperties": false,
2507
- "type": "object",
2508
- "required": [
2509
- "state",
2510
- "value",
2511
- "attestation",
2512
- "confidence"
2513
- ],
2514
- "properties": {
2515
- "state": {
2516
- "const": "observed",
2517
- "type": "string"
2495
+ "tuning": {
2496
+ "anyOf": [
2497
+ {
2498
+ "additionalProperties": false,
2499
+ "type": "object",
2500
+ "required": [
2501
+ "state",
2502
+ "value",
2503
+ "attestation",
2504
+ "confidence"
2505
+ ],
2506
+ "properties": {
2507
+ "state": {
2508
+ "const": "observed",
2509
+ "type": "string"
2510
+ },
2511
+ "value": {
2512
+ "additionalProperties": false,
2513
+ "type": "object",
2514
+ "properties": {
2515
+ "effort": {
2516
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
2517
+ "type": "string"
2518
+ },
2519
+ "speed": {
2520
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
2521
+ "type": "string"
2522
+ }
2523
+ }
2524
+ },
2525
+ "attestation": {
2526
+ "anyOf": [
2527
+ {
2528
+ "const": "native",
2529
+ "type": "string"
2530
+ },
2531
+ {
2532
+ "const": "derived",
2533
+ "type": "string"
2534
+ },
2535
+ {
2536
+ "const": "inferred",
2537
+ "type": "string"
2538
+ }
2539
+ ]
2540
+ },
2541
+ "confidence": {
2542
+ "anyOf": [
2543
+ {
2544
+ "const": "exact",
2545
+ "type": "string"
2546
+ },
2547
+ {
2548
+ "const": "high",
2549
+ "type": "string"
2550
+ },
2551
+ {
2552
+ "const": "medium",
2553
+ "type": "string"
2554
+ },
2555
+ {
2556
+ "const": "low",
2557
+ "type": "string"
2558
+ }
2559
+ ]
2560
+ }
2561
+ }
2518
2562
  },
2519
- "value": {
2563
+ {
2520
2564
  "additionalProperties": false,
2521
2565
  "type": "object",
2522
2566
  "required": [
2523
- "prior_generation_id",
2524
- "continuity"
2567
+ "state",
2568
+ "capability"
2525
2569
  ],
2526
2570
  "properties": {
2527
- "prior_generation_id": {
2528
- "pattern": "^gen_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
2571
+ "state": {
2572
+ "const": "unsupported",
2529
2573
  "type": "string"
2530
2574
  },
2531
- "continuity": {
2532
- "const": "native",
2575
+ "capability": {
2576
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
2533
2577
  "type": "string"
2534
2578
  }
2535
2579
  }
2536
2580
  },
2537
- "attestation": {
2538
- "anyOf": [
2539
- {
2540
- "const": "native",
2581
+ {
2582
+ "additionalProperties": false,
2583
+ "type": "object",
2584
+ "required": [
2585
+ "state",
2586
+ "capability",
2587
+ "reason"
2588
+ ],
2589
+ "properties": {
2590
+ "state": {
2591
+ "const": "expected_but_missing",
2541
2592
  "type": "string"
2542
2593
  },
2543
- {
2544
- "const": "derived",
2594
+ "capability": {
2595
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
2545
2596
  "type": "string"
2546
2597
  },
2547
- {
2548
- "const": "inferred",
2598
+ "reason": {
2599
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
2549
2600
  "type": "string"
2550
2601
  }
2551
- ]
2602
+ }
2552
2603
  },
2553
- "confidence": {
2554
- "anyOf": [
2555
- {
2556
- "const": "exact",
2604
+ {
2605
+ "additionalProperties": false,
2606
+ "type": "object",
2607
+ "required": [
2608
+ "state",
2609
+ "reason"
2610
+ ],
2611
+ "properties": {
2612
+ "state": {
2613
+ "const": "redacted",
2557
2614
  "type": "string"
2558
2615
  },
2559
- {
2560
- "const": "high",
2616
+ "reason": {
2617
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
2561
2618
  "type": "string"
2562
- },
2563
- {
2564
- "const": "medium",
2619
+ }
2620
+ }
2621
+ },
2622
+ {
2623
+ "additionalProperties": false,
2624
+ "type": "object",
2625
+ "required": [
2626
+ "state",
2627
+ "reason"
2628
+ ],
2629
+ "properties": {
2630
+ "state": {
2631
+ "const": "unknown",
2565
2632
  "type": "string"
2566
2633
  },
2567
- {
2568
- "const": "low",
2634
+ "reason": {
2635
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
2569
2636
  "type": "string"
2570
2637
  }
2571
- ]
2572
- }
2573
- }
2574
- },
2575
- {
2576
- "additionalProperties": false,
2577
- "type": "object",
2578
- "required": [
2579
- "state",
2580
- "capability"
2581
- ],
2582
- "properties": {
2583
- "state": {
2584
- "const": "unsupported",
2585
- "type": "string"
2586
- },
2587
- "capability": {
2588
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
2589
- "type": "string"
2590
- }
2591
- }
2592
- },
2593
- {
2594
- "additionalProperties": false,
2595
- "type": "object",
2596
- "required": [
2597
- "state",
2598
- "capability",
2599
- "reason"
2600
- ],
2601
- "properties": {
2602
- "state": {
2603
- "const": "expected_but_missing",
2604
- "type": "string"
2605
- },
2606
- "capability": {
2607
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
2608
- "type": "string"
2609
- },
2610
- "reason": {
2611
- "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
2612
- "type": "string"
2613
- }
2614
- }
2615
- },
2616
- {
2617
- "additionalProperties": false,
2618
- "type": "object",
2619
- "required": [
2620
- "state",
2621
- "reason"
2622
- ],
2623
- "properties": {
2624
- "state": {
2625
- "const": "redacted",
2626
- "type": "string"
2638
+ }
2627
2639
  },
2628
- "reason": {
2629
- "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
2630
- "type": "string"
2640
+ {
2641
+ "additionalProperties": false,
2642
+ "type": "object",
2643
+ "required": [
2644
+ "state"
2645
+ ],
2646
+ "properties": {
2647
+ "state": {
2648
+ "const": "not_applicable",
2649
+ "type": "string"
2650
+ }
2651
+ }
2631
2652
  }
2632
- }
2653
+ ]
2633
2654
  },
2634
- {
2655
+ "telemetry": {
2635
2656
  "additionalProperties": false,
2636
2657
  "type": "object",
2637
2658
  "required": [
2638
- "state",
2639
- "reason"
2659
+ "context_usage",
2660
+ "wait_spans",
2661
+ "wait_completeness",
2662
+ "response_latency",
2663
+ "inference_timing"
2640
2664
  ],
2641
2665
  "properties": {
2642
- "state": {
2643
- "const": "unknown",
2644
- "type": "string"
2645
- },
2646
- "reason": {
2647
- "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
2648
- "type": "string"
2649
- }
2650
- }
2651
- },
2652
- {
2653
- "additionalProperties": false,
2654
- "type": "object",
2666
+ "context_usage": {
2667
+ "anyOf": [
2668
+ {
2669
+ "additionalProperties": false,
2670
+ "type": "object",
2671
+ "required": [
2672
+ "state",
2673
+ "value",
2674
+ "attestation",
2675
+ "confidence"
2676
+ ],
2677
+ "properties": {
2678
+ "state": {
2679
+ "const": "observed",
2680
+ "type": "string"
2681
+ },
2682
+ "value": {
2683
+ "additionalProperties": false,
2684
+ "type": "object",
2685
+ "required": [
2686
+ "support",
2687
+ "source",
2688
+ "completeness"
2689
+ ],
2690
+ "properties": {
2691
+ "support": {
2692
+ "anyOf": [
2693
+ {
2694
+ "const": "native",
2695
+ "type": "string"
2696
+ },
2697
+ {
2698
+ "const": "derived",
2699
+ "type": "string"
2700
+ },
2701
+ {
2702
+ "const": "conditional",
2703
+ "type": "string"
2704
+ }
2705
+ ]
2706
+ },
2707
+ "source": {
2708
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
2709
+ "type": "string"
2710
+ },
2711
+ "completeness": {
2712
+ "anyOf": [
2713
+ {
2714
+ "const": "exact",
2715
+ "type": "string"
2716
+ },
2717
+ {
2718
+ "const": "inferred",
2719
+ "type": "string"
2720
+ },
2721
+ {
2722
+ "const": "percentage_only",
2723
+ "type": "string"
2724
+ },
2725
+ {
2726
+ "const": "lower_bound",
2727
+ "type": "string"
2728
+ },
2729
+ {
2730
+ "const": "unknown",
2731
+ "type": "string"
2732
+ }
2733
+ ]
2734
+ }
2735
+ }
2736
+ },
2737
+ "attestation": {
2738
+ "anyOf": [
2739
+ {
2740
+ "const": "native",
2741
+ "type": "string"
2742
+ },
2743
+ {
2744
+ "const": "derived",
2745
+ "type": "string"
2746
+ },
2747
+ {
2748
+ "const": "inferred",
2749
+ "type": "string"
2750
+ }
2751
+ ]
2752
+ },
2753
+ "confidence": {
2754
+ "anyOf": [
2755
+ {
2756
+ "const": "exact",
2757
+ "type": "string"
2758
+ },
2759
+ {
2760
+ "const": "high",
2761
+ "type": "string"
2762
+ },
2763
+ {
2764
+ "const": "medium",
2765
+ "type": "string"
2766
+ },
2767
+ {
2768
+ "const": "low",
2769
+ "type": "string"
2770
+ }
2771
+ ]
2772
+ }
2773
+ }
2774
+ },
2775
+ {
2776
+ "additionalProperties": false,
2777
+ "type": "object",
2778
+ "required": [
2779
+ "state",
2780
+ "capability"
2781
+ ],
2782
+ "properties": {
2783
+ "state": {
2784
+ "const": "unsupported",
2785
+ "type": "string"
2786
+ },
2787
+ "capability": {
2788
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
2789
+ "type": "string"
2790
+ }
2791
+ }
2792
+ },
2793
+ {
2794
+ "additionalProperties": false,
2795
+ "type": "object",
2796
+ "required": [
2797
+ "state",
2798
+ "capability",
2799
+ "reason"
2800
+ ],
2801
+ "properties": {
2802
+ "state": {
2803
+ "const": "expected_but_missing",
2804
+ "type": "string"
2805
+ },
2806
+ "capability": {
2807
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
2808
+ "type": "string"
2809
+ },
2810
+ "reason": {
2811
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
2812
+ "type": "string"
2813
+ }
2814
+ }
2815
+ },
2816
+ {
2817
+ "additionalProperties": false,
2818
+ "type": "object",
2819
+ "required": [
2820
+ "state",
2821
+ "reason"
2822
+ ],
2823
+ "properties": {
2824
+ "state": {
2825
+ "const": "redacted",
2826
+ "type": "string"
2827
+ },
2828
+ "reason": {
2829
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
2830
+ "type": "string"
2831
+ }
2832
+ }
2833
+ },
2834
+ {
2835
+ "additionalProperties": false,
2836
+ "type": "object",
2837
+ "required": [
2838
+ "state",
2839
+ "reason"
2840
+ ],
2841
+ "properties": {
2842
+ "state": {
2843
+ "const": "unknown",
2844
+ "type": "string"
2845
+ },
2846
+ "reason": {
2847
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
2848
+ "type": "string"
2849
+ }
2850
+ }
2851
+ },
2852
+ {
2853
+ "additionalProperties": false,
2854
+ "type": "object",
2855
+ "required": [
2856
+ "state"
2857
+ ],
2858
+ "properties": {
2859
+ "state": {
2860
+ "const": "not_applicable",
2861
+ "type": "string"
2862
+ }
2863
+ }
2864
+ }
2865
+ ]
2866
+ },
2867
+ "wait_spans": {
2868
+ "anyOf": [
2869
+ {
2870
+ "additionalProperties": false,
2871
+ "type": "object",
2872
+ "required": [
2873
+ "state",
2874
+ "value",
2875
+ "attestation",
2876
+ "confidence"
2877
+ ],
2878
+ "properties": {
2879
+ "state": {
2880
+ "const": "observed",
2881
+ "type": "string"
2882
+ },
2883
+ "value": {
2884
+ "additionalProperties": false,
2885
+ "type": "object",
2886
+ "required": [
2887
+ "support",
2888
+ "source",
2889
+ "completeness"
2890
+ ],
2891
+ "properties": {
2892
+ "support": {
2893
+ "anyOf": [
2894
+ {
2895
+ "const": "native",
2896
+ "type": "string"
2897
+ },
2898
+ {
2899
+ "const": "derived",
2900
+ "type": "string"
2901
+ },
2902
+ {
2903
+ "const": "conditional",
2904
+ "type": "string"
2905
+ }
2906
+ ]
2907
+ },
2908
+ "source": {
2909
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
2910
+ "type": "string"
2911
+ },
2912
+ "completeness": {
2913
+ "anyOf": [
2914
+ {
2915
+ "const": "exact",
2916
+ "type": "string"
2917
+ },
2918
+ {
2919
+ "const": "inferred",
2920
+ "type": "string"
2921
+ },
2922
+ {
2923
+ "const": "percentage_only",
2924
+ "type": "string"
2925
+ },
2926
+ {
2927
+ "const": "lower_bound",
2928
+ "type": "string"
2929
+ },
2930
+ {
2931
+ "const": "unknown",
2932
+ "type": "string"
2933
+ }
2934
+ ]
2935
+ }
2936
+ }
2937
+ },
2938
+ "attestation": {
2939
+ "anyOf": [
2940
+ {
2941
+ "const": "native",
2942
+ "type": "string"
2943
+ },
2944
+ {
2945
+ "const": "derived",
2946
+ "type": "string"
2947
+ },
2948
+ {
2949
+ "const": "inferred",
2950
+ "type": "string"
2951
+ }
2952
+ ]
2953
+ },
2954
+ "confidence": {
2955
+ "anyOf": [
2956
+ {
2957
+ "const": "exact",
2958
+ "type": "string"
2959
+ },
2960
+ {
2961
+ "const": "high",
2962
+ "type": "string"
2963
+ },
2964
+ {
2965
+ "const": "medium",
2966
+ "type": "string"
2967
+ },
2968
+ {
2969
+ "const": "low",
2970
+ "type": "string"
2971
+ }
2972
+ ]
2973
+ }
2974
+ }
2975
+ },
2976
+ {
2977
+ "additionalProperties": false,
2978
+ "type": "object",
2979
+ "required": [
2980
+ "state",
2981
+ "capability"
2982
+ ],
2983
+ "properties": {
2984
+ "state": {
2985
+ "const": "unsupported",
2986
+ "type": "string"
2987
+ },
2988
+ "capability": {
2989
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
2990
+ "type": "string"
2991
+ }
2992
+ }
2993
+ },
2994
+ {
2995
+ "additionalProperties": false,
2996
+ "type": "object",
2997
+ "required": [
2998
+ "state",
2999
+ "capability",
3000
+ "reason"
3001
+ ],
3002
+ "properties": {
3003
+ "state": {
3004
+ "const": "expected_but_missing",
3005
+ "type": "string"
3006
+ },
3007
+ "capability": {
3008
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3009
+ "type": "string"
3010
+ },
3011
+ "reason": {
3012
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3013
+ "type": "string"
3014
+ }
3015
+ }
3016
+ },
3017
+ {
3018
+ "additionalProperties": false,
3019
+ "type": "object",
3020
+ "required": [
3021
+ "state",
3022
+ "reason"
3023
+ ],
3024
+ "properties": {
3025
+ "state": {
3026
+ "const": "redacted",
3027
+ "type": "string"
3028
+ },
3029
+ "reason": {
3030
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3031
+ "type": "string"
3032
+ }
3033
+ }
3034
+ },
3035
+ {
3036
+ "additionalProperties": false,
3037
+ "type": "object",
3038
+ "required": [
3039
+ "state",
3040
+ "reason"
3041
+ ],
3042
+ "properties": {
3043
+ "state": {
3044
+ "const": "unknown",
3045
+ "type": "string"
3046
+ },
3047
+ "reason": {
3048
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3049
+ "type": "string"
3050
+ }
3051
+ }
3052
+ },
3053
+ {
3054
+ "additionalProperties": false,
3055
+ "type": "object",
3056
+ "required": [
3057
+ "state"
3058
+ ],
3059
+ "properties": {
3060
+ "state": {
3061
+ "const": "not_applicable",
3062
+ "type": "string"
3063
+ }
3064
+ }
3065
+ }
3066
+ ]
3067
+ },
3068
+ "wait_completeness": {
3069
+ "anyOf": [
3070
+ {
3071
+ "additionalProperties": false,
3072
+ "type": "object",
3073
+ "required": [
3074
+ "state",
3075
+ "value",
3076
+ "attestation",
3077
+ "confidence"
3078
+ ],
3079
+ "properties": {
3080
+ "state": {
3081
+ "const": "observed",
3082
+ "type": "string"
3083
+ },
3084
+ "value": {
3085
+ "additionalProperties": false,
3086
+ "type": "object",
3087
+ "required": [
3088
+ "support",
3089
+ "source",
3090
+ "completeness"
3091
+ ],
3092
+ "properties": {
3093
+ "support": {
3094
+ "anyOf": [
3095
+ {
3096
+ "const": "native",
3097
+ "type": "string"
3098
+ },
3099
+ {
3100
+ "const": "derived",
3101
+ "type": "string"
3102
+ },
3103
+ {
3104
+ "const": "conditional",
3105
+ "type": "string"
3106
+ }
3107
+ ]
3108
+ },
3109
+ "source": {
3110
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3111
+ "type": "string"
3112
+ },
3113
+ "completeness": {
3114
+ "anyOf": [
3115
+ {
3116
+ "const": "exact",
3117
+ "type": "string"
3118
+ },
3119
+ {
3120
+ "const": "inferred",
3121
+ "type": "string"
3122
+ },
3123
+ {
3124
+ "const": "percentage_only",
3125
+ "type": "string"
3126
+ },
3127
+ {
3128
+ "const": "lower_bound",
3129
+ "type": "string"
3130
+ },
3131
+ {
3132
+ "const": "unknown",
3133
+ "type": "string"
3134
+ }
3135
+ ]
3136
+ }
3137
+ }
3138
+ },
3139
+ "attestation": {
3140
+ "anyOf": [
3141
+ {
3142
+ "const": "native",
3143
+ "type": "string"
3144
+ },
3145
+ {
3146
+ "const": "derived",
3147
+ "type": "string"
3148
+ },
3149
+ {
3150
+ "const": "inferred",
3151
+ "type": "string"
3152
+ }
3153
+ ]
3154
+ },
3155
+ "confidence": {
3156
+ "anyOf": [
3157
+ {
3158
+ "const": "exact",
3159
+ "type": "string"
3160
+ },
3161
+ {
3162
+ "const": "high",
3163
+ "type": "string"
3164
+ },
3165
+ {
3166
+ "const": "medium",
3167
+ "type": "string"
3168
+ },
3169
+ {
3170
+ "const": "low",
3171
+ "type": "string"
3172
+ }
3173
+ ]
3174
+ }
3175
+ }
3176
+ },
3177
+ {
3178
+ "additionalProperties": false,
3179
+ "type": "object",
3180
+ "required": [
3181
+ "state",
3182
+ "capability"
3183
+ ],
3184
+ "properties": {
3185
+ "state": {
3186
+ "const": "unsupported",
3187
+ "type": "string"
3188
+ },
3189
+ "capability": {
3190
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3191
+ "type": "string"
3192
+ }
3193
+ }
3194
+ },
3195
+ {
3196
+ "additionalProperties": false,
3197
+ "type": "object",
3198
+ "required": [
3199
+ "state",
3200
+ "capability",
3201
+ "reason"
3202
+ ],
3203
+ "properties": {
3204
+ "state": {
3205
+ "const": "expected_but_missing",
3206
+ "type": "string"
3207
+ },
3208
+ "capability": {
3209
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3210
+ "type": "string"
3211
+ },
3212
+ "reason": {
3213
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3214
+ "type": "string"
3215
+ }
3216
+ }
3217
+ },
3218
+ {
3219
+ "additionalProperties": false,
3220
+ "type": "object",
3221
+ "required": [
3222
+ "state",
3223
+ "reason"
3224
+ ],
3225
+ "properties": {
3226
+ "state": {
3227
+ "const": "redacted",
3228
+ "type": "string"
3229
+ },
3230
+ "reason": {
3231
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3232
+ "type": "string"
3233
+ }
3234
+ }
3235
+ },
3236
+ {
3237
+ "additionalProperties": false,
3238
+ "type": "object",
3239
+ "required": [
3240
+ "state",
3241
+ "reason"
3242
+ ],
3243
+ "properties": {
3244
+ "state": {
3245
+ "const": "unknown",
3246
+ "type": "string"
3247
+ },
3248
+ "reason": {
3249
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3250
+ "type": "string"
3251
+ }
3252
+ }
3253
+ },
3254
+ {
3255
+ "additionalProperties": false,
3256
+ "type": "object",
3257
+ "required": [
3258
+ "state"
3259
+ ],
3260
+ "properties": {
3261
+ "state": {
3262
+ "const": "not_applicable",
3263
+ "type": "string"
3264
+ }
3265
+ }
3266
+ }
3267
+ ]
3268
+ },
3269
+ "response_latency": {
3270
+ "anyOf": [
3271
+ {
3272
+ "additionalProperties": false,
3273
+ "type": "object",
3274
+ "required": [
3275
+ "state",
3276
+ "value",
3277
+ "attestation",
3278
+ "confidence"
3279
+ ],
3280
+ "properties": {
3281
+ "state": {
3282
+ "const": "observed",
3283
+ "type": "string"
3284
+ },
3285
+ "value": {
3286
+ "additionalProperties": false,
3287
+ "type": "object",
3288
+ "required": [
3289
+ "support",
3290
+ "source",
3291
+ "completeness"
3292
+ ],
3293
+ "properties": {
3294
+ "support": {
3295
+ "anyOf": [
3296
+ {
3297
+ "const": "native",
3298
+ "type": "string"
3299
+ },
3300
+ {
3301
+ "const": "derived",
3302
+ "type": "string"
3303
+ },
3304
+ {
3305
+ "const": "conditional",
3306
+ "type": "string"
3307
+ }
3308
+ ]
3309
+ },
3310
+ "source": {
3311
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3312
+ "type": "string"
3313
+ },
3314
+ "completeness": {
3315
+ "anyOf": [
3316
+ {
3317
+ "const": "exact",
3318
+ "type": "string"
3319
+ },
3320
+ {
3321
+ "const": "inferred",
3322
+ "type": "string"
3323
+ },
3324
+ {
3325
+ "const": "percentage_only",
3326
+ "type": "string"
3327
+ },
3328
+ {
3329
+ "const": "lower_bound",
3330
+ "type": "string"
3331
+ },
3332
+ {
3333
+ "const": "unknown",
3334
+ "type": "string"
3335
+ }
3336
+ ]
3337
+ }
3338
+ }
3339
+ },
3340
+ "attestation": {
3341
+ "anyOf": [
3342
+ {
3343
+ "const": "native",
3344
+ "type": "string"
3345
+ },
3346
+ {
3347
+ "const": "derived",
3348
+ "type": "string"
3349
+ },
3350
+ {
3351
+ "const": "inferred",
3352
+ "type": "string"
3353
+ }
3354
+ ]
3355
+ },
3356
+ "confidence": {
3357
+ "anyOf": [
3358
+ {
3359
+ "const": "exact",
3360
+ "type": "string"
3361
+ },
3362
+ {
3363
+ "const": "high",
3364
+ "type": "string"
3365
+ },
3366
+ {
3367
+ "const": "medium",
3368
+ "type": "string"
3369
+ },
3370
+ {
3371
+ "const": "low",
3372
+ "type": "string"
3373
+ }
3374
+ ]
3375
+ }
3376
+ }
3377
+ },
3378
+ {
3379
+ "additionalProperties": false,
3380
+ "type": "object",
3381
+ "required": [
3382
+ "state",
3383
+ "capability"
3384
+ ],
3385
+ "properties": {
3386
+ "state": {
3387
+ "const": "unsupported",
3388
+ "type": "string"
3389
+ },
3390
+ "capability": {
3391
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3392
+ "type": "string"
3393
+ }
3394
+ }
3395
+ },
3396
+ {
3397
+ "additionalProperties": false,
3398
+ "type": "object",
3399
+ "required": [
3400
+ "state",
3401
+ "capability",
3402
+ "reason"
3403
+ ],
3404
+ "properties": {
3405
+ "state": {
3406
+ "const": "expected_but_missing",
3407
+ "type": "string"
3408
+ },
3409
+ "capability": {
3410
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3411
+ "type": "string"
3412
+ },
3413
+ "reason": {
3414
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3415
+ "type": "string"
3416
+ }
3417
+ }
3418
+ },
3419
+ {
3420
+ "additionalProperties": false,
3421
+ "type": "object",
3422
+ "required": [
3423
+ "state",
3424
+ "reason"
3425
+ ],
3426
+ "properties": {
3427
+ "state": {
3428
+ "const": "redacted",
3429
+ "type": "string"
3430
+ },
3431
+ "reason": {
3432
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3433
+ "type": "string"
3434
+ }
3435
+ }
3436
+ },
3437
+ {
3438
+ "additionalProperties": false,
3439
+ "type": "object",
3440
+ "required": [
3441
+ "state",
3442
+ "reason"
3443
+ ],
3444
+ "properties": {
3445
+ "state": {
3446
+ "const": "unknown",
3447
+ "type": "string"
3448
+ },
3449
+ "reason": {
3450
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3451
+ "type": "string"
3452
+ }
3453
+ }
3454
+ },
3455
+ {
3456
+ "additionalProperties": false,
3457
+ "type": "object",
3458
+ "required": [
3459
+ "state"
3460
+ ],
3461
+ "properties": {
3462
+ "state": {
3463
+ "const": "not_applicable",
3464
+ "type": "string"
3465
+ }
3466
+ }
3467
+ }
3468
+ ]
3469
+ },
3470
+ "inference_timing": {
3471
+ "anyOf": [
3472
+ {
3473
+ "additionalProperties": false,
3474
+ "type": "object",
3475
+ "required": [
3476
+ "state",
3477
+ "value",
3478
+ "attestation",
3479
+ "confidence"
3480
+ ],
3481
+ "properties": {
3482
+ "state": {
3483
+ "const": "observed",
3484
+ "type": "string"
3485
+ },
3486
+ "value": {
3487
+ "additionalProperties": false,
3488
+ "type": "object",
3489
+ "required": [
3490
+ "support",
3491
+ "source",
3492
+ "completeness"
3493
+ ],
3494
+ "properties": {
3495
+ "support": {
3496
+ "anyOf": [
3497
+ {
3498
+ "const": "native",
3499
+ "type": "string"
3500
+ },
3501
+ {
3502
+ "const": "derived",
3503
+ "type": "string"
3504
+ },
3505
+ {
3506
+ "const": "conditional",
3507
+ "type": "string"
3508
+ }
3509
+ ]
3510
+ },
3511
+ "source": {
3512
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3513
+ "type": "string"
3514
+ },
3515
+ "completeness": {
3516
+ "anyOf": [
3517
+ {
3518
+ "const": "exact",
3519
+ "type": "string"
3520
+ },
3521
+ {
3522
+ "const": "inferred",
3523
+ "type": "string"
3524
+ },
3525
+ {
3526
+ "const": "percentage_only",
3527
+ "type": "string"
3528
+ },
3529
+ {
3530
+ "const": "lower_bound",
3531
+ "type": "string"
3532
+ },
3533
+ {
3534
+ "const": "unknown",
3535
+ "type": "string"
3536
+ }
3537
+ ]
3538
+ }
3539
+ }
3540
+ },
3541
+ "attestation": {
3542
+ "anyOf": [
3543
+ {
3544
+ "const": "native",
3545
+ "type": "string"
3546
+ },
3547
+ {
3548
+ "const": "derived",
3549
+ "type": "string"
3550
+ },
3551
+ {
3552
+ "const": "inferred",
3553
+ "type": "string"
3554
+ }
3555
+ ]
3556
+ },
3557
+ "confidence": {
3558
+ "anyOf": [
3559
+ {
3560
+ "const": "exact",
3561
+ "type": "string"
3562
+ },
3563
+ {
3564
+ "const": "high",
3565
+ "type": "string"
3566
+ },
3567
+ {
3568
+ "const": "medium",
3569
+ "type": "string"
3570
+ },
3571
+ {
3572
+ "const": "low",
3573
+ "type": "string"
3574
+ }
3575
+ ]
3576
+ }
3577
+ }
3578
+ },
3579
+ {
3580
+ "additionalProperties": false,
3581
+ "type": "object",
3582
+ "required": [
3583
+ "state",
3584
+ "capability"
3585
+ ],
3586
+ "properties": {
3587
+ "state": {
3588
+ "const": "unsupported",
3589
+ "type": "string"
3590
+ },
3591
+ "capability": {
3592
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3593
+ "type": "string"
3594
+ }
3595
+ }
3596
+ },
3597
+ {
3598
+ "additionalProperties": false,
3599
+ "type": "object",
3600
+ "required": [
3601
+ "state",
3602
+ "capability",
3603
+ "reason"
3604
+ ],
3605
+ "properties": {
3606
+ "state": {
3607
+ "const": "expected_but_missing",
3608
+ "type": "string"
3609
+ },
3610
+ "capability": {
3611
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3612
+ "type": "string"
3613
+ },
3614
+ "reason": {
3615
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3616
+ "type": "string"
3617
+ }
3618
+ }
3619
+ },
3620
+ {
3621
+ "additionalProperties": false,
3622
+ "type": "object",
3623
+ "required": [
3624
+ "state",
3625
+ "reason"
3626
+ ],
3627
+ "properties": {
3628
+ "state": {
3629
+ "const": "redacted",
3630
+ "type": "string"
3631
+ },
3632
+ "reason": {
3633
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3634
+ "type": "string"
3635
+ }
3636
+ }
3637
+ },
3638
+ {
3639
+ "additionalProperties": false,
3640
+ "type": "object",
3641
+ "required": [
3642
+ "state",
3643
+ "reason"
3644
+ ],
3645
+ "properties": {
3646
+ "state": {
3647
+ "const": "unknown",
3648
+ "type": "string"
3649
+ },
3650
+ "reason": {
3651
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3652
+ "type": "string"
3653
+ }
3654
+ }
3655
+ },
3656
+ {
3657
+ "additionalProperties": false,
3658
+ "type": "object",
3659
+ "required": [
3660
+ "state"
3661
+ ],
3662
+ "properties": {
3663
+ "state": {
3664
+ "const": "not_applicable",
3665
+ "type": "string"
3666
+ }
3667
+ }
3668
+ }
3669
+ ]
3670
+ }
3671
+ }
3672
+ },
3673
+ "capability_profile": {
3674
+ "pattern": "^cap_[a-f0-9]{64}$",
3675
+ "type": "string"
3676
+ },
3677
+ "declared_by_event_id": {
3678
+ "pattern": "^evt_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
3679
+ "type": "string"
3680
+ }
3681
+ }
3682
+ },
3683
+ "resume": {
3684
+ "anyOf": [
3685
+ {
3686
+ "additionalProperties": false,
3687
+ "type": "object",
3688
+ "required": [
3689
+ "state",
3690
+ "value",
3691
+ "attestation",
3692
+ "confidence"
3693
+ ],
3694
+ "properties": {
3695
+ "state": {
3696
+ "const": "observed",
3697
+ "type": "string"
3698
+ },
3699
+ "value": {
3700
+ "additionalProperties": false,
3701
+ "type": "object",
3702
+ "required": [
3703
+ "prior_generation_id",
3704
+ "continuity"
3705
+ ],
3706
+ "properties": {
3707
+ "prior_generation_id": {
3708
+ "pattern": "^gen_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
3709
+ "type": "string"
3710
+ },
3711
+ "continuity": {
3712
+ "const": "native",
3713
+ "type": "string"
3714
+ }
3715
+ }
3716
+ },
3717
+ "attestation": {
3718
+ "anyOf": [
3719
+ {
3720
+ "const": "native",
3721
+ "type": "string"
3722
+ },
3723
+ {
3724
+ "const": "derived",
3725
+ "type": "string"
3726
+ },
3727
+ {
3728
+ "const": "inferred",
3729
+ "type": "string"
3730
+ }
3731
+ ]
3732
+ },
3733
+ "confidence": {
3734
+ "anyOf": [
3735
+ {
3736
+ "const": "exact",
3737
+ "type": "string"
3738
+ },
3739
+ {
3740
+ "const": "high",
3741
+ "type": "string"
3742
+ },
3743
+ {
3744
+ "const": "medium",
3745
+ "type": "string"
3746
+ },
3747
+ {
3748
+ "const": "low",
3749
+ "type": "string"
3750
+ }
3751
+ ]
3752
+ }
3753
+ }
3754
+ },
3755
+ {
3756
+ "additionalProperties": false,
3757
+ "type": "object",
3758
+ "required": [
3759
+ "state",
3760
+ "capability"
3761
+ ],
3762
+ "properties": {
3763
+ "state": {
3764
+ "const": "unsupported",
3765
+ "type": "string"
3766
+ },
3767
+ "capability": {
3768
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3769
+ "type": "string"
3770
+ }
3771
+ }
3772
+ },
3773
+ {
3774
+ "additionalProperties": false,
3775
+ "type": "object",
3776
+ "required": [
3777
+ "state",
3778
+ "capability",
3779
+ "reason"
3780
+ ],
3781
+ "properties": {
3782
+ "state": {
3783
+ "const": "expected_but_missing",
3784
+ "type": "string"
3785
+ },
3786
+ "capability": {
3787
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3788
+ "type": "string"
3789
+ },
3790
+ "reason": {
3791
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3792
+ "type": "string"
3793
+ }
3794
+ }
3795
+ },
3796
+ {
3797
+ "additionalProperties": false,
3798
+ "type": "object",
3799
+ "required": [
3800
+ "state",
3801
+ "reason"
3802
+ ],
3803
+ "properties": {
3804
+ "state": {
3805
+ "const": "redacted",
3806
+ "type": "string"
3807
+ },
3808
+ "reason": {
3809
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3810
+ "type": "string"
3811
+ }
3812
+ }
3813
+ },
3814
+ {
3815
+ "additionalProperties": false,
3816
+ "type": "object",
3817
+ "required": [
3818
+ "state",
3819
+ "reason"
3820
+ ],
3821
+ "properties": {
3822
+ "state": {
3823
+ "const": "unknown",
3824
+ "type": "string"
3825
+ },
3826
+ "reason": {
3827
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3828
+ "type": "string"
3829
+ }
3830
+ }
3831
+ },
3832
+ {
3833
+ "additionalProperties": false,
3834
+ "type": "object",
2655
3835
  "required": [
2656
3836
  "state"
2657
3837
  ],
@@ -2963,119 +4143,611 @@
2963
4143
  "const": "exact",
2964
4144
  "type": "string"
2965
4145
  },
2966
- {
2967
- "const": "high",
2968
- "type": "string"
4146
+ {
4147
+ "const": "high",
4148
+ "type": "string"
4149
+ },
4150
+ {
4151
+ "const": "medium",
4152
+ "type": "string"
4153
+ },
4154
+ {
4155
+ "const": "low",
4156
+ "type": "string"
4157
+ }
4158
+ ]
4159
+ },
4160
+ "source_record_id": {
4161
+ "pattern": "^(sid|tid|hid)_[a-f0-9]{64}$",
4162
+ "type": "string"
4163
+ },
4164
+ "attribution": {
4165
+ "additionalProperties": false,
4166
+ "type": "object",
4167
+ "required": [
4168
+ "method",
4169
+ "state"
4170
+ ],
4171
+ "properties": {
4172
+ "method": {
4173
+ "anyOf": [
4174
+ {
4175
+ "const": "session_env",
4176
+ "type": "string"
4177
+ },
4178
+ {
4179
+ "const": "native_payload",
4180
+ "type": "string"
4181
+ },
4182
+ {
4183
+ "const": "heartbeat_match",
4184
+ "type": "string"
4185
+ },
4186
+ {
4187
+ "const": "explicit_argument",
4188
+ "type": "string"
4189
+ },
4190
+ {
4191
+ "const": "unattributed",
4192
+ "type": "string"
4193
+ }
4194
+ ]
4195
+ },
4196
+ "state": {
4197
+ "anyOf": [
4198
+ {
4199
+ "const": "verified",
4200
+ "type": "string"
4201
+ },
4202
+ {
4203
+ "const": "unverified",
4204
+ "type": "string"
4205
+ },
4206
+ {
4207
+ "const": "conflict",
4208
+ "type": "string"
4209
+ }
4210
+ ]
2969
4211
  },
2970
- {
2971
- "const": "medium",
4212
+ "observer_instance_id": {
4213
+ "pattern": "^inst_[a-zA-Z0-9._-]{1,128}$",
2972
4214
  "type": "string"
2973
4215
  },
2974
- {
2975
- "const": "low",
4216
+ "subject_instance_id": {
4217
+ "pattern": "^inst_[a-zA-Z0-9._-]{1,128}$",
2976
4218
  "type": "string"
2977
4219
  }
2978
- ]
2979
- },
2980
- "source_record_id": {
2981
- "pattern": "^(sid|tid|hid)_[a-f0-9]{64}$",
4220
+ }
4221
+ }
4222
+ }
4223
+ },
4224
+ "payload": {
4225
+ "additionalProperties": false,
4226
+ "type": "object",
4227
+ "required": [
4228
+ "prior_attestation_id",
4229
+ "runtime_attestation",
4230
+ "reason"
4231
+ ],
4232
+ "properties": {
4233
+ "prior_attestation_id": {
4234
+ "pattern": "^att_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
2982
4235
  "type": "string"
2983
4236
  },
2984
- "attribution": {
4237
+ "runtime_attestation": {
2985
4238
  "additionalProperties": false,
2986
4239
  "type": "object",
2987
4240
  "required": [
2988
- "method",
2989
- "state"
4241
+ "attestation_id",
4242
+ "generation_id",
4243
+ "adapter",
4244
+ "harness",
4245
+ "model",
4246
+ "tuning",
4247
+ "telemetry",
4248
+ "capability_profile",
4249
+ "declared_by_event_id"
2990
4250
  ],
2991
4251
  "properties": {
2992
- "method": {
4252
+ "attestation_id": {
4253
+ "pattern": "^att_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
4254
+ "type": "string"
4255
+ },
4256
+ "generation_id": {
4257
+ "pattern": "^gen_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
4258
+ "type": "string"
4259
+ },
4260
+ "adapter": {
4261
+ "anyOf": [
4262
+ {
4263
+ "additionalProperties": false,
4264
+ "type": "object",
4265
+ "required": [
4266
+ "state",
4267
+ "value",
4268
+ "attestation",
4269
+ "confidence"
4270
+ ],
4271
+ "properties": {
4272
+ "state": {
4273
+ "const": "observed",
4274
+ "type": "string"
4275
+ },
4276
+ "value": {
4277
+ "additionalProperties": false,
4278
+ "type": "object",
4279
+ "required": [
4280
+ "id"
4281
+ ],
4282
+ "properties": {
4283
+ "id": {
4284
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4285
+ "type": "string"
4286
+ },
4287
+ "version": {
4288
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4289
+ "type": "string"
4290
+ }
4291
+ }
4292
+ },
4293
+ "attestation": {
4294
+ "anyOf": [
4295
+ {
4296
+ "const": "native",
4297
+ "type": "string"
4298
+ },
4299
+ {
4300
+ "const": "derived",
4301
+ "type": "string"
4302
+ },
4303
+ {
4304
+ "const": "inferred",
4305
+ "type": "string"
4306
+ }
4307
+ ]
4308
+ },
4309
+ "confidence": {
4310
+ "anyOf": [
4311
+ {
4312
+ "const": "exact",
4313
+ "type": "string"
4314
+ },
4315
+ {
4316
+ "const": "high",
4317
+ "type": "string"
4318
+ },
4319
+ {
4320
+ "const": "medium",
4321
+ "type": "string"
4322
+ },
4323
+ {
4324
+ "const": "low",
4325
+ "type": "string"
4326
+ }
4327
+ ]
4328
+ }
4329
+ }
4330
+ },
4331
+ {
4332
+ "additionalProperties": false,
4333
+ "type": "object",
4334
+ "required": [
4335
+ "state",
4336
+ "capability"
4337
+ ],
4338
+ "properties": {
4339
+ "state": {
4340
+ "const": "unsupported",
4341
+ "type": "string"
4342
+ },
4343
+ "capability": {
4344
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4345
+ "type": "string"
4346
+ }
4347
+ }
4348
+ },
4349
+ {
4350
+ "additionalProperties": false,
4351
+ "type": "object",
4352
+ "required": [
4353
+ "state",
4354
+ "capability",
4355
+ "reason"
4356
+ ],
4357
+ "properties": {
4358
+ "state": {
4359
+ "const": "expected_but_missing",
4360
+ "type": "string"
4361
+ },
4362
+ "capability": {
4363
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4364
+ "type": "string"
4365
+ },
4366
+ "reason": {
4367
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
4368
+ "type": "string"
4369
+ }
4370
+ }
4371
+ },
4372
+ {
4373
+ "additionalProperties": false,
4374
+ "type": "object",
4375
+ "required": [
4376
+ "state",
4377
+ "reason"
4378
+ ],
4379
+ "properties": {
4380
+ "state": {
4381
+ "const": "redacted",
4382
+ "type": "string"
4383
+ },
4384
+ "reason": {
4385
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
4386
+ "type": "string"
4387
+ }
4388
+ }
4389
+ },
4390
+ {
4391
+ "additionalProperties": false,
4392
+ "type": "object",
4393
+ "required": [
4394
+ "state",
4395
+ "reason"
4396
+ ],
4397
+ "properties": {
4398
+ "state": {
4399
+ "const": "unknown",
4400
+ "type": "string"
4401
+ },
4402
+ "reason": {
4403
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
4404
+ "type": "string"
4405
+ }
4406
+ }
4407
+ },
4408
+ {
4409
+ "additionalProperties": false,
4410
+ "type": "object",
4411
+ "required": [
4412
+ "state"
4413
+ ],
4414
+ "properties": {
4415
+ "state": {
4416
+ "const": "not_applicable",
4417
+ "type": "string"
4418
+ }
4419
+ }
4420
+ }
4421
+ ]
4422
+ },
4423
+ "harness": {
2993
4424
  "anyOf": [
2994
4425
  {
2995
- "const": "session_env",
2996
- "type": "string"
4426
+ "additionalProperties": false,
4427
+ "type": "object",
4428
+ "required": [
4429
+ "state",
4430
+ "value",
4431
+ "attestation",
4432
+ "confidence"
4433
+ ],
4434
+ "properties": {
4435
+ "state": {
4436
+ "const": "observed",
4437
+ "type": "string"
4438
+ },
4439
+ "value": {
4440
+ "additionalProperties": false,
4441
+ "type": "object",
4442
+ "required": [
4443
+ "id"
4444
+ ],
4445
+ "properties": {
4446
+ "id": {
4447
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4448
+ "type": "string"
4449
+ },
4450
+ "version": {
4451
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4452
+ "type": "string"
4453
+ }
4454
+ }
4455
+ },
4456
+ "attestation": {
4457
+ "anyOf": [
4458
+ {
4459
+ "const": "native",
4460
+ "type": "string"
4461
+ },
4462
+ {
4463
+ "const": "derived",
4464
+ "type": "string"
4465
+ },
4466
+ {
4467
+ "const": "inferred",
4468
+ "type": "string"
4469
+ }
4470
+ ]
4471
+ },
4472
+ "confidence": {
4473
+ "anyOf": [
4474
+ {
4475
+ "const": "exact",
4476
+ "type": "string"
4477
+ },
4478
+ {
4479
+ "const": "high",
4480
+ "type": "string"
4481
+ },
4482
+ {
4483
+ "const": "medium",
4484
+ "type": "string"
4485
+ },
4486
+ {
4487
+ "const": "low",
4488
+ "type": "string"
4489
+ }
4490
+ ]
4491
+ }
4492
+ }
4493
+ },
4494
+ {
4495
+ "additionalProperties": false,
4496
+ "type": "object",
4497
+ "required": [
4498
+ "state",
4499
+ "capability"
4500
+ ],
4501
+ "properties": {
4502
+ "state": {
4503
+ "const": "unsupported",
4504
+ "type": "string"
4505
+ },
4506
+ "capability": {
4507
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4508
+ "type": "string"
4509
+ }
4510
+ }
2997
4511
  },
2998
4512
  {
2999
- "const": "native_payload",
3000
- "type": "string"
4513
+ "additionalProperties": false,
4514
+ "type": "object",
4515
+ "required": [
4516
+ "state",
4517
+ "capability",
4518
+ "reason"
4519
+ ],
4520
+ "properties": {
4521
+ "state": {
4522
+ "const": "expected_but_missing",
4523
+ "type": "string"
4524
+ },
4525
+ "capability": {
4526
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4527
+ "type": "string"
4528
+ },
4529
+ "reason": {
4530
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
4531
+ "type": "string"
4532
+ }
4533
+ }
3001
4534
  },
3002
4535
  {
3003
- "const": "heartbeat_match",
3004
- "type": "string"
4536
+ "additionalProperties": false,
4537
+ "type": "object",
4538
+ "required": [
4539
+ "state",
4540
+ "reason"
4541
+ ],
4542
+ "properties": {
4543
+ "state": {
4544
+ "const": "redacted",
4545
+ "type": "string"
4546
+ },
4547
+ "reason": {
4548
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
4549
+ "type": "string"
4550
+ }
4551
+ }
3005
4552
  },
3006
4553
  {
3007
- "const": "explicit_argument",
3008
- "type": "string"
4554
+ "additionalProperties": false,
4555
+ "type": "object",
4556
+ "required": [
4557
+ "state",
4558
+ "reason"
4559
+ ],
4560
+ "properties": {
4561
+ "state": {
4562
+ "const": "unknown",
4563
+ "type": "string"
4564
+ },
4565
+ "reason": {
4566
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
4567
+ "type": "string"
4568
+ }
4569
+ }
3009
4570
  },
3010
4571
  {
3011
- "const": "unattributed",
3012
- "type": "string"
4572
+ "additionalProperties": false,
4573
+ "type": "object",
4574
+ "required": [
4575
+ "state"
4576
+ ],
4577
+ "properties": {
4578
+ "state": {
4579
+ "const": "not_applicable",
4580
+ "type": "string"
4581
+ }
4582
+ }
3013
4583
  }
3014
4584
  ]
3015
4585
  },
3016
- "state": {
4586
+ "model": {
3017
4587
  "anyOf": [
3018
4588
  {
3019
- "const": "verified",
3020
- "type": "string"
4589
+ "additionalProperties": false,
4590
+ "type": "object",
4591
+ "required": [
4592
+ "state",
4593
+ "value",
4594
+ "attestation",
4595
+ "confidence"
4596
+ ],
4597
+ "properties": {
4598
+ "state": {
4599
+ "const": "observed",
4600
+ "type": "string"
4601
+ },
4602
+ "value": {
4603
+ "additionalProperties": false,
4604
+ "type": "object",
4605
+ "required": [
4606
+ "provider",
4607
+ "id"
4608
+ ],
4609
+ "properties": {
4610
+ "provider": {
4611
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4612
+ "type": "string"
4613
+ },
4614
+ "id": {
4615
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4616
+ "type": "string"
4617
+ }
4618
+ }
4619
+ },
4620
+ "attestation": {
4621
+ "anyOf": [
4622
+ {
4623
+ "const": "native",
4624
+ "type": "string"
4625
+ },
4626
+ {
4627
+ "const": "derived",
4628
+ "type": "string"
4629
+ },
4630
+ {
4631
+ "const": "inferred",
4632
+ "type": "string"
4633
+ }
4634
+ ]
4635
+ },
4636
+ "confidence": {
4637
+ "anyOf": [
4638
+ {
4639
+ "const": "exact",
4640
+ "type": "string"
4641
+ },
4642
+ {
4643
+ "const": "high",
4644
+ "type": "string"
4645
+ },
4646
+ {
4647
+ "const": "medium",
4648
+ "type": "string"
4649
+ },
4650
+ {
4651
+ "const": "low",
4652
+ "type": "string"
4653
+ }
4654
+ ]
4655
+ }
4656
+ }
4657
+ },
4658
+ {
4659
+ "additionalProperties": false,
4660
+ "type": "object",
4661
+ "required": [
4662
+ "state",
4663
+ "capability"
4664
+ ],
4665
+ "properties": {
4666
+ "state": {
4667
+ "const": "unsupported",
4668
+ "type": "string"
4669
+ },
4670
+ "capability": {
4671
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4672
+ "type": "string"
4673
+ }
4674
+ }
4675
+ },
4676
+ {
4677
+ "additionalProperties": false,
4678
+ "type": "object",
4679
+ "required": [
4680
+ "state",
4681
+ "capability",
4682
+ "reason"
4683
+ ],
4684
+ "properties": {
4685
+ "state": {
4686
+ "const": "expected_but_missing",
4687
+ "type": "string"
4688
+ },
4689
+ "capability": {
4690
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4691
+ "type": "string"
4692
+ },
4693
+ "reason": {
4694
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
4695
+ "type": "string"
4696
+ }
4697
+ }
4698
+ },
4699
+ {
4700
+ "additionalProperties": false,
4701
+ "type": "object",
4702
+ "required": [
4703
+ "state",
4704
+ "reason"
4705
+ ],
4706
+ "properties": {
4707
+ "state": {
4708
+ "const": "redacted",
4709
+ "type": "string"
4710
+ },
4711
+ "reason": {
4712
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
4713
+ "type": "string"
4714
+ }
4715
+ }
3021
4716
  },
3022
4717
  {
3023
- "const": "unverified",
3024
- "type": "string"
4718
+ "additionalProperties": false,
4719
+ "type": "object",
4720
+ "required": [
4721
+ "state",
4722
+ "reason"
4723
+ ],
4724
+ "properties": {
4725
+ "state": {
4726
+ "const": "unknown",
4727
+ "type": "string"
4728
+ },
4729
+ "reason": {
4730
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
4731
+ "type": "string"
4732
+ }
4733
+ }
3025
4734
  },
3026
4735
  {
3027
- "const": "conflict",
3028
- "type": "string"
4736
+ "additionalProperties": false,
4737
+ "type": "object",
4738
+ "required": [
4739
+ "state"
4740
+ ],
4741
+ "properties": {
4742
+ "state": {
4743
+ "const": "not_applicable",
4744
+ "type": "string"
4745
+ }
4746
+ }
3029
4747
  }
3030
4748
  ]
3031
4749
  },
3032
- "observer_instance_id": {
3033
- "pattern": "^inst_[a-zA-Z0-9._-]{1,128}$",
3034
- "type": "string"
3035
- },
3036
- "subject_instance_id": {
3037
- "pattern": "^inst_[a-zA-Z0-9._-]{1,128}$",
3038
- "type": "string"
3039
- }
3040
- }
3041
- }
3042
- }
3043
- },
3044
- "payload": {
3045
- "additionalProperties": false,
3046
- "type": "object",
3047
- "required": [
3048
- "prior_attestation_id",
3049
- "runtime_attestation",
3050
- "reason"
3051
- ],
3052
- "properties": {
3053
- "prior_attestation_id": {
3054
- "pattern": "^att_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
3055
- "type": "string"
3056
- },
3057
- "runtime_attestation": {
3058
- "additionalProperties": false,
3059
- "type": "object",
3060
- "required": [
3061
- "attestation_id",
3062
- "generation_id",
3063
- "adapter",
3064
- "harness",
3065
- "model",
3066
- "capability_profile",
3067
- "declared_by_event_id"
3068
- ],
3069
- "properties": {
3070
- "attestation_id": {
3071
- "pattern": "^att_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
3072
- "type": "string"
3073
- },
3074
- "generation_id": {
3075
- "pattern": "^gen_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
3076
- "type": "string"
3077
- },
3078
- "adapter": {
4750
+ "tuning": {
3079
4751
  "anyOf": [
3080
4752
  {
3081
4753
  "additionalProperties": false,
@@ -3094,15 +4766,12 @@
3094
4766
  "value": {
3095
4767
  "additionalProperties": false,
3096
4768
  "type": "object",
3097
- "required": [
3098
- "id"
3099
- ],
3100
4769
  "properties": {
3101
- "id": {
4770
+ "effort": {
3102
4771
  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3103
4772
  "type": "string"
3104
4773
  },
3105
- "version": {
4774
+ "speed": {
3106
4775
  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3107
4776
  "type": "string"
3108
4777
  }
@@ -3238,332 +4907,1023 @@
3238
4907
  }
3239
4908
  ]
3240
4909
  },
3241
- "harness": {
3242
- "anyOf": [
3243
- {
3244
- "additionalProperties": false,
3245
- "type": "object",
3246
- "required": [
3247
- "state",
3248
- "value",
3249
- "attestation",
3250
- "confidence"
3251
- ],
3252
- "properties": {
3253
- "state": {
3254
- "const": "observed",
3255
- "type": "string"
4910
+ "telemetry": {
4911
+ "additionalProperties": false,
4912
+ "type": "object",
4913
+ "required": [
4914
+ "context_usage",
4915
+ "wait_spans",
4916
+ "wait_completeness",
4917
+ "response_latency",
4918
+ "inference_timing"
4919
+ ],
4920
+ "properties": {
4921
+ "context_usage": {
4922
+ "anyOf": [
4923
+ {
4924
+ "additionalProperties": false,
4925
+ "type": "object",
4926
+ "required": [
4927
+ "state",
4928
+ "value",
4929
+ "attestation",
4930
+ "confidence"
4931
+ ],
4932
+ "properties": {
4933
+ "state": {
4934
+ "const": "observed",
4935
+ "type": "string"
4936
+ },
4937
+ "value": {
4938
+ "additionalProperties": false,
4939
+ "type": "object",
4940
+ "required": [
4941
+ "support",
4942
+ "source",
4943
+ "completeness"
4944
+ ],
4945
+ "properties": {
4946
+ "support": {
4947
+ "anyOf": [
4948
+ {
4949
+ "const": "native",
4950
+ "type": "string"
4951
+ },
4952
+ {
4953
+ "const": "derived",
4954
+ "type": "string"
4955
+ },
4956
+ {
4957
+ "const": "conditional",
4958
+ "type": "string"
4959
+ }
4960
+ ]
4961
+ },
4962
+ "source": {
4963
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
4964
+ "type": "string"
4965
+ },
4966
+ "completeness": {
4967
+ "anyOf": [
4968
+ {
4969
+ "const": "exact",
4970
+ "type": "string"
4971
+ },
4972
+ {
4973
+ "const": "inferred",
4974
+ "type": "string"
4975
+ },
4976
+ {
4977
+ "const": "percentage_only",
4978
+ "type": "string"
4979
+ },
4980
+ {
4981
+ "const": "lower_bound",
4982
+ "type": "string"
4983
+ },
4984
+ {
4985
+ "const": "unknown",
4986
+ "type": "string"
4987
+ }
4988
+ ]
4989
+ }
4990
+ }
4991
+ },
4992
+ "attestation": {
4993
+ "anyOf": [
4994
+ {
4995
+ "const": "native",
4996
+ "type": "string"
4997
+ },
4998
+ {
4999
+ "const": "derived",
5000
+ "type": "string"
5001
+ },
5002
+ {
5003
+ "const": "inferred",
5004
+ "type": "string"
5005
+ }
5006
+ ]
5007
+ },
5008
+ "confidence": {
5009
+ "anyOf": [
5010
+ {
5011
+ "const": "exact",
5012
+ "type": "string"
5013
+ },
5014
+ {
5015
+ "const": "high",
5016
+ "type": "string"
5017
+ },
5018
+ {
5019
+ "const": "medium",
5020
+ "type": "string"
5021
+ },
5022
+ {
5023
+ "const": "low",
5024
+ "type": "string"
5025
+ }
5026
+ ]
5027
+ }
5028
+ }
5029
+ },
5030
+ {
5031
+ "additionalProperties": false,
5032
+ "type": "object",
5033
+ "required": [
5034
+ "state",
5035
+ "capability"
5036
+ ],
5037
+ "properties": {
5038
+ "state": {
5039
+ "const": "unsupported",
5040
+ "type": "string"
5041
+ },
5042
+ "capability": {
5043
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
5044
+ "type": "string"
5045
+ }
5046
+ }
5047
+ },
5048
+ {
5049
+ "additionalProperties": false,
5050
+ "type": "object",
5051
+ "required": [
5052
+ "state",
5053
+ "capability",
5054
+ "reason"
5055
+ ],
5056
+ "properties": {
5057
+ "state": {
5058
+ "const": "expected_but_missing",
5059
+ "type": "string"
5060
+ },
5061
+ "capability": {
5062
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
5063
+ "type": "string"
5064
+ },
5065
+ "reason": {
5066
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
5067
+ "type": "string"
5068
+ }
5069
+ }
5070
+ },
5071
+ {
5072
+ "additionalProperties": false,
5073
+ "type": "object",
5074
+ "required": [
5075
+ "state",
5076
+ "reason"
5077
+ ],
5078
+ "properties": {
5079
+ "state": {
5080
+ "const": "redacted",
5081
+ "type": "string"
5082
+ },
5083
+ "reason": {
5084
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
5085
+ "type": "string"
5086
+ }
5087
+ }
5088
+ },
5089
+ {
5090
+ "additionalProperties": false,
5091
+ "type": "object",
5092
+ "required": [
5093
+ "state",
5094
+ "reason"
5095
+ ],
5096
+ "properties": {
5097
+ "state": {
5098
+ "const": "unknown",
5099
+ "type": "string"
5100
+ },
5101
+ "reason": {
5102
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
5103
+ "type": "string"
5104
+ }
5105
+ }
5106
+ },
5107
+ {
5108
+ "additionalProperties": false,
5109
+ "type": "object",
5110
+ "required": [
5111
+ "state"
5112
+ ],
5113
+ "properties": {
5114
+ "state": {
5115
+ "const": "not_applicable",
5116
+ "type": "string"
5117
+ }
5118
+ }
5119
+ }
5120
+ ]
5121
+ },
5122
+ "wait_spans": {
5123
+ "anyOf": [
5124
+ {
5125
+ "additionalProperties": false,
5126
+ "type": "object",
5127
+ "required": [
5128
+ "state",
5129
+ "value",
5130
+ "attestation",
5131
+ "confidence"
5132
+ ],
5133
+ "properties": {
5134
+ "state": {
5135
+ "const": "observed",
5136
+ "type": "string"
5137
+ },
5138
+ "value": {
5139
+ "additionalProperties": false,
5140
+ "type": "object",
5141
+ "required": [
5142
+ "support",
5143
+ "source",
5144
+ "completeness"
5145
+ ],
5146
+ "properties": {
5147
+ "support": {
5148
+ "anyOf": [
5149
+ {
5150
+ "const": "native",
5151
+ "type": "string"
5152
+ },
5153
+ {
5154
+ "const": "derived",
5155
+ "type": "string"
5156
+ },
5157
+ {
5158
+ "const": "conditional",
5159
+ "type": "string"
5160
+ }
5161
+ ]
5162
+ },
5163
+ "source": {
5164
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
5165
+ "type": "string"
5166
+ },
5167
+ "completeness": {
5168
+ "anyOf": [
5169
+ {
5170
+ "const": "exact",
5171
+ "type": "string"
5172
+ },
5173
+ {
5174
+ "const": "inferred",
5175
+ "type": "string"
5176
+ },
5177
+ {
5178
+ "const": "percentage_only",
5179
+ "type": "string"
5180
+ },
5181
+ {
5182
+ "const": "lower_bound",
5183
+ "type": "string"
5184
+ },
5185
+ {
5186
+ "const": "unknown",
5187
+ "type": "string"
5188
+ }
5189
+ ]
5190
+ }
5191
+ }
5192
+ },
5193
+ "attestation": {
5194
+ "anyOf": [
5195
+ {
5196
+ "const": "native",
5197
+ "type": "string"
5198
+ },
5199
+ {
5200
+ "const": "derived",
5201
+ "type": "string"
5202
+ },
5203
+ {
5204
+ "const": "inferred",
5205
+ "type": "string"
5206
+ }
5207
+ ]
5208
+ },
5209
+ "confidence": {
5210
+ "anyOf": [
5211
+ {
5212
+ "const": "exact",
5213
+ "type": "string"
5214
+ },
5215
+ {
5216
+ "const": "high",
5217
+ "type": "string"
5218
+ },
5219
+ {
5220
+ "const": "medium",
5221
+ "type": "string"
5222
+ },
5223
+ {
5224
+ "const": "low",
5225
+ "type": "string"
5226
+ }
5227
+ ]
5228
+ }
5229
+ }
3256
5230
  },
3257
- "value": {
5231
+ {
3258
5232
  "additionalProperties": false,
3259
5233
  "type": "object",
3260
5234
  "required": [
3261
- "id"
5235
+ "state",
5236
+ "capability"
3262
5237
  ],
3263
5238
  "properties": {
3264
- "id": {
3265
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
5239
+ "state": {
5240
+ "const": "unsupported",
3266
5241
  "type": "string"
3267
5242
  },
3268
- "version": {
5243
+ "capability": {
3269
5244
  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3270
5245
  "type": "string"
3271
5246
  }
3272
5247
  }
3273
5248
  },
3274
- "attestation": {
3275
- "anyOf": [
3276
- {
3277
- "const": "native",
5249
+ {
5250
+ "additionalProperties": false,
5251
+ "type": "object",
5252
+ "required": [
5253
+ "state",
5254
+ "capability",
5255
+ "reason"
5256
+ ],
5257
+ "properties": {
5258
+ "state": {
5259
+ "const": "expected_but_missing",
3278
5260
  "type": "string"
3279
5261
  },
3280
- {
3281
- "const": "derived",
5262
+ "capability": {
5263
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3282
5264
  "type": "string"
3283
5265
  },
3284
- {
3285
- "const": "inferred",
5266
+ "reason": {
5267
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3286
5268
  "type": "string"
3287
5269
  }
3288
- ]
5270
+ }
3289
5271
  },
3290
- "confidence": {
3291
- "anyOf": [
3292
- {
3293
- "const": "exact",
5272
+ {
5273
+ "additionalProperties": false,
5274
+ "type": "object",
5275
+ "required": [
5276
+ "state",
5277
+ "reason"
5278
+ ],
5279
+ "properties": {
5280
+ "state": {
5281
+ "const": "redacted",
3294
5282
  "type": "string"
3295
5283
  },
3296
- {
3297
- "const": "high",
5284
+ "reason": {
5285
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3298
5286
  "type": "string"
3299
- },
3300
- {
3301
- "const": "medium",
5287
+ }
5288
+ }
5289
+ },
5290
+ {
5291
+ "additionalProperties": false,
5292
+ "type": "object",
5293
+ "required": [
5294
+ "state",
5295
+ "reason"
5296
+ ],
5297
+ "properties": {
5298
+ "state": {
5299
+ "const": "unknown",
3302
5300
  "type": "string"
3303
5301
  },
3304
- {
3305
- "const": "low",
5302
+ "reason": {
5303
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3306
5304
  "type": "string"
3307
5305
  }
3308
- ]
3309
- }
3310
- }
3311
- },
3312
- {
3313
- "additionalProperties": false,
3314
- "type": "object",
3315
- "required": [
3316
- "state",
3317
- "capability"
3318
- ],
3319
- "properties": {
3320
- "state": {
3321
- "const": "unsupported",
3322
- "type": "string"
5306
+ }
3323
5307
  },
3324
- "capability": {
3325
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3326
- "type": "string"
5308
+ {
5309
+ "additionalProperties": false,
5310
+ "type": "object",
5311
+ "required": [
5312
+ "state"
5313
+ ],
5314
+ "properties": {
5315
+ "state": {
5316
+ "const": "not_applicable",
5317
+ "type": "string"
5318
+ }
5319
+ }
3327
5320
  }
3328
- }
5321
+ ]
3329
5322
  },
3330
- {
3331
- "additionalProperties": false,
3332
- "type": "object",
3333
- "required": [
3334
- "state",
3335
- "capability",
3336
- "reason"
3337
- ],
3338
- "properties": {
3339
- "state": {
3340
- "const": "expected_but_missing",
3341
- "type": "string"
5323
+ "wait_completeness": {
5324
+ "anyOf": [
5325
+ {
5326
+ "additionalProperties": false,
5327
+ "type": "object",
5328
+ "required": [
5329
+ "state",
5330
+ "value",
5331
+ "attestation",
5332
+ "confidence"
5333
+ ],
5334
+ "properties": {
5335
+ "state": {
5336
+ "const": "observed",
5337
+ "type": "string"
5338
+ },
5339
+ "value": {
5340
+ "additionalProperties": false,
5341
+ "type": "object",
5342
+ "required": [
5343
+ "support",
5344
+ "source",
5345
+ "completeness"
5346
+ ],
5347
+ "properties": {
5348
+ "support": {
5349
+ "anyOf": [
5350
+ {
5351
+ "const": "native",
5352
+ "type": "string"
5353
+ },
5354
+ {
5355
+ "const": "derived",
5356
+ "type": "string"
5357
+ },
5358
+ {
5359
+ "const": "conditional",
5360
+ "type": "string"
5361
+ }
5362
+ ]
5363
+ },
5364
+ "source": {
5365
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
5366
+ "type": "string"
5367
+ },
5368
+ "completeness": {
5369
+ "anyOf": [
5370
+ {
5371
+ "const": "exact",
5372
+ "type": "string"
5373
+ },
5374
+ {
5375
+ "const": "inferred",
5376
+ "type": "string"
5377
+ },
5378
+ {
5379
+ "const": "percentage_only",
5380
+ "type": "string"
5381
+ },
5382
+ {
5383
+ "const": "lower_bound",
5384
+ "type": "string"
5385
+ },
5386
+ {
5387
+ "const": "unknown",
5388
+ "type": "string"
5389
+ }
5390
+ ]
5391
+ }
5392
+ }
5393
+ },
5394
+ "attestation": {
5395
+ "anyOf": [
5396
+ {
5397
+ "const": "native",
5398
+ "type": "string"
5399
+ },
5400
+ {
5401
+ "const": "derived",
5402
+ "type": "string"
5403
+ },
5404
+ {
5405
+ "const": "inferred",
5406
+ "type": "string"
5407
+ }
5408
+ ]
5409
+ },
5410
+ "confidence": {
5411
+ "anyOf": [
5412
+ {
5413
+ "const": "exact",
5414
+ "type": "string"
5415
+ },
5416
+ {
5417
+ "const": "high",
5418
+ "type": "string"
5419
+ },
5420
+ {
5421
+ "const": "medium",
5422
+ "type": "string"
5423
+ },
5424
+ {
5425
+ "const": "low",
5426
+ "type": "string"
5427
+ }
5428
+ ]
5429
+ }
5430
+ }
3342
5431
  },
3343
- "capability": {
3344
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3345
- "type": "string"
5432
+ {
5433
+ "additionalProperties": false,
5434
+ "type": "object",
5435
+ "required": [
5436
+ "state",
5437
+ "capability"
5438
+ ],
5439
+ "properties": {
5440
+ "state": {
5441
+ "const": "unsupported",
5442
+ "type": "string"
5443
+ },
5444
+ "capability": {
5445
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
5446
+ "type": "string"
5447
+ }
5448
+ }
3346
5449
  },
3347
- "reason": {
3348
- "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3349
- "type": "string"
3350
- }
3351
- }
3352
- },
3353
- {
3354
- "additionalProperties": false,
3355
- "type": "object",
3356
- "required": [
3357
- "state",
3358
- "reason"
3359
- ],
3360
- "properties": {
3361
- "state": {
3362
- "const": "redacted",
3363
- "type": "string"
5450
+ {
5451
+ "additionalProperties": false,
5452
+ "type": "object",
5453
+ "required": [
5454
+ "state",
5455
+ "capability",
5456
+ "reason"
5457
+ ],
5458
+ "properties": {
5459
+ "state": {
5460
+ "const": "expected_but_missing",
5461
+ "type": "string"
5462
+ },
5463
+ "capability": {
5464
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
5465
+ "type": "string"
5466
+ },
5467
+ "reason": {
5468
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
5469
+ "type": "string"
5470
+ }
5471
+ }
3364
5472
  },
3365
- "reason": {
3366
- "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3367
- "type": "string"
3368
- }
3369
- }
3370
- },
3371
- {
3372
- "additionalProperties": false,
3373
- "type": "object",
3374
- "required": [
3375
- "state",
3376
- "reason"
3377
- ],
3378
- "properties": {
3379
- "state": {
3380
- "const": "unknown",
3381
- "type": "string"
5473
+ {
5474
+ "additionalProperties": false,
5475
+ "type": "object",
5476
+ "required": [
5477
+ "state",
5478
+ "reason"
5479
+ ],
5480
+ "properties": {
5481
+ "state": {
5482
+ "const": "redacted",
5483
+ "type": "string"
5484
+ },
5485
+ "reason": {
5486
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
5487
+ "type": "string"
5488
+ }
5489
+ }
3382
5490
  },
3383
- "reason": {
3384
- "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3385
- "type": "string"
3386
- }
3387
- }
3388
- },
3389
- {
3390
- "additionalProperties": false,
3391
- "type": "object",
3392
- "required": [
3393
- "state"
3394
- ],
3395
- "properties": {
3396
- "state": {
3397
- "const": "not_applicable",
3398
- "type": "string"
3399
- }
3400
- }
3401
- }
3402
- ]
3403
- },
3404
- "model": {
3405
- "anyOf": [
3406
- {
3407
- "additionalProperties": false,
3408
- "type": "object",
3409
- "required": [
3410
- "state",
3411
- "value",
3412
- "attestation",
3413
- "confidence"
3414
- ],
3415
- "properties": {
3416
- "state": {
3417
- "const": "observed",
3418
- "type": "string"
5491
+ {
5492
+ "additionalProperties": false,
5493
+ "type": "object",
5494
+ "required": [
5495
+ "state",
5496
+ "reason"
5497
+ ],
5498
+ "properties": {
5499
+ "state": {
5500
+ "const": "unknown",
5501
+ "type": "string"
5502
+ },
5503
+ "reason": {
5504
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
5505
+ "type": "string"
5506
+ }
5507
+ }
3419
5508
  },
3420
- "value": {
5509
+ {
3421
5510
  "additionalProperties": false,
3422
5511
  "type": "object",
3423
5512
  "required": [
3424
- "provider",
3425
- "id"
5513
+ "state"
3426
5514
  ],
3427
5515
  "properties": {
3428
- "provider": {
3429
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
5516
+ "state": {
5517
+ "const": "not_applicable",
5518
+ "type": "string"
5519
+ }
5520
+ }
5521
+ }
5522
+ ]
5523
+ },
5524
+ "response_latency": {
5525
+ "anyOf": [
5526
+ {
5527
+ "additionalProperties": false,
5528
+ "type": "object",
5529
+ "required": [
5530
+ "state",
5531
+ "value",
5532
+ "attestation",
5533
+ "confidence"
5534
+ ],
5535
+ "properties": {
5536
+ "state": {
5537
+ "const": "observed",
3430
5538
  "type": "string"
3431
5539
  },
3432
- "id": {
5540
+ "value": {
5541
+ "additionalProperties": false,
5542
+ "type": "object",
5543
+ "required": [
5544
+ "support",
5545
+ "source",
5546
+ "completeness"
5547
+ ],
5548
+ "properties": {
5549
+ "support": {
5550
+ "anyOf": [
5551
+ {
5552
+ "const": "native",
5553
+ "type": "string"
5554
+ },
5555
+ {
5556
+ "const": "derived",
5557
+ "type": "string"
5558
+ },
5559
+ {
5560
+ "const": "conditional",
5561
+ "type": "string"
5562
+ }
5563
+ ]
5564
+ },
5565
+ "source": {
5566
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
5567
+ "type": "string"
5568
+ },
5569
+ "completeness": {
5570
+ "anyOf": [
5571
+ {
5572
+ "const": "exact",
5573
+ "type": "string"
5574
+ },
5575
+ {
5576
+ "const": "inferred",
5577
+ "type": "string"
5578
+ },
5579
+ {
5580
+ "const": "percentage_only",
5581
+ "type": "string"
5582
+ },
5583
+ {
5584
+ "const": "lower_bound",
5585
+ "type": "string"
5586
+ },
5587
+ {
5588
+ "const": "unknown",
5589
+ "type": "string"
5590
+ }
5591
+ ]
5592
+ }
5593
+ }
5594
+ },
5595
+ "attestation": {
5596
+ "anyOf": [
5597
+ {
5598
+ "const": "native",
5599
+ "type": "string"
5600
+ },
5601
+ {
5602
+ "const": "derived",
5603
+ "type": "string"
5604
+ },
5605
+ {
5606
+ "const": "inferred",
5607
+ "type": "string"
5608
+ }
5609
+ ]
5610
+ },
5611
+ "confidence": {
5612
+ "anyOf": [
5613
+ {
5614
+ "const": "exact",
5615
+ "type": "string"
5616
+ },
5617
+ {
5618
+ "const": "high",
5619
+ "type": "string"
5620
+ },
5621
+ {
5622
+ "const": "medium",
5623
+ "type": "string"
5624
+ },
5625
+ {
5626
+ "const": "low",
5627
+ "type": "string"
5628
+ }
5629
+ ]
5630
+ }
5631
+ }
5632
+ },
5633
+ {
5634
+ "additionalProperties": false,
5635
+ "type": "object",
5636
+ "required": [
5637
+ "state",
5638
+ "capability"
5639
+ ],
5640
+ "properties": {
5641
+ "state": {
5642
+ "const": "unsupported",
5643
+ "type": "string"
5644
+ },
5645
+ "capability": {
3433
5646
  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3434
5647
  "type": "string"
3435
5648
  }
3436
5649
  }
3437
5650
  },
3438
- "attestation": {
3439
- "anyOf": [
3440
- {
3441
- "const": "native",
5651
+ {
5652
+ "additionalProperties": false,
5653
+ "type": "object",
5654
+ "required": [
5655
+ "state",
5656
+ "capability",
5657
+ "reason"
5658
+ ],
5659
+ "properties": {
5660
+ "state": {
5661
+ "const": "expected_but_missing",
3442
5662
  "type": "string"
3443
5663
  },
3444
- {
3445
- "const": "derived",
5664
+ "capability": {
5665
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3446
5666
  "type": "string"
3447
5667
  },
3448
- {
3449
- "const": "inferred",
5668
+ "reason": {
5669
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3450
5670
  "type": "string"
3451
5671
  }
3452
- ]
5672
+ }
3453
5673
  },
3454
- "confidence": {
3455
- "anyOf": [
3456
- {
3457
- "const": "exact",
5674
+ {
5675
+ "additionalProperties": false,
5676
+ "type": "object",
5677
+ "required": [
5678
+ "state",
5679
+ "reason"
5680
+ ],
5681
+ "properties": {
5682
+ "state": {
5683
+ "const": "redacted",
3458
5684
  "type": "string"
3459
5685
  },
3460
- {
3461
- "const": "high",
5686
+ "reason": {
5687
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3462
5688
  "type": "string"
3463
- },
3464
- {
3465
- "const": "medium",
5689
+ }
5690
+ }
5691
+ },
5692
+ {
5693
+ "additionalProperties": false,
5694
+ "type": "object",
5695
+ "required": [
5696
+ "state",
5697
+ "reason"
5698
+ ],
5699
+ "properties": {
5700
+ "state": {
5701
+ "const": "unknown",
3466
5702
  "type": "string"
3467
5703
  },
3468
- {
3469
- "const": "low",
5704
+ "reason": {
5705
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3470
5706
  "type": "string"
3471
5707
  }
3472
- ]
3473
- }
3474
- }
3475
- },
3476
- {
3477
- "additionalProperties": false,
3478
- "type": "object",
3479
- "required": [
3480
- "state",
3481
- "capability"
3482
- ],
3483
- "properties": {
3484
- "state": {
3485
- "const": "unsupported",
3486
- "type": "string"
5708
+ }
3487
5709
  },
3488
- "capability": {
3489
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3490
- "type": "string"
5710
+ {
5711
+ "additionalProperties": false,
5712
+ "type": "object",
5713
+ "required": [
5714
+ "state"
5715
+ ],
5716
+ "properties": {
5717
+ "state": {
5718
+ "const": "not_applicable",
5719
+ "type": "string"
5720
+ }
5721
+ }
3491
5722
  }
3492
- }
5723
+ ]
3493
5724
  },
3494
- {
3495
- "additionalProperties": false,
3496
- "type": "object",
3497
- "required": [
3498
- "state",
3499
- "capability",
3500
- "reason"
3501
- ],
3502
- "properties": {
3503
- "state": {
3504
- "const": "expected_but_missing",
3505
- "type": "string"
3506
- },
3507
- "capability": {
3508
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
3509
- "type": "string"
5725
+ "inference_timing": {
5726
+ "anyOf": [
5727
+ {
5728
+ "additionalProperties": false,
5729
+ "type": "object",
5730
+ "required": [
5731
+ "state",
5732
+ "value",
5733
+ "attestation",
5734
+ "confidence"
5735
+ ],
5736
+ "properties": {
5737
+ "state": {
5738
+ "const": "observed",
5739
+ "type": "string"
5740
+ },
5741
+ "value": {
5742
+ "additionalProperties": false,
5743
+ "type": "object",
5744
+ "required": [
5745
+ "support",
5746
+ "source",
5747
+ "completeness"
5748
+ ],
5749
+ "properties": {
5750
+ "support": {
5751
+ "anyOf": [
5752
+ {
5753
+ "const": "native",
5754
+ "type": "string"
5755
+ },
5756
+ {
5757
+ "const": "derived",
5758
+ "type": "string"
5759
+ },
5760
+ {
5761
+ "const": "conditional",
5762
+ "type": "string"
5763
+ }
5764
+ ]
5765
+ },
5766
+ "source": {
5767
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
5768
+ "type": "string"
5769
+ },
5770
+ "completeness": {
5771
+ "anyOf": [
5772
+ {
5773
+ "const": "exact",
5774
+ "type": "string"
5775
+ },
5776
+ {
5777
+ "const": "inferred",
5778
+ "type": "string"
5779
+ },
5780
+ {
5781
+ "const": "percentage_only",
5782
+ "type": "string"
5783
+ },
5784
+ {
5785
+ "const": "lower_bound",
5786
+ "type": "string"
5787
+ },
5788
+ {
5789
+ "const": "unknown",
5790
+ "type": "string"
5791
+ }
5792
+ ]
5793
+ }
5794
+ }
5795
+ },
5796
+ "attestation": {
5797
+ "anyOf": [
5798
+ {
5799
+ "const": "native",
5800
+ "type": "string"
5801
+ },
5802
+ {
5803
+ "const": "derived",
5804
+ "type": "string"
5805
+ },
5806
+ {
5807
+ "const": "inferred",
5808
+ "type": "string"
5809
+ }
5810
+ ]
5811
+ },
5812
+ "confidence": {
5813
+ "anyOf": [
5814
+ {
5815
+ "const": "exact",
5816
+ "type": "string"
5817
+ },
5818
+ {
5819
+ "const": "high",
5820
+ "type": "string"
5821
+ },
5822
+ {
5823
+ "const": "medium",
5824
+ "type": "string"
5825
+ },
5826
+ {
5827
+ "const": "low",
5828
+ "type": "string"
5829
+ }
5830
+ ]
5831
+ }
5832
+ }
3510
5833
  },
3511
- "reason": {
3512
- "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3513
- "type": "string"
3514
- }
3515
- }
3516
- },
3517
- {
3518
- "additionalProperties": false,
3519
- "type": "object",
3520
- "required": [
3521
- "state",
3522
- "reason"
3523
- ],
3524
- "properties": {
3525
- "state": {
3526
- "const": "redacted",
3527
- "type": "string"
5834
+ {
5835
+ "additionalProperties": false,
5836
+ "type": "object",
5837
+ "required": [
5838
+ "state",
5839
+ "capability"
5840
+ ],
5841
+ "properties": {
5842
+ "state": {
5843
+ "const": "unsupported",
5844
+ "type": "string"
5845
+ },
5846
+ "capability": {
5847
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
5848
+ "type": "string"
5849
+ }
5850
+ }
3528
5851
  },
3529
- "reason": {
3530
- "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3531
- "type": "string"
3532
- }
3533
- }
3534
- },
3535
- {
3536
- "additionalProperties": false,
3537
- "type": "object",
3538
- "required": [
3539
- "state",
3540
- "reason"
3541
- ],
3542
- "properties": {
3543
- "state": {
3544
- "const": "unknown",
3545
- "type": "string"
5852
+ {
5853
+ "additionalProperties": false,
5854
+ "type": "object",
5855
+ "required": [
5856
+ "state",
5857
+ "capability",
5858
+ "reason"
5859
+ ],
5860
+ "properties": {
5861
+ "state": {
5862
+ "const": "expected_but_missing",
5863
+ "type": "string"
5864
+ },
5865
+ "capability": {
5866
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
5867
+ "type": "string"
5868
+ },
5869
+ "reason": {
5870
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
5871
+ "type": "string"
5872
+ }
5873
+ }
3546
5874
  },
3547
- "reason": {
3548
- "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
3549
- "type": "string"
3550
- }
3551
- }
3552
- },
3553
- {
3554
- "additionalProperties": false,
3555
- "type": "object",
3556
- "required": [
3557
- "state"
3558
- ],
3559
- "properties": {
3560
- "state": {
3561
- "const": "not_applicable",
3562
- "type": "string"
5875
+ {
5876
+ "additionalProperties": false,
5877
+ "type": "object",
5878
+ "required": [
5879
+ "state",
5880
+ "reason"
5881
+ ],
5882
+ "properties": {
5883
+ "state": {
5884
+ "const": "redacted",
5885
+ "type": "string"
5886
+ },
5887
+ "reason": {
5888
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
5889
+ "type": "string"
5890
+ }
5891
+ }
5892
+ },
5893
+ {
5894
+ "additionalProperties": false,
5895
+ "type": "object",
5896
+ "required": [
5897
+ "state",
5898
+ "reason"
5899
+ ],
5900
+ "properties": {
5901
+ "state": {
5902
+ "const": "unknown",
5903
+ "type": "string"
5904
+ },
5905
+ "reason": {
5906
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
5907
+ "type": "string"
5908
+ }
5909
+ }
5910
+ },
5911
+ {
5912
+ "additionalProperties": false,
5913
+ "type": "object",
5914
+ "required": [
5915
+ "state"
5916
+ ],
5917
+ "properties": {
5918
+ "state": {
5919
+ "const": "not_applicable",
5920
+ "type": "string"
5921
+ }
5922
+ }
3563
5923
  }
3564
- }
5924
+ ]
3565
5925
  }
3566
- ]
5926
+ }
3567
5927
  },
3568
5928
  "capability_profile": {
3569
5929
  "pattern": "^cap_[a-f0-9]{64}$",
@@ -7923,36 +10283,69 @@
7923
10283
  "type": "string"
7924
10284
  },
7925
10285
  "value": {
7926
- "additionalProperties": false,
7927
- "type": "object",
7928
- "required": [
7929
- "used_tokens",
7930
- "limit_tokens",
7931
- "measured_at",
7932
- "method"
7933
- ],
7934
- "properties": {
7935
- "used_tokens": {
7936
- "minimum": 0,
7937
- "type": "integer"
7938
- },
7939
- "limit_tokens": {
7940
- "minimum": 1,
7941
- "type": "integer"
7942
- },
7943
- "remaining_tokens": {
7944
- "minimum": 0,
7945
- "type": "integer"
7946
- },
7947
- "measured_at": {
7948
- "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
7949
- "type": "string"
10286
+ "anyOf": [
10287
+ {
10288
+ "additionalProperties": false,
10289
+ "type": "object",
10290
+ "required": [
10291
+ "used_tokens",
10292
+ "limit_tokens",
10293
+ "measured_at",
10294
+ "method"
10295
+ ],
10296
+ "properties": {
10297
+ "used_tokens": {
10298
+ "minimum": 0,
10299
+ "type": "integer"
10300
+ },
10301
+ "limit_tokens": {
10302
+ "minimum": 1,
10303
+ "type": "integer"
10304
+ },
10305
+ "remaining_tokens": {
10306
+ "minimum": 0,
10307
+ "type": "integer"
10308
+ },
10309
+ "measured_at": {
10310
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
10311
+ "type": "string"
10312
+ },
10313
+ "method": {
10314
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
10315
+ "type": "string"
10316
+ }
10317
+ }
7950
10318
  },
7951
- "method": {
7952
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
7953
- "type": "string"
10319
+ {
10320
+ "additionalProperties": false,
10321
+ "type": "object",
10322
+ "required": [
10323
+ "used_percent",
10324
+ "measured_at",
10325
+ "method"
10326
+ ],
10327
+ "properties": {
10328
+ "used_percent": {
10329
+ "minimum": 0,
10330
+ "maximum": 100,
10331
+ "type": "number"
10332
+ },
10333
+ "remaining_percent": {
10334
+ "minimum": 0,
10335
+ "maximum": 100,
10336
+ "type": "number"
10337
+ },
10338
+ "measured_at": {
10339
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
10340
+ "type": "string"
10341
+ },
10342
+ "method": {
10343
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
10344
+ "type": "string"
10345
+ }
10346
+ }
7954
10347
  }
7955
- }
10348
+ ]
7956
10349
  },
7957
10350
  "attestation": {
7958
10351
  "anyOf": [
@@ -8486,36 +10879,69 @@
8486
10879
  "type": "string"
8487
10880
  },
8488
10881
  "value": {
8489
- "additionalProperties": false,
8490
- "type": "object",
8491
- "required": [
8492
- "used_tokens",
8493
- "limit_tokens",
8494
- "measured_at",
8495
- "method"
8496
- ],
8497
- "properties": {
8498
- "used_tokens": {
8499
- "minimum": 0,
8500
- "type": "integer"
8501
- },
8502
- "limit_tokens": {
8503
- "minimum": 1,
8504
- "type": "integer"
8505
- },
8506
- "remaining_tokens": {
8507
- "minimum": 0,
8508
- "type": "integer"
8509
- },
8510
- "measured_at": {
8511
- "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
8512
- "type": "string"
10882
+ "anyOf": [
10883
+ {
10884
+ "additionalProperties": false,
10885
+ "type": "object",
10886
+ "required": [
10887
+ "used_tokens",
10888
+ "limit_tokens",
10889
+ "measured_at",
10890
+ "method"
10891
+ ],
10892
+ "properties": {
10893
+ "used_tokens": {
10894
+ "minimum": 0,
10895
+ "type": "integer"
10896
+ },
10897
+ "limit_tokens": {
10898
+ "minimum": 1,
10899
+ "type": "integer"
10900
+ },
10901
+ "remaining_tokens": {
10902
+ "minimum": 0,
10903
+ "type": "integer"
10904
+ },
10905
+ "measured_at": {
10906
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
10907
+ "type": "string"
10908
+ },
10909
+ "method": {
10910
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
10911
+ "type": "string"
10912
+ }
10913
+ }
8513
10914
  },
8514
- "method": {
8515
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
8516
- "type": "string"
10915
+ {
10916
+ "additionalProperties": false,
10917
+ "type": "object",
10918
+ "required": [
10919
+ "used_percent",
10920
+ "measured_at",
10921
+ "method"
10922
+ ],
10923
+ "properties": {
10924
+ "used_percent": {
10925
+ "minimum": 0,
10926
+ "maximum": 100,
10927
+ "type": "number"
10928
+ },
10929
+ "remaining_percent": {
10930
+ "minimum": 0,
10931
+ "maximum": 100,
10932
+ "type": "number"
10933
+ },
10934
+ "measured_at": {
10935
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
10936
+ "type": "string"
10937
+ },
10938
+ "method": {
10939
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
10940
+ "type": "string"
10941
+ }
10942
+ }
8517
10943
  }
8518
- }
10944
+ ]
8519
10945
  },
8520
10946
  "attestation": {
8521
10947
  "anyOf": [
@@ -9086,36 +11512,69 @@
9086
11512
  "type": "string"
9087
11513
  },
9088
11514
  "value": {
9089
- "additionalProperties": false,
9090
- "type": "object",
9091
- "required": [
9092
- "used_tokens",
9093
- "limit_tokens",
9094
- "measured_at",
9095
- "method"
9096
- ],
9097
- "properties": {
9098
- "used_tokens": {
9099
- "minimum": 0,
9100
- "type": "integer"
9101
- },
9102
- "limit_tokens": {
9103
- "minimum": 1,
9104
- "type": "integer"
9105
- },
9106
- "remaining_tokens": {
9107
- "minimum": 0,
9108
- "type": "integer"
9109
- },
9110
- "measured_at": {
9111
- "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
9112
- "type": "string"
11515
+ "anyOf": [
11516
+ {
11517
+ "additionalProperties": false,
11518
+ "type": "object",
11519
+ "required": [
11520
+ "used_tokens",
11521
+ "limit_tokens",
11522
+ "measured_at",
11523
+ "method"
11524
+ ],
11525
+ "properties": {
11526
+ "used_tokens": {
11527
+ "minimum": 0,
11528
+ "type": "integer"
11529
+ },
11530
+ "limit_tokens": {
11531
+ "minimum": 1,
11532
+ "type": "integer"
11533
+ },
11534
+ "remaining_tokens": {
11535
+ "minimum": 0,
11536
+ "type": "integer"
11537
+ },
11538
+ "measured_at": {
11539
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
11540
+ "type": "string"
11541
+ },
11542
+ "method": {
11543
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
11544
+ "type": "string"
11545
+ }
11546
+ }
9113
11547
  },
9114
- "method": {
9115
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
9116
- "type": "string"
11548
+ {
11549
+ "additionalProperties": false,
11550
+ "type": "object",
11551
+ "required": [
11552
+ "used_percent",
11553
+ "measured_at",
11554
+ "method"
11555
+ ],
11556
+ "properties": {
11557
+ "used_percent": {
11558
+ "minimum": 0,
11559
+ "maximum": 100,
11560
+ "type": "number"
11561
+ },
11562
+ "remaining_percent": {
11563
+ "minimum": 0,
11564
+ "maximum": 100,
11565
+ "type": "number"
11566
+ },
11567
+ "measured_at": {
11568
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
11569
+ "type": "string"
11570
+ },
11571
+ "method": {
11572
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
11573
+ "type": "string"
11574
+ }
11575
+ }
9117
11576
  }
9118
- }
11577
+ ]
9119
11578
  },
9120
11579
  "attestation": {
9121
11580
  "anyOf": [
@@ -9264,36 +11723,69 @@
9264
11723
  "type": "string"
9265
11724
  },
9266
11725
  "value": {
9267
- "additionalProperties": false,
9268
- "type": "object",
9269
- "required": [
9270
- "used_tokens",
9271
- "limit_tokens",
9272
- "measured_at",
9273
- "method"
9274
- ],
9275
- "properties": {
9276
- "used_tokens": {
9277
- "minimum": 0,
9278
- "type": "integer"
9279
- },
9280
- "limit_tokens": {
9281
- "minimum": 1,
9282
- "type": "integer"
9283
- },
9284
- "remaining_tokens": {
9285
- "minimum": 0,
9286
- "type": "integer"
9287
- },
9288
- "measured_at": {
9289
- "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
9290
- "type": "string"
11726
+ "anyOf": [
11727
+ {
11728
+ "additionalProperties": false,
11729
+ "type": "object",
11730
+ "required": [
11731
+ "used_tokens",
11732
+ "limit_tokens",
11733
+ "measured_at",
11734
+ "method"
11735
+ ],
11736
+ "properties": {
11737
+ "used_tokens": {
11738
+ "minimum": 0,
11739
+ "type": "integer"
11740
+ },
11741
+ "limit_tokens": {
11742
+ "minimum": 1,
11743
+ "type": "integer"
11744
+ },
11745
+ "remaining_tokens": {
11746
+ "minimum": 0,
11747
+ "type": "integer"
11748
+ },
11749
+ "measured_at": {
11750
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
11751
+ "type": "string"
11752
+ },
11753
+ "method": {
11754
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
11755
+ "type": "string"
11756
+ }
11757
+ }
9291
11758
  },
9292
- "method": {
9293
- "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
9294
- "type": "string"
11759
+ {
11760
+ "additionalProperties": false,
11761
+ "type": "object",
11762
+ "required": [
11763
+ "used_percent",
11764
+ "measured_at",
11765
+ "method"
11766
+ ],
11767
+ "properties": {
11768
+ "used_percent": {
11769
+ "minimum": 0,
11770
+ "maximum": 100,
11771
+ "type": "number"
11772
+ },
11773
+ "remaining_percent": {
11774
+ "minimum": 0,
11775
+ "maximum": 100,
11776
+ "type": "number"
11777
+ },
11778
+ "measured_at": {
11779
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
11780
+ "type": "string"
11781
+ },
11782
+ "method": {
11783
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/+-]{0,127}$",
11784
+ "type": "string"
11785
+ }
11786
+ }
9295
11787
  }
9296
- }
11788
+ ]
9297
11789
  },
9298
11790
  "attestation": {
9299
11791
  "anyOf": [