@intutic/cli 2.1.0 → 2.3.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 (368) hide show
  1. package/README.md +8 -8
  2. package/dist/cli.d.ts +0 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +492 -21
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/apiCommand.d.ts +40 -0
  7. package/dist/commands/apiCommand.d.ts.map +1 -0
  8. package/dist/commands/apiCommand.js +88 -0
  9. package/dist/commands/apiCommand.js.map +1 -0
  10. package/dist/commands/budget.d.ts +4 -0
  11. package/dist/commands/budget.d.ts.map +1 -1
  12. package/dist/commands/budget.js +8 -0
  13. package/dist/commands/budget.js.map +1 -1
  14. package/dist/commands/compliance.d.ts +122 -0
  15. package/dist/commands/compliance.d.ts.map +1 -0
  16. package/dist/commands/compliance.js +278 -0
  17. package/dist/commands/compliance.js.map +1 -0
  18. package/dist/commands/connect.d.ts +26 -1
  19. package/dist/commands/connect.d.ts.map +1 -1
  20. package/dist/commands/connect.js +222 -86
  21. package/dist/commands/connect.js.map +1 -1
  22. package/dist/commands/credentials.d.ts +1 -1
  23. package/dist/commands/credentials.js +1 -1
  24. package/dist/commands/decision.d.ts +4 -4
  25. package/dist/commands/decision.js +4 -4
  26. package/dist/commands/disconnect.d.ts +29 -0
  27. package/dist/commands/disconnect.d.ts.map +1 -0
  28. package/dist/commands/disconnect.js +266 -0
  29. package/dist/commands/disconnect.js.map +1 -0
  30. package/dist/commands/doctor.d.ts +0 -1
  31. package/dist/commands/doctor.d.ts.map +1 -1
  32. package/dist/commands/doctor.js +0 -1
  33. package/dist/commands/doctor.js.map +1 -1
  34. package/dist/commands/enforce.d.ts +1 -1
  35. package/dist/commands/enforce.js +1 -1
  36. package/dist/commands/enterprise.d.ts +3 -2
  37. package/dist/commands/enterprise.d.ts.map +1 -1
  38. package/dist/commands/enterprise.js +11 -3
  39. package/dist/commands/enterprise.js.map +1 -1
  40. package/dist/commands/env.d.ts +1 -1
  41. package/dist/commands/env.d.ts.map +1 -1
  42. package/dist/commands/env.js +3 -8
  43. package/dist/commands/env.js.map +1 -1
  44. package/dist/commands/exec.d.ts +2 -3
  45. package/dist/commands/exec.d.ts.map +1 -1
  46. package/dist/commands/exec.js +4 -5
  47. package/dist/commands/exec.js.map +1 -1
  48. package/dist/commands/gateLiveness.d.ts +15 -0
  49. package/dist/commands/gateLiveness.d.ts.map +1 -0
  50. package/dist/commands/gateLiveness.js +34 -0
  51. package/dist/commands/gateLiveness.js.map +1 -0
  52. package/dist/commands/gateway.d.ts +16 -4
  53. package/dist/commands/gateway.d.ts.map +1 -1
  54. package/dist/commands/gateway.js +47 -6
  55. package/dist/commands/gateway.js.map +1 -1
  56. package/dist/commands/github.d.ts +20 -0
  57. package/dist/commands/github.d.ts.map +1 -0
  58. package/dist/commands/github.js +41 -0
  59. package/dist/commands/github.js.map +1 -0
  60. package/dist/commands/guardrails.d.ts +28 -2
  61. package/dist/commands/guardrails.d.ts.map +1 -1
  62. package/dist/commands/guardrails.js +233 -24
  63. package/dist/commands/guardrails.js.map +1 -1
  64. package/dist/commands/init.d.ts +1 -2
  65. package/dist/commands/init.d.ts.map +1 -1
  66. package/dist/commands/init.js +3 -2
  67. package/dist/commands/init.js.map +1 -1
  68. package/dist/commands/install-daemon.d.ts +1 -1
  69. package/dist/commands/install-daemon.js +2 -2
  70. package/dist/commands/integrity.d.ts +10 -2
  71. package/dist/commands/integrity.d.ts.map +1 -1
  72. package/dist/commands/integrity.js +10 -3
  73. package/dist/commands/integrity.js.map +1 -1
  74. package/dist/commands/inventory.d.ts +60 -0
  75. package/dist/commands/inventory.d.ts.map +1 -0
  76. package/dist/commands/inventory.js +141 -0
  77. package/dist/commands/inventory.js.map +1 -0
  78. package/dist/commands/judge.d.ts +1 -1
  79. package/dist/commands/judge.js +2 -2
  80. package/dist/commands/judge.js.map +1 -1
  81. package/dist/commands/login.d.ts +0 -1
  82. package/dist/commands/login.d.ts.map +1 -1
  83. package/dist/commands/login.js +0 -1
  84. package/dist/commands/login.js.map +1 -1
  85. package/dist/commands/logout.d.ts +0 -1
  86. package/dist/commands/logout.d.ts.map +1 -1
  87. package/dist/commands/logout.js +0 -1
  88. package/dist/commands/logout.js.map +1 -1
  89. package/dist/commands/mcp.d.ts +31 -0
  90. package/dist/commands/mcp.d.ts.map +1 -0
  91. package/dist/commands/mcp.js +65 -0
  92. package/dist/commands/mcp.js.map +1 -0
  93. package/dist/commands/notifications.d.ts +54 -0
  94. package/dist/commands/notifications.d.ts.map +1 -0
  95. package/dist/commands/notifications.js +151 -0
  96. package/dist/commands/notifications.js.map +1 -0
  97. package/dist/commands/org.d.ts +3 -3
  98. package/dist/commands/org.js +3 -3
  99. package/dist/commands/policy.d.ts +6 -1
  100. package/dist/commands/policy.d.ts.map +1 -1
  101. package/dist/commands/policy.js +77 -37
  102. package/dist/commands/policy.js.map +1 -1
  103. package/dist/commands/predict-cost.d.ts +1 -2
  104. package/dist/commands/predict-cost.d.ts.map +1 -1
  105. package/dist/commands/predict-cost.js +1 -4
  106. package/dist/commands/predict-cost.js.map +1 -1
  107. package/dist/commands/rollback.d.ts.map +1 -1
  108. package/dist/commands/rollback.js +3 -1
  109. package/dist/commands/rollback.js.map +1 -1
  110. package/dist/commands/routing.d.ts +1 -1
  111. package/dist/commands/routing.js +1 -1
  112. package/dist/commands/rules.d.ts +74 -0
  113. package/dist/commands/rules.d.ts.map +1 -0
  114. package/dist/commands/rules.js +283 -0
  115. package/dist/commands/rules.js.map +1 -0
  116. package/dist/commands/settings.d.ts +43 -0
  117. package/dist/commands/settings.d.ts.map +1 -0
  118. package/dist/commands/settings.js +108 -0
  119. package/dist/commands/settings.js.map +1 -0
  120. package/dist/commands/setup.d.ts +1 -1
  121. package/dist/commands/setup.js +1 -1
  122. package/dist/commands/siem.d.ts +53 -0
  123. package/dist/commands/siem.d.ts.map +1 -0
  124. package/dist/commands/siem.js +132 -0
  125. package/dist/commands/siem.js.map +1 -0
  126. package/dist/commands/skill.d.ts +5 -5
  127. package/dist/commands/skill.js +7 -7
  128. package/dist/commands/skill.js.map +1 -1
  129. package/dist/commands/status.d.ts +0 -1
  130. package/dist/commands/status.d.ts.map +1 -1
  131. package/dist/commands/status.js +2 -3
  132. package/dist/commands/status.js.map +1 -1
  133. package/dist/commands/syncContext.d.ts +0 -1
  134. package/dist/commands/syncContext.d.ts.map +1 -1
  135. package/dist/commands/syncContext.js +0 -1
  136. package/dist/commands/syncContext.js.map +1 -1
  137. package/dist/commands/team.d.ts +2 -2
  138. package/dist/commands/team.js +2 -2
  139. package/dist/commands/traces.d.ts +0 -3
  140. package/dist/commands/traces.d.ts.map +1 -1
  141. package/dist/commands/traces.js +0 -3
  142. package/dist/commands/traces.js.map +1 -1
  143. package/dist/commands/usage.d.ts +41 -0
  144. package/dist/commands/usage.d.ts.map +1 -0
  145. package/dist/commands/usage.js +129 -0
  146. package/dist/commands/usage.js.map +1 -0
  147. package/dist/commands/whoami.d.ts +0 -1
  148. package/dist/commands/whoami.d.ts.map +1 -1
  149. package/dist/commands/whoami.js +0 -1
  150. package/dist/commands/whoami.js.map +1 -1
  151. package/dist/config/keychain.d.ts +0 -1
  152. package/dist/config/keychain.d.ts.map +1 -1
  153. package/dist/config/keychain.js +0 -1
  154. package/dist/config/keychain.js.map +1 -1
  155. package/dist/config/paths.d.ts +0 -1
  156. package/dist/config/paths.d.ts.map +1 -1
  157. package/dist/config/paths.js +0 -1
  158. package/dist/config/paths.js.map +1 -1
  159. package/dist/config/store.d.ts +0 -1
  160. package/dist/config/store.d.ts.map +1 -1
  161. package/dist/config/store.js +0 -1
  162. package/dist/config/store.js.map +1 -1
  163. package/dist/harness/ag2.d.ts +1 -1
  164. package/dist/harness/ag2.js +1 -1
  165. package/dist/harness/agentFramework.d.ts +1 -1
  166. package/dist/harness/agentFramework.js +1 -1
  167. package/dist/harness/agenticOrchestrator.d.ts +4 -6
  168. package/dist/harness/agenticOrchestrator.d.ts.map +1 -1
  169. package/dist/harness/agenticOrchestrator.js +5 -7
  170. package/dist/harness/agenticOrchestrator.js.map +1 -1
  171. package/dist/harness/agentsMd.d.ts +24 -0
  172. package/dist/harness/agentsMd.d.ts.map +1 -0
  173. package/dist/harness/agentsMd.js +28 -0
  174. package/dist/harness/agentsMd.js.map +1 -0
  175. package/dist/harness/aider.d.ts +3 -1
  176. package/dist/harness/aider.d.ts.map +1 -1
  177. package/dist/harness/aider.js +9 -7
  178. package/dist/harness/aider.js.map +1 -1
  179. package/dist/harness/antigravity.d.ts +23 -5
  180. package/dist/harness/antigravity.d.ts.map +1 -1
  181. package/dist/harness/antigravity.js +45 -54
  182. package/dist/harness/antigravity.js.map +1 -1
  183. package/dist/harness/autogen.d.ts +1 -1
  184. package/dist/harness/autogen.js +2 -2
  185. package/dist/harness/autogen.js.map +1 -1
  186. package/dist/harness/claudeCode.d.ts +22 -1
  187. package/dist/harness/claudeCode.d.ts.map +1 -1
  188. package/dist/harness/claudeCode.js +47 -3
  189. package/dist/harness/claudeCode.js.map +1 -1
  190. package/dist/harness/cline.d.ts.map +1 -1
  191. package/dist/harness/cline.js +16 -24
  192. package/dist/harness/cline.js.map +1 -1
  193. package/dist/harness/codex.d.ts +6 -1
  194. package/dist/harness/codex.d.ts.map +1 -1
  195. package/dist/harness/codex.js +26 -28
  196. package/dist/harness/codex.js.map +1 -1
  197. package/dist/harness/continue.d.ts +10 -4
  198. package/dist/harness/continue.d.ts.map +1 -1
  199. package/dist/harness/continue.js +22 -22
  200. package/dist/harness/continue.js.map +1 -1
  201. package/dist/harness/cursor.d.ts +5 -2
  202. package/dist/harness/cursor.d.ts.map +1 -1
  203. package/dist/harness/cursor.js +19 -27
  204. package/dist/harness/cursor.js.map +1 -1
  205. package/dist/harness/detector.d.ts +0 -1
  206. package/dist/harness/detector.d.ts.map +1 -1
  207. package/dist/harness/detector.js +0 -1
  208. package/dist/harness/detector.js.map +1 -1
  209. package/dist/harness/dsh.d.ts +5 -3
  210. package/dist/harness/dsh.d.ts.map +1 -1
  211. package/dist/harness/dsh.js +17 -29
  212. package/dist/harness/dsh.js.map +1 -1
  213. package/dist/harness/eve.d.ts +3 -4
  214. package/dist/harness/eve.d.ts.map +1 -1
  215. package/dist/harness/eve.js +3 -4
  216. package/dist/harness/eve.js.map +1 -1
  217. package/dist/harness/githubCopilot.d.ts +4 -1
  218. package/dist/harness/githubCopilot.d.ts.map +1 -1
  219. package/dist/harness/githubCopilot.js +13 -24
  220. package/dist/harness/githubCopilot.js.map +1 -1
  221. package/dist/harness/goose.d.ts +7 -3
  222. package/dist/harness/goose.d.ts.map +1 -1
  223. package/dist/harness/goose.js +18 -21
  224. package/dist/harness/goose.js.map +1 -1
  225. package/dist/harness/grok.d.ts +2 -2
  226. package/dist/harness/grok.d.ts.map +1 -1
  227. package/dist/harness/grok.js +15 -28
  228. package/dist/harness/grok.js.map +1 -1
  229. package/dist/harness/hermes.d.ts +6 -0
  230. package/dist/harness/hermes.d.ts.map +1 -1
  231. package/dist/harness/hermes.js +17 -16
  232. package/dist/harness/hermes.js.map +1 -1
  233. package/dist/harness/jsSdkGatedAdapter.d.ts.map +1 -1
  234. package/dist/harness/jsSdkGatedAdapter.js +4 -6
  235. package/dist/harness/jsSdkGatedAdapter.js.map +1 -1
  236. package/dist/harness/langgraph.d.ts.map +1 -1
  237. package/dist/harness/langgraph.js +4 -6
  238. package/dist/harness/langgraph.js.map +1 -1
  239. package/dist/harness/muse.d.ts +3 -7
  240. package/dist/harness/muse.d.ts.map +1 -1
  241. package/dist/harness/muse.js +17 -39
  242. package/dist/harness/muse.js.map +1 -1
  243. package/dist/harness/n8n.d.ts +13 -7
  244. package/dist/harness/n8n.d.ts.map +1 -1
  245. package/dist/harness/n8n.js +21 -127
  246. package/dist/harness/n8n.js.map +1 -1
  247. package/dist/harness/openWebUI.d.ts.map +1 -1
  248. package/dist/harness/openWebUI.js +5 -4
  249. package/dist/harness/openWebUI.js.map +1 -1
  250. package/dist/harness/openaiAgents.d.ts +1 -1
  251. package/dist/harness/openaiAgents.d.ts.map +1 -1
  252. package/dist/harness/openaiAgents.js +6 -3
  253. package/dist/harness/openaiAgents.js.map +1 -1
  254. package/dist/harness/openclaw.d.ts +8 -0
  255. package/dist/harness/openclaw.d.ts.map +1 -1
  256. package/dist/harness/openclaw.js +27 -12
  257. package/dist/harness/openclaw.js.map +1 -1
  258. package/dist/harness/opencode.d.ts +4 -5
  259. package/dist/harness/opencode.d.ts.map +1 -1
  260. package/dist/harness/opencode.js +17 -34
  261. package/dist/harness/opencode.js.map +1 -1
  262. package/dist/harness/openhands.d.ts +9 -3
  263. package/dist/harness/openhands.d.ts.map +1 -1
  264. package/dist/harness/openhands.js +43 -25
  265. package/dist/harness/openhands.js.map +1 -1
  266. package/dist/harness/pi.d.ts +7 -2
  267. package/dist/harness/pi.d.ts.map +1 -1
  268. package/dist/harness/pi.js +19 -18
  269. package/dist/harness/pi.js.map +1 -1
  270. package/dist/harness/rooCode.d.ts +12 -5
  271. package/dist/harness/rooCode.d.ts.map +1 -1
  272. package/dist/harness/rooCode.js +25 -43
  273. package/dist/harness/rooCode.js.map +1 -1
  274. package/dist/harness/rulesFiles.d.ts +53 -0
  275. package/dist/harness/rulesFiles.d.ts.map +1 -0
  276. package/dist/harness/rulesFiles.js +106 -0
  277. package/dist/harness/rulesFiles.js.map +1 -0
  278. package/dist/harness/sdkGatedAdapter.d.ts.map +1 -1
  279. package/dist/harness/sdkGatedAdapter.js +4 -6
  280. package/dist/harness/sdkGatedAdapter.js.map +1 -1
  281. package/dist/harness/smolagents.d.ts +2 -2
  282. package/dist/harness/smolagents.js +3 -3
  283. package/dist/harness/smolagents.js.map +1 -1
  284. package/dist/harness/types.d.ts +20 -6
  285. package/dist/harness/types.d.ts.map +1 -1
  286. package/dist/harness/types.js +1 -95
  287. package/dist/harness/types.js.map +1 -1
  288. package/dist/harness/windsurf.d.ts +7 -2
  289. package/dist/harness/windsurf.d.ts.map +1 -1
  290. package/dist/harness/windsurf.js +22 -29
  291. package/dist/harness/windsurf.js.map +1 -1
  292. package/dist/harness/xirp.d.ts +6 -9
  293. package/dist/harness/xirp.d.ts.map +1 -1
  294. package/dist/harness/xirp.js +7 -10
  295. package/dist/harness/xirp.js.map +1 -1
  296. package/dist/lib/api.d.ts +27 -1
  297. package/dist/lib/api.d.ts.map +1 -1
  298. package/dist/lib/api.js +55 -18
  299. package/dist/lib/api.js.map +1 -1
  300. package/dist/lib/ciscoScanner.d.ts +1 -1
  301. package/dist/lib/ciscoScanner.js +1 -1
  302. package/dist/lib/decisionsLogRefresh.d.ts.map +1 -1
  303. package/dist/lib/decisionsLogRefresh.js +6 -7
  304. package/dist/lib/decisionsLogRefresh.js.map +1 -1
  305. package/dist/lib/deviceReport.d.ts +15 -0
  306. package/dist/lib/deviceReport.d.ts.map +1 -1
  307. package/dist/lib/deviceReport.js +30 -0
  308. package/dist/lib/deviceReport.js.map +1 -1
  309. package/dist/lib/envInjector.d.ts +16 -6
  310. package/dist/lib/envInjector.d.ts.map +1 -1
  311. package/dist/lib/envInjector.js +99 -88
  312. package/dist/lib/envInjector.js.map +1 -1
  313. package/dist/lib/gitHooks.d.ts +0 -1
  314. package/dist/lib/gitHooks.d.ts.map +1 -1
  315. package/dist/lib/gitHooks.js +8 -9
  316. package/dist/lib/gitHooks.js.map +1 -1
  317. package/dist/lib/gracefulShutdown.d.ts +1 -1
  318. package/dist/lib/gracefulShutdown.js +1 -1
  319. package/dist/lib/hash.d.ts +0 -1
  320. package/dist/lib/hash.d.ts.map +1 -1
  321. package/dist/lib/hash.js +0 -1
  322. package/dist/lib/hash.js.map +1 -1
  323. package/dist/lib/inventory.d.ts +47 -0
  324. package/dist/lib/inventory.d.ts.map +1 -0
  325. package/dist/lib/inventory.js +106 -0
  326. package/dist/lib/inventory.js.map +1 -0
  327. package/dist/lib/logger.d.ts +0 -1
  328. package/dist/lib/logger.d.ts.map +1 -1
  329. package/dist/lib/logger.js +0 -1
  330. package/dist/lib/logger.js.map +1 -1
  331. package/dist/lib/mdmManifest.d.ts +30 -2
  332. package/dist/lib/mdmManifest.d.ts.map +1 -1
  333. package/dist/lib/mdmManifest.js +50 -2
  334. package/dist/lib/mdmManifest.js.map +1 -1
  335. package/dist/lib/onboarding.d.ts +0 -1
  336. package/dist/lib/onboarding.d.ts.map +1 -1
  337. package/dist/lib/onboarding.js +2 -3
  338. package/dist/lib/onboarding.js.map +1 -1
  339. package/dist/lib/otelPropagation.d.ts +1 -1
  340. package/dist/lib/otelPropagation.js +1 -1
  341. package/dist/lib/policySnapshot.d.ts +3 -1
  342. package/dist/lib/policySnapshot.d.ts.map +1 -1
  343. package/dist/lib/policySnapshot.js +15 -5
  344. package/dist/lib/policySnapshot.js.map +1 -1
  345. package/dist/lib/process.d.ts +5 -1
  346. package/dist/lib/process.d.ts.map +1 -1
  347. package/dist/lib/process.js +13 -4
  348. package/dist/lib/process.js.map +1 -1
  349. package/dist/lib/providerProbe.d.ts +2 -2
  350. package/dist/lib/providerProbe.js +2 -2
  351. package/dist/lib/sandbox/firecracker.d.ts +3 -3
  352. package/dist/lib/sandbox/firecracker.js +3 -3
  353. package/dist/lib/sandbox/index.d.ts +2 -2
  354. package/dist/lib/sandbox/index.js +2 -2
  355. package/dist/lib/sandbox/oci.d.ts +1 -1
  356. package/dist/lib/sandbox/oci.js +1 -1
  357. package/dist/lib/sandbox/types.d.ts +1 -1
  358. package/dist/lib/sandbox/types.js +1 -1
  359. package/dist/lib/sopFrontMatter.d.ts +1 -1
  360. package/dist/lib/sopFrontMatter.js +1 -1
  361. package/package.json +6 -5
  362. package/resources/sandbox/Dockerfile +1 -1
  363. package/resources/sandbox/entrypoint.sh +4 -4
  364. package/resources/sandbox/firecracker-launch.sh +1 -1
  365. package/dist/harness/base.d.ts +0 -20
  366. package/dist/harness/base.d.ts.map +0 -1
  367. package/dist/harness/base.js +0 -73
  368. package/dist/harness/base.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/commands/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,MAAM,iBAAiB,GACrB,6GAA6G,CAAA;AAE/G,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAU,CAAA;AA6C1E,KAAK,UAAU,SAAS,CAAC,IAAoB;IAC3C,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAA;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxD,OAAO,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACzB,KAAK,UAAU;YACb,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC1B,KAAK,aAAa,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACvB;YACE,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC;AACH,CAAC;AAED,iCAAiC;AACjC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAyD;IAEzD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACpC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAE,kBAAwC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACrF,GAAG,CAAC,KAAK,CAAC,4BAA4B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAA0B,kBAAkB,EAAE;YACzE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACtB,gBAAgB,EAAE,IAAI,CAAC,MAAM;SAC9B,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAA;QAC1C,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;QACtC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QAC3B,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAA;QACpD,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,GAAG,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAA;QACnE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,6BAA6B;AAC7B,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAoB;IACvD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAA6B,kBAAkB,CAAC,CAAA;QAC5E,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;QAE3B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;QAEhC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAA;YAChG,OAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACf,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;YACpC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;YACzB,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAA;YACvC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YAC1C,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;YACtC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,eAAe,IAAI,WAAW,CAAC,CAAA;YAC7D,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,4CAA4C;AAC5C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAiB,EAAE,IAAoB;IAC5E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAC3D,CAAA;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAA;QACtC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAC5C,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,CAAA;QACnD,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACrF,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAClG,GAAG,CAAC,KAAK,CACP,mBAAmB,EACnB,GAAG,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CACxG,CAAA;QACD,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,CAAA;QAC7C,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,UAAU,IAAI,iDAAiD,CAAC,CAAA;IAC/F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,mCAAmC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,4CAA4C;AAC5C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAiB,EAAE,IAAoB;IAC5E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAC3B,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAC1D,EAAE,CACH,CAAA;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAA;QAC7C,GAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;QACvE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,mCAAmC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,4CAA4C;AAC5C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAAiB,EACjB,IAA0C;IAE1C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,GAAG,CAAC,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAAE;YACpE,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAA;QACF,GAAG,CAAC,OAAO,CAAC,WAAW,SAAS,WAAW,CAAC,CAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAA;QACvF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,IAA6E;IAE7E,MAAM,IAAI,GAA4B,EAAE,CAAA;IACxC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YAC5D,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,MAAM,CAAA;IAC5C,CAAC;IACD,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,qBAAqB,KAAK,MAAM,IAAI,IAAI,CAAC,qBAAqB,KAAK,OAAO,EAAE,CAAC;YACpF,GAAG,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,KAAK,MAAM,CAAA;IACpE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAA;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAC5B,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAC1D,IAAI,CACL,CAAA;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QAED,GAAG,CAAC,OAAO,CAAC,mCAAmC,GAAG,CAAC,aAAa,IAAI,CAAC,CAAA;QACrE,GAAG,CAAC,GAAG,CACL,yFAAyF;YACvF,oFAAoF,CACvF,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,oCAAoC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,6CAA6C;AAC7C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAA0E;IAE1E,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,GAAG,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,GAAG,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,OAAkB,CAAA;IAC9D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG;QACnB,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU;QACxD,CAAC,CAAC,2BAA2B,CAAA;IAE/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAC5B,IAAI,EACJ,EAAE,SAAS,EAAE,CACd,CAAA;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QAED,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,gBAAgB,4BAA4B,GAAG,CAAC,SAAS,GAAG,CAAC,CAAA;QAC7G,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,iEAAiE;YACjE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,6BAA6B,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAA;QACrH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,wCAAwC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACrG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAcD,8CAA8C;AAC9C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAoB;IAC1D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAA4B,sCAAsC,CAAC,CAAA;QAE/F,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAA;QAC1C,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CACN,QAAQ,GAAG,CAAC,MAAM,sBAAsB,GAAG,CAAC,eAAe,0CAA0C,CACtG,CAAA;YACD,GAAG,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAA;YAC/F,OAAM;QACR,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,GAAG,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAA;YACtF,OAAM;QACR,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAA;QACzG,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC9C,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACnC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;QACjD,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEf,IAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtE,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;YACrD,GAAG,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAA;QACzG,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC1C,GAAG,CAAC,GAAG,CACL,cAAc,GAAG,CAAC,OAAO,CAAC,kBAAkB,kDAAkD;gBAC5F,YAAY,GAAG,CAAC,OAAO,CAAC,MAAM,8DAA8D,CAC/F,CAAA;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CACL,yFAAyF;gBACvF,0CAA0C,CAC7C,CAAA;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/commands/gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `intutic github webhook` — the GitHub pull-request webhook that feeds cost
