@pithy-sh/core 0.13.0 → 0.14.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 (354) hide show
  1. package/README.md +54 -0
  2. package/dist/audit/auditEvent.js +1 -1
  3. package/dist/audit/chain.d.ts +289 -0
  4. package/dist/audit/chain.d.ts.map +1 -0
  5. package/dist/audit/chain.js +400 -0
  6. package/dist/audit/citations.d.ts +52 -0
  7. package/dist/audit/citations.d.ts.map +1 -0
  8. package/dist/audit/citations.js +13 -0
  9. package/dist/capability/bindings.d.ts +22 -0
  10. package/dist/capability/bindings.d.ts.map +1 -1
  11. package/dist/capability/bindings.js +32 -2
  12. package/dist/capability/capability.d.ts +123 -16
  13. package/dist/capability/capability.d.ts.map +1 -1
  14. package/dist/capability/capability.js +17 -2
  15. package/dist/capability/erasure.d.ts +75 -0
  16. package/dist/capability/erasure.d.ts.map +1 -0
  17. package/dist/capability/erasure.js +2 -0
  18. package/dist/capability/manifest.d.ts +5 -0
  19. package/dist/capability/manifest.d.ts.map +1 -1
  20. package/dist/capability/personColumns.d.ts +28 -0
  21. package/dist/capability/personColumns.d.ts.map +1 -0
  22. package/dist/capability/personColumns.js +66 -0
  23. package/dist/capability/personRows.d.ts +62 -0
  24. package/dist/capability/personRows.d.ts.map +1 -0
  25. package/dist/capability/personRows.js +59 -0
  26. package/dist/capability/purge.d.ts +86 -19
  27. package/dist/capability/purge.d.ts.map +1 -1
  28. package/dist/capability/purge.js +83 -5
  29. package/dist/capability/settings.d.ts +10 -0
  30. package/dist/capability/settings.d.ts.map +1 -1
  31. package/dist/capability/vectorIndex.d.ts +36 -0
  32. package/dist/capability/vectorIndex.d.ts.map +1 -0
  33. package/dist/capability/vectorIndex.js +25 -0
  34. package/dist/cli/commandCatalog.generated.d.ts +433 -3
  35. package/dist/cli/commandCatalog.generated.d.ts.map +1 -1
  36. package/dist/cli/commandCatalog.generated.js +449 -2
  37. package/dist/cli/commandFacts.d.ts +8 -5
  38. package/dist/cli/commandFacts.d.ts.map +1 -1
  39. package/dist/cli/commandFacts.js +12 -3
  40. package/dist/consent/purpose.d.ts +70 -0
  41. package/dist/consent/purpose.d.ts.map +1 -0
  42. package/dist/consent/purpose.js +97 -0
  43. package/dist/consent/reader.d.ts +99 -0
  44. package/dist/consent/reader.d.ts.map +1 -0
  45. package/dist/consent/reader.js +33 -0
  46. package/dist/controlPlane/audit/actions.d.ts +15 -4
  47. package/dist/controlPlane/audit/actions.d.ts.map +1 -1
  48. package/dist/controlPlane/audit/actions.js +16 -5
  49. package/dist/controlPlane/capability.d.ts +10 -0
  50. package/dist/controlPlane/capability.d.ts.map +1 -1
  51. package/dist/controlPlane/capability.js +56 -8
  52. package/dist/controlPlane/context.d.ts +4 -0
  53. package/dist/controlPlane/context.d.ts.map +1 -1
  54. package/dist/controlPlane/context.js +3 -2
  55. package/dist/controlPlane/data/connection.d.ts +21 -2
  56. package/dist/controlPlane/data/connection.d.ts.map +1 -1
  57. package/dist/controlPlane/data/connection.js +13 -4
  58. package/dist/controlPlane/data/connections.d.ts +94 -0
  59. package/dist/controlPlane/data/connections.d.ts.map +1 -0
  60. package/dist/controlPlane/data/connections.js +151 -0
  61. package/dist/controlPlane/data/hold.d.ts +46 -0
  62. package/dist/controlPlane/data/hold.d.ts.map +1 -0
  63. package/dist/controlPlane/data/hold.js +36 -0
  64. package/dist/controlPlane/data/oidcTrust.d.ts +122 -0
  65. package/dist/controlPlane/data/oidcTrust.d.ts.map +1 -0
  66. package/dist/controlPlane/data/oidcTrust.js +173 -0
  67. package/dist/controlPlane/data/tables.d.ts +4 -0
  68. package/dist/controlPlane/data/tables.d.ts.map +1 -1
  69. package/dist/controlPlane/data/tables.js +9 -4
  70. package/dist/controlPlane/data/trustFirstCall.d.ts +16 -0
  71. package/dist/controlPlane/data/trustFirstCall.d.ts.map +1 -0
  72. package/dist/controlPlane/data/trustFirstCall.js +25 -0
  73. package/dist/controlPlane/discovery/adminRoute.d.ts +165 -2
  74. package/dist/controlPlane/discovery/adminRoute.d.ts.map +1 -1
  75. package/dist/controlPlane/discovery/adminRoute.js +32 -8
  76. package/dist/controlPlane/discovery/routeInput.d.ts +23 -0
  77. package/dist/controlPlane/discovery/routeInput.d.ts.map +1 -0
  78. package/dist/controlPlane/discovery/routeInput.js +80 -0
  79. package/dist/controlPlane/discovery/toolName.d.ts +21 -0
  80. package/dist/controlPlane/discovery/toolName.d.ts.map +1 -0
  81. package/dist/controlPlane/discovery/toolName.js +25 -0
  82. package/dist/controlPlane/erasure/attest.d.ts +78 -0
  83. package/dist/controlPlane/erasure/attest.d.ts.map +1 -0
  84. package/dist/controlPlane/erasure/attest.js +164 -0
  85. package/dist/controlPlane/erasure/read.d.ts +39 -0
  86. package/dist/controlPlane/erasure/read.d.ts.map +1 -0
  87. package/dist/controlPlane/erasure/read.js +140 -0
  88. package/dist/controlPlane/error/errors.d.ts +61 -2
  89. package/dist/controlPlane/error/errors.d.ts.map +1 -1
  90. package/dist/controlPlane/error/errors.js +13 -0
  91. package/dist/controlPlane/evidence/derive.d.ts +124 -0
  92. package/dist/controlPlane/evidence/derive.d.ts.map +1 -0
  93. package/dist/controlPlane/evidence/derive.js +343 -0
  94. package/dist/controlPlane/evidence/mapping.d.ts +85 -0
  95. package/dist/controlPlane/evidence/mapping.d.ts.map +1 -0
  96. package/dist/controlPlane/evidence/mapping.js +114 -0
  97. package/dist/controlPlane/evidence/pack.d.ts +46 -0
  98. package/dist/controlPlane/evidence/pack.d.ts.map +1 -0
  99. package/dist/controlPlane/evidence/pack.js +124 -0
  100. package/dist/controlPlane/http/connections.d.ts +96 -0
  101. package/dist/controlPlane/http/connections.d.ts.map +1 -0
  102. package/dist/controlPlane/http/connections.js +109 -0
  103. package/dist/controlPlane/http/guard.d.ts +23 -2
  104. package/dist/controlPlane/http/guard.d.ts.map +1 -1
  105. package/dist/controlPlane/http/guard.js +69 -12
  106. package/dist/controlPlane/http/handlers.d.ts +212 -10
  107. package/dist/controlPlane/http/handlers.d.ts.map +1 -1
  108. package/dist/controlPlane/http/handlers.js +117 -26
  109. package/dist/controlPlane/http/holds.d.ts +57 -0
  110. package/dist/controlPlane/http/holds.d.ts.map +1 -0
  111. package/dist/controlPlane/http/holds.js +98 -0
  112. package/dist/controlPlane/http/presence.d.ts +27 -0
  113. package/dist/controlPlane/http/presence.d.ts.map +1 -0
  114. package/dist/controlPlane/http/presence.js +67 -0
  115. package/dist/controlPlane/http/processing.d.ts +73 -0
  116. package/dist/controlPlane/http/processing.d.ts.map +1 -0
  117. package/dist/controlPlane/http/processing.js +17 -0
  118. package/dist/controlPlane/http/responses.d.ts +927 -3
  119. package/dist/controlPlane/http/responses.d.ts.map +1 -1
  120. package/dist/controlPlane/http/responses.js +283 -7
  121. package/dist/controlPlane/http/routes.d.ts +12 -2
  122. package/dist/controlPlane/http/routes.d.ts.map +1 -1
  123. package/dist/controlPlane/http/routes.js +182 -5
  124. package/dist/controlPlane/http/schemas.d.ts +63 -0
  125. package/dist/controlPlane/http/schemas.d.ts.map +1 -1
  126. package/dist/controlPlane/http/schemas.js +39 -1
  127. package/dist/controlPlane/http/verify.d.ts.map +1 -1
  128. package/dist/controlPlane/http/verify.js +13 -1
  129. package/dist/controlPlane/http/verifyTrust.d.ts +76 -0
  130. package/dist/controlPlane/http/verifyTrust.d.ts.map +1 -0
  131. package/dist/controlPlane/http/verifyTrust.js +75 -0
  132. package/dist/controlPlane/migrations/0004_connection_trusts.d.ts +15 -0
  133. package/dist/controlPlane/migrations/0004_connection_trusts.d.ts.map +1 -0
  134. package/dist/controlPlane/migrations/0004_connection_trusts.js +23 -0
  135. package/dist/controlPlane/migrations/0005_holds.d.ts +12 -0
  136. package/dist/controlPlane/migrations/0005_holds.d.ts.map +1 -0
  137. package/dist/controlPlane/migrations/0005_holds.js +26 -0
  138. package/dist/controlPlane/processing/derive.d.ts +77 -0
  139. package/dist/controlPlane/processing/derive.d.ts.map +1 -0
  140. package/dist/controlPlane/processing/derive.js +206 -0
  141. package/dist/controlPlane/processing/read.d.ts +10 -0
  142. package/dist/controlPlane/processing/read.d.ts.map +1 -0
  143. package/dist/controlPlane/processing/read.js +89 -0
  144. package/dist/controlPlane/scope/kind.d.ts +46 -0
  145. package/dist/controlPlane/scope/kind.d.ts.map +1 -0
  146. package/dist/controlPlane/scope/kind.js +52 -0
  147. package/dist/controlPlane/scope/scope.d.ts +58 -3
  148. package/dist/controlPlane/scope/scope.d.ts.map +1 -1
  149. package/dist/controlPlane/scope/scope.js +59 -4
  150. package/dist/controlPlane/token/jws.js +1 -1
  151. package/dist/controlPlane/token/mint.js +1 -1
  152. package/dist/controlPlane/wire.d.ts +23 -0
  153. package/dist/controlPlane/wire.d.ts.map +1 -1
  154. package/dist/controlPlane/wire.js +24 -1
  155. package/dist/createBackend.d.ts +13 -0
  156. package/dist/createBackend.d.ts.map +1 -1
  157. package/dist/createBackend.js +11 -3
  158. package/dist/createEntrypoint.d.ts +7 -0
  159. package/dist/createEntrypoint.d.ts.map +1 -1
  160. package/dist/createEntrypoint.js +4 -0
  161. package/dist/error/http.d.ts +168 -0
  162. package/dist/error/http.d.ts.map +1 -1
  163. package/dist/error/payload.d.ts +336 -0
  164. package/dist/error/payload.d.ts.map +1 -1
  165. package/dist/error/payload.js +112 -0
  166. package/dist/error/pithyError.d.ts +22 -0
  167. package/dist/error/pithyError.d.ts.map +1 -1
  168. package/dist/error/pithyError.js +31 -1
  169. package/dist/http/routeSpec.d.ts +46 -1
  170. package/dist/http/routeSpec.d.ts.map +1 -1
  171. package/dist/http/routeSpec.js +39 -5
  172. package/dist/http/verification.d.ts.map +1 -1
  173. package/dist/http/verification.js +1 -1
  174. package/dist/i18n/translator.d.ts +2 -1
  175. package/dist/i18n/translator.d.ts.map +1 -1
  176. package/dist/index.d.ts +1 -1
  177. package/dist/index.d.ts.map +1 -1
  178. package/dist/index.js +3 -3
  179. package/dist/logger/record.d.ts +98 -0
  180. package/dist/logger/record.d.ts.map +1 -1
  181. package/dist/mcp/annotations.d.ts +20 -0
  182. package/dist/mcp/annotations.d.ts.map +1 -0
  183. package/dist/mcp/annotations.js +23 -0
  184. package/dist/mcp/tools.d.ts +75 -0
  185. package/dist/mcp/tools.d.ts.map +1 -0
  186. package/dist/mcp/tools.js +118 -0
  187. package/dist/openapi/document.d.ts.map +1 -1
  188. package/dist/openapi/document.js +8 -26
  189. package/dist/openapi/operations.d.ts +35 -0
  190. package/dist/openapi/operations.d.ts.map +1 -0
  191. package/dist/openapi/operations.js +37 -0
  192. package/dist/presence/channel.d.ts +11 -0
  193. package/dist/presence/channel.d.ts.map +1 -0
  194. package/dist/presence/channel.js +65 -0
  195. package/dist/presence/declaration.d.ts +154 -0
  196. package/dist/presence/declaration.d.ts.map +1 -0
  197. package/dist/presence/declaration.js +164 -0
  198. package/dist/presence/durableObject.d.ts +61 -0
  199. package/dist/presence/durableObject.d.ts.map +1 -0
  200. package/dist/presence/durableObject.js +257 -0
  201. package/dist/presence/frames.d.ts +166 -0
  202. package/dist/presence/frames.d.ts.map +1 -0
  203. package/dist/presence/frames.js +90 -0
  204. package/dist/presence/http/guard.d.ts +11 -0
  205. package/dist/presence/http/guard.d.ts.map +1 -0
  206. package/dist/presence/http/guard.js +20 -0
  207. package/dist/presence/http/responses.d.ts +31 -0
  208. package/dist/presence/http/responses.d.ts.map +1 -0
  209. package/dist/presence/http/responses.js +34 -0
  210. package/dist/presence/http/routes.d.ts +24 -0
  211. package/dist/presence/http/routes.d.ts.map +1 -0
  212. package/dist/presence/http/routes.js +127 -0
  213. package/dist/presence/http/schemas.d.ts +29 -0
  214. package/dist/presence/http/schemas.d.ts.map +1 -0
  215. package/dist/presence/http/schemas.js +28 -0
  216. package/dist/presence/names.d.ts +23 -0
  217. package/dist/presence/names.d.ts.map +1 -0
  218. package/dist/presence/names.js +22 -0
  219. package/dist/presence/room.d.ts +95 -0
  220. package/dist/presence/room.d.ts.map +1 -0
  221. package/dist/presence/room.js +105 -0
  222. package/dist/presence/ticket.d.ts +55 -0
  223. package/dist/presence/ticket.d.ts.map +1 -0
  224. package/dist/presence/ticket.js +109 -0
  225. package/dist/privacy/classify.js +1 -1
  226. package/dist/privacy/encrypted.js +1 -1
  227. package/dist/processing/activity.d.ts +134 -0
  228. package/dist/processing/activity.d.ts.map +1 -0
  229. package/dist/processing/activity.js +161 -0
  230. package/dist/processing/composed.d.ts +18 -0
  231. package/dist/processing/composed.d.ts.map +1 -0
  232. package/dist/processing/composed.js +28 -0
  233. package/dist/processing/vocabulary.d.ts +26 -0
  234. package/dist/processing/vocabulary.d.ts.map +1 -0
  235. package/dist/processing/vocabulary.js +35 -0
  236. package/dist/queue/consumer.d.ts +59 -0
  237. package/dist/queue/consumer.d.ts.map +1 -0
  238. package/dist/queue/consumer.js +46 -0
  239. package/dist/retention/composed.d.ts +37 -0
  240. package/dist/retention/composed.d.ts.map +1 -0
  241. package/dist/retention/composed.js +66 -0
  242. package/dist/retention/holds.d.ts +61 -0
  243. package/dist/retention/holds.d.ts.map +1 -0
  244. package/dist/retention/holds.js +107 -0
  245. package/dist/retention/holdsPurge.d.ts +22 -0
  246. package/dist/retention/holdsPurge.d.ts.map +1 -0
  247. package/dist/retention/holdsPurge.js +50 -0
  248. package/dist/retention/policy.d.ts +132 -0
  249. package/dist/retention/policy.d.ts.map +1 -0
  250. package/dist/retention/policy.js +197 -0
  251. package/dist/session/rotated.d.ts +34 -0
  252. package/dist/session/rotated.d.ts.map +1 -0
  253. package/dist/session/rotated.js +25 -0
  254. package/dist/test-utils/connectionFixtures.d.ts +13 -0
  255. package/dist/test-utils/connectionFixtures.d.ts.map +1 -0
  256. package/dist/test-utils/connectionFixtures.js +58 -0
  257. package/dist/test-utils/interleave.d.ts +12 -0
  258. package/dist/test-utils/interleave.d.ts.map +1 -0
  259. package/dist/test-utils/interleave.js +26 -0
  260. package/dist/testWorker.d.ts +8 -0
  261. package/dist/testWorker.d.ts.map +1 -0
  262. package/dist/testWorker.js +9 -0
  263. package/dist/version.generated.d.ts +1 -1
  264. package/dist/version.generated.js +1 -1
  265. package/dist/workflow/dispatchRoute.js +1 -1
  266. package/package.json +1 -1
  267. package/src/audit/auditEvent.ts +1 -1
  268. package/src/audit/chain.ts +551 -0
  269. package/src/audit/citations.ts +63 -0
  270. package/src/capability/bindings.ts +61 -0
  271. package/src/capability/capability.ts +156 -19
  272. package/src/capability/erasure.ts +82 -0
  273. package/src/capability/personColumns.ts +83 -0
  274. package/src/capability/personRows.ts +125 -0
  275. package/src/capability/purge.ts +158 -21
  276. package/src/capability/settings.ts +7 -0
  277. package/src/capability/vectorIndex.ts +60 -0
  278. package/src/cli/commandCatalog.generated.ts +482 -2
  279. package/src/cli/commandFacts.ts +12 -3
  280. package/src/cloudflare-test.d.ts +3 -1
  281. package/src/consent/purpose.ts +160 -0
  282. package/src/consent/reader.ts +134 -0
  283. package/src/controlPlane/audit/actions.ts +15 -4
  284. package/src/controlPlane/capability.ts +99 -20
  285. package/src/controlPlane/context.ts +10 -2
  286. package/src/controlPlane/data/connection.ts +16 -2
  287. package/src/controlPlane/data/connections.ts +231 -0
  288. package/src/controlPlane/data/hold.ts +52 -0
  289. package/src/controlPlane/data/oidcTrust.ts +249 -0
  290. package/src/controlPlane/data/tables.ts +7 -0
  291. package/src/controlPlane/data/trustFirstCall.ts +37 -0
  292. package/src/controlPlane/discovery/adminRoute.ts +71 -9
  293. package/src/controlPlane/discovery/routeInput.ts +86 -0
  294. package/src/controlPlane/discovery/toolName.ts +23 -0
  295. package/src/controlPlane/erasure/attest.ts +205 -0
  296. package/src/controlPlane/erasure/read.ts +169 -0
  297. package/src/controlPlane/error/errors.ts +69 -2
  298. package/src/controlPlane/evidence/derive.ts +426 -0
  299. package/src/controlPlane/evidence/mapping.ts +118 -0
  300. package/src/controlPlane/evidence/pack.ts +190 -0
  301. package/src/controlPlane/http/connections.ts +129 -0
  302. package/src/controlPlane/http/guard.ts +118 -9
  303. package/src/controlPlane/http/handlers.ts +172 -40
  304. package/src/controlPlane/http/holds.ts +108 -0
  305. package/src/controlPlane/http/presence.ts +71 -0
  306. package/src/controlPlane/http/processing.ts +19 -0
  307. package/src/controlPlane/http/responses.ts +590 -7
  308. package/src/controlPlane/http/routes.ts +302 -3
  309. package/src/controlPlane/http/schemas.ts +126 -0
  310. package/src/controlPlane/http/verify.ts +19 -2
  311. package/src/controlPlane/http/verifyTrust.ts +176 -0
  312. package/src/controlPlane/migrations/0004_connection_trusts.ts +30 -0
  313. package/src/controlPlane/migrations/0005_holds.ts +40 -0
  314. package/src/controlPlane/processing/derive.ts +359 -0
  315. package/src/controlPlane/processing/read.ts +102 -0
  316. package/src/controlPlane/scope/kind.ts +63 -0
  317. package/src/controlPlane/scope/scope.ts +65 -3
  318. package/src/controlPlane/wire.ts +26 -0
  319. package/src/createBackend.ts +31 -6
  320. package/src/createEntrypoint.ts +17 -0
  321. package/src/error/payload.ts +234 -0
  322. package/src/error/pithyError.ts +42 -0
  323. package/src/http/routeSpec.ts +75 -5
  324. package/src/http/verification.ts +3 -1
  325. package/src/i18n/translator.ts +2 -1
  326. package/src/index.ts +2 -0
  327. package/src/mcp/annotations.ts +38 -0
  328. package/src/mcp/tools.ts +220 -0
  329. package/src/openapi/document.ts +8 -28
  330. package/src/openapi/operations.ts +62 -0
  331. package/src/presence/channel.ts +46 -0
  332. package/src/presence/declaration.ts +283 -0
  333. package/src/presence/durableObject.ts +287 -0
  334. package/src/presence/frames.ts +153 -0
  335. package/src/presence/http/guard.ts +23 -0
  336. package/src/presence/http/responses.ts +63 -0
  337. package/src/presence/http/routes.ts +165 -0
  338. package/src/presence/http/schemas.ts +39 -0
  339. package/src/presence/names.ts +45 -0
  340. package/src/presence/room.ts +145 -0
  341. package/src/presence/ticket.ts +145 -0
  342. package/src/processing/activity.ts +289 -0
  343. package/src/processing/composed.ts +33 -0
  344. package/src/processing/vocabulary.ts +43 -0
  345. package/src/queue/consumer.ts +104 -0
  346. package/src/retention/composed.ts +75 -0
  347. package/src/retention/holds.ts +175 -0
  348. package/src/retention/holdsPurge.ts +50 -0
  349. package/src/retention/policy.ts +305 -0
  350. package/src/session/rotated.ts +53 -0
  351. package/src/test-utils/connectionFixtures.ts +58 -0
  352. package/src/test-utils/interleave.ts +31 -0
  353. package/src/testWorker.ts +13 -0
  354. package/src/version.generated.ts +1 -1
