@shield-agent/kya 0.33.6 → 0.35.3

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 (257) hide show
  1. package/.cursor-plugin/plugin.json +2 -2
  2. package/.mcp.json +1 -1
  3. package/LIMITATIONS.md +2 -1
  4. package/README.md +39 -640
  5. package/amp/settings.example.json +1 -1
  6. package/assets/report-blocked.png +0 -0
  7. package/assets/report-certify.png +0 -0
  8. package/assets/report-overview.png +0 -0
  9. package/assets/screenshot-features.json +18 -0
  10. package/claude/claude_desktop_config.example.json +1 -1
  11. package/cline/cline_mcp_settings.example.json +1 -1
  12. package/copilot/mcp-config.example.json +1 -1
  13. package/dist/alerts/config.d.ts +22 -0
  14. package/dist/alerts/config.d.ts.map +1 -0
  15. package/dist/alerts/config.js +59 -0
  16. package/dist/alerts/config.js.map +1 -0
  17. package/dist/alerts/constants.d.ts +5 -0
  18. package/dist/alerts/constants.d.ts.map +1 -0
  19. package/dist/alerts/constants.js +5 -0
  20. package/dist/alerts/constants.js.map +1 -0
  21. package/dist/alerts/desktop.d.ts +19 -0
  22. package/dist/alerts/desktop.d.ts.map +1 -0
  23. package/dist/alerts/desktop.js +57 -0
  24. package/dist/alerts/desktop.js.map +1 -0
  25. package/dist/alerts/incident-alert.d.ts +42 -0
  26. package/dist/alerts/incident-alert.d.ts.map +1 -0
  27. package/dist/alerts/incident-alert.js +84 -0
  28. package/dist/alerts/incident-alert.js.map +1 -0
  29. package/dist/alerts/scan.d.ts +37 -0
  30. package/dist/alerts/scan.d.ts.map +1 -0
  31. package/dist/alerts/scan.js +188 -0
  32. package/dist/alerts/scan.js.map +1 -0
  33. package/dist/alerts/state.d.ts +55 -0
  34. package/dist/alerts/state.d.ts.map +1 -0
  35. package/dist/alerts/state.js +178 -0
  36. package/dist/alerts/state.js.map +1 -0
  37. package/dist/alerts/triage-input.d.ts +36 -0
  38. package/dist/alerts/triage-input.d.ts.map +1 -0
  39. package/dist/alerts/triage-input.js +159 -0
  40. package/dist/alerts/triage-input.js.map +1 -0
  41. package/dist/alerts/triage-model.d.ts +42 -0
  42. package/dist/alerts/triage-model.d.ts.map +1 -0
  43. package/dist/alerts/triage-model.js +126 -0
  44. package/dist/alerts/triage-model.js.map +1 -0
  45. package/dist/alerts/triage-prompt.d.ts +23 -0
  46. package/dist/alerts/triage-prompt.d.ts.map +1 -0
  47. package/dist/alerts/triage-prompt.js +53 -0
  48. package/dist/alerts/triage-prompt.js.map +1 -0
  49. package/dist/alerts/triage-schema.json +52 -0
  50. package/dist/alerts/triage-setup.d.ts +77 -0
  51. package/dist/alerts/triage-setup.d.ts.map +1 -0
  52. package/dist/alerts/triage-setup.js +290 -0
  53. package/dist/alerts/triage-setup.js.map +1 -0
  54. package/dist/alerts/triage-status.d.ts +26 -0
  55. package/dist/alerts/triage-status.d.ts.map +1 -0
  56. package/dist/alerts/triage-status.js +61 -0
  57. package/dist/alerts/triage-status.js.map +1 -0
  58. package/dist/alerts/triage-tokenizer.d.ts +29 -0
  59. package/dist/alerts/triage-tokenizer.d.ts.map +1 -0
  60. package/dist/alerts/triage-tokenizer.js +82 -0
  61. package/dist/alerts/triage-tokenizer.js.map +1 -0
  62. package/dist/card-png.d.ts +3 -0
  63. package/dist/card-png.d.ts.map +1 -0
  64. package/dist/card-png.js +54 -0
  65. package/dist/card-png.js.map +1 -0
  66. package/dist/card.d.ts +62 -0
  67. package/dist/card.d.ts.map +1 -0
  68. package/dist/card.js +154 -0
  69. package/dist/card.js.map +1 -0
  70. package/dist/certify/evaluate.d.ts +11 -1
  71. package/dist/certify/evaluate.d.ts.map +1 -1
  72. package/dist/certify/evaluate.js +8 -1
  73. package/dist/certify/evaluate.js.map +1 -1
  74. package/dist/certify/render.d.ts.map +1 -1
  75. package/dist/certify/render.js +10 -1
  76. package/dist/certify/render.js.map +1 -1
  77. package/dist/cli.d.ts +2 -0
  78. package/dist/cli.d.ts.map +1 -1
  79. package/dist/cli.js +234 -49
  80. package/dist/cli.js.map +1 -1
  81. package/dist/commands/alerts.d.ts +16 -0
  82. package/dist/commands/alerts.d.ts.map +1 -0
  83. package/dist/commands/alerts.js +112 -0
  84. package/dist/commands/alerts.js.map +1 -0
  85. package/dist/commands/connect.d.ts.map +1 -1
  86. package/dist/commands/connect.js +4 -3
  87. package/dist/commands/connect.js.map +1 -1
  88. package/dist/commands/doctor.d.ts.map +1 -1
  89. package/dist/commands/doctor.js +12 -1
  90. package/dist/commands/doctor.js.map +1 -1
  91. package/dist/commands/hook.d.ts.map +1 -1
  92. package/dist/commands/hook.js +94 -8
  93. package/dist/commands/hook.js.map +1 -1
  94. package/dist/commands/init.d.ts +2 -0
  95. package/dist/commands/init.d.ts.map +1 -1
  96. package/dist/commands/init.js +2 -0
  97. package/dist/commands/init.js.map +1 -1
  98. package/dist/commands/notify-flush.d.ts.map +1 -1
  99. package/dist/commands/notify-flush.js +3 -0
  100. package/dist/commands/notify-flush.js.map +1 -1
  101. package/dist/commands/receipt-serve.d.ts +1 -1
  102. package/dist/commands/receipt-serve.d.ts.map +1 -1
  103. package/dist/commands/receipt-serve.js +3 -2
  104. package/dist/commands/receipt-serve.js.map +1 -1
  105. package/dist/commands/receipt.d.ts +19 -0
  106. package/dist/commands/receipt.d.ts.map +1 -1
  107. package/dist/commands/receipt.js +21 -1
  108. package/dist/commands/receipt.js.map +1 -1
  109. package/dist/commands/serve-mcp.d.ts +2 -0
  110. package/dist/commands/serve-mcp.d.ts.map +1 -1
  111. package/dist/commands/serve-mcp.js +2 -0
  112. package/dist/commands/serve-mcp.js.map +1 -1
  113. package/dist/commands/start.d.ts +50 -2
  114. package/dist/commands/start.d.ts.map +1 -1
  115. package/dist/commands/start.js +233 -27
  116. package/dist/commands/start.js.map +1 -1
  117. package/dist/commands/team.d.ts +19 -2
  118. package/dist/commands/team.d.ts.map +1 -1
  119. package/dist/commands/team.js +93 -13
  120. package/dist/commands/team.js.map +1 -1
  121. package/dist/commands/uninstall.d.ts +20 -0
  122. package/dist/commands/uninstall.d.ts.map +1 -0
  123. package/dist/commands/uninstall.js +378 -0
  124. package/dist/commands/uninstall.js.map +1 -0
  125. package/dist/commands/wire-hooks.d.ts +16 -2
  126. package/dist/commands/wire-hooks.d.ts.map +1 -1
  127. package/dist/commands/wire-hooks.js +86 -21
  128. package/dist/commands/wire-hooks.js.map +1 -1
  129. package/dist/cta.d.ts +3 -1
  130. package/dist/cta.d.ts.map +1 -1
  131. package/dist/cta.js +11 -6
  132. package/dist/cta.js.map +1 -1
  133. package/dist/fs-atomic.d.ts.map +1 -1
  134. package/dist/fs-atomic.js +9 -2
  135. package/dist/fs-atomic.js.map +1 -1
  136. package/dist/guard-demo.d.ts +23 -0
  137. package/dist/guard-demo.d.ts.map +1 -0
  138. package/dist/guard-demo.js +34 -0
  139. package/dist/guard-demo.js.map +1 -0
  140. package/dist/guard-entry.d.ts +2 -0
  141. package/dist/guard-entry.d.ts.map +1 -0
  142. package/dist/guard-entry.js +50 -0
  143. package/dist/guard-entry.js.map +1 -0
  144. package/dist/guard-lite.d.ts +27 -0
  145. package/dist/guard-lite.d.ts.map +1 -0
  146. package/dist/guard-lite.js +274 -0
  147. package/dist/guard-lite.js.map +1 -0
  148. package/dist/guard-pack.d.ts +7 -2
  149. package/dist/guard-pack.d.ts.map +1 -1
  150. package/dist/guard-pack.js +202 -4
  151. package/dist/guard-pack.js.map +1 -1
  152. package/dist/hook-health.d.ts +7 -0
  153. package/dist/hook-health.d.ts.map +1 -0
  154. package/dist/hook-health.js +105 -0
  155. package/dist/hook-health.js.map +1 -0
  156. package/dist/investigate/detectors.d.ts +6 -0
  157. package/dist/investigate/detectors.d.ts.map +1 -1
  158. package/dist/investigate/detectors.js +10 -0
  159. package/dist/investigate/detectors.js.map +1 -1
  160. package/dist/manifest.d.ts +106 -0
  161. package/dist/manifest.d.ts.map +1 -0
  162. package/dist/manifest.js +454 -0
  163. package/dist/manifest.js.map +1 -0
  164. package/dist/mcp/http.d.ts +1 -0
  165. package/dist/mcp/http.d.ts.map +1 -1
  166. package/dist/mcp/http.js +1 -0
  167. package/dist/mcp/http.js.map +1 -1
  168. package/dist/mcp/protocol.d.ts +2 -0
  169. package/dist/mcp/protocol.d.ts.map +1 -1
  170. package/dist/mcp/protocol.js +5 -1
  171. package/dist/mcp/protocol.js.map +1 -1
  172. package/dist/mcp/stdio.d.ts +1 -0
  173. package/dist/mcp/stdio.d.ts.map +1 -1
  174. package/dist/mcp/stdio.js +1 -0
  175. package/dist/mcp/stdio.js.map +1 -1
  176. package/dist/never-list-input.d.ts +2 -0
  177. package/dist/never-list-input.d.ts.map +1 -1
  178. package/dist/never-list-input.js +30 -30
  179. package/dist/never-list-input.js.map +1 -1
  180. package/dist/notify/dispatch.d.ts +1 -1
  181. package/dist/notify/dispatch.d.ts.map +1 -1
  182. package/dist/notify/dispatch.js +4 -1
  183. package/dist/notify/dispatch.js.map +1 -1
  184. package/dist/notify/incident-templates.d.ts +23 -0
  185. package/dist/notify/incident-templates.d.ts.map +1 -0
  186. package/dist/notify/incident-templates.js +128 -0
  187. package/dist/notify/incident-templates.js.map +1 -0
  188. package/dist/notify/index.d.ts +12 -0
  189. package/dist/notify/index.d.ts.map +1 -1
  190. package/dist/notify/index.js +50 -3
  191. package/dist/notify/index.js.map +1 -1
  192. package/dist/notify/templates.d.ts +6 -0
  193. package/dist/notify/templates.d.ts.map +1 -1
  194. package/dist/notify/templates.js +12 -2
  195. package/dist/notify/templates.js.map +1 -1
  196. package/dist/offline-evaluate.d.ts.map +1 -1
  197. package/dist/offline-evaluate.js +2 -1
  198. package/dist/offline-evaluate.js.map +1 -1
  199. package/dist/parse-args.js +1 -1
  200. package/dist/parse-args.js.map +1 -1
  201. package/dist/receipt/changes.d.ts +2 -1
  202. package/dist/receipt/changes.d.ts.map +1 -1
  203. package/dist/receipt/changes.js +9 -0
  204. package/dist/receipt/changes.js.map +1 -1
  205. package/dist/receipt/dashboard.d.ts +14 -1
  206. package/dist/receipt/dashboard.d.ts.map +1 -1
  207. package/dist/receipt/dashboard.js +20 -2
  208. package/dist/receipt/dashboard.js.map +1 -1
  209. package/dist/receipt/live-server.d.ts +19 -0
  210. package/dist/receipt/live-server.d.ts.map +1 -1
  211. package/dist/receipt/live-server.js +119 -0
  212. package/dist/receipt/live-server.js.map +1 -1
  213. package/dist/receipt/receipt-css.d.ts.map +1 -1
  214. package/dist/receipt/receipt-css.js +45 -0
  215. package/dist/receipt/receipt-css.js.map +1 -1
  216. package/dist/receipt/render-receipt.d.ts +17 -0
  217. package/dist/receipt/render-receipt.d.ts.map +1 -1
  218. package/dist/receipt/render-receipt.js +479 -80
  219. package/dist/receipt/render-receipt.js.map +1 -1
  220. package/dist/receipt/search.d.ts.map +1 -1
  221. package/dist/receipt/search.js +2 -0
  222. package/dist/receipt/search.js.map +1 -1
  223. package/dist/receipt/semantic-setup.d.ts +4 -0
  224. package/dist/receipt/semantic-setup.d.ts.map +1 -1
  225. package/dist/receipt/semantic-setup.js +10 -1
  226. package/dist/receipt/semantic-setup.js.map +1 -1
  227. package/dist/receipt/share.d.ts +15 -0
  228. package/dist/receipt/share.d.ts.map +1 -1
  229. package/dist/receipt/share.js +34 -1
  230. package/dist/receipt/share.js.map +1 -1
  231. package/dist/telemetry.d.ts +17 -2
  232. package/dist/telemetry.d.ts.map +1 -1
  233. package/dist/telemetry.js +67 -7
  234. package/dist/telemetry.js.map +1 -1
  235. package/dist/trail.d.ts +45 -0
  236. package/dist/trail.d.ts.map +1 -1
  237. package/dist/trail.js +38 -0
  238. package/dist/trail.js.map +1 -1
  239. package/dist/write-journal.d.ts +39 -0
  240. package/dist/write-journal.d.ts.map +1 -0
  241. package/dist/write-journal.js +107 -0
  242. package/dist/write-journal.js.map +1 -0
  243. package/droid/README.md +1 -1
  244. package/droid/mcp.example.json +1 -1
  245. package/gemini/settings.example.json +1 -1
  246. package/grok/README.md +2 -2
  247. package/kilo/kilo.example.json +1 -1
  248. package/kimi/mcp.example.json +1 -1
  249. package/kiro/mcp.example.json +1 -1
  250. package/manifest.json +2 -2
  251. package/mastracode/mcp.example.json +1 -1
  252. package/mcp.json +1 -1
  253. package/openai/codex.config.example.toml +1 -1
  254. package/opencode/opencode.example.json +1 -1
  255. package/package.json +9 -3
  256. package/qwen/settings.example.json +1 -1
  257. package/server.json +3 -3