3
+ * per pull request without a GitHub token.
4
+ *
5
+ * Subcommands:
6
+ * - `intutic github webhook show [--json]` — the payload URL and when the secret was made
7
+ * - `intutic github webhook rotate-secret [--json]` — make the webhook, or replace its secret; prints the secret once
8
+ *
9
+ * Server side: `GET /api/v1/integrations/github/webhook` and
10
+ * `POST /api/v1/integrations/github/webhook/secret`, OWNER and ADMIN on a plan
11
+ * with fleet analytics.
12
+ *
13
+ * @module
14
+ */
15
+ import { type ApiCommandOpts } from './apiCommand.js';
16
+ /** `intutic github webhook show` */
17
+ export declare function runGithubWebhookShow(opts: ApiCommandOpts): Promise<void>;
18
+ /** `intutic github webhook rotate-secret` */
19
+ export declare function runGithubWebhookRotateSecret(opts: ApiCommandOpts): Promise<void>;
20
+ //# sourceMappingURL=github.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/commands/github.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAqC,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAKxF,oCAAoC;AACpC,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB9E;AAED,6CAA6C;AAC7C,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAYtF"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * `intutic github webhook` — the GitHub pull-request webhook that feeds cost
3
+ * per pull request without a GitHub token.
4
+ *
5
+ * Subcommands:
6
+ * - `intutic github webhook show [--json]` — the payload URL and when the secret was made
7
+ * - `intutic github webhook rotate-secret [--json]` — make the webhook, or replace its secret; prints the secret once
8
+ *
9
+ * Server side: `GET /api/v1/integrations/github/webhook` and
10
+ * `POST /api/v1/integrations/github/webhook/secret`, OWNER and ADMIN on a plan
11
+ * with fleet analytics.
12
+ *
13
+ * @module
14
+ */
15
+ import { log } from '../lib/logger.js';
16
+ import { printSigningSecret, runApiCommand } from './apiCommand.js';
17
+ const STEPS = 'In GitHub: Settings › Webhooks › Add webhook. Paste the payload URL, choose application/json, paste the secret, and select the "Pull requests" event only.';
18
+ /** `intutic github webhook show` */
19
+ export async function runGithubWebhookShow(opts) {
20
+ await runApiCommand(opts, 'Failed to read the GitHub webhook', (client) => client.get('/api/v1/integrations/github/webhook'), (info) => {
21
+ log.header('Intutic — GitHub pull-request webhook');
22
+ if (!info.configured || !info.url) {
23
+ log.dim(' Not set up. `intutic github webhook rotate-secret` makes it and prints its secret.');
24
+ return;
25
+ }
26
+ log.field('Payload URL', info.url);
27
+ log.field('Secret made', info.secretRotatedAt ?? '—');
28
+ log.field('Last delivery', info.lastDeliveryAt ?? 'never');
29
+ log.dim(` ${STEPS}`);
30
+ });
31
+ }
32
+ /** `intutic github webhook rotate-secret` */
33
+ export async function runGithubWebhookRotateSecret(opts) {
34
+ await runApiCommand(opts, 'Failed to make the GitHub webhook secret', (client) => client.post('/api/v1/integrations/github/webhook/secret'), (made) => {
35
+ log.success('GitHub webhook secret made; deliveries signed with any earlier secret are refused from now on.');
36
+ log.field('Payload URL', made.url);
37
+ printSigningSecret(made.secret);
38
+ log.dim(` ${STEPS}`);
39
+ });
40
+ }
41
+ //# sourceMappingURL=github.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/commands/github.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAuB,MAAM,iBAAiB,CAAA;AAExF,MAAM,KAAK,GACT,4JAA4J,CAAA;AAE9J,oCAAoC;AACpC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAoB;IAC7D,MAAM,aAAa,CACjB,IAAI,EACJ,mCAAmC,EACnC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAoB,qCAAqC,CAAC,EAChF,CAAC,IAAI,EAAE,EAAE;QACP,GAAG,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAA;QACnD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAClC,GAAG,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAA;YAC/F,OAAM;QACR,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAClC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,IAAI,GAAG,CAAC,CAAA;QACrD,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,CAAA;QAC1D,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAA;IACvB,CAAC,CACF,CAAA;AACH,CAAC;AAED,6CAA6C;AAC7C,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,IAAoB;IACrE,MAAM,aAAa,CACjB,IAAI,EACJ,0CAA0C,EAC1C,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAsB,4CAA4C,CAAC,EAC1F,CAAC,IAAI,EAAE,EAAE;QACP,GAAG,CAAC,OAAO,CAAC,gGAAgG,CAAC,CAAA;QAC7G,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAClC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC/B,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAA;IACvB,CAAC,CACF,CAAA;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * `intutic guardrails` — the Policy Clause Ledger from the terminal
3
- * (LLD #71, Wave 6): sources, documents, the review queue, and the three
2
+ * `intutic guardrails` — the Policy Clause Ledger from the terminal:
3
+ * sources, documents, the review queue, and the three
4
4
  * decisions that move a cited guardrail. A client of
5
5
  * `/api/v1/policy-guardrails/*` and `/api/v1/connectors`; nothing here
6
6
  * decides anything the server would not.
@@ -40,6 +40,7 @@ export declare function runGuardrailsDuplicates(opts: CommonOpts & {
40
40
  export declare function runGuardrailsList(opts: CommonOpts & {
41
41
  status?: string;
42
42
  target?: string;
43
+ provenance?: string;
43
44
  doc?: string;
44
45
  limit?: string;
45
46
  }): Promise<void>;
@@ -53,6 +54,31 @@ export declare function runGuardrailsReject(guardrailId: string, opts: CommonOpt
53
54
  }): Promise<void>;
54
55
  export declare function runGuardrailsRetire(guardrailId: string, opts: CommonOpts): Promise<void>;
55
56
  export declare function runGuardrailsReconfirm(guardrailId: string, opts: CommonOpts): Promise<void>;
57
+ export interface AuthorOpts extends CommonOpts {
58
+ file?: string;
59
+ name?: string;
60
+ description?: string;
61
+ clearDescription?: boolean;
62
+ kind?: string;
63
+ title?: string;
64
+ tools?: string;
65
+ tokens?: string;
66
+ argContains?: string[];
67
+ argNotContains?: string[];
68
+ first?: string;
69
+ then?: string;
70
+ token?: string;
71
+ limit?: string;
72
+ taint?: string;
73
+ roles?: string;
74
+ models?: string;
75
+ hosts?: string;
76
+ rationale?: string;
77
+ predicate?: string;
78
+ }
79
+ export declare function runGuardrailsCreate(opts: AuthorOpts): Promise<void>;
80
+ export declare function runGuardrailsUpdate(guardrailId: string, opts: AuthorOpts): Promise<void>;
81
+ export declare function runGuardrailsDelete(guardrailId: string, opts: CommonOpts): Promise<void>;
56
82
  export declare function runGuardrailsReplay(guardrailId: string, opts: CommonOpts): Promise<void>;
57
83
  export declare function runGuardrailsConflicts(opts: CommonOpts): Promise<void>;
58
84
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../src/commands/guardrails.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../src/commands/guardrails.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * `intutic guardrails` — the Policy Clause Ledger from the terminal
3
- * (LLD #71, Wave 6): sources, documents, the review queue, and the three
2
+ * `intutic guardrails` — the Policy Clause Ledger from the terminal:
3
+ * sources, documents, the review queue, and the three
4
4
  * decisions that move a cited guardrail. A client of
5
5
  * `/api/v1/policy-guardrails/*` and `/api/v1/connectors`; nothing here
6
6
  * decides anything the server would not.
@@ -13,17 +13,26 @@
13
13
  import { readFile, writeFile, mkdir, readdir, unlink } from 'node:fs/promises';
14
14
  import { createHash } from 'node:crypto';
15
15
  import { join } from 'node:path';
16
+ import { parse as parseYaml } from 'yaml';
16
17
  import { log } from '../lib/logger.js';
17
18
  import { parseSopFile, withContentHash } from '../lib/sopFrontMatter.js';
18
19
  import { NOT_AUTHENTICATED } from '../lib/authMessages.js';
19
20
  import { loadCredentials, loadConfig } from '../config/store.js';
20
21
  import { resolveControlPlaneUrl } from '../config/paths.js';
21
22
  import { createApiClient } from '../lib/api.js';
22
- import { SOURCE_PROVIDERS, GUARDRAIL_STATUSES, GUARDRAIL_TARGETS, guardrailIdFromSopTitle, guardrailFileStem, } from '@intutic/shared-types';
23
+ import { SOURCE_PROVIDERS, GUARDRAIL_STATUSES, GUARDRAIL_TARGETS, GUARDRAIL_PROVENANCES, AuthoredGuardrailCreateSchema, AuthoredGuardrailUpdateSchema, guardrailIdFromSopTitle, guardrailFileStem, } from '@intutic/shared-types';
23
24
  const BASE = '/api/v1/policy-guardrails';
24
25
  function errMessage(err) {
25
26
  return err instanceof Error ? err.message : String(err);
26
27
  }
28
+ /**
29
+ * What the server said went wrong: `detail` when it gives one (a 403 from
30
+ * the role check says only `error: 'Forbidden'` and names the roles that may
31
+ * in `detail`), else `error`.
32
+ */
33
+ function said(body) {
34
+ return body.detail ?? body.error;
35
+ }
27
36
  async function getClient(dev) {
28
37
  const creds = await loadCredentials();
29
38
  if (!creds) {
@@ -133,21 +142,18 @@ export async function runGuardrailsSourcesAdd(provider, opts) {
133
142
  export async function runGuardrailsSourcesSync(connectorId, opts) {
134
143
  const client = await getClient(opts.dev);
135
144
  try {
145
+ // What POST /api/v1/connectors/:connectorId/sync answers (routes/connectors.ts).
136
146
  const res = await client.post(`/api/v1/connectors/${enc(connectorId)}/sync`, {});
137
147
  if (opts.json) {
138
148
  emitJson(res);
139
149
  return;
140
150
  }
141
151
  log.success(`Synced ${connectorId}.`);
142
- log.field('Documents processed', String(res.processedCount ?? 0));
143
- log.field('Documents changed', String(res.changedDocIds?.length ?? 0));
144
- log.field('SOPs written', String(res.updatedSopIds?.length ?? 0));
145
- if (res.successorSopIds?.length)
146
- log.field('Upstream successors', String(res.successorSopIds.length));
147
- if (res.upstreamDeleted?.length)
148
- log.field('Upstream deleted', res.upstreamDeleted.join(', '));
149
- if (res.staleGuardrailIds?.length)
150
- log.warn(`${res.staleGuardrailIds.length} guardrail citation(s) went stale: ${res.staleGuardrailIds.join(', ')}`);
152
+ log.field('Documents processed', String(res.processed_docs));
153
+ log.field('SOPs written', String(res.updated_sops.length));
154
+ if (res.successor_sops.length > 0) {
155
+ log.field('Upstream successors', `${res.successor_sops.length} draft(s) for review: ${res.successor_sops.join(', ')}`);
156
+ }
151
157
  }
152
158
  catch (err) {
153
159
  log.error(`Failed to sync source: ${errMessage(err)}`);
@@ -187,7 +193,7 @@ export async function runGuardrailsDocsShow(docId, opts) {
187
193
  process.exit(1);
188
194
  }
189
195
  if (status !== 200 || !body.document) {
190
- log.error(`Failed to load document (${status}): ${body.error ?? 'unknown error'}`);
196
+ log.error(`Failed to load document (${status}): ${said(body) ?? 'unknown error'}`);
191
197
  process.exit(1);
192
198
  }
193
199
  const d = body.document;
@@ -221,7 +227,7 @@ export async function runGuardrailsDocsExtract(docId, opts) {
221
227
  process.exit(1);
222
228
  }
223
229
  if (status === 403) {
224
- log.error(body.error ?? 'Extraction needs a paid plan or an active trial.');
230
+ log.error(said(body) ?? 'Extraction needs a paid plan or an active trial.');
225
231
  process.exit(1);
226
232
  }
227
233
  if (status === 429) {
@@ -229,7 +235,7 @@ export async function runGuardrailsDocsExtract(docId, opts) {
229
235
  process.exit(1);
230
236
  }
231
237
  if (status !== 200 || !body.result) {
232
- log.error(`Extraction failed (${status}): ${body.error ?? 'unknown error'}`);
238
+ log.error(`Extraction failed (${status}): ${said(body) ?? 'unknown error'}`);
233
239
  process.exit(1);
234
240
  }
235
241
  const r = body.result;
@@ -410,6 +416,13 @@ export async function runGuardrailsList(opts) {
410
416
  }
411
417
  params.set('target', opts.target);
412
418
  }
419
+ if (opts.provenance !== undefined) {
420
+ if (!GUARDRAIL_PROVENANCES.includes(opts.provenance)) {
421
+ log.error(`--provenance must be one of ${GUARDRAIL_PROVENANCES.join(', ')}.`);
422
+ process.exit(1);
423
+ }
424
+ params.set('provenance', opts.provenance);
425
+ }
413
426
  if (opts.doc)
414
427
  params.set('docId', opts.doc);
415
428
  if (opts.limit !== undefined) {
@@ -443,12 +456,18 @@ export async function runGuardrailsList(opts) {
443
456
  const ir = g.ir;
444
457
  const title = ir.title ?? ir.kind;
445
458
  log.field(`${g.guardrailId} [${g.status}${g.sourceStale ? ', stale' : ''}]`, `${g.target} — ${title}`);
446
- log.dim(` "${g.clause.quote}" — ${g.document.title}${g.document.sourceUrl ? ` ${g.document.sourceUrl}` : ''}`);
459
+ log.dim(` ${standsOn(g)}`);
447
460
  if (g.status === 'SHADOW')
448
461
  log.dim(` shadow: ${g.shadowEvaluations} evaluation(s), ${g.shadowWouldAct} would-act`);
449
462
  }
450
463
  log.info(`${guardrails.length} guardrail(s).`);
451
464
  }
465
+ /** What a guardrail stands on, in one line: its quote and document, or — authored — its name, description and version. */
466
+ function standsOn(g) {
467
+ if (g.clause && g.document)
468
+ return `"${g.clause.quote}" — ${g.document.title}${g.document.sourceUrl ? ` ${g.document.sourceUrl}` : ''}`;
469
+ return `authored: ${g.name ?? g.guardrailId}${g.description ? ` — "${g.description}"` : ''}, version ${g.version}`;
470
+ }
452
471
  function printReadiness(r) {
453
472
  log.field('Ready to enforce', r.ready ? (r.neverFired ? 'yes — but no observed traffic exercised it; promote with --acknowledge-no-traffic' : 'yes') : 'no');
454
473
  log.field('Shadow evaluations', `${r.evaluations}/${r.thresholds.minShadowEvaluations}`);
@@ -465,7 +484,7 @@ export async function runGuardrailsShow(guardrailId, opts) {
465
484
  process.exit(1);
466
485
  }
467
486
  if (status !== 200 || !body.guardrail) {
468
- log.error(`Failed to load guardrail (${status}): ${body.error ?? 'unknown error'}`);
487
+ log.error(`Failed to load guardrail (${status}): ${said(body) ?? 'unknown error'}`);
469
488
  process.exit(1);
470
489
  }
471
490
  const g = body.guardrail;
@@ -485,8 +504,17 @@ export async function runGuardrailsShow(guardrailId, opts) {
485
504
  const ir = g.ir;
486
505
  log.header(`Intutic — ${ir.title ?? ir.kind}`);
487
506
  log.field('Guardrail', `${g.guardrailId} [${g.status}${g.sourceStale ? ', stale citation' : ''}] ${g.target}`);
488
- log.field('Cites', `"${g.clause.quote}"`);
489
- log.field('From', `${g.document.title} (${g.document.provider})${g.document.sourceUrl ? ` ${g.document.sourceUrl}` : ''} — passage ${g.clause.passageHash.slice(0, 12)}`);
507
+ if (g.clause && g.document) {
508
+ log.field('Cites', `"${g.clause.quote}"`);
509
+ log.field('From', `${g.document.title} (${g.document.provider})${g.document.sourceUrl ? ` ${g.document.sourceUrl}` : ''} — passage ${g.clause.passageHash.slice(0, 12)}`);
510
+ }
511
+ else {
512
+ log.field('Authored', `${g.name ?? g.guardrailId}, version ${g.version}${g.supersedes ? ` (replaced ${g.supersedes})` : ''}`);
513
+ if (g.description)
514
+ log.field('Description', g.description);
515
+ }
516
+ if (g.supersededBy)
517
+ log.field('Superseded by', `${g.supersededBy} — an IR edit created the next version`);
490
518
  const rendered = g.rendered;
491
519
  if (g.target === 'hook_rule' && rendered.toolPattern) {
492
520
  log.field('Tool pattern', rendered.toolPattern);
@@ -505,7 +533,7 @@ export async function runGuardrailsShow(guardrailId, opts) {
505
533
  log.dim(` ${line}`);
506
534
  }
507
535
  else if (g.target === 'workspace_setting' && rendered.key && Array.isArray(rendered.values)) {
508
- // A settings-class guardrail (TD-474 item 2) is a proposed value for one workspace setting.
536
+ // A settings-class guardrail is a proposed value for one workspace setting.
509
537
  log.field('Workspace setting', `${rendered.key}: ${rendered.values.join(', ')}`);
510
538
  if (rendered.key === 'egressAllow') {
511
539
  log.dim(' No shadow evidence exists for egress: `promote --acknowledge-no-traffic` adds these entries from PROPOSED, and only adds.');
@@ -533,17 +561,17 @@ async function transition(guardrailId, action, body, opts, done) {
533
561
  process.exit(1);
534
562
  }
535
563
  if (status === 403) {
536
- log.error(res.error ?? 'Refused: a guardrail transition needs a signed-in member of the workspace.');
564
+ log.error(said(res) ?? 'Refused: a guardrail transition needs a signed-in member of the workspace.');
537
565
  process.exit(1);
538
566
  }
539
567
  if (status === 409) {
540
- log.error(res.error ?? `Refused (${res.code ?? 'conflict'}).`);
568
+ log.error(said(res) ?? `Refused (${res.code ?? 'conflict'}).`);
541
569
  if (res.readiness)
542
570
  printReadiness(res.readiness);
543
571
  process.exit(1);
544
572
  }
545
573
  if (status !== 200 || !res.guardrail) {
546
- log.error(`${action} failed (${status}): ${res.error ?? 'unknown error'}`);
574
+ log.error(`${action} failed (${status}): ${said(res) ?? 'unknown error'}`);
547
575
  process.exit(1);
548
576
  }
549
577
  if (opts.json) {
@@ -581,6 +609,187 @@ export async function runGuardrailsRetire(guardrailId, opts) {
581
609
  export async function runGuardrailsReconfirm(guardrailId, opts) {
582
610
  await transition(guardrailId, 'reconfirm', {}, opts, 'citation re-confirmed against a live passage.');
583
611
  }
612
+ /** The IR flags, by the IR key each one sets. */
613
+ const IR_FLAGS = ['title', 'tools', 'tokens', 'argContains', 'argNotContains', 'first', 'then', 'token', 'limit', 'taint', 'roles', 'models', 'hosts', 'rationale', 'predicate'];
614
+ const list = (v) => v
615
+ .split(',')
616
+ .map((x) => x.trim())
617
+ .filter((x) => x.length > 0);
618
+ function fail(message) {
619
+ log.error(message);
620
+ process.exit(1);
621
+ }
622
+ /** An IR from flags: `--kind` plus the keys that kind takes. The server's validator decides whether the result is a rule. */
623
+ function irFromFlags(opts) {
624
+ const given = IR_FLAGS.filter((f) => opts[f] !== undefined);
625
+ if (opts.kind === undefined) {
626
+ if (given.length > 0)
627
+ fail(`--${given[0].replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`)} needs --kind.`);
628
+ return null;
629
+ }
630
+ const ir = { kind: opts.kind };
631
+ if (opts.title !== undefined)
632
+ ir.title = opts.title;
633
+ if (opts.tools !== undefined)
634
+ ir.tools = list(opts.tools);
635
+ if (opts.tokens !== undefined)
636
+ ir.tokens = list(opts.tokens);
637
+ if (opts.argContains !== undefined)
638
+ ir.argContains = opts.argContains;
639
+ if (opts.argNotContains !== undefined)
640
+ ir.argNotContains = opts.argNotContains;
641
+ if (opts.first !== undefined)
642
+ ir.first = opts.first;
643
+ if (opts.then !== undefined)
644
+ ir.then = opts.then;
645
+ if (opts.token !== undefined)
646
+ ir.token = opts.token;
647
+ if (opts.limit !== undefined) {
648
+ const n = Number(opts.limit);
649
+ if (!Number.isInteger(n))
650
+ fail('--limit must be an integer.');
651
+ ir.limit = n;
652
+ }
653
+ if (opts.taint !== undefined)
654
+ ir.taint = opts.taint;
655
+ if (opts.roles !== undefined)
656
+ ir.roles = list(opts.roles);
657
+ if (opts.models !== undefined)
658
+ ir.models = list(opts.models);
659
+ if (opts.hosts !== undefined)
660
+ ir.hosts = list(opts.hosts);
661
+ if (opts.rationale !== undefined)
662
+ ir.rationale = opts.rationale;
663
+ if (opts.predicate !== undefined) {
664
+ try {
665
+ ir.predicate = JSON.parse(opts.predicate);
666
+ }
667
+ catch (err) {
668
+ fail(`--predicate must be JSON: ${errMessage(err)}`);
669
+ }
670
+ }
671
+ // The schema pins a generated or authored predicate to re-ask; there is nothing to choose.
672
+ if (opts.kind === 'wasm_predicate')
673
+ ir.verdict = 3;
674
+ return ir;
675
+ }
676
+ /** `--file`: YAML or JSON (YAML reads both). A top-level `kind` is a bare IR; otherwise `{ name?, description?, ir }`. */
677
+ async function readAuthoredFile(file) {
678
+ let parsed;
679
+ try {
680
+ parsed = parseYaml(await readFile(file, 'utf8'));
681
+ }
682
+ catch (err) {
683
+ fail(`Could not read ${file}: ${errMessage(err)}`);
684
+ }
685
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
686
+ fail(`${file} must hold an object: an IR with a \`kind\`, or { name, description, ir }.`);
687
+ const obj = parsed;
688
+ if ('kind' in obj)
689
+ return { ir: obj };
690
+ const extra = Object.keys(obj).filter((k) => !['name', 'description', 'ir'].includes(k));
691
+ if (extra.length > 0)
692
+ fail(`${file}: unknown key(s) ${extra.join(', ')}; a guardrail file holds name, description and ir.`);
693
+ return obj;
694
+ }
695
+ /** The fields a create or an update sends: the file first, flags over it. */
696
+ async function authoredFields(opts) {
697
+ const fromFile = opts.file ? await readAuthoredFile(opts.file) : {};
698
+ const flagIr = irFromFlags(opts);
699
+ if (flagIr && fromFile.ir !== undefined)
700
+ fail('Give the IR with --file or with --kind and its flags, not both.');
701
+ if (opts.description !== undefined && opts.clearDescription)
702
+ fail('--description and --clear-description contradict each other.');
703
+ const body = {};
704
+ const name = opts.name ?? fromFile.name;
705
+ if (name !== undefined)
706
+ body.name = typeof name === 'string' ? name.trim() : name;
707
+ const description = opts.clearDescription ? null : (opts.description ?? fromFile.description);
708
+ if (description !== undefined)
709
+ body.description = description;
710
+ const ir = flagIr ?? fromFile.ir;
711
+ if (ir !== undefined)
712
+ body.ir = ir;
713
+ return body;
714
+ }
715
+ function zodMessage(error) {
716
+ const first = error.issues[0];
717
+ return `${first?.path.length ? `${first.path.join('.')}: ` : ''}${first?.message ?? 'invalid'}`;
718
+ }
719
+ function printChecks(checks) {
720
+ for (const c of checks)
721
+ log.dim(` ${c.passed ? '✓' : '✗'} ${c.name}${c.passed ? '' : ` — ${c.detail}`}`);
722
+ }
723
+ /** The answers an authored write shares: 400 with the refusing check, 403, 404, 409 with a code. */
724
+ function reportWriteFailure(status, body, guardrailId, action) {
725
+ if (status === 400) {
726
+ log.error(said(body) ?? `${action} refused (400).`);
727
+ if (body.validation)
728
+ printChecks(body.validation);
729
+ process.exit(1);
730
+ }
731
+ if (status === 404 && guardrailId)
732
+ fail(`Guardrail "${guardrailId}" not found in this workspace.`);
733
+ if (status === 403)
734
+ fail(said(body) ?? 'Refused: authoring guardrails needs an OWNER or ADMIN member of the workspace.');
735
+ if (status === 409)
736
+ fail(said(body) ?? `Refused (${body.code ?? 'conflict'}).`);
737
+ fail(`${action} failed (${status}): ${said(body) ?? 'unknown error'}`);
738
+ }
739
+ export async function runGuardrailsCreate(opts) {
740
+ const body = await authoredFields(opts);
741
+ if (body.ir === undefined)
742
+ fail('Give the IR with --file <path> or with --kind and its flags.');
743
+ const parsed = AuthoredGuardrailCreateSchema.safeParse(body);
744
+ if (!parsed.success)
745
+ fail(`Not a guardrail the server would accept: ${zodMessage(parsed.error)}`);
746
+ const client = await getClient(opts.dev);
747
+ const { status, body: res } = await client.postWithStatus(`${BASE}/guardrails`, parsed.data);
748
+ if (status !== 201 || !res.guardrail)
749
+ reportWriteFailure(status, res, null, 'Create');
750
+ const g = res.guardrail;
751
+ if (opts.json) {
752
+ emitJson(res);
753
+ return;
754
+ }
755
+ log.success(`Created ${g.guardrailId} (${g.target}), PROPOSED: it enforces and measures nothing yet.`);
756
+ log.info(`Next: intutic guardrails approve-shadow ${g.guardrailId} — then promotion waits on shadow evidence, as for an extracted guardrail.`);
757
+ }
758
+ export async function runGuardrailsUpdate(guardrailId, opts) {
759
+ const body = await authoredFields(opts);
760
+ if (Object.keys(body).length === 0)
761
+ fail('Nothing to update: give --name, --description, --clear-description, --file or --kind with its flags.');
762
+ const parsed = AuthoredGuardrailUpdateSchema.safeParse(body);
763
+ if (!parsed.success)
764
+ fail(`Not an update the server would accept: ${zodMessage(parsed.error)}`);
765
+ const client = await getClient(opts.dev);
766
+ const { status, body: res } = await client.putWithStatus(`${BASE}/guardrails/${enc(guardrailId)}`, parsed.data);
767
+ if (status !== 200 || !res.guardrail)
768
+ reportWriteFailure(status, res, guardrailId, 'Update');
769
+ const g = res.guardrail;
770
+ if (opts.json) {
771
+ emitJson(res);
772
+ return;
773
+ }
774
+ if (res.forked) {
775
+ log.success(`The IR changed: version ${g.version} is ${g.guardrailId}, PROPOSED with no evidence. ${guardrailId} is retired.`);
776
+ log.info(`Shadow evidence belongs to the rule that earned it. Next: intutic guardrails approve-shadow ${g.guardrailId}`);
777
+ }
778
+ else {
779
+ log.success(`${guardrailId}: updated in place (${g.status}); its evidence stands.`);
780
+ }
781
+ }
782
+ export async function runGuardrailsDelete(guardrailId, opts) {
783
+ const client = await getClient(opts.dev);
784
+ const { status, body: res } = await client.delWithStatus(`${BASE}/guardrails/${enc(guardrailId)}`);
785
+ if (status !== 200 || !res.guardrail)
786
+ reportWriteFailure(status, res, guardrailId, 'Delete');
787
+ if (opts.json) {
788
+ emitJson(res);
789
+ return;
790
+ }
791
+ log.success(`${guardrailId}: retired — gone from every rule endpoint on the next poll. Its history is kept.`);
792
+ }
584
793
  const REPLAY_SOURCE_LABEL = {
585
794
  enforcement_log: 'hook-gate and proxy verdicts with a captured input',
586
795
  context_snapshots: 'sampled request contexts',
@@ -595,7 +804,7 @@ export async function runGuardrailsReplay(guardrailId, opts) {
595
804
  process.exit(1);
596
805
  }
597
806
  if (status !== 200 || !body.replay) {
598
- log.error(`Replay failed (${status}): ${body.error ?? 'unknown error'}`);
807
+ log.error(`Replay failed (${status}): ${said(body) ?? 'unknown error'}`);
599
808
  process.exit(1);
600
809
  }
601
810
  const r = body.replay;