@@ -25,6 +25,11 @@ const COMMANDS = {
25
25
  "required": false,
26
26
  "repeatable": true
27
27
  },
28
+ "--floor": {
29
+ "type": "string",
30
+ "required": false,
31
+ "repeatable": false
32
+ },
28
33
  "--eject": {
29
34
  "type": "boolean",
30
35
  "required": false,
@@ -77,6 +82,67 @@ const COMMANDS = {
77
82
  "flags": ["--remove", "--status"]
78
83
  }]
79
84
  },
85
+ "audit lock": {
86
+ "positionals": [],
87
+ "flags": {
88
+ "--env": {
89
+ "type": "string",
90
+ "required": false,
91
+ "repeatable": false
92
+ },
93
+ "--json": {
94
+ "type": "boolean",
95
+ "required": false,
96
+ "repeatable": false
97
+ }
98
+ },
99
+ "groups": []
100
+ },
101
+ "audit verify": {
102
+ "positionals": [{
103
+ "name": "file",
104
+ "required": true,
105
+ "variadic": false
106
+ }],
107
+ "flags": { "--json": {
108
+ "type": "boolean",
109
+ "required": false,
110
+ "repeatable": false
111
+ } },
112
+ "groups": []
113
+ },
114
+ "backup": {
115
+ "positionals": [],
116
+ "flags": {
117
+ "--env": {
118
+ "type": "string",
119
+ "required": false,
120
+ "repeatable": false,
121
+ "default": "dev"
122
+ },
123
+ "--worker": {
124
+ "type": "string",
125
+ "required": false,
126
+ "repeatable": false
127
+ },
128
+ "--binding": {
129
+ "type": "string",
130
+ "required": false,
131
+ "repeatable": false
132
+ },
133
+ "--output": {
134
+ "type": "string",
135
+ "required": false,
136
+ "repeatable": false
137
+ },
138
+ "--json": {
139
+ "type": "boolean",
140
+ "required": false,
141
+ "repeatable": false
142
+ }
143
+ },
144
+ "groups": []
145
+ },
80
146
  "cloudflare connect": {
81
147
  "positionals": [],
82
148
  "flags": {
@@ -276,9 +342,44 @@ const COMMANDS = {
276
342
  "type": "string",
277
343
  "required": false,
278
344
  "repeatable": false
345
+ },
346
+ "--oidc-issuer": {
347
+ "type": "string",
348
+ "required": false,
349
+ "repeatable": false
350
+ },
351
+ "--oidc-claim": {
352
+ "type": "string",
353
+ "required": false,
354
+ "repeatable": true
355
+ },
356
+ "--oidc-audience": {
357
+ "type": "string",
358
+ "required": false,
359
+ "repeatable": false
279
360
  }
280
361
  },
281
362
  "groups": [
363
+ {
364
+ "kind": "requires",
365
+ "flag": "--oidc-claim",
366
+ "needs": ["--oidc-issuer"],
367
+ "any": false
368
+ },
369
+ {
370
+ "kind": "requires",
371
+ "flag": "--oidc-audience",
372
+ "needs": ["--oidc-issuer"],
373
+ "any": false
374
+ },
375
+ {
376
+ "kind": "atMostOne",
377
+ "flags": ["--oidc-issuer", "--public-key"]
378
+ },
379
+ {
380
+ "kind": "atMostOne",
381
+ "flags": ["--oidc-issuer", "--update"]
382
+ },
282
383
  {
283
384
  "kind": "requires",
284
385
  "flag": "--public-key",
@@ -300,8 +401,8 @@ const COMMANDS = {
300
401
  {
301
402
  "kind": "requires",
302
403
  "flag": "--kind",
303
- "needs": ["--public-key"],
304
- "any": false
404
+ "needs": ["--public-key", "--oidc-issuer"],
405
+ "any": true
305
406
  },
306
407
  {
307
408
  "kind": "requires",
@@ -316,6 +417,47 @@ const COMMANDS = {
316
417
  }
317
418
  ]
318
419
  },
420
+ "dashboard connections": {
421
+ "positionals": [],
422
+ "flags": {
423
+ "--principal": {
424
+ "type": "string",
425
+ "required": true,
426
+ "repeatable": false
427
+ },
428
+ "--env": {
429
+ "type": "string",
430
+ "required": false,
431
+ "repeatable": false
432
+ },
433
+ "--worker": {
434
+ "type": "string",
435
+ "required": false,
436
+ "repeatable": false
437
+ },
438
+ "--revoke": {
439
+ "type": "boolean",
440
+ "required": false,
441
+ "repeatable": false
442
+ },
443
+ "--reason": {
444
+ "type": "string",
445
+ "required": false,
446
+ "repeatable": false
447
+ },
448
+ "--yes": {
449
+ "type": "boolean",
450
+ "required": false,
451
+ "repeatable": false
452
+ },
453
+ "--json": {
454
+ "type": "boolean",
455
+ "required": false,
456
+ "repeatable": false
457
+ }
458
+ },
459
+ "groups": []
460
+ },
319
461
  "dashboard disconnect": {
320
462
  "positionals": [],
321
463
  "flags": {
@@ -400,6 +542,48 @@ const COMMANDS = {
400
542
  },
401
543
  "groups": []
402
544
  },
545
+ "dashboard revoke-trust": {
546
+ "positionals": [],
547
+ "flags": {
548
+ "--env": {
549
+ "type": "string",
550
+ "required": false,
551
+ "repeatable": false,
552
+ "default": "dev"
553
+ },
554
+ "--worker": {
555
+ "type": "string",
556
+ "required": false,
557
+ "repeatable": false
558
+ },
559
+ "--origin": {
560
+ "type": "string",
561
+ "required": false,
562
+ "repeatable": false
563
+ },
564
+ "--json": {
565
+ "type": "boolean",
566
+ "required": false,
567
+ "repeatable": false
568
+ },
569
+ "--open": {
570
+ "type": "boolean",
571
+ "required": false,
572
+ "repeatable": false
573
+ },
574
+ "--trust-id": {
575
+ "type": "string",
576
+ "required": true,
577
+ "repeatable": false
578
+ },
579
+ "--yes": {
580
+ "type": "boolean",
581
+ "required": false,
582
+ "repeatable": false
583
+ }
584
+ },
585
+ "groups": []
586
+ },
403
587
  "dashboard rotate": {
404
588
  "positionals": [],
405
589
  "flags": {
@@ -982,6 +1166,31 @@ const COMMANDS = {
982
1166
  "required": false,
983
1167
  "repeatable": false
984
1168
  },
1169
+ "--react-native": {
1170
+ "type": "boolean",
1171
+ "required": false,
1172
+ "repeatable": false
1173
+ },
1174
+ "--app": {
1175
+ "type": "string",
1176
+ "required": false,
1177
+ "repeatable": false
1178
+ },
1179
+ "--ios-rail": {
1180
+ "type": "string",
1181
+ "required": false,
1182
+ "repeatable": false
1183
+ },
1184
+ "--android-rail": {
1185
+ "type": "string",
1186
+ "required": false,
1187
+ "repeatable": false
1188
+ },
1189
+ "--web-rail": {
1190
+ "type": "string",
1191
+ "required": false,
1192
+ "repeatable": false
1193
+ },
985
1194
  "--dir": {
986
1195
  "type": "string",
987
1196
  "required": false,
@@ -996,6 +1205,156 @@ const COMMANDS = {
996
1205
  },
997
1206
  "groups": []
998
1207
  },
1208
+ "mcp connect": {
1209
+ "positionals": [],
1210
+ "flags": {
1211
+ "--env": {
1212
+ "type": "string",
1213
+ "required": false,
1214
+ "repeatable": false,
1215
+ "default": "dev"
1216
+ },
1217
+ "--worker": {
1218
+ "type": "string",
1219
+ "required": false,
1220
+ "repeatable": false
1221
+ },
1222
+ "--worker-url": {
1223
+ "type": "string",
1224
+ "required": false,
1225
+ "repeatable": false
1226
+ },
1227
+ "--purpose": {
1228
+ "type": "string",
1229
+ "required": false,
1230
+ "repeatable": false
1231
+ },
1232
+ "--scope": {
1233
+ "type": "string",
1234
+ "required": false,
1235
+ "repeatable": true
1236
+ },
1237
+ "--update": {
1238
+ "type": "boolean",
1239
+ "required": false,
1240
+ "repeatable": false
1241
+ },
1242
+ "--oidc-issuer": {
1243
+ "type": "string",
1244
+ "required": false,
1245
+ "repeatable": false
1246
+ },
1247
+ "--oidc-claim": {
1248
+ "type": "string",
1249
+ "required": false,
1250
+ "repeatable": true
1251
+ },
1252
+ "--oidc-audience": {
1253
+ "type": "string",
1254
+ "required": false,
1255
+ "repeatable": false
1256
+ },
1257
+ "--oidc-token": {
1258
+ "type": "string",
1259
+ "required": false,
1260
+ "repeatable": false
1261
+ },
1262
+ "--client": {
1263
+ "type": "string",
1264
+ "required": false,
1265
+ "repeatable": false,
1266
+ "enum": [
1267
+ "claude-code",
1268
+ "cursor",
1269
+ "vscode",
1270
+ "gemini",
1271
+ "claude-desktop",
1272
+ "cline",
1273
+ "zed",
1274
+ "codex",
1275
+ "goose",
1276
+ "continue"
1277
+ ]
1278
+ },
1279
+ "--all": {
1280
+ "type": "boolean",
1281
+ "required": false,
1282
+ "repeatable": false
1283
+ },
1284
+ "--json": {
1285
+ "type": "boolean",
1286
+ "required": false,
1287
+ "repeatable": false
1288
+ }
1289
+ },
1290
+ "groups": [
1291
+ {
1292
+ "kind": "atMostOne",
1293
+ "flags": ["--client", "--all"]
1294
+ },
1295
+ {
1296
+ "kind": "atMostOne",
1297
+ "flags": ["--oidc-issuer", "--update"]
1298
+ },
1299
+ {
1300
+ "kind": "requires",
1301
+ "flag": "--oidc-claim",
1302
+ "needs": ["--oidc-issuer"],
1303
+ "any": false
1304
+ },
1305
+ {
1306
+ "kind": "requires",
1307
+ "flag": "--oidc-audience",
1308
+ "needs": ["--oidc-issuer"],
1309
+ "any": false
1310
+ },
1311
+ {
1312
+ "kind": "requires",
1313
+ "flag": "--oidc-token",
1314
+ "needs": ["--oidc-issuer"],
1315
+ "any": false
1316
+ }
1317
+ ]
1318
+ },
1319
+ "mcp disconnect": {
1320
+ "positionals": [],
1321
+ "flags": {
1322
+ "--connection": {
1323
+ "type": "string",
1324
+ "required": true,
1325
+ "repeatable": false
1326
+ },
1327
+ "--worker": {
1328
+ "type": "string",
1329
+ "required": false,
1330
+ "repeatable": false
1331
+ },
1332
+ "--json": {
1333
+ "type": "boolean",
1334
+ "required": false,
1335
+ "repeatable": false
1336
+ }
1337
+ },
1338
+ "groups": []
1339
+ },
1340
+ "mcp serve": {
1341
+ "positionals": [],
1342
+ "flags": { "--connection": {
1343
+ "type": "string",
1344
+ "required": true,
1345
+ "repeatable": false
1346
+ } },
1347
+ "groups": []
1348
+ },
1349
+ "mcp status": {
1350
+ "positionals": [],
1351
+ "flags": { "--json": {
1352
+ "type": "boolean",
1353
+ "required": false,
1354
+ "repeatable": false
1355
+ } },
1356
+ "groups": []
1357
+ },
999
1358
  "media deprovision": {
1000
1359
  "positionals": [],
1001
1360
  "flags": {
@@ -1280,6 +1639,47 @@ const COMMANDS = {
1280
1639
  },
1281
1640
  "groups": []
1282
1641
  },
1642
+ "restore": {
1643
+ "positionals": [{
1644
+ "name": "dir",
1645
+ "required": true,
1646
+ "variadic": false
1647
+ }],
1648
+ "flags": {
1649
+ "--env": {
1650
+ "type": "string",
1651
+ "required": false,
1652
+ "repeatable": false,
1653
+ "default": "dev"
1654
+ },
1655
+ "--worker": {
1656
+ "type": "string",
1657
+ "required": false,
1658
+ "repeatable": false
1659
+ },
1660
+ "--binding": {
1661
+ "type": "string",
1662
+ "required": false,
1663
+ "repeatable": false
1664
+ },
1665
+ "--database": {
1666
+ "type": "string",
1667
+ "required": false,
1668
+ "repeatable": false
1669
+ },
1670
+ "--group": {
1671
+ "type": "string",
1672
+ "required": false,
1673
+ "repeatable": false
1674
+ },
1675
+ "--json": {
1676
+ "type": "boolean",
1677
+ "required": false,
1678
+ "repeatable": false
1679
+ }
1680
+ },
1681
+ "groups": []
1682
+ },
1283
1683
  "schema": {
1284
1684
  "positionals": [{
1285
1685
  "name": "command",
@@ -2237,6 +2637,26 @@ const COMMANDS = {
2237
2637
  "required": false,
2238
2638
  "repeatable": false
2239
2639
  },
2640
+ "--app": {
2641
+ "type": "string",
2642
+ "required": false,
2643
+ "repeatable": false
2644
+ },
2645
+ "--ios-rail": {
2646
+ "type": "string",
2647
+ "required": false,
2648
+ "repeatable": false
2649
+ },
2650
+ "--android-rail": {
2651
+ "type": "string",
2652
+ "required": false,
2653
+ "repeatable": false
2654
+ },
2655
+ "--web-rail": {
2656
+ "type": "string",
2657
+ "required": false,
2658
+ "repeatable": false
2659
+ },
2240
2660
  "--auth": {
2241
2661
  "type": "boolean",
2242
2662
  "required": false,
@@ -2252,6 +2672,11 @@ const COMMANDS = {
2252
2672
  "required": false,
2253
2673
  "repeatable": false
2254
2674
  },
2675
+ "--consent": {
2676
+ "type": "boolean",
2677
+ "required": false,
2678
+ "repeatable": false
2679
+ },
2255
2680
  "--dry-run": {
2256
2681
  "type": "boolean",
2257
2682
  "required": false,
@@ -2282,6 +2707,26 @@ const COMMANDS = {
2282
2707
  "required": false,
2283
2708
  "repeatable": false
2284
2709
  },
2710
+ "--app": {
2711
+ "type": "string",
2712
+ "required": false,
2713
+ "repeatable": false
2714
+ },
2715
+ "--ios-rail": {
2716
+ "type": "string",
2717
+ "required": false,
2718
+ "repeatable": false
2719
+ },
2720
+ "--android-rail": {
2721
+ "type": "string",
2722
+ "required": false,
2723
+ "repeatable": false
2724
+ },
2725
+ "--web-rail": {
2726
+ "type": "string",
2727
+ "required": false,
2728
+ "repeatable": false
2729
+ },
2285
2730
  "--check": {
2286
2731
  "type": "boolean",
2287
2732
  "required": false,
@@ -2603,11 +3048,13 @@ const GLOBAL_FLAGS = [
2603
3048
  ];
2604
3049
  /** The groups, which only list their subcommands: a sentence may name one, and nobody runs one. */
2605
3050
  const GROUPS = [
3051
+ "audit",
2606
3052
  "cloudflare",
2607
3053
  "dashboard",
2608
3054
  "docs",
2609
3055
  "email",
2610
3056
  "feature",
3057
+ "mcp",
2611
3058
  "media",
2612
3059
  "payments",
2613
3060
  "privacy",
@@ -1,7 +1,7 @@
1
1
  // SPDX-FileCopyrightText: 2026 Pithy
2
2
  // SPDX-License-Identifier: MIT
3
3
  /**
4
- * **What the catalog cannot say about a `pithy` command, written down once (#711).**
4
+ * **What the catalog cannot say about a `pithy` command, written down once.**
5
5
  *
6
6
  * `commandCatalog.generated.ts` is the parser's own account of every command: its arguments, its flags, which
7
7
  * are required, which have defaults, which go together. Four facts are not in any parser, and each was the
@@ -24,14 +24,14 @@
24
24
  * The commands that act on exactly one Worker, and refuse `input/required` without `--worker` when a project
25
25
  * has several and the run cannot ask. Every line that names one names the Worker, by its `apps/` directory.
26
26
  */
27
- export declare const WORKER_SCOPED: readonly ["add", "dashboard connect", "email provision", "media provision", "payments provision", "storage provision", "support provision", "testers provision", "turnstile deprovision", "turnstile provision", "ui add", "ui sync", "vector provision", "vector reprocess", "vector reset", "worker sync"];
27
+ export declare const WORKER_SCOPED: readonly ["add", "dashboard connect", "email provision", "mcp connect", "media provision", "payments provision", "storage provision", "support provision", "testers provision", "turnstile deprovision", "turnstile provision", "ui add", "ui sync", "vector provision", "vector reprocess", "vector reset", "worker sync"];
28
28
  /** A command that acts on one Worker. */
29
29
  export type WorkerScopedPath = (typeof WORKER_SCOPED)[number];
30
30
  /**
31
31
  * The commands that take `--worker` and do not need it: each fans out over every Worker, or falls back to the
32
32
  * first that answers, and the flag narrows.
33
33
  */
34
- export declare const WORKER_NARROWS: readonly ["contract", "dashboard disconnect", "dashboard revoke-key", "dashboard rotate", "dashboard status", "doctor", "env", "init", "migrate", "secrets tables", "seed", "support deprovision", "upgrade"];
34
+ export declare const WORKER_NARROWS: readonly ["backup", "contract", "dashboard connections", "dashboard disconnect", "dashboard revoke-key", "dashboard revoke-trust", "dashboard rotate", "dashboard status", "doctor", "env", "init", "mcp disconnect", "migrate", "restore", "secrets tables", "seed", "support deprovision", "upgrade"];
35
35
  /**
36
36
  * A command only a person runs, at a terminal, where the Worker is asked for. `pithy remove` refuses every run
37
37
  * that cannot ask (`core/person_required`).
@@ -63,8 +63,10 @@ export declare const MEANING_ONLY_WITH: {
63
63
  export declare const DESTRUCTIVE_COMMANDS: {
64
64
  readonly "dashboard disconnect": "the environment's dashboard connection and the key it signs with";
65
65
  readonly "dashboard revoke-key": "a signing key the dashboard holds";
66
+ readonly "dashboard revoke-trust": "an OIDC trust a workload calls under";
66
67
  readonly "email deprovision": "the email Workers, and with --suppression the suppression database";
67
68
  readonly "feature destroy": "the feature's worktree, its branch and every resource it provisioned";
69
+ readonly "mcp disconnect": "an agent's key or trust, its key file and its client entries";
68
70
  readonly "media deprovision": "the media Worker, and with --storage its bucket";
69
71
  readonly remove: "a capability's wiring";
70
72
  readonly "secrets deprovision": "the secrets manager, and with --keys the store's keys";
@@ -88,6 +90,7 @@ export declare const DESTRUCTIVE_FLAGS: {
88
90
  readonly "--destroy-retained": "a resource kept for recovery";
89
91
  readonly "--drop": "a capability's tables";
90
92
  readonly "--redo": "the data a seed wrote";
93
+ readonly "--revoke": "every key and trust a principal's connections hold";
91
94
  readonly "--rollback": "the schema a migration group applied";
92
95
  };
93
96
  /** A flag that makes a command destroy something. */
@@ -139,14 +142,14 @@ export declare const PRODUCTION_CONFIRMS: {
139
142
  /** A command whose production run is a person's decision. */
140
143
  export type ProductionPath = keyof typeof PRODUCTION_CONFIRMS;
141
144
  /**
142
- * **A command that acts on every environment when its `--env` is left off (#711)**, production among them. `pithy
145
+ * **A command that acts on every environment when its `--env` is left off**, production among them. `pithy
143
146
  * testers provision` with no `--env` provisions every declared environment, so the bare line touches production as
144
147
  * surely as `--env prod` does, and is a person's decision for the same reason. Each declares `--env` with no
145
148
  * default; `command.test.ts` holds that against the catalog.
146
149
  */
147
150
  export declare const EVERY_ENVIRONMENT_WITHOUT_ENV: readonly ["testers provision"];
148
151
  /**
149
- * **A command that acts on every environment on every run (#711)**, production among them, with no `--env` to narrow
152
+ * **A command that acts on every environment on every run**, production among them, with no `--env` to narrow
150
153
  * it. `pithy secrets provision` deploys each declared environment's manager and mints its store entries, so every line
151
154
  * naming it touches production and is a person's decision — never the fix for one binding, one database or one
152
155
  * setting. None declares `--env`; `command.test.ts` holds that against the catalog.
@@ -1 +1 @@
1
- {"version":3,"file":"commandFacts.d.ts","sourceRoot":"","sources":["../../src/cli/commandFacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commandFacts.d.ts","sourceRoot":"","sources":["../../src/cli/commandFacts.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  //#region src/cli/commandFacts.ts
4
4
  /**
5
- * **What the catalog cannot say about a `pithy` command, written down once (#711).**
5
+ * **What the catalog cannot say about a `pithy` command, written down once.**
6
6
  *
7
7
  * `commandCatalog.generated.ts` is the parser's own account of every command: its arguments, its flags, which
8
8
  * are required, which have defaults, which go together. Four facts are not in any parser, and each was the
@@ -29,6 +29,7 @@ const WORKER_SCOPED = [
29
29
  "add",
30
30
  "dashboard connect",
31
31
  "email provision",
32
+ "mcp connect",
32
33
  "media provision",
33
34
  "payments provision",
34
35
  "storage provision",
@@ -48,15 +49,20 @@ const WORKER_SCOPED = [
48
49
  * first that answers, and the flag narrows.
49
50
  */
50
51
  const WORKER_NARROWS = [
52
+ "backup",
51
53
  "contract",
54
+ "dashboard connections",
52
55
  "dashboard disconnect",
53
56
  "dashboard revoke-key",
57
+ "dashboard revoke-trust",
54
58
  "dashboard rotate",
55
59
  "dashboard status",
56
60
  "doctor",
57
61
  "env",
58
62
  "init",
63
+ "mcp disconnect",
59
64
  "migrate",
65
+ "restore",
60
66
  "secrets tables",
61
67
  "seed",
62
68
  "support deprovision",
@@ -93,8 +99,10 @@ const MEANING_ONLY_WITH = {
93
99
  const DESTRUCTIVE_COMMANDS = {
94
100
  "dashboard disconnect": "the environment's dashboard connection and the key it signs with",
95
101
  "dashboard revoke-key": "a signing key the dashboard holds",
102
+ "dashboard revoke-trust": "an OIDC trust a workload calls under",
96
103
  "email deprovision": "the email Workers, and with --suppression the suppression database",
97
104
  "feature destroy": "the feature's worktree, its branch and every resource it provisioned",
105
+ "mcp disconnect": "an agent's key or trust, its key file and its client entries",
98
106
  "media deprovision": "the media Worker, and with --storage its bucket",
99
107
  remove: "a capability's wiring",
100
108
  "secrets deprovision": "the secrets manager, and with --keys the store's keys",
@@ -116,6 +124,7 @@ const DESTRUCTIVE_FLAGS = {
116
124
  "--destroy-retained": "a resource kept for recovery",
117
125
  "--drop": "a capability's tables",
118
126
  "--redo": "the data a seed wrote",
127
+ "--revoke": "every key and trust a principal's connections hold",
119
128
  "--rollback": "the schema a migration group applied"
120
129
  };
121
130
  /**
@@ -190,14 +199,14 @@ const PRODUCTION_CONFIRMS = {
190
199
  "vector provision": null
191
200
  };
192
201
  /**
193
- * **A command that acts on every environment when its `--env` is left off (#711)**, production among them. `pithy
202
+ * **A command that acts on every environment when its `--env` is left off**, production among them. `pithy
194
203
  * testers provision` with no `--env` provisions every declared environment, so the bare line touches production as
195
204
  * surely as `--env prod` does, and is a person's decision for the same reason. Each declares `--env` with no
196
205
  * default; `command.test.ts` holds that against the catalog.
197
206
  */
198
207
  const EVERY_ENVIRONMENT_WITHOUT_ENV = ["testers provision"];
199
208
  /**
200
- * **A command that acts on every environment on every run (#711)**, production among them, with no `--env` to narrow
209
+ * **A command that acts on every environment on every run**, production among them, with no `--env` to narrow
201
210
  * it. `pithy secrets provision` deploys each declared environment's manager and mints its store entries, so every line
202
211
  * naming it touches production and is a person's decision — never the fix for one binding, one database or one
203
212
  * setting. None declares `--env`; `command.test.ts` holds that against the catalog.