package/dist/card.d.ts ADDED
@@ -0,0 +1,62 @@
1
+ import { type TrailEvent } from "./trail.js";
2
+ export interface CardInput {
3
+ readonly ruleId: string;
4
+ /** Short phrase from the rule table, for example "delete a cloud volume". */
5
+ readonly label: string;
6
+ /** Host name as shown to people, for example "Claude Code". */
7
+ readonly host: string;
8
+ /** Calendar date, YYYY-MM-DD. */
9
+ readonly date: string;
10
+ }
11
+ export declare const CARD_WIDTH = 1200;
12
+ export declare const CARD_HEIGHT = 630;
13
+ /** The install one-liner on the card (docs/install.md "One liner"). */
14
+ export declare const CARD_INSTALL = "npx @shield-agent/kya@latest start";
15
+ /** Label when a trail row has a rule id this build does not know (a row from a newer version). */
16
+ export declare const CARD_FALLBACK_LABEL = "run a command the guard blocks";
17
+ /** Human phrase for a rule id: the never-list rows first, then the guard pack. Undefined when no table knows it. */
18
+ export declare function ruleLabel(ruleId: string): string | undefined;
19
+ /** Escape text for an XML text node or a double-quoted attribute. */
20
+ export declare function xmlEscape(s: string): string;
21
+ /** The four lines of the card, in order. The alt text and the visible text come from here, so they cannot differ. */
22
+ export declare function cardLines(input: CardInput): readonly [string, string, string, string];
23
+ /** The card: a 1200 x 630 SVG with a title and a description that match the four visible lines. */
24
+ export declare function buildCardSvg(input: CardInput): string;
25
+ /** Two lines to paste with the image. */
26
+ export declare function cardCaption(input: CardInput): string;
27
+ /** Stable short id of a trail row (the `--id` value). A hash of the time, session, tool and rule: it shows nothing of them. */
28
+ export declare function eventIdOf(e: TrailEvent): string;
29
+ /** A near miss is a call the guard denied. An ask (outcome held) is not one: the person answered it. */
30
+ export declare const isNearMiss: (e: TrailEvent) => boolean;
31
+ /**
32
+ * The only place a trail row meets the card. It reads three fields (neverRule or reasonCode, product, ts) and the rule table.
33
+ * It does not read toolId, project, sessionId, summary, diffPreview or targetPath.
34
+ */
35
+ export declare function cardInputOf(e: TrailEvent): CardInput;
36
+ export type NearMissPick = {
37
+ readonly ok: true;
38
+ readonly event: TrailEvent;
39
+ } | {
40
+ readonly ok: false;
41
+ readonly message: string;
42
+ };
43
+ /** The call for a card: the row with that id, or the newest denied call. A clear message when there is none. */
44
+ export declare function pickNearMiss(rows: readonly TrailEvent[], id?: string): NearMissPick;
45
+ /** A denied call in the last `days` days (the offer in /kya-guard:status). */
46
+ export declare function recentNearMiss(rows: readonly TrailEvent[], now: Date, days?: number): TrailEvent | undefined;
47
+ /** Folder of the cards: `<KYA_HOME or HOME>/.kya/cards`. */
48
+ export declare const cardsDir: (env: NodeJS.ProcessEnv) => string;
49
+ /** Write the SVG to the cards folder. Returns the path. Writes one local file and nothing else. */
50
+ export declare function writeCardSvg(env: NodeJS.ProcessEnv, e: TrailEvent): {
51
+ readonly svgPath: string;
52
+ readonly input: CardInput;
53
+ };
54
+ /** The text `kya receipt --card` and `guard.mjs --card` print: the file paths, then the two-line caption. */
55
+ export declare function formatCard(r: {
56
+ readonly svgPath: string;
57
+ readonly pngPath?: string;
58
+ readonly pngNote?: string;
59
+ readonly input: CardInput;
60
+ readonly id: string;
61
+ }): string;
62
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../src/card.ts"],"names":[],"mappings":"AAeA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,UAAU,OAAO,CAAC;AAC/B,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,uEAAuE;AACvE,eAAO,MAAM,YAAY,uCAAuC,CAAC;AACjE,kGAAkG;AAClG,eAAO,MAAM,mBAAmB,mCAAmC,CAAC;AAEpE,oHAAoH;AACpH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5D;AAKD,qEAAqE;AACrE,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,qHAAqH;AACrH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAQrF;AAmBD,mGAAmG;AACnG,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAkBrD;AAED,yCAAyC;AACzC,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAGpD;AAED,+HAA+H;AAC/H,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAE/C;AAED,wGAAwG;AACxG,eAAO,MAAM,UAAU,GAAI,GAAG,UAAU,KAAG,OAAqC,CAAC;AAEjF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAQpD;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAIhI,gHAAgH;AAChH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CAiBnF;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,SAAI,GAAG,UAAU,GAAG,SAAS,CAGvG;AAED,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,CAAC,UAAU,KAAG,MAA6C,CAAC;AAEhG,mGAAmG;AACnG,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAO3H;AAED,6GAA6G;AAC7G,wBAAgB,UAAU,CAAC,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAQxK"}
package/dist/card.js ADDED
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Near-miss card (spec item G5): one 1200 x 630 SVG that says what almost happened and nothing private.
3
+ *
4
+ * Privacy by construction. `buildCardSvg` takes only { ruleId, label, host, date }: four short strings. It never sees a
5
+ * command, a path, a project name or a session id, so none of them can reach the image. `cardInputOf` is the only place
6
+ * that reads a trail row, and it reads three fields: the rule id, the product and the timestamp. The label comes from the
7
+ * rule table, never from the row. Imported by the kya-guard bundle, so: no network, no child process (the PNG step lives in
8
+ * card-png.ts, which the bundle does not import).
9
+ */
10
+ import { createHash } from "node:crypto";
11
+ import { mkdirSync, writeFileSync } from "node:fs";
12
+ import { join } from "node:path";
13
+ import { globalConfigDir } from "./config.js";
14
+ import { guardLabel } from "./guard-pack.js";
15
+ import { NEVER_LIST_INPUT_RULES } from "./never-list-input.js";
16
+ import { outcomeOf, productLabel } from "./trail.js";
17
+ export const CARD_WIDTH = 1200;
18
+ export const CARD_HEIGHT = 630;
19
+ /** The install one-liner on the card (docs/install.md "One liner"). */
20
+ export const CARD_INSTALL = "npx @shield-agent/kya@latest start";
21
+ /** Label when a trail row has a rule id this build does not know (a row from a newer version). */
22
+ export const CARD_FALLBACK_LABEL = "run a command the guard blocks";
23
+ /** Human phrase for a rule id: the never-list rows first, then the guard pack. Undefined when no table knows it. */
24
+ export function ruleLabel(ruleId) {
25
+ return NEVER_LIST_INPUT_RULES.find((r) => r.id === ruleId)?.label ?? guardLabel(ruleId);
26
+ }
27
+ /** XML 1.0 allows no control characters except tab, LF and CR. A line break would break a one-line text. */
28
+ const clean = (s, max) => s.replace(/[\u0000-\u001F\u007F￾￿]/g, " ").replace(/\s+/g, " ").trim().slice(0, max);
29
+ /** Escape text for an XML text node or a double-quoted attribute. */
30
+ export function xmlEscape(s) {
31
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
32
+ }
33
+ /** The four lines of the card, in order. The alt text and the visible text come from here, so they cannot differ. */
34
+ export function cardLines(input) {
35
+ const label = clean(input.label, 60);
36
+ return [
37
+ `My coding agent tried to ${label}.`,
38
+ "KYA Guard stopped it.",
39
+ `Rule ${clean(input.ruleId, 48)} | ${clean(input.host, 24)} | ${clean(input.date, 10)}`,
40
+ `Install: ${CARD_INSTALL}`,
41
+ ];
42
+ }
43
+ /** Greedy word wrap. A word longer than the limit stays whole on its own line. */
44
+ function wrap(text, max) {
45
+ const out = [];
46
+ let line = "";
47
+ for (const w of text.split(" ")) {
48
+ if (line && line.length + 1 + w.length > max) {
49
+ out.push(line);
50
+ line = w;
51
+ }
52
+ else
53
+ line = line ? `${line} ${w}` : w;
54
+ }
55
+ if (line)
56
+ out.push(line);
57
+ return out;
58
+ }
59
+ const SANS = "system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif";
60
+ const MONO = "ui-monospace, Menlo, Consolas, 'DejaVu Sans Mono', monospace";
61
+ /** The card: a 1200 x 630 SVG with a title and a description that match the four visible lines. */
62
+ export function buildCardSvg(input) {
63
+ const [l1, l2, l3, l4] = cardLines(input);
64
+ const rows = wrap(l1, 30);
65
+ const first = rows.map((r, i) => `<tspan x="80" y="${150 + i * 72}">${xmlEscape(r)}</tspan>`).join("");
66
+ const stopY = 150 + rows.length * 72 + 24;
67
+ return `<?xml version="1.0" encoding="UTF-8"?>
68
+ <svg xmlns="http://www.w3.org/2000/svg" width="${CARD_WIDTH}" height="${CARD_HEIGHT}" viewBox="0 0 ${CARD_WIDTH} ${CARD_HEIGHT}" role="img" aria-labelledby="t d">
69
+ <title id="t">${xmlEscape(`${l1} ${l2}`)}</title>
70
+ <desc id="d">${xmlEscape([l1, l2, l3, l4].join(" "))}</desc>
71
+ <rect width="${CARD_WIDTH}" height="${CARD_HEIGHT}" fill="#0b1220"/>
72
+ <rect width="16" height="${CARD_HEIGHT}" fill="#3ddc84"/>
73
+ <rect x="40" y="40" width="1120" height="550" rx="20" fill="none" stroke="#1f2a44" stroke-width="2"/>
74
+ <text font-family="${SANS}" font-size="60" font-weight="700" fill="#f4f7ff">${first}</text>
75
+ <text x="80" y="${stopY}" font-family="${SANS}" font-size="64" font-weight="800" fill="#3ddc84">${xmlEscape(l2)}</text>
76
+ <text x="80" y="500" font-family="${MONO}" font-size="26" fill="#9fb0d0">${xmlEscape(l3)}</text>
77
+ <text x="80" y="560" font-family="${MONO}" font-size="30" fill="#7cc4ff">${xmlEscape(l4)}</text>
78
+ </svg>
79
+ `;
80
+ }
81
+ /** Two lines to paste with the image. */
82
+ export function cardCaption(input) {
83
+ const [l1, l2] = cardLines(input);
84
+ return `${l1} ${l2}\nRule ${clean(input.ruleId, 48)}. Local, no network, one file: ${CARD_INSTALL}`;
85
+ }
86
+ /** Stable short id of a trail row (the `--id` value). A hash of the time, session, tool and rule: it shows nothing of them. */
87
+ export function eventIdOf(e) {
88
+ return createHash("sha256").update([e.ts, e.sessionId, e.toolId, e.neverRule ?? e.reasonCode].join("\n")).digest("hex").slice(0, 8);
89
+ }
90
+ /** A near miss is a call the guard denied. An ask (outcome held) is not one: the person answered it. */
91
+ export const isNearMiss = (e) => outcomeOf(e) === "blocked";
92
+ /**
93
+ * The only place a trail row meets the card. It reads three fields (neverRule or reasonCode, product, ts) and the rule table.
94
+ * It does not read toolId, project, sessionId, summary, diffPreview or targetPath.
95
+ */
96
+ export function cardInputOf(e) {
97
+ const ruleId = e.neverRule ?? e.reasonCode;
98
+ return {
99
+ ruleId,
100
+ label: ruleLabel(ruleId) ?? CARD_FALLBACK_LABEL,
101
+ host: productLabel(e.product),
102
+ date: /^\d{4}-\d{2}-\d{2}/.test(e.ts) ? e.ts.slice(0, 10) : "unknown date",
103
+ };
104
+ }
105
+ const byNewest = (a, b) => Date.parse(b.ts) - Date.parse(a.ts);
106
+ /** The call for a card: the row with that id, or the newest denied call. A clear message when there is none. */
107
+ export function pickNearMiss(rows, id) {
108
+ const denied = rows.filter(isNearMiss).sort(byNewest);
109
+ if (id) {
110
+ const row = rows.find((e) => eventIdOf(e) === id);
111
+ if (row && isNearMiss(row))
112
+ return { ok: true, event: row };
113
+ if (row)
114
+ return { ok: false, message: `The call ${id} was not denied, so there is no near miss to show. A card is only for a call KYA Guard stopped. A call it asked you about is not one.` };
115
+ const known = denied.slice(0, 5).map((e) => `${eventIdOf(e)} (${cardInputOf(e).ruleId}, ${cardInputOf(e).date})`).join(", ");
116
+ return { ok: false, message: `No call with id ${id}. ${known ? `Recent stopped calls: ${known}.` : "KYA Guard has not stopped a call yet."}` };
117
+ }
118
+ if (denied.length)
119
+ return { ok: true, event: denied[0] };
120
+ const asked = rows.some((e) => outcomeOf(e) === "held");
121
+ return {
122
+ ok: false,
123
+ message: asked
124
+ ? "KYA Guard has not denied a call yet. It asked you about one, and an approved ask is not a near miss, so there is no card. A card is only for a call it stopped."
125
+ : "KYA Guard has not stopped a call yet, so there is no near miss to show. Nothing was changed.",
126
+ };
127
+ }
128
+ /** A denied call in the last `days` days (the offer in /kya-guard:status). */
129
+ export function recentNearMiss(rows, now, days = 7) {
130
+ const since = now.getTime() - days * 86_400_000;
131
+ return rows.filter((e) => isNearMiss(e) && Date.parse(e.ts) >= since).sort(byNewest)[0];
132
+ }
133
+ /** Folder of the cards: `<KYA_HOME or HOME>/.kya/cards`. */
134
+ export const cardsDir = (env) => join(globalConfigDir(env), "cards");
135
+ /** Write the SVG to the cards folder. Returns the path. Writes one local file and nothing else. */
136
+ export function writeCardSvg(env, e) {
137
+ const input = cardInputOf(e);
138
+ const dir = cardsDir(env);
139
+ mkdirSync(dir, { recursive: true });
140
+ const svgPath = join(dir, `near-miss-${input.date}-${input.ruleId.replace(/[^A-Za-z0-9._-]/g, "_").slice(0, 48)}-${eventIdOf(e)}.svg`);
141
+ writeFileSync(svgPath, buildCardSvg(input), "utf8");
142
+ return { svgPath, input };
143
+ }
144
+ /** The text `kya receipt --card` and `guard.mjs --card` print: the file paths, then the two-line caption. */
145
+ export function formatCard(r) {
146
+ return [
147
+ `Near-miss card for call ${r.id}. It holds the rule, the host and the date. Nothing else, and nothing was sent anywhere.`,
148
+ `SVG: ${r.svgPath}`,
149
+ r.pngPath ? `PNG: ${r.pngPath}` : `PNG: not made. ${r.pngNote ?? "No renderer found."}`,
150
+ "Caption to paste:",
151
+ cardCaption(r.input),
152
+ ].join("\n") + "\n";
153
+ }
154
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../src/card.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC;AAYtE,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AAC/B,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAC/B,uEAAuE;AACvE,MAAM,CAAC,MAAM,YAAY,GAAG,oCAAoC,CAAC;AACjE,kGAAkG;AAClG,MAAM,CAAC,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAEpE,oHAAoH;AACpH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAC1F,CAAC;AAED,4GAA4G;AAC5G,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,GAAW,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAEvI,qEAAqE;AACrE,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7H,CAAC;AAED,qHAAqH;AACrH,MAAM,UAAU,SAAS,CAAC,KAAgB;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,OAAO;QACL,4BAA4B,KAAK,GAAG;QACpC,uBAAuB;QACvB,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;QACvF,YAAY,YAAY,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,SAAS,IAAI,CAAC,IAAY,EAAE,GAAW;IACrC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;;YAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,IAAI,GAAG,oEAAoE,CAAC;AAClF,MAAM,IAAI,GAAG,8DAA8D,CAAC;AAE5E,mGAAmG;AACnG,MAAM,UAAU,YAAY,CAAC,KAAgB;IAC3C,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvG,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;IAC1C,OAAO;iDACwC,UAAU,aAAa,WAAW,kBAAkB,UAAU,IAAI,WAAW;gBAC9G,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;eACzB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;eACrC,UAAU,aAAa,WAAW;2BACtB,WAAW;;qBAEjB,IAAI,qDAAqD,KAAK;kBACjE,KAAK,kBAAkB,IAAI,qDAAqD,SAAS,CAAC,EAAE,CAAC;oCAC3E,IAAI,mCAAmC,SAAS,CAAC,EAAE,CAAC;oCACpD,IAAI,mCAAmC,SAAS,CAAC,EAAE,CAAC;;CAEvF,CAAC;AACF,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,WAAW,CAAC,KAAgB;IAC1C,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,GAAG,EAAE,IAAI,EAAE,UAAU,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,kCAAkC,YAAY,EAAE,CAAC;AACtG,CAAC;AAED,+HAA+H;AAC/H,MAAM,UAAU,SAAS,CAAC,CAAa;IACrC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtI,CAAC;AAED,wGAAwG;AACxG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAa,EAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;AAEjF;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,CAAa;IACvC,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC;IAC3C,OAAO;QACL,MAAM;QACN,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,mBAAmB;QAC/C,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;QAC7B,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc;KAC3E,CAAC;AACJ,CAAC;AAID,MAAM,QAAQ,GAAG,CAAC,CAAa,EAAE,CAAa,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAE/F,gHAAgH;AAChH,MAAM,UAAU,YAAY,CAAC,IAA2B,EAAE,EAAW;IACnE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAClD,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAC5D,IAAI,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,uIAAuI,EAAE,CAAC;QAC9L,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7H,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,yBAAyB,KAAK,GAAG,CAAC,CAAC,CAAC,uCAAuC,EAAE,EAAE,CAAC;IACjJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAE,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;IACxD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,KAAK;YACZ,CAAC,CAAC,iKAAiK;YACnK,CAAC,CAAC,8FAA8F;KACnG,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,IAA2B,EAAE,GAAS,EAAE,IAAI,GAAG,CAAC;IAC7E,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,UAAU,CAAC;IAChD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,4DAA4D;AAC5D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAsB,EAAU,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AAEhG,mGAAmG;AACnG,MAAM,UAAU,YAAY,CAAC,GAAsB,EAAE,CAAa;IAChE,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvI,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACpD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,UAAU,CAAC,CAAqI;IAC9J,OAAO;QACL,2BAA2B,CAAC,CAAC,EAAE,0FAA0F;QACzH,QAAQ,CAAC,CAAC,OAAO,EAAE;QACnB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,OAAO,IAAI,oBAAoB,EAAE;QACvF,mBAAmB;QACnB,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;KACrB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACtB,CAAC"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { OrrRating } from "../commands/orr.js";
8
8
  import type { OrrCard } from "../receipt/enrich.js";
9
- import type { TrailEvent } from "../trail.js";
9
+ import { type TrailEvent } from "../trail.js";
10
10
  import type { OpenshellProverOutcome } from "./openshell-prover.js";
11
11
  import type { CatalogRequirement, RequirementSeverity, TrailMatch } from "./catalog.js";
12
12
  export type RequirementStatus = "pass" | "gap" | "insufficient_evidence" | "attested";
@@ -36,6 +36,16 @@ export interface CertifyTrailStats {
36
36
  readonly hold: number;
37
37
  readonly offline: number;
38
38
  };
39
+ /**
40
+ * Counts by outcome (what happened to each call). Present only when a row records an outcome, so a trail from
41
+ * before outcomes existed gives the same report as before. Not part of the signed evidence bundle.
42
+ */
43
+ readonly outcomes?: {
44
+ readonly ran: number;
45
+ readonly blocked: number;
46
+ readonly held: number;
47
+ readonly error: number;
48
+ };
39
49
  }
40
50
  export interface CertifyReport {
41
51
  readonly format: "shield-kya-certify-report";
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/certify/evaluate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/certify/evaluate.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { countOutcomes } from "../trail.js";
1
2
  export const DAY_MS = 24 * 60 * 60 * 1000;
2
3
  export function countRequirements(requirements) {
3
4
  const counts = { pass: 0, gap: 0, insufficientEvidence: 0, attested: 0 };
@@ -42,7 +43,13 @@ export function trailStats(events) {
42
43
  else
43
44
  modes.offline++;
44
45
  }
45
- return { eventCount: events.length, verdictMix, modes };
46
+ const oc = countOutcomes(events);
47
+ return {
48
+ eventCount: events.length,
49
+ verdictMix,
50
+ modes,
51
+ ...(oc.recorded > 0 ? { outcomes: { ran: oc.ran, blocked: oc.blocked, held: oc.held, error: oc.error } } : {}),
52
+ };
46
53
  }
47
54
  export function matchEvent(e, m) {
48
55
  if (m.verdict !== undefined && e.verdict.toUpperCase() !== m.verdict.toUpperCase()) {
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/certify/evaluate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/certify/evaluate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/certify/render.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,aAAa,EAGd,MAAM,eAAe,CAAC;AAEvB,6EAA6E;AAC7E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOhD,CAAC;AAEF,gEAAgE;AAChE,wBAAgB,WAAW,CACzB,YAAY,EAAE,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GAC1C,MAAM,EAAE,CAMV;AAUD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CA+CnE;AAiCD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAoJ/D"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/certify/render.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,aAAa,EAGd,MAAM,eAAe,CAAC;AAEvB,6EAA6E;AAC7E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOhD,CAAC;AAEF,gEAAgE;AAChE,wBAAgB,WAAW,CACzB,YAAY,EAAE,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GAC1C,MAAM,EAAE,CAMV;AAoBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CA+CnE;AAiCD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAoJ/D"}
@@ -29,6 +29,15 @@ function mdText(s) {
29
29
  .replace(/\|/g, "\\|")
30
30
  .replace(/([[\]<>])/g, "\\$1");
31
31
  }
32
+ /** Counts by outcome when the trail records them (a call that ran is not a review), else by verdict as before. */
33
+ function trailMix(t) {
34
+ if (t.outcomes) {
35
+ const o = t.outcomes;
36
+ const earlier = t.eventCount - (o.ran + o.blocked + o.held + o.error);
37
+ return `ran ${o.ran} · blocked ${o.blocked} · held ${o.held}${o.error > 0 ? ` · error ${o.error}` : ""}${earlier > 0 ? ` · ${earlier} earlier with no outcome` : ""}`;
38
+ }
39
+ return `allow ${t.verdictMix.ALLOW} · deny ${t.verdictMix.DENY} · review ${t.verdictMix.REQUIRE_APPROVE}`;
40
+ }
32
41
  export function formatCertifyMarkdown(report) {
33
42
  const o = report.overall;
34
43
  const lines = [
@@ -37,7 +46,7 @@ export function formatCertifyMarkdown(report) {
37
46
  `- **Result:** ${o.result === "gap" ? "GAP" : "PASS"}`,
38
47
  `- **Generated:** ${mdText(report.generatedAt)}`,
39
48
  `- **Window:** last ${report.window.days} days (${mdText(report.window.since)} → ${mdText(report.window.until)})`,
40
- `- **Trail:** ${report.trail.eventCount} events in window - allow ${report.trail.verdictMix.ALLOW} · deny ${report.trail.verdictMix.DENY} · review ${report.trail.verdictMix.REQUIRE_APPROVE}`,
49
+ `- **Trail:** ${report.trail.eventCount} events in window - ${trailMix(report.trail)}`,
41
50
  `- **Tally:** ${o.pass} pass · ${o.gap} gap · ${o.insufficientEvidence} insufficient evidence · ${o.attested} attested`,
42
51
  "",
43
52
  "## Gaps (work plan)",
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/certify/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/certify/render.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOxE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,cAAc,EAAE,gBAAgB;IAChC,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,gEAAgE;AAChE,MAAM,UAAU,WAAW,CACzB,YAA2C;IAE3C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,YAAY,CAAC,CAAC,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,kHAAkH;AAClH,SAAS,QAAQ,CAAC,CAAyB;IACzC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACrB,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACxK,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,UAAU,CAAC,KAAK,WAAW,CAAC,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IACzD,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACzB,MAAM,KAAK,GAAa;QACtB,cAAc,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC5E,EAAE;QACF,iBAAiB,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE;QACtD,oBAAoB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;QAChD,sBAAsB,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;QACjH,gBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,uBAAuB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACtF,gBAAgB,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,oBAAoB,4BAA4B,CAAC,CAAC,QAAQ,WAAW;QACvH,EAAE;QACF,qBAAqB;KACtB,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CACR,CAAC,CAAC,MAAM,KAAK,KAAK;YAChB,CAAC,CAAC,8JAA8J;YAChK,CAAC,CAAC,UAAU,CACf,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAChC,KAAK,CAAC,IAAI,CACR,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,EAC/C,EAAE,EACF,wCAAwC,EACxC,wCAAwC,CACzC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,IAAI,CACR,KAAK,EACL,0NAA0N,CAC3N,CAAC;IACF,MAAM,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,GAAG,CAAC,CAAS;IACpB,OAAO,YAAY,CAAC,CAAC,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,WAAW,GAAsC;IACrD,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,KAAK;IACV,qBAAqB,EAAE,MAAM;IAC7B,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,SAAS,cAAc,CAAC,CAA2B;IACjD,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW;QACvB,CAAC,CAAC,6BAA6B,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ;QACpG,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;0BACiB,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;0BAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;yBACV,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;;8BAE9B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;2BAC1B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;UAC3C,GAAG;;UAEH,CAAC;AACX,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IACnE,MAAM,OAAO,GACX,IAAI,CAAC,MAAM,KAAK,CAAC;QACf,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK;YAClB,CAAC,CAAC,iLAAiL;YACnL,CAAC,CAAC,yEAAyE;QAC7E,CAAC,CAAC;EACN,IAAI;aACH,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,mBAAmB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,8BAA8B,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,2BAA2B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,cAAc,CACrM;aACA,IAAI,CAAC,IAAI,CAAC;MACP,CAAC;IACL,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;SACpD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACjC,OAAO,sCAAsC,GAAG,CAAC,MAAM,CAAC;QACtD,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;;EAE1C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;WAEpC,CAAC;IACR,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,IAAI,GAAG;;;;;mBAKI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAwFjD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;+BAC/C,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU;wBAChK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;;oCAEpC,CAAC,CAAC,IAAI;oCACN,CAAC,CAAC,GAAG;uDACc,CAAC,CAAC,oBAAoB;qCACxC,CAAC,CAAC,QAAQ;;;;MAIzC,OAAO;;IAET,cAAc;;;;;;;;QAQV,CAAC;IAEP,2EAA2E;IAC3E,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/cli.d.ts CHANGED
@@ -7,6 +7,8 @@
7
7
  * Fail-closed: empty KYA_API_KEY against auth plane → non-zero exit.
8
8
  * Offline sample: eval-tool --offline (demo only; not production PEP).
9
9
  */
10
+ /** The Commands entries whose first word is `name` (`orr` finds "orr run"), cut from the full help text. */
11
+ export declare function helpSection(full: string, name: string): string | undefined;
10
12
  export interface CliIo {
11
13
  readonly log: (msg: string) => void;
12
14
  readonly error: (msg: string) => void;
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAkLH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,qGAAqG;IACrG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACtD;AAcD,sFAAsF;AACtF,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,+FAA+F;AAC/F,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,GAAE,KAAiB,EACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAs7BjB"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AA0NH,4GAA4G;AAC5G,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS1E;AAqBD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,qGAAqG;IACrG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACtD;AAcD,sFAAsF;AACtF,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,+FAA+F;AAC/F,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,GAAE,KAAiB,EACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAmiCjB"}